Package org.apache.druid.segment
Class NestedCommonFormatColumnHandler
- java.lang.Object
-
- org.apache.druid.segment.NestedCommonFormatColumnHandler
-
- All Implemented Interfaces:
DimensionHandler<StructuredData,StructuredData,StructuredData>
public class NestedCommonFormatColumnHandler extends Object implements DimensionHandler<StructuredData,StructuredData,StructuredData>
-
-
Constructor Summary
Constructors Constructor Description NestedCommonFormatColumnHandler(String name)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String
getDimensionName()
Get the name of the column associated with this handler.DimensionSchema
getDimensionSchema(ColumnCapabilities capabilities)
DimensionSpec
getDimensionSpec()
Create aDimensionSpec
for this handlerComparator<ColumnValueSelector>
getEncodedValueSelectorComparator()
Returns a comparator that knows how to compareColumnValueSelector
of the assumed dimension type, corresponding to this DimensionHandler.int
getLengthOfEncodedKeyComponent(StructuredData dimVals)
Given an key component representing a single set of row value(s) for this dimension as an Object, return the length of the key component after appropriate type-casting.DimensionIndexer<StructuredData,StructuredData,StructuredData>
makeIndexer(boolean useMaxMemoryEstimates)
Creates a new DimensionIndexer, a per-dimension object responsible for processing ingested rows in-memory, used by the IncrementalIndex.DimensionMergerV9
makeMerger(IndexSpec indexSpec, SegmentWriteOutMedium segmentWriteOutMedium, ColumnCapabilities capabilities, ProgressIndicator progress, Closer closer)
Creates a new DimensionMergerV9, a per-dimension object responsible for merging indexes/row data across segments and building the on-disk representation of a dimension.SettableColumnValueSelector
makeNewSettableEncodedValueSelector()
Creates and returns a new object of some implementation ofSettableColumnValueSelector
, that corresponds to the type of this DimensionHandler.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.druid.segment.DimensionHandler
getMultivalueHandling
-
-
-
-
Constructor Detail
-
NestedCommonFormatColumnHandler
public NestedCommonFormatColumnHandler(String name)
-
-
Method Detail
-
getDimensionName
public String getDimensionName()
Description copied from interface:DimensionHandler
Get the name of the column associated with this handler. This string would be the output name of the column during ingestion, and the name of an input column when querying.- Specified by:
getDimensionName
in interfaceDimensionHandler<StructuredData,StructuredData,StructuredData>
- Returns:
- Dimension name
-
getDimensionSpec
public DimensionSpec getDimensionSpec()
Description copied from interface:DimensionHandler
Create aDimensionSpec
for this handler- Specified by:
getDimensionSpec
in interfaceDimensionHandler<StructuredData,StructuredData,StructuredData>
-
getDimensionSchema
public DimensionSchema getDimensionSchema(ColumnCapabilities capabilities)
- Specified by:
getDimensionSchema
in interfaceDimensionHandler<StructuredData,StructuredData,StructuredData>
-
makeIndexer
public DimensionIndexer<StructuredData,StructuredData,StructuredData> makeIndexer(boolean useMaxMemoryEstimates)
Description copied from interface:DimensionHandler
Creates a new DimensionIndexer, a per-dimension object responsible for processing ingested rows in-memory, used by the IncrementalIndex. SeeDimensionIndexer
interface for more information.- Specified by:
makeIndexer
in interfaceDimensionHandler<StructuredData,StructuredData,StructuredData>
- Parameters:
useMaxMemoryEstimates
- true if the created DimensionIndexer should use maximum values to estimate on-heap memory- Returns:
- A new DimensionIndexer object.
-
makeMerger
public DimensionMergerV9 makeMerger(IndexSpec indexSpec, SegmentWriteOutMedium segmentWriteOutMedium, ColumnCapabilities capabilities, ProgressIndicator progress, Closer closer)
Description copied from interface:DimensionHandler
Creates a new DimensionMergerV9, a per-dimension object responsible for merging indexes/row data across segments and building the on-disk representation of a dimension. For use with IndexMergerV9 only. SeeDimensionMergerV9
interface for more information.- Specified by:
makeMerger
in interfaceDimensionHandler<StructuredData,StructuredData,StructuredData>
- Parameters:
indexSpec
- Specification object for the index mergesegmentWriteOutMedium
- this SegmentWriteOutMedium object could be used internally in the created merger, if neededcapabilities
- The ColumnCapabilities of the dimension represented by this DimensionHandlerprogress
- ProgressIndicator used by the merging process- Returns:
- A new DimensionMergerV9 object.
-
getLengthOfEncodedKeyComponent
public int getLengthOfEncodedKeyComponent(StructuredData dimVals)
Description copied from interface:DimensionHandler
Given an key component representing a single set of row value(s) for this dimension as an Object, return the length of the key component after appropriate type-casting. For example, a dictionary encoded String dimension would receive an int[] as input to this method, while a Long numeric dimension would receive a single Long object (no multivalue support)- Specified by:
getLengthOfEncodedKeyComponent
in interfaceDimensionHandler<StructuredData,StructuredData,StructuredData>
- Parameters:
dimVals
- Values for this dimension from a row- Returns:
- Size of dimVals
-
getEncodedValueSelectorComparator
public Comparator<ColumnValueSelector> getEncodedValueSelectorComparator()
Description copied from interface:DimensionHandler
Returns a comparator that knows how to compareColumnValueSelector
of the assumed dimension type, corresponding to this DimensionHandler. E. g.StringDimensionHandler
returns a comparator, that comparesColumnValueSelector
s asDimensionSelector
s. The comparison rules used by this method should match the rules used byDimensionIndexer.compareUnsortedEncodedKeyComponents(EncodedKeyComponentType, EncodedKeyComponentType)
, otherwise incorrect ordering/merging of rows can occur during ingestion, causing issues such as imperfect rollup.- Specified by:
getEncodedValueSelectorComparator
in interfaceDimensionHandler<StructuredData,StructuredData,StructuredData>
-
makeNewSettableEncodedValueSelector
public SettableColumnValueSelector makeNewSettableEncodedValueSelector()
Description copied from interface:DimensionHandler
Creates and returns a new object of some implementation ofSettableColumnValueSelector
, that corresponds to the type of this DimensionHandler. E. g.LongDimensionHandler
returnsSettableLongColumnValueSelector
, etc.- Specified by:
makeNewSettableEncodedValueSelector
in interfaceDimensionHandler<StructuredData,StructuredData,StructuredData>
-
-