public class StringDimensionMergerV9 extends Object implements DimensionMergerV9<int[]>
Modifier and Type | Class and Description |
---|---|
static class |
StringDimensionMergerV9.ConvertingIndexedInts |
protected static interface |
StringDimensionMergerV9.IndexSeeker |
protected class |
StringDimensionMergerV9.IndexSeekerWithConversion
Get old dictId from new dictId, and only support access in order
|
protected class |
StringDimensionMergerV9.IndexSeekerWithoutConversion |
Modifier and Type | Field and Description |
---|---|
protected List<IndexableAdapter> |
adapters |
protected GenericIndexedWriter<ImmutableBitmap> |
bitmapWriter |
protected ColumnCapabilities |
capabilities |
protected int |
cardinality |
protected boolean |
convertMissingValues |
protected GenericIndexedWriter<String> |
dictionaryWriter |
protected ArrayList<IntBuffer> |
dimConversions |
protected String |
dimensionName |
protected static int[] |
EMPTY_STR_DIM_ARRAY |
protected static ListIndexed |
EMPTY_STR_DIM_VAL |
protected boolean |
hasNull |
protected IndexSpec |
indexSpec |
protected IOPeon |
ioPeon |
protected MutableBitmap |
nullRowsBitmap |
protected File |
outDir |
protected ProgressIndicator |
progress |
protected int |
rowCount |
protected ByteBufferWriter<ImmutableRTree> |
spatialWriter |
protected static com.google.common.base.Splitter |
SPLITTER |
Constructor and Description |
---|
StringDimensionMergerV9(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.
|
int[] |
convertSegmentRowValuesToMergedRowValues(int[] segmentRow,
int segmentIndexNumber)
Convert a row's key component with per-segment encoding to its equivalent representation
in the merged set of rows.
|
protected boolean |
isNullColumn(Iterable<String> dimValues) |
ColumnDescriptor |
makeColumnDescriptor()
Return a ColumnDescriptor containing ColumnPartSerde objects appropriate for
this DimensionMerger's value metadata, sequence of row values, and index structures.
|
void |
processMergedRow(int[] rowValues)
Process a key component from the merged sequence of rows and update the DimensionMerger's internal state.
|
protected void |
processMergedRowHelper(int[] vals) |
protected void |
setupEncodedValueWriter() |
protected StringDimensionMergerV9.IndexSeeker[] |
toIndexSeekers(List<IndexableAdapter> adapters,
ArrayList<IntBuffer> dimConversions,
String dimension) |
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 static final ListIndexed EMPTY_STR_DIM_VAL
protected static final int[] EMPTY_STR_DIM_ARRAY
protected static final com.google.common.base.Splitter SPLITTER
protected String dimensionName
protected GenericIndexedWriter<String> dictionaryWriter
protected GenericIndexedWriter<ImmutableBitmap> bitmapWriter
protected ByteBufferWriter<ImmutableRTree> spatialWriter
protected int cardinality
protected boolean convertMissingValues
protected boolean hasNull
protected MutableBitmap nullRowsBitmap
protected IOPeon ioPeon
protected int rowCount
protected ColumnCapabilities capabilities
protected final File outDir
protected List<IndexableAdapter> adapters
protected ProgressIndicator progress
protected final IndexSpec indexSpec
public StringDimensionMergerV9(String dimensionName, IndexSpec indexSpec, File outDir, IOPeon ioPeon, ColumnCapabilities capabilities, ProgressIndicator progress)
public void writeMergedValueMetadata(List<IndexableAdapter> adapters) throws IOException
DimensionMerger
writeMergedValueMetadata
in interface DimensionMerger<int[]>
adapters
- List of adapters to be merged.IOException
protected void setupEncodedValueWriter() throws IOException
IOException
public int[] convertSegmentRowValuesToMergedRowValues(int[] segmentRow, int segmentIndexNumber)
DimensionMerger
convertSegmentRowValuesToMergedRowValues
in interface DimensionMerger<int[]>
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(int[] rowValues) throws IOException
DimensionMerger
processMergedRow
in interface DimensionMerger<int[]>
rowValues
- The row values to be added.IOException
protected void processMergedRowHelper(int[] vals) throws IOException
IOException
public void writeIndexes(List<IntBuffer> segmentRowNumConversions, com.google.common.io.Closer closer) throws IOException
DimensionMerger
writeIndexes
in interface DimensionMerger<int[]>
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<int[]>
public ColumnDescriptor makeColumnDescriptor()
DimensionMergerV9
makeColumnDescriptor
in interface DimensionMergerV9<int[]>
protected StringDimensionMergerV9.IndexSeeker[] toIndexSeekers(List<IndexableAdapter> adapters, ArrayList<IntBuffer> dimConversions, String dimension)
Copyright © 2011–2017. All rights reserved.