tencent cloud

文档反馈

TDSQL MySQL 数据源

最后更新时间:2024-11-01 16:54:35
    数据集成提供了 TDSQL MySQL 的读取和写入能力,本文为您介绍使用 TDSQL-C MySQL 进行实时数据同步的前置环境配置以及当前能力支持情况。

    支持版本

    目前数据集成已支持 TDSQL-C MySQL 单表及整库级实时读取和单表写入,使用实时同步能力需遵循以下版本限制:
    引擎类型
    版本
    MySQL
    仅支持原有 InnoDB 类型,不支持 TDStore 类型

    使用限制

    不支持动态新增分片,需要先暂停任务,再新增分片。
    需要开启 Binlog 日志,仅支持同步 TDSQL MySQL 服务器 Binlog 配置格式为 ROW。
    无主键的表由于无法保证 exactly once 可能会有数据重复,因此实时同步任务最好保证有主键。
    不支持 XA ROLLBACK,实时同步的任务不会针对 XA PREPARE 的数据进行回滚的操作,若要处理 XA ROLLBACK 场景,需要手动将 XA ROLLBACK 的表从实时同步任务中移除,再添加表后重新进行同步。
    设置 TDSQL MySQL 会话超时:
    当为大型数据库制作初始一致快照时,您建立的连接可能会在读取表时超时。您可以通过在 TDSQL MySQL 配置文件中配置 interactive_timeout 和 wait_timeout 来防止这种行为。
    interactive_timeout:服务器在关闭交互式连接之前等待其活动的秒数。请参见 文档
    wait_timeout:服务器在关闭非交互式连接之前等待其活动的秒数。请参见 文档

    整库来源配置

    数据来源设置

    
    
    
    参数
    说明
    数据源
    选择需要同步的 TDSQL MySQL 数据源。
    来源表
    所有库表:监控数据源下所有库。任务运行期间新增库、表默认将同步至目标端。
    指定表:此选项下需指定到具体表名称,设置后任务仅同步指定表;若需要新增同步表需停止并重启任务。
    
    
    
    指定库:此选项下需指定具体库名、以表名正则表达式。设置后,任务运行期间符合表名表达式的新增表默认将同步至目标端。
    
    
    
    读取模式
    全量 + 增量:数据同步分为全量和增量同步阶段,全量阶段完成后任务进入增量阶段。全量阶段将同步库内历史数据,增量阶段从任务启动后 binlog cdc 的位点开始同步。
    仅增量:仅从任务启动后的 binlog cdc 位点开始同步数据。
    一致性语义
    仅代表读取端的一致性语义。支持 At-least-once 和 Exactly-once。
    At-least-once:数据可能存在重复读取,依赖目标端支持去重来保证数据的一致性。适用于全量阶段数据量大且使用非数值型主键、对同步性能要求高的场景。
    Exactly-once:数据严格只读取一次,性能上有一定损失,不支持无主键且无唯一索引列的表。适用于源表有数值型主键或唯一索引列的通用场景。
    当前版本两种模式状态不兼容,任务提交后如果修改模式,不支持带状态重启。
    过滤操作
    支持插入、更新和删除三种操作,设置后将不同步指定操作类型的数据。
    时区
    设置日志时间所属时区,默认上海。
    高级设置(可选)
    可根据业务需求配置参数。

    实时单表读取节点配置

    
    
    
    参数
    描述
    数据来源
    选择需要同步的表所在数据源
    选择需要同步的表所在数据库
    支持选择、或者手动输入需写入的表名称。
    分片列
    分片列用于将表分为多个分片进行同步。
    有主键的表建议优先选择表主键作为分片列。
    无主键的表建议选择有索引的列作为分片列,且保证分片列不存在数据的更新操作,否则只能保证 At-Least-Once 语义。
    读取模式
    全量 + 增量:数据同步分为全量和增量同步阶段,全量阶段完成后任务进入增量阶段。全量阶段将同步库内历史数据,增量阶段从任务启动后 binlog cdc 的位点开始同步。
    仅增量:仅从任务启动后的 binlog cdc 位点开始同步数据。
    一致性语义
    仅代表读取端的一致性语义。支持 At-least-once 和 Exactly-once。
    At-least-once:数据可能存在重复读取,依赖目标端支持去重来保证数据的一致性。适用于全量阶段数据量大且使用非数值型主键、对同步性能要求高的场景。
    Exactly-once:数据严格只读取一次,性能上有一定损失,不支持无主键且无唯一索引列的表。适用于源表有数值型主键或唯一索引列的通用场景。
    当前版本两种模式状态不兼容,任务提交后如果修改模式,不支持带状态重启。
    过滤操作
    设置后将不同步指定操作类型的数据,支持插入、更新和删除。
    时区
    设置日志时间所属时区,默认上海。
    高级设(选填)
    可根据业务需求配置参数。

    实时单表写入节点配置

    
    
    
    参数
    说明
    数据去向
    需要写入的 TDSQL MySQL 数据源。
    支持选择、或者手动输入需写入的库名称
    默认将数据源绑定的数据库作为默认库,其他数据库需手动输入库名称。
    当数据源网络不联通导致无法直接拉取库信息时,可手动输入数据库名称。在数据集成网络连通的情况下,仍可进行数据同步。
    支持选择、或者手动输入需写入的表名称。
    当数据源网络不联通导致无法直接拉取表信息时,可手动输入表名称。在数据集成网络连通的情况下,仍可进行数据同步。
    高级设置(选填)
    可根据业务需求配置参数。

    数据类型转换支持

    读取

    字段类型
    是否支持
    内部映射字段
    备注
    TINYINT
    TINYINT
    TINYINT(1) 默认映射到 BOOLEAN
    单表任务可通过高级设置将TINYINT(1)映射为 tinyint
    SMALLINT
    SMALLINT
    -
    TINYINT_UNSIGNED
    SMALLINT
    -
    TINYINT_UNSIGNED_ZEROFILL
    SMALLINT
    -
    INT
    INT
    -
    INTEGER
    INT
    -
    YEAR
    INT
    -
    MEDIUMINT
    INT
    -
    SMALLINT_UNSIGNED
    INT
    -
    SMALLINT_UNSIGNED_ZEROFILL
    INT
    -
    BIGINT
    LONG
    -
    INT_UNSIGNED
    LONG
    -
    MEDIUMINT_UNSIGNED
    LONG
    -
    MEDIUMINT_UNSIGNED_ZEROFILL
    LONG
    -
    INT_UNSIGNED_ZEROFILL
    LONG
    -
    BIGINT_UNSIGNED
    DECIMAL
    DECIMAL(20,0)
    BIGINT_UNSIGNED_ZEROFILL
    DECIMAL
    DECIMAL(20,0)
    SERIAL
    DECIMAL
    DECIMAL(20,0)
    FLOAT
    FLOAT
    -
    FLOAT_UNSIGNED
    FLOAT
    -
    FLOAT_UNSIGNED_ZEROFILL
    FLOAT
    -
    DOUBLE
    DOUBLE
    -
    DOUBLE_UNSIGNED
    DOUBLE
    -
    DOUBLE_UNSIGNED_ZEROFILL
    DOUBLE
    -
    DOUBLE_PRECISION
    DOUBLE
    -
    DOUBLE_PRECISION_UNSIGNED
    DOUBLE
    -
    ZEROFILL
    DOUBLE
    -
    REAL
    DOUBLE
    -
    REAL_UNSIGNED
    DOUBLE
    -
    REAL_UNSIGNED_ZEROFILL
    DOUBLE
    -
    NUMERIC
    DECIMAL
    采用用户数据库实际的精度 p<=38 映射到 DECIMAL 38 < p <= 65 时映射到 String
    NUMERIC_UNSIGNED
    DECIMAL
    采用用户数据库实际的精度 p<=38 映射到 DECIMAL 38 < p <= 65 时映射到 String
    NUMERIC_UNSIGNED_ZEROFILL
    DECIMAL
    采用用户数据库实际的精度 p<=38 映射到 DECIMAL 38 < p <= 65 时映射到 String
    DECIMAL
    DECIMAL
    采用用户数据库实际的精度 p<=38 映射到 DECIMAL 38 < p <= 65 时映射到 String
    DECIMAL_UNSIGNED
    DECIMAL
    采用用户数据库实际的精度 p<=38 映射到 DECIMAL 38 < p <= 65 时映射到 String
    DECIMAL_UNSIGNED_ZEROFILL
    DECIMAL
    采用用户数据库实际的精度 p<=38 映射到 DECIMAL 38 < p <= 65 时映射到 String
    FIXED
    DECIMAL
    采用用户数据库实际的精度 p<=38 映射到 DECIMAL 38 < p <= 65 时映射到 String
    FIXED_UNSIGNED
    DECIMAL
    采用用户数据库实际的精度 p<=38 映射到 DECIMAL 38 < p <= 65 时映射到 String
    FIXED_UNSIGNED_ZEROFILL
    DECIMAL
    采用用户数据库实际的精度 p<=38 映射到 DECIMAL 38 < p <= 65 时映射到 String
    BOOLEAN
    BOOLEAN
    -
    DATE
    DATE
    -
    TIME
    TIME
    -
    DATETIME
    TIMESTAMP
    -
    TIMESTAMP
    TIMESTAMP
    -
    CHAR
    STRING
    -
    JSON
    STRING
    -
    BIT
    STRING
    BIT(1) 映射到 BOOLEAN
    VARCHAR
    STRING
    -
    TEXT
    STRING
    -
    BLOB
    STRING
    -
    TINYBLOB
    STRING
    -
    TINYTEXT
    STRING
    -
    MEDIUMBLOB
    STRING
    -
    MEDIUMTEXT
    STRING
    -
    LONGBLOB
    STRING
    -
    LONGTEXT
    STRING
    -
    VARBINARY
    STRING
    -
    GEOMETRY
    STRING
    -
    POINT
    STRING
    -
    LINESTRING
    STRING
    -
    POLYGON
    STRING
    -
    MULTIPOINT
    STRING
    -
    MULTILINESTRING
    STRING
    -
    MULTIPOLYGON
    STRING
    -
    GEOMETRYCOLLECTION
    -
    -
    ENUM
    STRING
    -
    BINARY
    BINARY
    BINARY(1)
    SET
    -
    -

    写入

    内部类型
    MySQL 类型
    TINYINT
    TINYINT
    SMALLINT
    SMALLINT,TINYINT UNSIGNED
    INT
    INT,MEDIUMINT,SMALLINT UNSIGNED
    BIGINT
    BIGINT,INT UNSIGNED
    DECIMAL(20, 0)
    BIGINT UNSIGNED
    FLOAT
    FLOAT
    DOUBLE
    DOUBLE,DOUBLE PRECISION
    DECIMAL(p, s)
    NUMERIC(p, s),DECIMAL(p, s)
    BOOLEAN
    BOOLEAN,TINYINT(1)
    DATE
    DATE
    TIME [(p)][WITHOUT TIMEZONE]
    TIME [(p)]
    TIMESTAMP [(p)][WITHOUT TIMEZONE]
    DATETIME [(p)]
    STRING
    CHAR(n),VARCHAR(n),TEXT
    BYTES
    BINARY,VARBINARY,BLOB
    ARRAY
    -
    联系我们

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

    技术支持

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

    7x24 电话支持