Package org.apache.cassandra.cdc.avro
Class AvroSerializer
- java.lang.Object
-
- org.apache.cassandra.cdc.avro.AvroSerializer
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable,KafkaCdcSerializer<org.apache.cassandra.cdc.msg.CdcEvent>,org.apache.kafka.common.serialization.Serializer<org.apache.cassandra.cdc.msg.CdcEvent>
public class AvroSerializer extends java.lang.Object implements KafkaCdcSerializer<org.apache.cassandra.cdc.msg.CdcEvent>
Serializes Cassandra CDC POJO classes to Avro bytes for publishing to Kafka, and deserializes the bytes to Avro records. The data types in Avro records are suitable for Spark.Optional logical type conversions can be applied via
RecordReaderto convert data to CQL-appropriate types.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classAvroSerializer.Deserializer
-
Constructor Summary
Constructors Constructor Description AvroSerializer(java.util.function.Function<org.apache.cassandra.cdc.api.KeyspaceTypeKey,org.apache.cassandra.spark.data.CqlField.CqlType> typeLookup)AvroSerializer(SchemaStore schemaStore, java.util.function.Function<org.apache.cassandra.cdc.api.KeyspaceTypeKey,org.apache.cassandra.spark.data.CqlField.CqlType> typeLookup)AvroSerializer(SchemaStore schemaStore, java.util.function.Function<org.apache.cassandra.cdc.api.KeyspaceTypeKey,org.apache.cassandra.spark.data.CqlField.CqlType> typeLookup, int truncateThreshold)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidclose()voidconfigure(java.util.Map<java.lang.String,?> configs, boolean isKey)CdcEnvelopedeserialize(java.lang.String keyspace, java.lang.String table, byte[] data)Deprecated.AvroSerializer.Deserializerdeserializer()AvroByteRecordTransformergetTransformer()byte[]serialize(java.lang.String topic, org.apache.cassandra.cdc.msg.CdcEvent event)byte[]serialize(java.lang.String topic, org.apache.kafka.common.header.Headers headers, org.apache.cassandra.cdc.msg.CdcEvent data)
-
-
-
Constructor Detail
-
AvroSerializer
public AvroSerializer(java.util.function.Function<org.apache.cassandra.cdc.api.KeyspaceTypeKey,org.apache.cassandra.spark.data.CqlField.CqlType> typeLookup)
-
AvroSerializer
public AvroSerializer(SchemaStore schemaStore, java.util.function.Function<org.apache.cassandra.cdc.api.KeyspaceTypeKey,org.apache.cassandra.spark.data.CqlField.CqlType> typeLookup)
-
AvroSerializer
public AvroSerializer(SchemaStore schemaStore, java.util.function.Function<org.apache.cassandra.cdc.api.KeyspaceTypeKey,org.apache.cassandra.spark.data.CqlField.CqlType> typeLookup, int truncateThreshold)
-
-
Method Detail
-
configure
public void configure(java.util.Map<java.lang.String,?> configs, boolean isKey)- Specified by:
configurein interfaceorg.apache.kafka.common.serialization.Serializer<org.apache.cassandra.cdc.msg.CdcEvent>
-
serialize
public byte[] serialize(java.lang.String topic, org.apache.cassandra.cdc.msg.CdcEvent event)- Specified by:
serializein interfaceorg.apache.kafka.common.serialization.Serializer<org.apache.cassandra.cdc.msg.CdcEvent>
-
serialize
public byte[] serialize(java.lang.String topic, org.apache.kafka.common.header.Headers headers, org.apache.cassandra.cdc.msg.CdcEvent data)- Specified by:
serializein interfaceorg.apache.kafka.common.serialization.Serializer<org.apache.cassandra.cdc.msg.CdcEvent>
-
close
public void close()
- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Specified by:
closein interfaceorg.apache.kafka.common.serialization.Serializer<org.apache.cassandra.cdc.msg.CdcEvent>
-
deserializer
public AvroSerializer.Deserializer deserializer()
-
getTransformer
public AvroByteRecordTransformer getTransformer()
- Specified by:
getTransformerin interfaceKafkaCdcSerializer<org.apache.cassandra.cdc.msg.CdcEvent>
-
deserialize
@Deprecated public CdcEnvelope deserialize(java.lang.String keyspace, java.lang.String table, byte[] data)
Deprecated.Deserialize the data and return a pair of cdc update and cdc record The left of the pair is the cdc update of a table. The right of the pair is the header/metadata.- Parameters:
keyspace- Cassandra keyspacetable- Cassandra tabledata- raw serialized Avro message- Returns:
- deserialized CdcEnvelope wrapping the payload and header.
-
-