CDL支持同步开源Debezium JSON数据
Debezium是一个用来捕获数据库变更的开源分布式平台,以事件流的形式记录每张表的行级变更。Debezium基于Kafka构建,提供了一组与Kafka Connect兼容的连接器,每个连接器用来捕获特定数据库的变更事件并将事件流发送给Kafka Topic。CDL目前支持处理1.4.0版本MySQL、PostgreSQL和Oracle数据库的Debezium连接器捕获的JSON格式的创建(c)、更改(u)和删除(d)事件消息。
数据库数据类型和Spark(Hudi)数据类型映射关系
当通过消费数据库Debezium JSON格式的变更事件消息将数据写入Hudi时,相关操作请参见2.6.3.12-从ThirdKafka同步debezium-json数据到Hudi,支持的数据库数据类型、数据库数据类型跟Spark数据类型的映射关系如下:
PgSQL数据类型 |
Spark(Hudi)数据类型 |
---|---|
int2 |
int |
int4 |
int |
int8 |
bigint |
numeric[p, s] |
|
bool |
boolean |
char |
string |
varchar |
string |
text |
string |
timestamptz |
timestamp |
timestamp |
timestamp |
date |
date |
json, jsonb |
string |
float4 |
float |
float8 |
double |
MySQL数据类型 |
Spark(Hudi)数据类型 |
---|---|
int |
int |
integer |
int |
bigint |
bigint |
double |
double |
decimal[p,s] |
|
varchar |
string |
char |
string |
text |
string |
timestamp |
timestamp |
datetime |
timestamp |
date |
date |
json |
string |
float |
double |
Oracle数据类型 |
Spark(Hudi)数据类型 |
---|---|
NUMBER(1,0) |
boolean |
NUMBER(P, 0) P->[2, 9] |
int |
NUMBER(P, 0) P->[10, 18] |
bigint |
NUMBER(P, 0) P >= 19 NUMBER(P, S > 0) NUMBER[(P)] |
|
FLOAT |
decimal |
BINARY_DOUBLE |
double |
CHAR |
string |
VARCHAR |
string |
TIMESTAMP |
timestamp |
timestamp with time zone |
timestamp |
DATE |
timestamp |