Package org.apache.cassandra.cdc.kafka
Class AvroGenericRecordSerializer
- java.lang.Object
-
- org.apache.cassandra.cdc.kafka.AvroGenericRecordSerializer
-
- 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 AvroGenericRecordSerializer extends java.lang.Object implements KafkaCdcSerializer<org.apache.cassandra.cdc.msg.CdcEvent>
Serializes Cassandra CDC POJO classes to Avro bytes for publishing to Kafka. Optional logical type conversions can be applied viaRecordReaderto convert data to CQL-appropriate types.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classAvroGenericRecordSerializer.Deserializer
-
Constructor Summary
Constructors Constructor Description AvroGenericRecordSerializer(java.util.function.Function<org.apache.cassandra.cdc.api.KeyspaceTypeKey,org.apache.cassandra.spark.data.CqlField.CqlType> typeLookup, java.lang.String schemaNamespacePrefix)AvroGenericRecordSerializer(SchemaStore schemaStore, java.util.function.Function<org.apache.cassandra.cdc.api.KeyspaceTypeKey,org.apache.cassandra.spark.data.CqlField.CqlType> typeLookup, int truncateThreshold, java.lang.String schemaNamespacePrefix)AvroGenericRecordSerializer(SchemaStore schemaStore, java.util.function.Function<org.apache.cassandra.cdc.api.KeyspaceTypeKey,org.apache.cassandra.spark.data.CqlField.CqlType> typeLookup, java.lang.String schemaNamespacePrefix)
-
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, org.apache.avro.Schema schema)Deprecated.AvroGenericRecordSerializer.Deserializerdeserializer()AvroGenericRecordTransformergetTransformer()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
-
AvroGenericRecordSerializer
public AvroGenericRecordSerializer(java.util.function.Function<org.apache.cassandra.cdc.api.KeyspaceTypeKey,org.apache.cassandra.spark.data.CqlField.CqlType> typeLookup, java.lang.String schemaNamespacePrefix)
-
AvroGenericRecordSerializer
public AvroGenericRecordSerializer(SchemaStore schemaStore, java.util.function.Function<org.apache.cassandra.cdc.api.KeyspaceTypeKey,org.apache.cassandra.spark.data.CqlField.CqlType> typeLookup, java.lang.String schemaNamespacePrefix)
-
AvroGenericRecordSerializer
public AvroGenericRecordSerializer(SchemaStore schemaStore, java.util.function.Function<org.apache.cassandra.cdc.api.KeyspaceTypeKey,org.apache.cassandra.spark.data.CqlField.CqlType> typeLookup, int truncateThreshold, java.lang.String schemaNamespacePrefix)
-
-
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>
-
getTransformer
public AvroGenericRecordTransformer getTransformer()
- Specified by:
getTransformerin interfaceKafkaCdcSerializer<org.apache.cassandra.cdc.msg.CdcEvent>
-
deserializer
public AvroGenericRecordSerializer.Deserializer deserializer()
-
deserialize
@Deprecated public CdcEnvelope deserialize(java.lang.String keyspace, java.lang.String table, byte[] data, org.apache.avro.Schema schema)
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- serialized Avro messageschema- Avro schema- Returns:
- returned deserialized CdcEnvelope wrapping the payload and header
-
-