Flink CDC 常用数据库字段类型映射

Flink CDC 3.2 数据源数据类型映射

Oracle

Oracle typeFlink SQL type
NUMBER(p, s <= 0), p - s < 3TINYINT
NUMBER(p, s <= 0), p - s < 5SMALLINT
NUMBER(p, s <= 0), p - s < 10INT
NUMBER(p, s <= 0), p - s < 19BIGINT
NUMBER(p, s <= 0), 19 <= p - s <= 38DECIMAL(p - s, 0)
NUMBER(p, s > 0)DECIMAL(p, s)
NUMBER(p, s <= 0), p - s > 38STRING
FLOATFLOAT
BINARY_FLOAT
DOUBLE PRECISIONDOUBLE
BINARY_DOUBLE
NUMBER(1)BOOLEAN
DATETIMESTAMP [(p)] [WITHOUT TIMEZONE]
TIMESTAMP [(p)]
TIMESTAMP [(p)] WITH TIME ZONETIMESTAMP [(p)] WITH TIME ZONE
TIMESTAMP [(p)] WITH LOCAL TIME ZONETIMESTAMP_LTZ [(p)]
CHAR(n)STRING
NCHAR(n)
NVARCHAR2(n)
VARCHAR(n)
VARCHAR2(n)
CLOB
NCLOB
XMLType
SYS.XMLTYPE
BLOBBYTES
ROWID
INTERVAL DAY TO SECONDBIGINT
INTERVAL YEAR TO MONTH

Mysql

MySQL typeFlink SQL typeNOTE
TINYINTTINYINT
SMALLINTSMALLINT
TINYINT UNSIGNED
TINYINT UNSIGNED ZEROFILL
INTINT
MEDIUMINT
SMALLINT UNSIGNED
SMALLINT UNSIGNED ZEROFILL
BIGINTBIGINT
INT UNSIGNED
INT UNSIGNED ZEROFILL
MEDIUMINT UNSIGNED
MEDIUMINT UNSIGNED ZEROFILL
BIGINT UNSIGNEDDECIMAL(20, 0)
BIGINT UNSIGNED ZEROFILL
SERIAL
FLOATFLOAT
FLOAT UNSIGNED
FLOAT UNSIGNED ZEROFILL
REALDOUBLE
REAL UNSIGNED
REAL UNSIGNED ZEROFILL
DOUBLE
DOUBLE UNSIGNED
DOUBLE UNSIGNED ZEROFILL
DOUBLE PRECISION
DOUBLE PRECISION UNSIGNED
DOUBLE PRECISION UNSIGNED ZEROFILL
NUMERIC(p, s)DECIMAL(p, s)
NUMERIC(p, s) UNSIGNED
NUMERIC(p, s) UNSIGNED ZEROFILL
DECIMAL(p, s)
DECIMAL(p, s) UNSIGNED
DECIMAL(p, s) UNSIGNED ZEROFILL
FIXED(p, s)
FIXED(p, s) UNSIGNED
FIXED(p, s) UNSIGNED ZEROFILL
where p <= 38
NUMERIC(p, s)STRINGThe precision for DECIMAL data type is up to 65 in MySQL, but the precision for DECIMAL is limited to 38 in Flink. So if you define a decimal column whose precision is greater than 38, you should map it to STRING to avoid precision loss.
NUMERIC(p, s) UNSIGNED
NUMERIC(p, s) UNSIGNED ZEROFILL
DECIMAL(p, s)
DECIMAL(p, s) UNSIGNED
DECIMAL(p, s) UNSIGNED ZEROFILL
FIXED(p, s)
FIXED(p, s) UNSIGNED
FIXED(p, s) UNSIGNED ZEROFILL
where 38 < p <= 65
BOOLEANBOOLEAN
TINYINT(1)
BIT(1)
DATEDATE
TIME [(p)]TIME [(p)]
TIMESTAMP [(p)]TIMESTAMP [(p)]
DATETIME [(p)]
CHAR(n)CHAR(n)
VARCHAR(n)VARCHAR(n)
BIT(n)BINARY(⌈(n + 7) / 8⌉)
BINARY(n)BINARY(n)
VARBINARY(N)VARBINARY(N)
TINYTEXTSTRING
TEXT
MEDIUMTEXT
LONGTEXT
TINYBLOBBYTESCurrently, for BLOB data type in MySQL, only the blob whose length isn't greater than 2,147,483,647(2 ** 31 - 1) is supported.
BLOB
MEDIUMBLOB
LONGBLOB
YEARINT
ENUMSTRING
JSONSTRINGThe JSON data type will be converted into STRING with JSON format in Flink.
SETARRAY<STRING>As the SET data type in MySQL is a string object that can have zero or more values, it should always be mapped to an array of string
GEOMETRYSTRINGThe spatial data types in MySQL will be converted into STRING with a fixed Json format. Please see MySQL Spatial Data Types Mapping section for more detailed information.
POINT
LINESTRING
POLYGON
MULTIPOINT
MULTILINESTRING
MULTIPOLYGON
GEOMETRYCOLLECTION

Sqlserver 

SQLServer typeFlink SQL type
char(n)CHAR(n)
varchar(n)VARCHAR(n)
nvarchar(n)
nchar(n)
textSTRING
ntext
xml
decimal(p, s)DECIMAL(p, s)
money
smallmoney
numericNUMERIC
floatDOUBLE
real
bitBOOLEAN
intINT
tinyintSMALLINT
smallintSMALLINT
bigintBIGINT
dateDATE
time(n)TIME(n)
datetime2TIMESTAMP(n)
datetime
smalldatetime
datetimeoffsetTIMESTAMP_LTZ(3)

Postgre

PostgreSQL typeFlink SQL type
TINYINT
SMALLINTSMALLINT
INT2
SMALLSERIAL
SERIAL2
INTEGERINT
SERIAL
BIGINTBIGINT
BIGSERIAL
DECIMAL(20, 0)
BIGINTBIGINT
REALFLOAT
FLOAT4
FLOAT8DOUBLE
DOUBLE PRECISION
NUMERIC(p, s)DECIMAL(p, s)
DECIMAL(p, s)
BOOLEANBOOLEAN
DATEDATE
TIME [(p)] [WITHOUT TIMEZONE]TIME [(p)] [WITHOUT TIMEZONE]
TIMESTAMP [(p)] [WITHOUT TIMEZONE]TIMESTAMP [(p)] [WITHOUT TIMEZONE]
CHAR(n)STRING
CHARACTER(n)
VARCHAR(n)
CHARACTER VARYING(n)
TEXT
BYTEABYTES

MongoDB

BSON typeFlink SQL type
TINYINT
SMALLINT
IntINT
LongBIGINT
FLOAT
DoubleDOUBLE
Decimal128DECIMAL(p, s)
BooleanBOOLEAN
DateDATE
Timestamp
DateTIME
Timestamp
DateTIMESTAMP(3)
TIMESTAMP_LTZ(3)
TimestampTIMESTAMP(0)
TIMESTAMP_LTZ(0)
StringSTRING
ObjectId
UUID
Symbol
MD5
JavaScript
Regex
BinDataBYTES
ObjectROW
ArrayARRAY
DBPointerROW<$ref STRING, $id STRING>
GeoJSONPoint : ROW<type STRING, coordinates ARRAY<DOUBLE>>
Line : ROW<type STRING, coordinates ARRAY<ARRAY< DOUBLE>>>
...

其他

Db2、TiDB、OceanBase、Vitess等

详情查看文档 Oracle | Apache Flink CDC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值