Skip to main content

Type Mappings

For each CDC DataType (subclasses of org.apache.flink.cdc.common.types.DataType), we define CDC Internal types for internal serialization & deserialization and Java classes (for type merging, casting, and UDF evaluations).

Internal and External Types​

Primitive types may have the same representation for Internal type and Java classes (DataTypes.INT() only uses java.lang.Integer). Other types use different representations, like DataTypes.TIMESTAMP uses org.apache.flink.cdc.common.data.TimestampData for internal representation and java.time.LocalDateTime for external operations.

If you're writing a pipeline source / sink connector, DataChangeEvent carries internal type RecordData, and all its fields are internal type instances.

If you're writing a UDF, its arguments and return value types should be defined as its external Java type.

Full Types List​

CDC Data TypeCDC Internal TypeExternal Java Class
BOOLEANjava.lang.Booleanjava.lang.Boolean
TINYINTjava.lang.Bytejava.lang.Byte
SMALLINTjava.lang.Shortjava.lang.Short
INTEGERjava.lang.Integerjava.lang.Integer
BIGINTjava.lang.Longjava.lang.Long
FLOATjava.lang.Floatjava.lang.Float
DOUBLEjava.lang.Doublejava.lang.Double
DECIMALorg.apache.flink.cdc.common.data.DecimalDatajava.math.BigDecimal
DATEorg.apache.flink.cdc.common.data.DateDatajava.time.LocalDate
TIMEorg.apache.flink.cdc.common.data.TimeDatajava.time.LocalTime
TIMESTAMPorg.apache.flink.cdc.common.data.TimestampDatajava.time.LocalDateTime
TIMESTAMP_TZorg.apache.flink.cdc.common.data.ZonedTimestampDatajava.time.ZonedDateTime
TIMESTAMP_LTZorg.apache.flink.cdc.common.data.LocalZonedTimestampDatajava.time.Instant
CHAR
VARCHAR
STRING
org.apache.flink.cdc.common.data.StringDatajava.lang.String
BINARY
VARBINARY
BYTES
byte[]byte[]
ARRAYorg.apache.flink.cdc.common.data.ArrayDatajava.util.List<T>
MAPorg.apache.flink.cdc.common.data.MapDatajava.util.Map<K, V>
ROWorg.apache.flink.cdc.common.data.RecordDatajava.util.List<Object>
VARIANTorg.apache.flink.cdc.common.types.variant.Variantorg.apache.flink.cdc.common.types.variant.Variant