tencent cloud

文档反馈

同步任务自动建表能力

最后更新时间:2024-11-01 17:27:18
    数据集成在离线及实时场景下提供一键建表、自动建表等功能,以帮助您在同步前或同步中快速构建目标数据表,从而提高数据链路使用效率。本文主要介绍对应功能使用方式、支持的链路、核心异构数据源间类型转换关系等。

    功能介绍及使用场景

    数据集成提供了一键建表、批量建表、以及根据 DDL 消息自动建表三种建表方式:
    功能项
    功能示意
    功能介绍
    适用场景
    一键建表
    
    
    
    此功能可根据来源端指定的多个表对象自动完成来源至目标端的 DDL 转换,支持用户手动修改转换后的 DDL 内容,并一次性批量创建。 功能关键词:异构 DDL 自动转换、批量建表、手动建表。
    本功能适合于针对来源端的存量,快速构建与来源表结构近似的目标表。针对表模型复杂,需要业务自定义的情况,用户可根据业务特性编辑自动生成的 DDL 语句,提高异构 DDL 编写效率。
    批量建表
    
    
    
    根据源端 DDL 消息自动建表
    
    
    
    此功能可实时监控来源端是否存在新建表 DDL,一旦源端产生可识别新建表消息,目标端可自动根据来源表结构自动生成目标端表对象。
    功能关键词:DDL 自动感知与响应、自动建表。
    本功能适合在实时整库搬迁时,期望目标端与来源端实时保证结构一致的数据同步场景。

    一键建表支持链路

    离线单表任务、实时单表任务支持根据来源表一键创建目标表,主要面向新增少量库表入湖、入仓场景。

    离线单表同步任务

    目标序号
    目标端
    支持的源端
    1
    Doris
    MySQL、TDSQL-C MySQL、PostgreSQL
    2
    Hive
    MySQL、Oracle、SQL Server、OceanBase、PostgreSQL
    3
    Iceberg
    MySQL、TDSQL-C MySQL、TDSQL MySQL、Oracle、SqlServer、PostgreQL、Oceanbase、达梦
    4
    TCHouse-P
    MySQL、TDSQL-C MySQL、TDSQL MySQL、Oracle、PostgreQL、Oceanbase、达梦
    5
    DLC
    MySQL、TDSQL-C MySQL、PostgreSQL、Elasticsearch、Kafka

    实时单表同步任务

    目标序号
    目标端
    支持的源端
    1
    TCHouse-P
    MySQL、TDSQL-C MySQL、TDSQL MySQL、Oracle、PostgreQL、Oceanbase、达梦
    2
    Iceberg
    MySQL、TDSQL-C MySQL、TDSQL MySQL、Oracle、PostgreQL、SQL Server、Oceanbase、达梦
    3
    Doris
    MySQL、TDSQL-C MySQL、PostgreQL
    4
    DLC
    MySQL、TDSQL-C MySQL、PostgreSQL、Elasticsearch、Kafka

    批量建表支持链路

    离线批量创建单表任务、实时整库任务支持在任务配置阶段批量根据源表创建目标表,主要面向大量存量库表入湖、入仓场景。

    离线批量同步任务

    目标序号
    目标端
    支持的源端
    1
    Hive
    MySQL、Oracle、SQL Server、PostgreSQL
    2
    Iceberg
    MySQL、TDSQL-C MySQL、TDSQL MySQL、Oracle、SqlServer、PostgreQL、达梦
    3
    TCHouse-P
    MySQL、TDSQL-C MySQL、TDSQLMySQL、Oracle、PostgreQL、OceanBase、达梦
    4
    Doris
    MySQL、TDSQL-C MySQL、PostgreSQL
    5
    DLC
    MySQL、TDSQL-C MySQL、PostgreSQL

    实时整库迁移任务

    目标序号
    目标端
    支持的源端
    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)
    -
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持