public class HoodiePositionBasedFileGroupRecordBuffer<T> extends HoodieKeyBasedFileGroupRecordBuffer<T>
HoodieMergedLogRecordReader
by calling the processDataBlock(org.apache.hudi.common.table.log.block.HoodieDataBlock, org.apache.hudi.common.util.Option<org.apache.hudi.common.table.log.KeySpec>) and processDeleteBlock(org.apache.hudi.common.table.log.block.HoodieDeleteBlock) methods into record position based map.
Here the position means that record position in the base file. The records from the base file is accessed from an iterator object. These records are merged when the
HoodieBaseFileGroupRecordBuffer.hasNext() method is called.HoodieFileGroupRecordBuffer.BufferType| Modifier and Type | Field and Description |
|---|---|
static String |
ROW_INDEX_TEMPORARY_COLUMN_NAME |
baseFileIterator, enablePartialMerging, hoodieTableMetaClient, internalSchema, logRecordIterator, nextRecord, partitionNameOverrideOpt, partitionPathFieldOpt, props, readerContext, readerSchema, recordMergeMode, recordMerger, records| Constructor and Description |
|---|
HoodiePositionBasedFileGroupRecordBuffer(HoodieReaderContext<T> readerContext,
HoodieTableMetaClient hoodieTableMetaClient,
Option<String> partitionNameOverrideOpt,
Option<String[]> partitionPathFieldOpt,
HoodieRecordMerger recordMerger,
TypedProperties props) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
containsLogRecord(String recordKey)
Check if a record exists in the buffered records.
|
protected static List<Long> |
extractRecordPositions(HoodieLogBlock logBlock)
Extract the record positions from a log block header.
|
HoodieFileGroupRecordBuffer.BufferType |
getBufferType() |
protected boolean |
hasNextBaseRecord(T baseRecord) |
void |
processDataBlock(HoodieDataBlock dataBlock,
Option<KeySpec> keySpecOpt)
Process a log data block, and store the resulting records into the buffer.
|
void |
processDeleteBlock(HoodieDeleteBlock deleteBlock)
Process a log delete block, and store the resulting records into the buffer.
|
void |
processNextDeletedRecord(DeleteRecord deleteRecord,
Serializable recordPosition)
Process next delete record.
|
protected boolean |
shouldSkip(T record,
String keyFieldName,
boolean isFullKey,
Set<String> keys,
org.apache.avro.Schema writerSchema)
Filter a record for downstream processing when:
1.
|
doHasNext, processNextDataRecordclose, composeEvolvedSchemaTransformer, doProcessNextDataRecord, doProcessNextDeletedRecord, getLogRecordIterator, getLogRecords, getRecordsIterator, getSchemaTransformerWithEvolvedSchema, hasNext, hasNextBaseRecord, hasNextLogRecord, merge, next, setBaseFileIterator, sizepublic static final String ROW_INDEX_TEMPORARY_COLUMN_NAME
public HoodiePositionBasedFileGroupRecordBuffer(HoodieReaderContext<T> readerContext, HoodieTableMetaClient hoodieTableMetaClient, Option<String> partitionNameOverrideOpt, Option<String[]> partitionPathFieldOpt, HoodieRecordMerger recordMerger, TypedProperties props)
public HoodieFileGroupRecordBuffer.BufferType getBufferType()
getBufferType in interface HoodieFileGroupRecordBuffer<T>getBufferType in class HoodieKeyBasedFileGroupRecordBuffer<T>public void processDataBlock(HoodieDataBlock dataBlock, Option<KeySpec> keySpecOpt) throws IOException
HoodieFileGroupRecordBufferprocessDataBlock in interface HoodieFileGroupRecordBuffer<T>processDataBlock in class HoodieKeyBasedFileGroupRecordBuffer<T>IOExceptionpublic void processDeleteBlock(HoodieDeleteBlock deleteBlock) throws IOException
HoodieFileGroupRecordBufferprocessDeleteBlock in interface HoodieFileGroupRecordBuffer<T>processDeleteBlock in class HoodieKeyBasedFileGroupRecordBuffer<T>IOExceptionpublic void processNextDeletedRecord(DeleteRecord deleteRecord, Serializable recordPosition)
HoodieFileGroupRecordBufferprocessNextDeletedRecord in interface HoodieFileGroupRecordBuffer<T>processNextDeletedRecord in class HoodieKeyBasedFileGroupRecordBuffer<T>public boolean containsLogRecord(String recordKey)
HoodieFileGroupRecordBuffercontainsLogRecord in interface HoodieFileGroupRecordBuffer<T>containsLogRecord in class HoodieKeyBasedFileGroupRecordBuffer<T>protected boolean hasNextBaseRecord(T baseRecord) throws IOException
hasNextBaseRecord in class HoodieKeyBasedFileGroupRecordBuffer<T>IOExceptionprotected boolean shouldSkip(T record, String keyFieldName, boolean isFullKey, Set<String> keys, org.apache.avro.Schema writerSchema)
protected static List<Long> extractRecordPositions(HoodieLogBlock logBlock) throws IOException
logBlock - IOExceptionCopyright © 2024 The Apache Software Foundation. All rights reserved.