Class ConvertCloudEventToSaveableForm

java.lang.Object
io.debezium.connector.jdbc.transforms.ConvertCloudEventToSaveableForm
All Implemented Interfaces:
Closeable, AutoCloseable, org.apache.kafka.common.Configurable, org.apache.kafka.connect.transforms.Transformation<org.apache.kafka.connect.sink.SinkRecord>

public class ConvertCloudEventToSaveableForm extends Object implements org.apache.kafka.connect.transforms.Transformation<org.apache.kafka.connect.sink.SinkRecord>
The transform converts a CloudEvent to a structure suitable for `JdbcSinkConnector`
Author:
Roman Kudryashov
  • Field Details

    • LOGGER

      private static final org.slf4j.Logger LOGGER
    • FIELD_NAME_SEPARATOR

      private static final String FIELD_NAME_SEPARATOR
      See Also:
    • FIELDS_MAPPING

      private static final io.debezium.config.Field FIELDS_MAPPING
    • SERIALIZER_TYPE

      private static final io.debezium.config.Field SERIALIZER_TYPE
    • CLOUDEVENTS_SCHEMA_NAME

      private static final io.debezium.config.Field CLOUDEVENTS_SCHEMA_NAME
    • fieldsMapping

      private Map<String,String> fieldsMapping
    • serializerType

      private io.debezium.converters.spi.SerializerType serializerType
    • cloudEventsSchemaName

      private String cloudEventsSchemaName
    • jsonDataConverter

      private final org.apache.kafka.connect.json.JsonConverter jsonDataConverter
    • cloudEventsFieldToColumnSchema

      private final Map<String,org.apache.kafka.connect.data.Schema> cloudEventsFieldToColumnSchema
    • cloudEventsValidator

      private final io.debezium.converters.spi.CloudEventsValidator cloudEventsValidator
  • Constructor Details

    • ConvertCloudEventToSaveableForm

      public ConvertCloudEventToSaveableForm()
  • Method Details

    • config

      public org.apache.kafka.common.config.ConfigDef config()
      Specified by:
      config in interface org.apache.kafka.connect.transforms.Transformation<org.apache.kafka.connect.sink.SinkRecord>
    • configure

      public void configure(Map<String,?> configs)
      Specified by:
      configure in interface org.apache.kafka.common.Configurable
    • parseFieldsMapping

      private Map<String,String> parseFieldsMapping(List<String> rawFieldsMapping)
    • apply

      public org.apache.kafka.connect.sink.SinkRecord apply(org.apache.kafka.connect.sink.SinkRecord record)
      Specified by:
      apply in interface org.apache.kafka.connect.transforms.Transformation<org.apache.kafka.connect.sink.SinkRecord>
    • getCloudEventFieldsMap

      private Map<String,Object> getCloudEventFieldsMap(org.apache.kafka.connect.sink.SinkRecord record)
    • getSchema

      private org.apache.kafka.connect.data.Schema getSchema(org.apache.kafka.connect.sink.SinkRecord record, boolean cloudEventContainsDataAsStruct)
    • determineCloudEventFieldSchema

      private org.apache.kafka.connect.data.Schema determineCloudEventFieldSchema(Object cloudEventFieldValue)
    • getValue

      private org.apache.kafka.connect.data.Struct getValue(org.apache.kafka.connect.sink.SinkRecord record, org.apache.kafka.connect.data.Schema schema, boolean cloudEventContainsDataAsStruct)
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Specified by:
      close in interface org.apache.kafka.connect.transforms.Transformation<org.apache.kafka.connect.sink.SinkRecord>