@NotThreadSafe public class HoodieMergeHandle<T,I,K,O> extends HoodieWriteHandle<T,I,K,O>
| Modifier and Type | Field and Description |
|---|---|
protected HoodieFileWriter |
fileWriter |
protected long |
insertRecordsWritten |
protected Option<BaseKeyGenerator> |
keyGeneratorOpt |
protected Map<String,HoodieRecord<T>> |
keyToNewRecords |
protected org.apache.hadoop.fs.Path |
newFilePath |
protected org.apache.hadoop.fs.Path |
oldFilePath |
protected Option<String[]> |
partitionFields |
protected Object[] |
partitionValues |
protected long |
recordsDeleted |
protected long |
recordsWritten |
protected long |
updatedRecordsWritten |
protected boolean |
useWriterSchemaForCompaction |
protected Set<String> |
writtenRecordKeys |
fileId, newRecordLocation, partitionPath, recordMerger, schemaOnReadEnabled, taskContextSupplier, timer, writeSchema, writeSchemaWithMetaFields, writeStatus, writeTokenconfig, fs, hoodieTable, instantTime| Constructor and Description |
|---|
HoodieMergeHandle(HoodieWriteConfig config,
String instantTime,
HoodieTable<T,I,K,O> hoodieTable,
Iterator<HoodieRecord<T>> recordItr,
String partitionPath,
String fileId,
TaskContextSupplier taskContextSupplier,
HoodieBaseFile baseFile,
Option<BaseKeyGenerator> keyGeneratorOpt) |
HoodieMergeHandle(HoodieWriteConfig config,
String instantTime,
HoodieTable<T,I,K,O> hoodieTable,
Iterator<HoodieRecord<T>> recordItr,
String partitionPath,
String fileId,
TaskContextSupplier taskContextSupplier,
Option<BaseKeyGenerator> keyGeneratorOpt) |
HoodieMergeHandle(HoodieWriteConfig config,
String instantTime,
HoodieTable<T,I,K,O> hoodieTable,
Map<String,HoodieRecord<T>> keyToNewRecords,
String partitionPath,
String fileId,
HoodieBaseFile dataFileToBeMerged,
TaskContextSupplier taskContextSupplier,
Option<BaseKeyGenerator> keyGeneratorOpt)
Called by compactor code path.
|
| Modifier and Type | Method and Description |
|---|---|
HoodieBaseFile |
baseFileForMerge() |
List<WriteStatus> |
close() |
IOType |
getIOType() |
static HoodieBaseFile |
getLatestBaseFile(HoodieTable<?,?,?,?> hoodieTable,
String partitionPath,
String fileId) |
org.apache.hadoop.fs.Path |
getOldFilePath() |
Option<String[]> |
getPartitionFields() |
Object[] |
getPartitionValues() |
protected void |
init(String fileId,
Iterator<HoodieRecord<T>> newRecordsItr)
Load the new incoming records in a map and return partitionPath.
|
protected void |
initializeIncomingRecordsMap()
Initialize a spillable map for incoming records.
|
protected void |
makeOldAndNewFilePaths(String partitionPath,
String oldFileName,
String newFileName) |
void |
performMergeDataValidationCheck(WriteStatus writeStatus) |
void |
setPartitionFields(Option<String[]> partitionFields) |
void |
setPartitionValues(Object[] partitionValues) |
protected void |
setWriteStatusPath() |
void |
write(HoodieRecord<T> oldRecord)
Go through an old record.
|
protected void |
writeIncomingRecords() |
protected void |
writeInsertRecord(HoodieRecord<T> newRecord) |
protected void |
writeInsertRecord(HoodieRecord<T> newRecord,
org.apache.avro.Schema schema,
Properties prop) |
protected boolean |
writeRecord(HoodieRecord<T> newRecord,
Option<HoodieRecord> combineRecord,
org.apache.avro.Schema schema,
Properties prop) |
protected void |
writeToFile(HoodieKey key,
HoodieRecord<T> record,
org.apache.avro.Schema schema,
Properties prop,
boolean shouldPreserveRecordMetadata) |
protected boolean |
writeUpdateRecord(HoodieRecord<T> newRecord,
HoodieRecord<T> oldRecord,
Option<HoodieRecord> combineRecordOpt,
org.apache.avro.Schema writerSchema) |
canWrite, createLogWriter, createLogWriter, createLogWriter, createMarkerFile, doWrite, getAttemptId, getConfig, getFileId, getFileSystem, getHoodieTableMetaClient, getPartitionId, getPartitionPath, getStageId, getWriterSchema, getWriterSchemaWithMetaFields, isClosed, makeNewFilePath, makeNewPath, markClosed, toAvroRecord, write, writeStatusesprotected Map<String,HoodieRecord<T>> keyToNewRecords
protected HoodieFileWriter fileWriter
protected org.apache.hadoop.fs.Path newFilePath
protected org.apache.hadoop.fs.Path oldFilePath
protected long recordsWritten
protected long recordsDeleted
protected long updatedRecordsWritten
protected long insertRecordsWritten
protected boolean useWriterSchemaForCompaction
protected Option<BaseKeyGenerator> keyGeneratorOpt
protected Object[] partitionValues
public HoodieMergeHandle(HoodieWriteConfig config, String instantTime, HoodieTable<T,I,K,O> hoodieTable, Iterator<HoodieRecord<T>> recordItr, String partitionPath, String fileId, TaskContextSupplier taskContextSupplier, Option<BaseKeyGenerator> keyGeneratorOpt)
public HoodieMergeHandle(HoodieWriteConfig config, String instantTime, HoodieTable<T,I,K,O> hoodieTable, Iterator<HoodieRecord<T>> recordItr, String partitionPath, String fileId, TaskContextSupplier taskContextSupplier, HoodieBaseFile baseFile, Option<BaseKeyGenerator> keyGeneratorOpt)
public HoodieMergeHandle(HoodieWriteConfig config, String instantTime, HoodieTable<T,I,K,O> hoodieTable, Map<String,HoodieRecord<T>> keyToNewRecords, String partitionPath, String fileId, HoodieBaseFile dataFileToBeMerged, TaskContextSupplier taskContextSupplier, Option<BaseKeyGenerator> keyGeneratorOpt)
public static HoodieBaseFile getLatestBaseFile(HoodieTable<?,?,?,?> hoodieTable, String partitionPath, String fileId)
protected void setWriteStatusPath()
protected void makeOldAndNewFilePaths(String partitionPath, String oldFileName, String newFileName)
protected void initializeIncomingRecordsMap()
protected void init(String fileId, Iterator<HoodieRecord<T>> newRecordsItr)
protected boolean writeUpdateRecord(HoodieRecord<T> newRecord, HoodieRecord<T> oldRecord, Option<HoodieRecord> combineRecordOpt, org.apache.avro.Schema writerSchema) throws IOException
IOExceptionprotected void writeInsertRecord(HoodieRecord<T> newRecord) throws IOException
IOExceptionprotected void writeInsertRecord(HoodieRecord<T> newRecord, org.apache.avro.Schema schema, Properties prop) throws IOException
IOExceptionprotected boolean writeRecord(HoodieRecord<T> newRecord, Option<HoodieRecord> combineRecord, org.apache.avro.Schema schema, Properties prop) throws IOException
IOExceptionpublic void write(HoodieRecord<T> oldRecord)
protected void writeToFile(HoodieKey key, HoodieRecord<T> record, org.apache.avro.Schema schema, Properties prop, boolean shouldPreserveRecordMetadata) throws IOException
IOExceptionprotected void writeIncomingRecords()
throws IOException
IOExceptionpublic List<WriteStatus> close()
public void performMergeDataValidationCheck(WriteStatus writeStatus)
public org.apache.hadoop.fs.Path getOldFilePath()
public HoodieBaseFile baseFileForMerge()
public void setPartitionValues(Object[] partitionValues)
public Object[] getPartitionValues()
Copyright © 2023 The Apache Software Foundation. All rights reserved.