Transformations
oracdc provides several Single Message Transformations (SMTs) for converting between Oracle-native data types and standard Kafka Connect types.
OraNumberConverter
Class: solutions.a2.kafka.transforms.OraNumberConverter
Converts native Oracle NUMBER bytes (solutions.a2.cdc.oracle.data.OraNumber / oracle.sql.NUMBER) to standard Kafka Connect numeric types.
Use this transformation when consuming oracdc data with a2.oracdc.schemas=true and you need standard numeric types for downstream consumers.
Configuration
transforms=numberConvert
transforms.numberConvert.type=solutions.a2.kafka.transforms.OraNumberConverter
OraIntervalConverter
Class: solutions.a2.kafka.transforms.OraIntervalConverter
Converts native Oracle INTERVAL bytes to standard Kafka Connect types:
solutions.a2.cdc.oracle.data.OraIntervalYM(INTERVAL YEAR TO MONTH) — converted to string representationsolutions.a2.cdc.oracle.data.OraIntervalDS(INTERVAL DAY TO SECOND) — converted to string representation
Configuration
transforms=intervalConvert
transforms.intervalConvert.type=solutions.a2.kafka.transforms.OraIntervalConverter
HeaderToFieldConverter
Class: solutions.a2.kafka.transforms.HeaderToFieldConverter
Converts Kafka record headers to fields within the record value. Useful when header information (such as source metadata added by oracdc) needs to be included in the record for downstream processing or sinking to databases that don't support Kafka headers.
Configuration
transforms=headersToFields
transforms.headersToFields.type=solutions.a2.kafka.transforms.HeaderToFieldConverter
KeyToValueConverter
Class: solutions.a2.kafka.transforms.KeyToValueConverter
Converts fields from the record key schema into the value schema. Useful when key fields need to be duplicated in the value for systems that don't process key schemas separately (e.g., JDBC sink connectors that only read the value).
Configuration
transforms=keyToValue
transforms.keyToValue.type=solutions.a2.kafka.transforms.KeyToValueConverter
ToLowerCaseNameConverter
Class: solutions.a2.kafka.transforms.ToLowerCaseNameConverter
Converts schema names and field names to lowercase. Useful when the target system requires lowercase identifiers (e.g., PostgreSQL, which folds unquoted identifiers to lowercase).
Configuration
transforms=lowercase
transforms.lowercase.type=solutions.a2.kafka.transforms.ToLowerCaseNameConverter
Chaining Transformations
Multiple transformations can be chained together:
transforms=numberConvert,intervalConvert,lowercase
transforms.numberConvert.type=solutions.a2.kafka.transforms.OraNumberConverter
transforms.intervalConvert.type=solutions.a2.kafka.transforms.OraIntervalConverter
transforms.lowercase.type=solutions.a2.kafka.transforms.ToLowerCaseNameConverter
Transformations are applied in the order listed.