Package org.apache.cassandra.cdc.avro
Class CdcEventAvroEncoder
- java.lang.Object
-
- org.apache.cassandra.cdc.avro.CdcEventAvroEncoder
-
- All Implemented Interfaces:
CdcEventTransformer<org.apache.avro.generic.GenericData.Record>
- Direct Known Subclasses:
AvroBaseRecordTransformer,AvroJsonTransformer
public abstract class CdcEventAvroEncoder extends java.lang.Object implements CdcEventTransformer<org.apache.avro.generic.GenericData.Record>
Base abstraction to convert CdcEvent objects into another data format, e.g. Avro, Json etc
-
-
Field Summary
Fields Modifier and Type Field Description org.apache.avro.SchemacdcSchemaprotected org.apache.avro.io.BinaryEncoderencoderorg.apache.avro.SchemarangeSchemaprotected SchemaStorestoreorg.apache.avro.SchemattlSchemaprotected java.util.function.Function<org.apache.cassandra.cdc.api.KeyspaceTypeKey,org.apache.cassandra.spark.data.CqlField.CqlType>typeLookup
-
Constructor Summary
Constructors Constructor Description CdcEventAvroEncoder(SchemaStore store, java.util.function.Function<org.apache.cassandra.cdc.api.KeyspaceTypeKey,org.apache.cassandra.spark.data.CqlField.CqlType> typeLookup, java.lang.String templatePath)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected voidapplyCommonFields(org.apache.cassandra.cdc.msg.CdcEvent event, org.apache.avro.generic.GenericData.Record record, java.util.function.Function<org.apache.cassandra.cdc.msg.Value,java.lang.Object> avroFieldEncoder)byte[]encode(org.apache.avro.generic.GenericDatumWriter<org.apache.avro.generic.GenericRecord> writer, org.apache.avro.generic.GenericData.Record record)Encode the transformed CdcEvent to a byte array.abstract org.apache.avro.generic.GenericData.Recordtransform(org.apache.cassandra.cdc.msg.CdcEvent event)Transform CdcEvent into Avro record.
-
-
-
Field Detail
-
cdcSchema
public final org.apache.avro.Schema cdcSchema
-
ttlSchema
public final org.apache.avro.Schema ttlSchema
-
rangeSchema
public final org.apache.avro.Schema rangeSchema
-
encoder
protected final org.apache.avro.io.BinaryEncoder encoder
-
typeLookup
protected final java.util.function.Function<org.apache.cassandra.cdc.api.KeyspaceTypeKey,org.apache.cassandra.spark.data.CqlField.CqlType> typeLookup
-
store
protected final SchemaStore store
-
-
Constructor Detail
-
CdcEventAvroEncoder
public CdcEventAvroEncoder(SchemaStore store, java.util.function.Function<org.apache.cassandra.cdc.api.KeyspaceTypeKey,org.apache.cassandra.spark.data.CqlField.CqlType> typeLookup, java.lang.String templatePath)
-
-
Method Detail
-
transform
public abstract org.apache.avro.generic.GenericData.Record transform(org.apache.cassandra.cdc.msg.CdcEvent event)
Transform CdcEvent into Avro record.- Specified by:
transformin interfaceCdcEventTransformer<org.apache.avro.generic.GenericData.Record>- Parameters:
event- the CdcEvent- Returns:
- transformed cdc event as an Avro GenericData.Record
-
applyCommonFields
protected void applyCommonFields(org.apache.cassandra.cdc.msg.CdcEvent event, org.apache.avro.generic.GenericData.Record record, java.util.function.Function<org.apache.cassandra.cdc.msg.Value,java.lang.Object> avroFieldEncoder)
-
encode
public byte[] encode(org.apache.avro.generic.GenericDatumWriter<org.apache.avro.generic.GenericRecord> writer, org.apache.avro.generic.GenericData.Record record)Encode the transformed CdcEvent to a byte array.- Parameters:
writer- the Avro record writerrecord- the CdcEvent transformed as a GenericData.Record- Returns:
- Avro message serialized to bytes
-
-