一、功能介绍及使用场景
数据集成提供了一键建表、批量建表、以及根据 DDL 消息自动建表三种建表方式:
| 功能项 | 功能示意 | 功能介绍 | 适用场景 |
| 一键建表 | | 此功能可根据来源端指定的多个表对象自动完成来源至目标端的 DDL 转换,支持用户手动修改转换后的 DDL 内容,并一次性批量创建。 功能关键词:异构 DDL 自动转换、批量建表、手动建表。 |
本功能适合于针对来源端的存量,快速构建与来源表结构近似的目标表。针对表模型复杂,需要业务自定义的情况,用户可根据业务特性编辑自动生成的 DDL 语句,提高异构 DDL 编写效率。 |
| 批量建表 | | | |
| 根据源端 DDL 消息自动建表 | | 此功能可实时监控来源端是否存在新建表 DDL,一旦源端产生可识别新建表消息,目标端可自动根据来源表结构自动生成目标端表对象。功能关键词:DDL 自动感知与响应、自动建表。 | 本功能适合在实时整库搬迁时,期望目标端与来源端实时保证结构一致的数据同步场景。 |
二、一键建表支持链路
离线单表任务、实时单表任务支持根据来源表一键创建目标表,主要面向新增少量库表入湖、入仓场景。
三、离线单表同步任务
| 目标序号 | 目标端 | 支持的源端 |
| 1 | Doris | MySQL、腾讯云 MySQL、TDSQL-C MySQL、DLC、SQL Server、TDSQL MySQL、PostgreSQL、TDSQL PostgreSQL、Oracle、Oceanbase、达梦 |
| 2 | TChouse-D | MySQL、腾讯云 MySQL、TDSQL-C MySQL、DLC、SQL Server、TDSQL MySQL、PostgreSQL、TDSQL PostgreSQL、Oracle、Oceanbase、达梦 |
| 3 | Hive | MySQL、腾讯云 MySQL、TDSQL MySQL、TDSQL-C MySQL、Oracle、SQL Server、PostgreSQL、Oceanbase、达梦、TiDB |
| 4 | Iceberg | MySQL、腾讯云 MySQL、TDSQL-C MySQL、TDSQL MySQL、Oracle、SQL Server、PostgreSQL、Oceanbase、达梦、TiDB |
| 5 | TCHouse-P | MySQL、腾讯云 MySQL、TDSQL-C MySQL、TDSQL MySQL、Oracle、SQL Server、PostgreSQL、Oceanbase、达梦、TiDB |
| 6 | DLC | MYSQL、腾讯云 MySQL、Elasticsearch、TDSQL MySQL、TDSQL-C MySQL、腾讯云 Elasticsearch、Kafka、PostgreSQL、TDSQL PostgreSQL、Oracle、SQL Server、Oceanbase、达梦 |
四、实时单表同步任务
| 目标序号 | 目标端 | 支持的源端 |
| 1 | Doris | MySQL、腾讯云 MySQL、TDSQL-C MySQL、SQL Server、TDSQL MySQL、PostgreSQL、Oracle、Oceanbase、达梦 |
| 2 | TChouse-D | MySQL、腾讯云 MySQL、TDSQL-C MySQL、SQL Server、TDSQL MySQL、PostgreSQL、Oracle、Oceanbase、达梦 |
| 3 | Hive | MySQL、腾讯云 MySQL、TDSQL MySQL、TDSQL-C MySQL、Oracle、SQL Server、PostgreSQL、Oceanbase、达梦 |
| 4 | Iceberg | MySQL、腾讯云 MySQL、TDSQL-C MySQL、TDSQL MySQL、Oracle、PostgreSQL、SQL Server、Oceanbase、达梦 |
| 5 | TCHouse-P | MySQL、腾讯云 MySQL、TDSQL-C MySQL、TDSQL MySQL、Oracle、PostgreSQL、SQL Server、Oceanbase、达梦 |
| 6 | DLC | MySQL、腾讯云 MySQL、TDSQL-C MySQL、TDSQL MySQL、PostgreSQL、Oracle、SQL Server、Kafka、Oceanbase、达梦 |
五、批量建表支持链路
离线批量创建单表任务、实时整库任务支持在任务配置阶段批量根据源表创建目标表,主要面向大量存量库表入湖、入仓场景。
六、离线批量同步任务
| 目标序号 | 目标端 | 支持的源端 |
| 1 | Doris | MySQL、腾讯云 MySQL、TDSQL-C MySQL、DLC、SQL Server、TDSQL MySQL、PostgreSQL、TDSQL PostgreSQL、Oracle、Oceanbase、达梦 |
| 2 | TChouse-D | MySQL、腾讯云 MySQL、TDSQL-C MySQL、DLC、SQL Server、TDSQL MySQL、PostgreSQL、TDSQL PostgreSQL、Oracle、Oceanbase、达梦 |
| 3 | Hive | MySQL、腾讯云 MySQL、TDSQL MySQL、TDSQL-C MySQL、Oracle、SQL Server、PostgreSQL、Oceanbase、达梦、TiDB |
| 4 | Iceberg | MySQL、腾讯云 MySQL、TDSQL-C MySQL、TDSQL MySQL、Oracle、SQL Server、PostgreSQL、Oceanbase、达梦、TiDB |
| 5 | TCHouse-P | MySQL、腾讯云MySQL、TDSQL-C MySQL、TDSQL MySQL、Oracle、SQL Server、PostgreSQL、Oceanbase、达梦、TiDB |
| 6 | DLC | MYSQL、腾讯云 MySQL、Elasticsearch、TDSQL MySQL、TDSQL-C MySQL、腾讯云 Elasticsearch、Kafka、PostgreSQL、TDSQL PostgreSQL、Oracle、SQL Server、Oceanbase、达梦 |
七、实时整库迁移任务
| 目标序号 | 目标端 | 支持的源端 |
| 1 | Doris | MySQL、TDSQL-C MySQL、TDSQL MySQL |
| 2 | DLC | MySQL、TDSQL-C MySQL、TDSQL MySQL |
八、根据源端 DDL 消息自动建表支持链路
除以下链路外,其余实时整库链路均支持根据源端 DDL 消息在任务运行阶段自动创建目标端库、表:
| 序号 | 源端 | 目标端 | 备注 |
| 1 | MySQL | PostgreSQL | 仅支持使用已有数据库、Schema、数据表 |
| 2 | OceanBase | Doris、Iceberg | 仅支持使用已有数据库、数据表 |
| 3 | Kafka | Doris | 仅支持使用已有数据库、数据表 |
九、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) | – |