public abstract class HoodieBackedTableMetadataWriter extends Object implements HoodieTableMetadataWriter
| Modifier and Type | Field and Description |
|---|---|
protected HoodieTableMetaClient |
dataMetaClient |
protected HoodieWriteConfig |
dataWriteConfig |
protected boolean |
enabled |
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 |
|---|---|
protected void |
bootstrapCommit(List<org.apache.hudi.metadata.HoodieBackedTableMetadataWriter.DirectoryInfo> partitionInfoList,
String createInstantTime)
This is invoked to bootstrap metadata table for a dataset.
|
protected <T extends org.apache.avro.specific.SpecificRecordBase> |
bootstrapIfNeeded(HoodieEngineContext engineContext,
HoodieTableMetaClient dataMetaClient,
Option<T> actionMetadata,
Option<String> inflightInstantTimestamp)
Bootstrap the metadata table if needed.
|
protected void |
cleanIfNecessary(AbstractHoodieWriteClient writeClient,
String instantTime) |
void |
close() |
protected abstract void |
commit(HoodieData<HoodieRecord> records,
String partitionName,
String instantTime,
boolean canTriggerTableService)
Commit the
HoodieRecords to Metadata Table as a new delta-commit. |
protected void |
compactIfNecessary(AbstractHoodieWriteClient writeClient,
String instantTime)
Perform a compaction on the Metadata Table.
|
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 abstract void |
initRegistry() |
void |
initTableMetadata() |
HoodieBackedTableMetadata |
metadata() |
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. |
protected 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 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 bootstrap 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 metadata()
protected abstract <T extends org.apache.avro.specific.SpecificRecordBase> void initialize(HoodieEngineContext engineContext, Option<T> actionMetadata, Option<String> inflightInstantTimestamp)
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 bootstrap the metadata table.public void initTableMetadata()
protected <T extends org.apache.avro.specific.SpecificRecordBase> void bootstrapIfNeeded(HoodieEngineContext engineContext, HoodieTableMetaClient dataMetaClient, Option<T> actionMetadata, Option<String> inflightInstantTimestamp) throws IOException
T - - Action metadata types extending Avro generated SpecificRecordBaseengineContext - - Engine contextdataMetaClient - - Meta client for the data tableactionMetadata - - Optional action metadatainflightInstantTimestamp - - Timestamp of an instant in progress on the dataset. This instant is ignoredIOExceptionpublic 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(HoodieData<HoodieRecord> records, String partitionName, String instantTime, boolean canTriggerTableService)
HoodieRecords to Metadata Table as a new delta-commit.records - The HoodieData of records to be written.partitionName - The partition to which the records are to be written.instantTime - The timestamp to use for the deltacommit.canTriggerTableService - true if table services can be scheduled and executed. false otherwise.protected void compactIfNecessary(AbstractHoodieWriteClient writeClient, String instantTime)
protected void cleanIfNecessary(AbstractHoodieWriteClient writeClient, String instantTime)
protected void bootstrapCommit(List<org.apache.hudi.metadata.HoodieBackedTableMetadataWriter.DirectoryInfo> partitionInfoList, String createInstantTime)
Copyright © 2022 The Apache Software Foundation. All rights reserved.