public abstract class HoodieBackedTableMetadataWriter extends Object implements HoodieTableMetadataWriter
| Modifier and Type | Field and Description |
|---|---|
protected HoodieTableMetaClient |
dataMetaClient |
protected HoodieWriteConfig |
dataWriteConfig |
protected boolean |
enabled |
protected List<MetadataPartitionType> |
enabledPartitionTypes |
protected HoodieEngineContext |
engineContext |
protected SerializableConfiguration |
hadoopConf |
protected HoodieBackedTableMetadata |
metadata |
protected HoodieTableMetaClient |
metadataMetaClient |
protected HoodieWriteConfig |
metadataWriteConfig |
protected Option<HoodieMetadataMetrics> |
metrics |
protected String |
tableName |
| Modifier | Constructor and Description |
|---|---|
|
HoodieBackedTableMetadataWriter(org.apache.hadoop.conf.Configuration hadoopConf,
HoodieWriteConfig writeConfig,
HoodieEngineContext engineContext) |
protected |
HoodieBackedTableMetadataWriter(org.apache.hadoop.conf.Configuration hadoopConf,
HoodieWriteConfig writeConfig,
HoodieEngineContext engineContext,
Option<T> actionMetadata,
Option<String> inflightInstantTimestamp)
Hudi backed table metadata writer.
|
| Modifier and Type | Method and Description |
|---|---|
void |
buildMetadataPartitions(HoodieEngineContext engineContext,
List<HoodieIndexPartitionInfo> indexPartitionInfos)
Builds the given metadata partitions to create index.
|
protected void |
cleanIfNecessary(BaseHoodieWriteClient writeClient,
String instantTime) |
void |
close() |
protected abstract void |
commit(String instantTime,
Map<MetadataPartitionType,HoodieData<HoodieRecord>> partitionRecordsMap,
boolean canTriggerTableService)
Commit the
HoodieRecords to Metadata Table as a new delta-commit. |
protected void |
compactIfNecessary(BaseHoodieWriteClient writeClient,
String instantTime)
Perform a compaction on the Metadata Table.
|
void |
dropMetadataPartitions(List<MetadataPartitionType> metadataPartitions)
Drop the given metadata partitions.
|
List<MetadataPartitionType> |
getEnabledPartitionTypes() |
HoodieBackedTableMetadata |
getTableMetadata() |
HoodieWriteConfig |
getWriteConfig() |
protected abstract <T extends org.apache.avro.specific.SpecificRecordBase> |
initialize(HoodieEngineContext engineContext,
Option<T> actionMetadata,
Option<String> inflightInstantTimestamp)
Initialize the metadata table if it does not exist.
|
protected <T extends org.apache.avro.specific.SpecificRecordBase> |
initializeIfNeeded(HoodieTableMetaClient dataMetaClient,
Option<T> actionMetadata,
Option<String> inflightInstantTimestamp)
Initialize the metadata table if needed.
|
void |
initializeMetadataPartitions(HoodieTableMetaClient dataMetaClient,
List<MetadataPartitionType> metadataPartitions,
String instantTime)
Initialize file groups for the given metadata partitions when indexing is requested.
|
protected abstract void |
initRegistry() |
void |
initTableMetadata() |
protected HoodieData<HoodieRecord> |
prepRecords(Map<MetadataPartitionType,HoodieData<HoodieRecord>> partitionRecordsMap)
Tag each record with the location in the given partition.
|
void |
update(HoodieCleanMetadata cleanMetadata,
String instantTime)
Update from
HoodieCleanMetadata. |
void |
update(HoodieCommitMetadata commitMetadata,
String instantTime,
boolean isTableServiceAction)
Update from
HoodieCommitMetadata. |
void |
update(HoodieRestoreMetadata restoreMetadata,
String instantTime)
Update from
HoodieRestoreMetadata. |
void |
update(HoodieRollbackMetadata rollbackMetadata,
String instantTime)
Update from
HoodieRollbackMetadata. |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitdeletePartitionsprotected HoodieWriteConfig metadataWriteConfig
protected HoodieWriteConfig dataWriteConfig
protected String tableName
protected HoodieBackedTableMetadata metadata
protected HoodieTableMetaClient metadataMetaClient
protected HoodieTableMetaClient dataMetaClient
protected Option<HoodieMetadataMetrics> metrics
protected boolean enabled
protected SerializableConfiguration hadoopConf
protected final transient HoodieEngineContext engineContext
protected final List<MetadataPartitionType> enabledPartitionTypes
protected HoodieBackedTableMetadataWriter(org.apache.hadoop.conf.Configuration hadoopConf,
HoodieWriteConfig writeConfig,
HoodieEngineContext engineContext,
Option<T> actionMetadata,
Option<String> inflightInstantTimestamp)
T - - Action metadata types extending Avro generated SpecificRecordBasehadoopConf - - Hadoop configuration to use for the metadata writerwriteConfig - - Writer configengineContext - - Engine contextactionMetadata - - Optional action metadata to help decide initialize operationsinflightInstantTimestamp - - Timestamp of any instant in progresspublic HoodieBackedTableMetadataWriter(org.apache.hadoop.conf.Configuration hadoopConf,
HoodieWriteConfig writeConfig,
HoodieEngineContext engineContext)
protected abstract void initRegistry()
public HoodieWriteConfig getWriteConfig()
public HoodieBackedTableMetadata getTableMetadata()
public List<MetadataPartitionType> getEnabledPartitionTypes()
protected abstract <T extends org.apache.avro.specific.SpecificRecordBase> void initialize(HoodieEngineContext engineContext, Option<T> actionMetadata, Option<String> inflightInstantTimestamp)
If the metadata table does not exist, then file and partition listing is used to initialize the table.
engineContext - actionMetadata - Action metadata types extending Avro generated SpecificRecordBaseinflightInstantTimestamp - Timestamp of an instant in progress on the dataset. This instant is ignored
while deciding to initialize the metadata table.public void initTableMetadata()
protected <T extends org.apache.avro.specific.SpecificRecordBase> void initializeIfNeeded(HoodieTableMetaClient dataMetaClient, Option<T> actionMetadata, Option<String> inflightInstantTimestamp) throws IOException
T - - action metadata types extending Avro generated SpecificRecordBasedataMetaClient - - meta client for the data tableactionMetadata - - optional action metadatainflightInstantTimestamp - - timestamp of an instant in progress on the datasetIOExceptionpublic void initializeMetadataPartitions(HoodieTableMetaClient dataMetaClient, List<MetadataPartitionType> metadataPartitions, String instantTime) throws IOException
HoodieTableMetadataWriterinitializeMetadataPartitions in interface HoodieTableMetadataWriterdataMetaClient - - meta client for the data tablemetadataPartitions - - metadata partitions for which file groups needs to be initializedinstantTime - - instant time of the index actionIOExceptionpublic void dropMetadataPartitions(List<MetadataPartitionType> metadataPartitions) throws IOException
HoodieTableMetadataWriterdropMetadataPartitions in interface HoodieTableMetadataWriterIOExceptionpublic void buildMetadataPartitions(HoodieEngineContext engineContext, List<HoodieIndexPartitionInfo> indexPartitionInfos)
HoodieTableMetadataWriterbuildMetadataPartitions in interface HoodieTableMetadataWriterindexPartitionInfos - - information about partitions to build such as partition type and base instant timepublic void update(HoodieCommitMetadata commitMetadata, String instantTime, boolean isTableServiceAction)
HoodieCommitMetadata.update in interface HoodieTableMetadataWritercommitMetadata - HoodieCommitMetadatainstantTime - Timestamp at which the commit was performedisTableServiceAction - true if commit metadata is pertaining to a table service. false otherwise.public void update(HoodieCleanMetadata cleanMetadata, String instantTime)
HoodieCleanMetadata.update in interface HoodieTableMetadataWritercleanMetadata - HoodieCleanMetadatainstantTime - Timestamp at which the clean was completedpublic void update(HoodieRestoreMetadata restoreMetadata, String instantTime)
HoodieRestoreMetadata.update in interface HoodieTableMetadataWriterrestoreMetadata - HoodieRestoreMetadatainstantTime - Timestamp at which the restore was performedpublic void update(HoodieRollbackMetadata rollbackMetadata, String instantTime)
HoodieRollbackMetadata.update in interface HoodieTableMetadataWriterrollbackMetadata - HoodieRollbackMetadatainstantTime - Timestamp at which the rollback was performedpublic void close()
throws Exception
close in interface AutoCloseableExceptionprotected abstract void commit(String instantTime, Map<MetadataPartitionType,HoodieData<HoodieRecord>> partitionRecordsMap, boolean canTriggerTableService)
HoodieRecords to Metadata Table as a new delta-commit.instantTime - - Action instant time for this commitpartitionRecordsMap - - Map of partition name to its records to commitcanTriggerTableService - true if table services can be scheduled and executed. false otherwise.protected HoodieData<HoodieRecord> prepRecords(Map<MetadataPartitionType,HoodieData<HoodieRecord>> partitionRecordsMap)
protected void compactIfNecessary(BaseHoodieWriteClient writeClient, String instantTime)
protected void cleanIfNecessary(BaseHoodieWriteClient writeClient, String instantTime)
Copyright © 2022 The Apache Software Foundation. All rights reserved.