Skip to main content

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 representation
  • solutions.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.