Restrictions for targeting Kafka

The following restrictions apply when you are replicating to Kafka targets.

Column properties
When Kafka is the CDC Replication target, column names from the source table are mapped directly to AVRO field names and so are subject to AVRO-based limitations.

Record, field, and enum names must follow these rules:

  • Start with the characters [A-Za-z_].
  • Subsequently contain only the characters [A-Za-z0-9_].

If the source column name uses invalid characters, you can use the derived column functionality to create a derived column with a valid name. Select the derived column in the filter tab as being replicated and deselect the source column as being a replicated column.

There is no capability to define the Avro data type of the columns within the Kafka record. Choosing a binary source encoding for a replicated column ensures that the bytes of the source column data are preserved and treated by the Avro encoding process as binary bytes.

No transformation capabilities are available on the target. However, transformation is possible on the source by using derived columns as well as filtering and other source-side capabilities.

You must set the "Nullable" column property for derived source columns that can produce null values.

In abnormal end situations, duplicate records might appear in the Kafka logs after restart because of the asynchronous use of Kafka writes. If subscriptions are ended normally this should not occur because CDC Replication can properly flush data.

Key columns must be defined for a table mapping. The key columns are used as the Kafka key for Kafka messages and so the columns should be unique in aggregate.

Compaction
The commit stream topic should not be compacted. Compaction is supported on all other topics.