public class NestedDataColumnSerializer extends NestedCommonFormatColumnSerializer
NestedCommonFormatColumn which can store nested data. The serializer stores several components
including:
- a field list and associated type info
- value dictionaries for string, long, double, and array values (where the arrays are stored as int[] that point to
the string, long, and double values)
- raw data is stored with a CompressedVariableSizedBlobColumnSerializer as blobs of SMILE encoded data
- a null value bitmap to track which 'raw' rows are null
For each nested field, a GlobalDictionaryEncodedFieldColumnWriter will write a sub-column to specialize
fast reading and filtering of that path.ARRAY_DICTIONARY_FILE_NAME, ARRAY_ELEMENT_BITMAP_INDEX_FILE_NAME, ARRAY_ELEMENT_DICTIONARY_FILE_NAME, BITMAP_INDEX_FILE_NAME, DOUBLE_DICTIONARY_FILE_NAME, DOUBLE_VALUE_COLUMN_FILE_NAME, ENCODED_VALUE_COLUMN_FILE_NAME, LONG_DICTIONARY_FILE_NAME, LONG_VALUE_COLUMN_FILE_NAME, NESTED_FIELD_PREFIX, NULL_BITMAP_FILE_NAME, RAW_FILE_NAME, STRING_DICTIONARY_FILE_NAME, V0| Constructor and Description |
|---|
NestedDataColumnSerializer(String name,
IndexSpec indexSpec,
SegmentWriteOutMedium segmentWriteOutMedium,
Closer closer) |
| Modifier and Type | Method and Description |
|---|---|
String |
getColumnName() |
DictionaryIdLookup |
getGlobalLookup() |
long |
getSerializedSize()
Returns the number of bytes, that this Serializer will write to the output _channel_ (not smoosher) on a
Serializer.writeTo(java.nio.channels.WritableByteChannel, org.apache.druid.java.util.common.io.smoosh.FileSmoosher) call. |
boolean |
hasNulls() |
void |
open() |
void |
openDictionaryWriter() |
void |
serialize(ColumnValueSelector<? extends StructuredData> selector) |
void |
serializeDictionaries(Iterable<String> strings,
Iterable<Long> longs,
Iterable<Double> doubles,
Iterable<int[]> arrays) |
void |
serializeFields(SortedMap<String,FieldTypeInfo.MutableTypeSet> fields) |
void |
writeTo(WritableByteChannel channel,
FileSmoosher smoosher)
Writes serialized form of this object to the given channel.
|
computeFilenameBytes, getInternalFileName, writeInternal, writeV0Headerpublic NestedDataColumnSerializer(String name, IndexSpec indexSpec, SegmentWriteOutMedium segmentWriteOutMedium, Closer closer)
public String getColumnName()
getColumnName in class NestedCommonFormatColumnSerializerpublic DictionaryIdLookup getGlobalLookup()
getGlobalLookup in class NestedCommonFormatColumnSerializerpublic boolean hasNulls()
hasNulls in class NestedCommonFormatColumnSerializerpublic void openDictionaryWriter()
throws IOException
openDictionaryWriter in class NestedCommonFormatColumnSerializerIOExceptionpublic void open()
throws IOException
IOExceptionpublic void serializeFields(SortedMap<String,FieldTypeInfo.MutableTypeSet> fields) throws IOException
serializeFields in class NestedCommonFormatColumnSerializerIOExceptionpublic void serializeDictionaries(Iterable<String> strings, Iterable<Long> longs, Iterable<Double> doubles, Iterable<int[]> arrays) throws IOException
serializeDictionaries in class NestedCommonFormatColumnSerializerIOExceptionpublic void serialize(ColumnValueSelector<? extends StructuredData> selector) throws IOException
IOExceptionpublic long getSerializedSize()
throws IOException
SerializerSerializer.writeTo(java.nio.channels.WritableByteChannel, org.apache.druid.java.util.common.io.smoosh.FileSmoosher) call.IOExceptionpublic void writeTo(WritableByteChannel channel, FileSmoosher smoosher) throws IOException
SerializerIOExceptionCopyright © 2011–2023 The Apache Software Foundation. All rights reserved.