Impala
Impalaistheopensource,nativeanalyticdatabaseforApacheHadoop.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
com.cloudera.impala.catalog.HdfsPartition Class Reference
Inheritance diagram for com.cloudera.impala.catalog.HdfsPartition:
Collaboration diagram for com.cloudera.impala.catalog.HdfsPartition:

Classes

class  BlockReplica
 
class  CachedHmsPartitionDescriptor
 
class  FileBlock
 
class  FileDescriptor
 

Public Member Functions

HdfsStorageDescriptor getInputFormatDescriptor ()
 
boolean isDefaultPartition ()
 
String getPartitionName ()
 
List< String > getPartitionValuesAsStrings (boolean mapNullsToHiveKey)
 
String getConjunctSql ()
 
String getValuesAsString ()
 
String getLocation ()
 
long getId ()
 
HdfsTable getTable ()
 
void setNumRows (long numRows)
 
long getNumRows ()
 
boolean isMarkedCached ()
 
void setFileFormat (HdfsFileFormat fileFormat)
 
void setLocation (String location)
 
org.apache.hadoop.hive.metastore.api.SerDeInfo getSerdeInfo ()
 
TPartitionStats getPartitionStats ()
 
boolean hasIncrementalStats ()
 
TAccessLevel getAccessLevel ()
 
String getParameter (String key)
 
Map< String, String > getParameters ()
 
void putToParameters (String k, String v)
 
void markDirty ()
 
boolean isDirty ()
 
List< LiteralExprgetPartitionValues ()
 
List
< HdfsPartition.FileDescriptor > 
getFileDescriptors ()
 
boolean hasFileDescriptors ()
 
org.apache.hadoop.hive.metastore.api.Partition toHmsPartition ()
 
 HdfsPartition (HdfsTable table, org.apache.hadoop.hive.metastore.api.Partition msPartition, List< LiteralExpr > partitionKeyValues, HdfsStorageDescriptor fileFormatDescriptor, List< HdfsPartition.FileDescriptor > fileDescriptors, TAccessLevel accessLevel)
 
long getSize ()
 
String toString ()
 
void checkWellFormed () throws CatalogException
 
THdfsPartition toThrift (boolean includeFileDesc)
 
int compareTo (HdfsPartition o)
 

Static Public Member Functions

static HdfsPartition defaultPartition (HdfsTable table, HdfsStorageDescriptor storageDescriptor)
 
static HdfsPartition fromThrift (HdfsTable table, long id, THdfsPartition thriftPartition)
 
static int comparePartitionKeyValues (List< LiteralExpr > lhs, List< LiteralExpr > rhs)
 

Package Functions

void markCached ()
 

Private Member Functions

 HdfsPartition (HdfsTable table, org.apache.hadoop.hive.metastore.api.Partition msPartition, List< LiteralExpr > partitionKeyValues, HdfsStorageDescriptor fileFormatDescriptor, List< HdfsPartition.FileDescriptor > fileDescriptors, long id, String location, TAccessLevel accessLevel)
 

Private Attributes

final HdfsTable table_
 
final List< LiteralExprpartitionKeyValues_
 
long numRows_ = -1
 
final long id_
 
final HdfsStorageDescriptor fileFormatDescriptor_
 
final List< FileDescriptorfileDescriptors_
 
String location_
 
boolean isDirty_ = false
 
boolean isMarkedCached_ = false
 
final TAccessLevel accessLevel_
 
Map< String, String > hmsParameters_
 
final CachedHmsPartitionDescriptor cachedMsPartitionDescriptor_
 

Static Private Attributes

static AtomicLong partitionIdCounter_ = new AtomicLong()
 
static final Logger LOG = LoggerFactory.getLogger(HdfsPartition.class)
 

Detailed Description

Query-relevant information for one table partition. Partitions are comparable based on their partition-key values. The comparison orders partitions in ascending order with NULLs sorting last. The ordering is useful for displaying partitions in SHOW statements.

Definition at line 60 of file HdfsPartition.java.

Constructor & Destructor Documentation

com.cloudera.impala.catalog.HdfsPartition.HdfsPartition ( HdfsTable  table,
org.apache.hadoop.hive.metastore.api.Partition  msPartition,
List< LiteralExpr partitionKeyValues,
HdfsStorageDescriptor  fileFormatDescriptor,
List< HdfsPartition.FileDescriptor >  fileDescriptors,
TAccessLevel  accessLevel 
)
inline

