概述
TDSQL MySQL 是腾讯云自研的分布式关系型数据库,兼容 MySQL 协议,具备水平扩展与高可用能力。DataBuddy 数据接入支持将 TDSQL MySQL 作为来源端,覆盖离线同步与直连分析场景。本文介绍其连接配置、能力支持范围、前提条件与常见问题。
支持的版本
类型 | 支持版本 |
TDSQL MySQL | 5.7 / 8.0 |
读取能力
能力 | 支持情况 | 说明 |
离线同步(读 / 写) | ✓ / - | 支持作为离线同步任务的源端读取数据;DataBuddy 数据源仅支持接入读取,不支持写入 |
直连分析(读 / 写) | ✓ / - | 支持通过直连分析直接查询该数据源;不支持写入 |
支持的字段类型
字段类型 | 离线读 |
TINYINT / SMALLINT / MEDIUMINT / INT / BIGINT(含 UNSIGNED) | ✅ |
FLOAT / DOUBLE / DECIMAL / NUMERIC | ✅ |
CHAR / VARCHAR / TEXT 系列 | ✅ |
JSON | ✅ |
BINARY / VARBINARY / BLOB 系列 | ✅ |
DATE / TIME / DATETIME / TIMESTAMP / YEAR | ✅ |
BIT / BOOL / BOOLEAN / ENUM / SET | ✅ |
GEOMETRY / POINT / LINESTRING 等空间类型 | ✅ |
说明:
空间类型(GEOMETRY 系列)按二进制读取,不解析几何语义;如需在目标端保留几何信息,建议先在源端转换为字符串类型。
字段类型映射(离线同步)
同步时源端字段类型会转换为 DataBuddy 同步链路中的中间类型。配置任务前请重点核对「备注」列标注的类型,避免精度丢失或语义变化。
源端类型 | 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 | 不解析几何语义,建议先在源端转换为字符串 |
上表未列出的其他类型 | - | 任务报错并提示不支持的字段类型 |
前提条件
配置账号权限
CREATE USER 'wedata_user'@'%' IDENTIFIED BY 'your_password';GRANT SELECT ON your_database.* TO 'wedata_user'@'%';FLUSH PRIVILEGES;
建议为同步任务创建专用账号,仅授必要的
SELECT 权限,避免与业务账号混用。创建数据源
操作步骤
1. 登录 DataBuddy 控制台。
2. 在顶部切换到目标地域和 Workspace。
3. 进入 数据集成 > 数据源管理(或 平台管理 > 数据源管理)。
4. 点击 创建数据源,选择 TDSQL MySQL。
5. 填写连接配置与认证信息,详见 参数说明。
6. 点击 测试连接(参见 数据源连通性测试)。
7. 测试通过后点击 保存 或 保存 & 创建任务。
参数说明
参数 | 说明 | 是否必填 | 默认值 |
数据源名称 | 数据源在工作空间内的唯一标识 | 是 | - |
连接方式 | 腾讯云实例 / 串连接 | 是 | 腾讯云实例 |
地域、实例 | 腾讯云实例方式下选择目标实例 | 腾讯云实例必填 | - |
JDBC URL | 串连接方式下的连接串,格式 jdbc:mysql://host:port/database | 串连接必填 | - |
用户名 | 数据库连接账号 | 是 | - |
密码 | 数据库连接密码(支持 SSM 凭证托管) | 是 | - |
数据源版本 | 5.7 / 8.0 | 是 | - |
JDBC URL 示例:
jdbc:mysql://10.0.0.1:3306/mydb?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
在数据接入任务中使用
离线单表
配置项 | 说明 |
数据来源 | 已配置的 TDSQL MySQL 数据源 |
库 / 表 | 支持指定与正则匹配;表名支持范围如 table_[0-99] |
切割键 | 仅支持整型字段;建议选择主键或带索引的列 |
筛选条件 | 标准 WHERE 语法,支持时间参数(如 gmt_create > $bizdate) |
最佳实践
实践 | 建议 |
账号权限最小化 | 为同步任务创建专用账号,仅授 SELECT 权限 |
切割键选择 | 主键或索引列,避免无索引列导致全表扫描 |
网络打通 | 优先使用内网连接,提升传输性能 |
常见问题
Q:连接超时或被拒绝?
A:检查网络连通性与安全组规则,确认目标实例端口(默认 3306)已放通。
Q:读取大表时速度较慢?
A:设置合理的切割键以并行读取;确认切割键列上有索引,避免全表扫描。