数据集成在离线及实时场景下提供一键建表、自动建表等功能,以帮助您在同步前或同步中快速构建目标数据表,从而提高数据链路使用效率。本文主要介绍对应功能使用方式、异构数据源间类型转换关系等。
功能介绍及使用场景
数据集成提供了一键建表、批量建表、以及根据 DDL 消息自动建表三种建表方式:
功能项 | 功能示意 | 功能介绍 | 适用场景 |
一键建表 | | 此功能可根据来源端指定的多个表对象自动完成来源至目标端的 DDL 转换,支持用户手动修改转换后的 DDL 内容,并一次性批量创建。
功能关键词:异构 DDL 自动转换、批量建表、手动建表。 | 本功能适合于针对来源端的存量,快速构建与来源表结构近似的目标表。针对表模型复杂,需要业务自定义的情况,用户可根据业务特性编辑自动生成的 DDL 语句,提高异构 DDL 编写效率。 |
批量建表 | | | |
根据源端 DDL消息自动建表 | | 此功能可实时监控来源端是否存在新建表 DDL,一旦源端产生可识别新建表消息,目标端可自动根据来源表结构自动生成目标端表对象。 功能关键词:DDL 自动感知与响应、自动建表。 | 本功能适合在实时整库搬迁时,期望目标端与来源端实时保证结构一致的数据同步场景。 |
异构数据源建表类型转换关系:
MySQL 至 Doris 建表字段类型转换:
| MySQL(源端) | DORIS(目标端) | 补充说明 | ||
| 数据类型 | 精度说明 | 数据类型 | 精度说明 | |
| BOOLEAN | 0代表 false,1代表 true | BOOLEAN | 0代表 false,1代表 true | - |
数值类型 | TINYINT | 范围[-128, 127] | TINYINT | 范围[-128, 127] | - |
SMALLINT | 范围[-32768, 32767] | SMALLINT | 范围[-32768, 32767] | - | |
MEDIUMINT | 范围[-8388608,8388607] | INT | 范围[-2147483648, 2147483647] | - | |
INT | 范围[-2147483648, 2147483647] | INT | 范围[-2147483648, 2147483647] | - | |
BIGINT | 范围[-9223372036854775808, 9223372036854775807] | BIGINT | 范围[-9223372036854775808, 9223372036854775807] | - | |
UNSIGNED TINYINT | 范围[0, 255] | SMALLINT | 范围[-32768, 32767] | - | |
UNSIGNED MEDIUMINT | 范围[0, 16777215] | INT | 范围[-2147483648, 2147483647] | - | |
UNSIGNED INT | 范围[0, 4294967295] | BIGINT | 范围[-9223372036854775808, 9223372036854775807] | - | |
UNSIGNED BIGINT | 范围[0, 18,446,744,073,709,551,615] | LARGEINT | 范围[-2^127 + 1 ~ 2^127 - 1] | - | |
FLOAT | 4 字节浮点数 | FLOAT | 4字节浮点数 | - | |
DOUBLE | 8 字节浮点数 | DOUBLE | 8字节浮点数 | - | |
DECIMAL | DECIMAL(M,D),M 范围 [1, 65], D 范围是[0, 30] | DECIMALV3 | DECIMAL(M,D),M 范围 [1, 38], D 范围是[0, precision] | - | |
日期时间类型 | YEAR | 范围:1901 到 2155显示格式:YYYY | SMALLINT | 范围[-32768, 32767] | - |
TIME | 范围:-838:59:59 到 838:59:59显示格式:hh:mm:ss 或 hh:mm:ss | STRING | 变长字符串,最大(默认)支持1048576 字节(1MB) | - | |
DATE | 范围:1000-01-01 到 9999-12-31显示格式:YYYY-MM-DD | DATEV2 | 范围:0000-01-01 到 9999-12-31显示格式:YYYY-MM-DD | - | |
DATETIME | 1000-01-01 00:00:00 到 9999-12-31 23:59:59显示格式:YYYY-MM-DD HH:mm:ss | DATETIMEV2 | 0000-01-01 00:00:00 到 9999-12-31 23:59:59打印格式:YYYY-MM-dd HH:mm:ss.SSSSSS,可不选时间精度。 | - | |
TIMESTAMP | UTC 1970-01-01 00:00:01 到 2038-01-19 03:14:07显示格式:YYYY-MM-DD HH:mm:ss | DATETIMEV2 | 显示格式:YYYY-MM-DD HH:mm:ss | TIMESTAMP 字段数据会随着系统时区而改变但 DATETIME 字段数据不会,建议根据业务场景进行时区转化 | |
字符串类型 | CHAR | 0 到 255 字符 | CHAR | 定长字符串,范围是1-255 | - |
VARCHAR | 0 到 65,535 字符 | VARCHAR | 变长字符串,范围是1-65533 | 如果 MySQL 字段长度超过65533,建议转化为string | |
TINYTEXT、TEXT | 0 到 255 字符 | STRING | 变长字符串,最大(默认)支持1048576 字节(1MB) | - | |
MEDIUMTEXT、LONGTEXT | 0 到 65535 字符 | STRING | 变长字符串,最大(默认)支持1048576 字节(1MB) | MySQL 字段长度超过1048576 字节时可能精度丢失 | |
二进制字符串 | TINYBLOB、BLOB | 二进制字符串,0 到 255 字节 | STRING | 变长字符串,最大(默认)支持1048576 字节(1MB) | - |
MEDIUMBLOB、LONGBLOB | 二进制字符串,0 到 16,777,215 字节,最大16M | STRING | 变长字符串,最大(默认)支持1048576 字节(1MB) | MySQL 字段长度超过1048576 字节时可能精度丢失 | |
BINARY、VARBINARY | 固定长度二进制数据,最多 255 字节 | STRING | 变长字符串,最大(默认)支持1048576 字节(1MB) | - | |
其他 | JSON | JSON 数据,最大存储大小为 1GB | STRING | 变长字符串,最大(默认)支持1048576 字节(1MB) | MySQL 字段大小超过1M时可能精度丢失 |
SET、BIT | 字符串集合,最多 64 个成员 | STRING | 变长字符串,最大(默认)支持1048576 字节(1MB) | - | |
ENUM | 枚举对象,最多65535个成员 | UNSUPPORTED | - | 暂不支持 |
MySQL 至 DLC iceberg表建表字段类型转换:
Mysql 类型(源端) | DLC Iceberg 表 (目标端) | 说明 |
tinyint(1) | int | - |
smallint | smallint | - |
int | int | - |
mediumint | int | - |
bigint | bigint | - |
float | float | - |
double | double | - |
decimal | decimal | - |
datetime | timestamp | - |
timestamp | timestamp | - |
date | date | - |
time | time | - |
tinytext | string | - |
text | string | - |
mediumtext | string | - |
longtext | string | - |
varchar | string | - |
char | string | - |
bool | boolean | - |
tinyblob | binary | - |
mediumblob | binary | - |
blob | binary | - |
longblob | binary | - |
varbinary | binary | - |
binary | binary | - |
decimal unsigned(p,x) | decimal(p+1, x) | 说明:decimal(p+1, x)/string(超长后改为string) |
decimal unsigned(p,x) | decimal(p+1, x) | 说明:decimal(p+1, x)/string(超长后改为string) |
int unsigned | bigint | - |
int unsigned zerofill | bigint | - |
smallint unsigned | int | - |
smallint unsigned zerofill | int | - |
mediumint unsigned | bigint | - |
mediumint unsigned zerofill | bigint | - |
float unsigned | double | - |
float unsigned zerofill | double | - |
double unsigned | decimal(20,0) | - |
double unsigned zerofill | decimal(20,0) | - |
bigint unsigned | decimal(20,0) | - |