Member Function Documentation

void com.cloudera.impala.catalog.HdfsPartition.checkWellFormed ( ) throws CatalogException
inline

Checks that this partition's metadata is well formed. This does not necessarily mean the partition is supported by Impala. Throws a CatalogException if there are any errors in the partition metadata.

Definition at line 658 of file HdfsPartition.java.

References com.cloudera.impala.catalog.HdfsPartition.getPartitionName(), and com.cloudera.impala.catalog.HdfsPartition.getPartitionValues().

static int com.cloudera.impala.catalog.HdfsPartition.comparePartitionKeyValues ( List< LiteralExpr lhs,
List< LiteralExpr rhs 
)
inlinestatic
int com.cloudera.impala.catalog.HdfsPartition.compareTo ( HdfsPartition  o)
inline
static HdfsPartition com.cloudera.impala.catalog.HdfsPartition.defaultPartition ( HdfsTable  table,
HdfsStorageDescriptor  storageDescriptor 
)
inlinestatic
static HdfsPartition com.cloudera.impala.catalog.HdfsPartition.fromThrift ( HdfsTable  table,
long  id,
THdfsPartition  thriftPartition 
)
inlinestatic
TAccessLevel com.cloudera.impala.catalog.HdfsPartition.getAccessLevel ( )
inline

Returns the HDFS permissions Impala has to this partition's directory - READ_ONLY, READ_WRITE, etc.

Definition at line 404 of file HdfsPartition.java.

References com.cloudera.impala.catalog.HdfsPartition.accessLevel_.

Referenced by com.cloudera.impala.analysis.LoadDataStmt.analyzePaths(), and com.cloudera.impala.catalog.HdfsTable.loadPartitions().

String com.cloudera.impala.catalog.HdfsPartition.getConjunctSql ( )
inline

