public class LongDimensionMergerV9 extends Object implements DimensionMergerV9<Long>
Modifier and Type | Field and Description |
---|---|
protected ColumnCapabilities |
capabilities |
protected String |
dimensionName |
protected IndexSpec |
indexSpec |
protected IOPeon |
ioPeon |
protected File |
outDir |
protected ProgressIndicator |
progress |
protected LongColumnSerializer |
serializer |
Constructor and Description |
---|
LongDimensionMergerV9(String dimensionName,
IndexSpec indexSpec,
File outDir,
IOPeon ioPeon,
ColumnCapabilities capabilities,
ProgressIndicator progress) |
Modifier and Type | Method and Description |
---|---|
boolean |
canSkip()
Return true if this dimension's data does not need to be written to the segment.
|
Long |
convertSegmentRowValuesToMergedRowValues(Long segmentRow,
int segmentIndexNumber)
Convert a row's key component with per-segment encoding to its equivalent representation
in the merged set of rows.
|
ColumnDescriptor |
makeColumnDescriptor()
Return a ColumnDescriptor containing ColumnPartSerde objects appropriate for
this DimensionMerger's value metadata, sequence of row values, and index structures.
|
void |
processMergedRow(Long rowValues)
Process a key component from the merged sequence of rows and update the DimensionMerger's internal state.
|
protected void |
setupEncodedValueWriter() |
void |
writeIndexes(List<IntBuffer> segmentRowNumConversions,
com.google.common.io.Closer closer)
Internally construct any index structures relevant to this DimensionMerger.
|
void |
writeMergedValueMetadata(List<IndexableAdapter> adapters)
Given a list of segment adapters:
- Read any value metadata (e.g., dictionary encoding information) from the adapters
- Merge this value metadata and update the internal state of the implementing class.
|
protected String dimensionName
protected ProgressIndicator progress
protected final IndexSpec indexSpec
protected ColumnCapabilities capabilities
protected final File outDir
protected IOPeon ioPeon
protected LongColumnSerializer serializer
public LongDimensionMergerV9(String dimensionName, IndexSpec indexSpec, File outDir, IOPeon ioPeon, ColumnCapabilities capabilities, ProgressIndicator progress)
protected void setupEncodedValueWriter() throws IOException
IOException
public void writeMergedValueMetadata(List<IndexableAdapter> adapters) throws IOException
DimensionMerger
writeMergedValueMetadata
in interface DimensionMerger<Long>
adapters
- List of adapters to be merged.IOException
public Long convertSegmentRowValuesToMergedRowValues(Long segmentRow, int segmentIndexNumber)
DimensionMerger
convertSegmentRowValuesToMergedRowValues
in interface DimensionMerger<Long>
segmentRow
- A row's key component for this dimension. The encoding of the key component's
values will be converted from per-segment encodings to the combined encodings from
the merged sequence of rows.segmentIndexNumber
- Integer indicating which segment the row originated from.public void processMergedRow(Long rowValues) throws IOException
DimensionMerger
processMergedRow
in interface DimensionMerger<Long>
rowValues
- The row values to be added.IOException
public void writeIndexes(List<IntBuffer> segmentRowNumConversions, com.google.common.io.Closer closer) throws IOException
DimensionMerger
writeIndexes
in interface DimensionMerger<Long>
segmentRowNumConversions
- A list of row number conversion IntBuffer objects.closer
- Add Closeables for resource cleanup to this Closer if neededIOException
public boolean canSkip()
DimensionMerger
canSkip
in interface DimensionMerger<Long>
public ColumnDescriptor makeColumnDescriptor() throws IOException
DimensionMergerV9
makeColumnDescriptor
in interface DimensionMergerV9<Long>
IOException
Copyright © 2011–2017. All rights reserved.