Kafka Connect Cast SMT Usage Reference for Confluent Platform
The Cast SMT (org.apache.kafka.connect.transforms.Cast) converts
fields, keys, or values of a Apache Kafka® record to a specified
primitive type.
Description
The Cast SMT converts record components (such as individual fields, entire keys, or values) into a specified data type, automatically updating the schema if one is present. For example, you can use it to downcast a data type, such as forcing a large integer into a smaller bit-width.
Cast supports primitive types such as integer, float, boolean, and string.
Binary data is also supported, but it can only be cast to a base64-encoded string.
Use the specific transformation type designed for the record key
(org.apache.kafka.connect.transforms.Cast$Key) or value
(org.apache.kafka.connect.transforms.Cast$Value).
Properties
Name |
Description |
Type |
Valid values |
Importance |
|---|---|---|---|---|
|
To cast the entire value, specify a single type (for example,
Valid types are:
|
list |
comma-separated list of colon-delimited pairs of |
high |
|
Specifies whether to replace null fields with their defined default
values. When set to |
boolean |
|
medium |
Examples
Cast can transform an entire primitive key or value, or one or more fields
of a complex (Struct or Map) key or value. The following two examples show how to use Cast in these two scenarios.
Cast a value
This example shows how to use Cast to transform a 64-bit floating point
value into a string.
"transforms": "Cast",
"transforms.Cast.type": "org.apache.kafka.connect.transforms.Cast$Value",
"transforms.Cast.spec": "string"
Before: 63521704.02
After: "63521704.02"
Cast fields in a complex key or value
This example shows how to use Cast with a complex key or value. It shows a
comma-separated field:type pair, where field is the name of the field to
cast and type is the type to cast the field into.
"transforms": "Cast",
"transforms.Cast.type": "org.apache.kafka.connect.transforms.Cast$Value",
"transforms.Cast.spec": "ID:string,score:float64"
The following before-and-after example shows a Map or Struct with an ID
field of 46290 and a score field of 4761. The SMT casts the ID
field into a string and the score field into a 64-bit floating point value.
Before:
{"ID": 46290,"score": 4761}
After:
{"ID": "46290","score": 4761.0}
Predicates
Configure transformations with predicates to ensure they process only records that satisfy a particular condition. You can also use predicates in a transformation chain with the Kafka Connect Filter (Kafka) SMT Usage Reference for Confluent Platform to conditionally filter specific records. For more information, see Predicates.