Utility method which returns a string of conjuncts of equality exprs to exactly select this partition (e.g. ((month=2009) AND (year=2012)). TODO: Remove this when TODO elsewhere in this file to save and expose the list of TPartitionKeyValues has been resolved.

Definition at line 322 of file HdfsPartition.java.

References com.cloudera.impala.catalog.HdfsPartition.getPartitionValues(), and com.cloudera.impala.catalog.HdfsPartition.getTable().

List<HdfsPartition.FileDescriptor> com.cloudera.impala.catalog.HdfsPartition.getFileDescriptors ( )
inline
long com.cloudera.impala.catalog.HdfsPartition.getId ( )
inline
HdfsStorageDescriptor com.cloudera.impala.catalog.HdfsPartition.getInputFormatDescriptor ( )
inline
String com.cloudera.impala.catalog.HdfsPartition.getLocation ( )
inline

Returns the storage location (HDFS path) of this partition. Should only be called for partitioned tables.

Definition at line 364 of file HdfsPartition.java.

References com.cloudera.impala.catalog.HdfsPartition.location_.

Referenced by com.cloudera.impala.analysis.LoadDataStmt.analyzePaths().

long com.cloudera.impala.catalog.HdfsPartition.getNumRows ( )
inline
String com.cloudera.impala.catalog.HdfsPartition.getParameter ( String  key)
inline

Returns the HMS parameter with key 'key' if it exists, otherwise returns null.

Definition at line 409 of file HdfsPartition.java.

String com.cloudera.impala.catalog.HdfsPartition.getPartitionName ( )
inline

Return a partition name formed by concatenating partition keys and their values, compatible with the way Hive names partitions. Reuses Hive's org.apache.hadoop.hive.common.FileUtils.makePartName() function to build the name string because there are a number of special cases for how partition names are URL escaped. TODO: Consider storing the PartitionKeyValue in HdfsPartition. It would simplify this code would be useful in other places, such as fromThrift().

Definition at line 287 of file HdfsPartition.java.

References com.cloudera.impala.catalog.HdfsPartition.getPartitionValuesAsStrings(), and com.cloudera.impala.catalog.HdfsPartition.getTable().

Referenced by com.cloudera.impala.catalog.HdfsPartition.checkWellFormed(), and com.cloudera.impala.catalog.HdfsPartition.getPartitionStats().

List<String> com.cloudera.impala.catalog.HdfsPartition.getPartitionValuesAsStrings ( boolean  mapNullsToHiveKey)
inline

Returns a list of partition values as strings. If mapNullsToHiveKey is true, any NULL value is returned as the table's default null partition key string value, otherwise they are returned as 'NULL'.

Definition at line 303 of file HdfsPartition.java.

References com.cloudera.impala.catalog.HdfsPartition.getPartitionValues(), and com.cloudera.impala.catalog.HdfsPartition.getTable().

Referenced by com.cloudera.impala.catalog.HdfsPartition.getPartitionName(), and com.cloudera.impala.catalog.HdfsPartition.toHmsPartition().

org.apache.hadoop.hive.metastore.api.SerDeInfo com.cloudera.impala.catalog.HdfsPartition.getSerdeInfo ( )
inline

Definition at line 378 of file HdfsPartition.java.

long com.cloudera.impala.catalog.HdfsPartition.getSize ( )
inline

Return the size (in bytes) of all the files inside this partition

Definition at line 575 of file HdfsPartition.java.

References com.cloudera.impala.catalog.HdfsPartition.fileDescriptors_.

String com.cloudera.impala.catalog.HdfsPartition.getValuesAsString ( )
inline

Returns a string of the form part_key1=value1/part_key2=value2...

Definition at line 347 of file HdfsPartition.java.

References com.cloudera.impala.catalog.HdfsPartition.getPartitionValues(), and com.cloudera.impala.catalog.HdfsPartition.getTable().

boolean com.cloudera.impala.catalog.HdfsPartition.hasFileDescriptors ( )
inline
boolean com.cloudera.impala.catalog.HdfsPartition.hasIncrementalStats ( )
inline
boolean com.cloudera.impala.catalog.HdfsPartition.isDefaultPartition ( )
inline

Definition at line 274 of file HdfsPartition.java.

References com.cloudera.impala.catalog.HdfsPartition.id_.

boolean com.cloudera.impala.catalog.HdfsPartition.isDirty ( )
inline
void com.cloudera.impala.catalog.HdfsPartition.markCached ( )
inlinepackage
void com.cloudera.impala.catalog.HdfsPartition.markDirty ( )
inline

Marks this partition's metadata as "dirty" indicating that changes have been made and this partition's metadata should not be reused during the next incremental metadata refresh.

Definition at line 422 of file HdfsPartition.java.

References com.cloudera.impala.catalog.HdfsPartition.isDirty_.

void com.cloudera.impala.catalog.HdfsPartition.putToParameters ( String  k,
String  v 
)
inline

Definition at line 415 of file HdfsPartition.java.

void com.cloudera.impala.catalog.HdfsPartition.setFileFormat ( HdfsFileFormat  fileFormat)
inline

Definition at line 372 of file HdfsPartition.java.

void com.cloudera.impala.catalog.HdfsPartition.setLocation ( String  location)
inline
void com.cloudera.impala.catalog.HdfsPartition.setNumRows ( long  numRows)
inline
org.apache.hadoop.hive.metastore.api.Partition com.cloudera.impala.catalog.HdfsPartition.toHmsPartition ( )
inline
String com.cloudera.impala.catalog.HdfsPartition.toString ( )
inline

Member Data Documentation

final TAccessLevel com.cloudera.impala.catalog.HdfsPartition.accessLevel_
private
final CachedHmsPartitionDescriptor com.cloudera.impala.catalog.HdfsPartition.cachedMsPartitionDescriptor_
private
boolean com.cloudera.impala.catalog.HdfsPartition.isDirty_ = false
private
final Logger com.cloudera.impala.catalog.HdfsPartition.LOG = LoggerFactory.getLogger(HdfsPartition.class)
staticprivate

Definition at line 259 of file HdfsPartition.java.

long com.cloudera.impala.catalog.HdfsPartition.numRows_ = -1
private
AtomicLong com.cloudera.impala.catalog.HdfsPartition.partitionIdCounter_ = new AtomicLong()
staticprivate

Definition at line 243 of file HdfsPartition.java.

final List<LiteralExpr> com.cloudera.impala.catalog.HdfsPartition.partitionKeyValues_
private
final HdfsTable com.cloudera.impala.catalog.HdfsPartition.table_
private

The documentation for this class was generated from the following file: