类型 | 支持版本 |
TDSQL-C MySQL | 5.7、8.0 |
能力 | 支持情况 | 说明 |
离线同步(读 / 写) | ✓ / - | 支持作为离线同步任务的源端读取数据;DataBuddy 数据源仅支持接入读取,不支持写入 |
实时同步(读 / 写) | ✓ / - | 支持作为实时同步任务的源端读取整库数据变更;DataBuddy 数据源仅支持接入读取,不支持写入 |
分库分表同步(读 / 写) | ✓ / - | 支持以分库分表方式读取多个分表数据;DataBuddy 数据源仅支持接入读取,不支持写入 |
限制项 | 说明 |
Binlog 格式 | 仅支持 ROW |
binlog_row_image | 必须设置为 FULL |
Binlog 保留时间 | 建议至少保留 72 小时 |
无主键表 | 无主键表无法保证 exactly-once 语义 |
XA 事务 | 不支持 XA ROLLBACK |
只读备库 | 不支持读取(存在稳定性与兼容性问题) |
存储过程、物化视图 | 不支持读取 |
SET 类型 | 实时同步不支持 |
限制项 | 说明 |
分表同步并发 | 多表同步切分单表时,任务并发数需大于表个数 |
存储过程 | 不支持读取 |
字段类型 | 离线读 | 实时读 |
TINYINT / TINYINT UNSIGNED | ✅ | ✅ |
SMALLINT / MEDIUMINT / INT / BIGINT(含 UNSIGNED) | ✅ | ✅ |
FLOAT / DOUBLE / DECIMAL / NUMERIC | ✅ | ✅ |
REAL | ✅ | ✅ |
CHAR / VARCHAR / TEXT 系列 | ✅ | ✅ |
JSON | ✅ | ✅ |
BINARY / VARBINARY / BLOB 系列 | ✅ | ✅ |
DATE / TIME / DATETIME / TIMESTAMP / YEAR | ✅ | ✅ |
BIT / BOOL / BOOLEAN / ENUM | ✅ | ✅ |
SET | ✅ | ❌ |
GEOMETRY / POINT | ✅ | ✅ |
LINESTRING / POLYGON / MULTIPOINT 等空间类型 | ✅ | ❌ |
TINYINT(1) 默认映射为 BOOLEAN,可在高级设置中改为 TINYINT。源端类型 | DataBuddy 内部类型 | 备注 |
BIT / BOOL / BOOLEAN | Boolean | BIT(n) 默认按布尔值读取;开启 useBitPrecision 且精度大于 1 时按 Bytes 读取 |
TINYINT(1) | Boolean | MySQL JDBC 驱动默认将 TINYINT(1) 按 BIT 处理(tinyInt1isBit=true),读取为 true / false;如需按数值读取,请在 JDBC URL 中追加 tinyInt1isBit=false |
TINYINT / SMALLINT / MEDIUMINT / INT / BIGINT(含 UNSIGNED) | Long | 按字符串读取后转为 Long; BIGINT UNSIGNED 超过 Long 取值上限时会读取失败 |
DECIMAL / NUMERIC | Double | 转为双精度浮点数,超出精度范围会丢失小数精度;对精度敏感的场景建议在目标端改用 Decimal 或字符串类型 |
FLOAT / REAL / DOUBLE | Double | 遵循 IEEE 754 浮点精度 |
CHAR / VARCHAR / TINYTEXT / TEXT / MEDIUMTEXT / LONGTEXT | String | - |
ENUM / SET | String | 按枚举值文本读取 |
JSON | String | 按文本读取,不做结构化解析 |
DATE | Date | 精确到日 |
DATETIME / TIMESTAMP | Date | - |
TIME | Date | 超出 JDBC 时间范围的值(如 838:59:59)按 String 读取 |
YEAR | Long | 按年份数值读取 |
BINARY / VARBINARY / TINYBLOB / BLOB / MEDIUMBLOB / LONGBLOB | Bytes | 不做内容解析 |
GEOMETRY / POINT / LINESTRING / POLYGON 等空间类型 | Bytes 或 String | 不解析几何语义,建议先在源端转换为字符串 |
上表未列出的其他类型 | - | 任务报错并提示不支持的字段类型 |
源端类型 | TCLake 目标类型 | 备注 |
TINYINT / TINYINT UNSIGNED / SMALLINT(含 UNSIGNED)/ MEDIUMINT(含 UNSIGNED)/ INT / INTEGER | INTEGER | ZEROFILL 与对应 UNSIGNED 版本映射相同 |
TINYINT(1) | BOOLEAN 或 INTEGER | 取决于参数 oceanus.tinyint1-is-bit:为 true 时映射 BOOLEAN,否则映射 INTEGER |
INT UNSIGNED / INTEGER UNSIGNED / BIGINT | LONG | - |
BIGINT UNSIGNED / SERIAL | DECIMAL(20, 0) | 取值超出 BIGINT 上限,改用十进制承载 |
DECIMAL / NUMERIC / FIXED(精度 ≤ 38) | DECIMAL(P, S) | 精度与标度保留 |
FLOAT(无精度) | FLOAT | - |
FLOAT(有精度)/ FLOAT UNSIGNED / DOUBLE / DOUBLE PRECISION / REAL(含 UNSIGNED、ZEROFILL) | DOUBLE | 带精度的 FLOAT 落 DOUBLE,与无精度不同 |
BIT(n) | BINARY | 按位串读取,如 0101100011 |
DATE | DATE | - |
DATETIME / DATETIME(n) | TIMESTAMP | 不带时区 |
TIMESTAMP / TIMESTAMP(n) | TIMESTAMPTZ | 带时区语义,与 DATETIME 落点不同 |
TIME | STRING | 不落时间类型 |
YEAR | INTEGER | - |
CHAR / VARCHAR / TINYTEXT / TEXT / MEDIUMTEXT / LONGTEXT | STRING | - |
ENUM / JSON | STRING | 按文本读取,不解析结构 |
BINARY(n) | BINARY | - |
VARBINARY(n) / TINYBLOB / BLOB / MEDIUMBLOB / LONGBLOB | STRING | 二进制按字符串承载,与 BINARY(n) 落点不同 |
GEOMETRY / POINT | STRING | 不解析几何语义 |
BIGINT UNSIGNED:离线按 Long 读取(超出上限会失败),实时落 DECIMAL(20, 0)。请按任务类型核对对应表格。操作 | 是否支持 |
INSERT / DELETE / UPDATE | ✅ |
操作 | 是否支持 | 支持的语法示例 |
新增列(ADD COLUMN) | ✅ | ALTER TABLE t ADD col TYPE [FIRST | AFTER col] |
删除列(DROP COLUMN) | ✅ | ALTER TABLE t DROP [COLUMN] col |
重命名列(RENAME / CHANGE COLUMN) | ✅ | ALTER TABLE t CHANGE old new TYPE |
修改列类型(MODIFY COLUMN) | ✅ | ALTER TABLE t MODIFY col TYPE |
新增表(CREATE TABLE) | ✅ | 不支持 CHECK、Temporary Table |
重命名表 / 删除表 / 清空表 | ❌ | - |
CREATE USER 'wedata_user'@'%' IDENTIFIED BY 'your_password';GRANT SELECT ON your_database.* TO 'wedata_user'@'%';FLUSH PRIVILEGES;
CREATE USER 'wedata_cdc_user'@'%' IDENTIFIED BY 'your_password';GRANT SELECT, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENTON *.* TO 'wedata_cdc_user'@'%';FLUSH PRIVILEGES;
scan.incremental.snapshot.enabled 后不再需要 RELOAD 权限。binlog_format = ROWbinlog_row_image = FULL参数 | 说明 | 是否必填 | 默认值 |
数据源名称 | 数据源在工作空间内的唯一标识 | 是 | - |
连接方式 | 串连接(JDBC URL) / 腾讯云实例 | 是 | 腾讯云实例 |
JDBC URL | 串连接方式下的连接串,格式 jdbc:mysql://host:port/database | 串连接必填 | - |
地域、实例 | 腾讯云实例方式必填 | 腾讯云实例必填 | - |
用户名 | 数据库连接账号 | 是 | - |
密码 | 数据库连接密码(支持 SSM 凭证托管) | 是 | - |
数据源版本 | 5.7 | 是 | - |
高级参数 | 连接级扩展参数 | 否 | - |
配置项 | 说明 |
来源表范围 | 指定表 (仅同步选中的表,新增表需重启)/ 正则匹配 (指定库名 + 表名正则,符合规则的新增表自动接入) |
读取模式 | 全量 + 增量 / 仅增量 |
订阅类型 | 可勾选 INSERT / UPDATE / DELETE,至少保留一种 |
gh-ost 同步 | 是否同步 gh-ost 在线 DDL 产生的临时表 |
配置项 | 说明 |
数据来源 | 已配置的 MySQL 数据源 |
库 / 表 | 支持指定与正则匹配;表名支持范围如 table_[0-99] |
切割键 | 仅支持整型字段;建议选择主键或带索引的列;避免 COLLATE 列 |
筛选条件 | 标准 WHERE 语法,支持时间参数(如 gmt_create > $bizdate) |
server-id,请删除。slave_net_timeout = 120,并优化并行度与内存。scan.incremental.snapshot.chunk.size(默认 8096)。*_gho 临时表变更,支持配置影子表正则。文档反馈