TDengine 零代码接入 MySQL:从历史迁移到实时同步的完整实践指南

发布时间:2026/9/13 13:59:44
TDengine 零代码接入 MySQL:从历史迁移到实时同步的完整实践指南
TDengine 零代码接入 MySQL从历史迁移到实时同步的完整实践指南【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址: https://gitcode.com/GitHub_Trending/tde/TDengine本篇指南基于 TDengine 官方文档讲解如何通过 taosExplorer 图形界面创建 MySQL 到 TDengine 的数据写入任务覆盖新增数据源、连接与认证配置、SQL 查询模板、时间占位符、数据映射与异常处理策略等全部配置环节并结合文档仓库中的配套资料拆解子表拆分、乱序规避与断点恢复等关键机制。读完本文你能够独立完成一个从 MySQL 迁移历史数据并持续同步实时数据的任务。功能概述与版本要求MySQL 是最流行的关系型数据库之一很多系统都曾经或正在使用 MySQL 存储物联网、工业互联网等设备上报的数据。但随着接入系统设备量日益增长、用户对数据实时性反馈的要求不断提高MySQL 往往已无法满足业务需求。自TDengine 企业版 3.3.0.0开始TDengine 可以高效地从 MySQL 读取数据并写入 TDengine支持两种典型场景历史数据迁移指定「起始时间」与「结束时间」将存量数据一次性搬迁到 TDengine实时数据同步「结束时间」留空任务持续拉取增量数据不会自动停止。在数据源支持范围上官方文档的零代码写入总览页列明 MySQL 的受支持版本为5.6、5.7、8.0见 零代码数据写入总览 中的数据源表使用该能力前请确认源库版本在此范围内且运行的是 TDengine 企业版该写入平台由 taosExplorer 与 taosX 组件提供社区版不包含 taosX。创建 MySQL 写入任务1. 进入新增数据源页面登录 taosExplorer 后在左侧导航进入数据写入页面点击新增数据源按钮进入新增数据源页面2. 配置基本信息名称任务名称例如test_mysql_01类型在下拉框中选择MySQL选择完成后页面字段会随之变化代理非必填项。如有需要可选择指定代理也可点击右侧创建新的代理按钮新建目标数据库必填项可点击右侧创建数据库按钮先创建一个 TDengine 数据库作为数据落库位置。3. 配置连接信息与认证信息在连接配置区域填写源 MySQL 数据库的连接信息主机地址、端口等随后在认证区域填写用户源 MySQL 数据库的用户该用户必须拥有读取权限密码上方用户的登录密码。4. 配置连接选项字符集设置连接的字符集默认utf8mb4MySQL 5.5.3 及以上支持该字符集如需连接旧版本建议改为utf8。可选项为utf8、utf8mb4、utf16、utf32、gbk、big5、latin1、asciiSSL 模式设置是否与服务器协商安全 SSL TCP/IP 连接或以何种优先级协商默认值为PREFERRED。可选项模式含义DISABLED不协商 SSLPREFERRED优先协商 SSL服务端不支持则降级默认REQUIRED必须使用 SSL否则连接失败填写完成后点击检查连通性按钮验证上述信息能否正常读取源 MySQL 数据库的数据。连通性检查是后续步骤的基础建议在提交任务前确认通过。5. 配置 SQL 查询采集配置这是 MySQL 数据源最核心的区域决定了「从哪里查、按什么节奏查」。子表字段用于拆分子表的字段是一条select distinct的 SQL 语句查询指定字段组合的非重复项通常与 transform 中的 tag 相对应。此项配置主要为了解决数据迁移乱序问题需要结合SQL 模板共同使用否则不能达到预期效果。典型用法分三步子表字段填写select distinct col_name1, col_name2 from table表示使用源表中的col_name1与col_name2拆分目标超级表的子表在 SQL 模板中添加入参占位符例如select * from table where ts ${start} and ts ${end} and ${col_name1} and ${col_name2}。运行时${col_name1}、${col_name2}会展开为等值条件如col_name1deviceA、col_name21而不是裸列名在transform中配置col_name1与col_name2两个 tag 映射。SQL 模板用于查询的 SQL 语句模板。约束条件为SQL 语句中必须包含时间范围条件且开始时间和结束时间必须成对出现。模板中的时间范围由源数据库中代表时间的列与下列占位符组合而成占位符时间格式示例${start}、${end}RFC3339 带时区时间戳2024-03-14T08:00:000800${start_no_tz}、${end_no_tz}不带时区的 RFC3339 字符串2024-03-14T08:00:00${start_date}、${end_date}仅日期2024-03-14为避免迁移数据乱序建议在查询语句中添加排序条件例如order by ts asc。起始时间必填迁移数据的起始时间。结束时间可留空设置后任务执行到结束时间即自动停止留空则持续同步实时数据任务不会自动停止。查询间隔分段查询数据的时间间隔默认1 天。为避免一次查询数据量过大每个同步子任务会按查询间隔拆分时间段分批查询。延迟时长与查询间隔配合使用。在实时同步场景中为避免延迟到达迟到的数据丢失每次同步会在「时间间隔 延迟时长」的时间点触发查询。例如查询间隔为 3600s、延迟时长为 60s则查询任务会在 09:01 触发查询源数据库中 08:00–09:00 时间段的数据。6. 配置数据映射在数据映射区域填写映射相关参数点击从服务器检索按钮从 MySQL 服务器获取示例数据从列中提取或拆分填写从字段中提取或拆分的规则。例如将vValue字段拆分成vValue_0和vValue_1两个字段选择split提取器separator 填写分割符,number 填写2过滤填写过滤条件。例如填写Value 0则只有 Value 大于 0 的数据才会被写入 TDengine映射选择要映射到 TDengine 的超级表以及映射到超级表的列点击预览查看映射结果确认无误后再提交。这里的提取、过滤与映射能力属于零代码写入平台通用的内置 ETL 能力解析JSON Path/正则、从列中提取或拆分split/正则/转换、过滤布尔表达式、映射字段到超级表列的转换。更完整的表达式语法与函数列表如parse_int、between_time_range、format 格式化、expr 数学运算等见 零代码数据写入总览中的数据提取、过滤和转换章节。7. 配置高级选项高级选项区域默认折叠点击右侧展开。不同数据源展示的字段略有差异MySQL 常见配置项见 高级选项说明最大读取并发数限制数据源连接数或读取线程数默认0表示由采集器自动配置数据源响应较慢时可适当增大批次大小单次发送的最大消息数或行数默认值因数据源而异常见为1000或10000写入并发数量部分数据源提供表示同时写入 TDengine 的并发任务数健康监测选项健康监测时段、Busy 状态阈值、写入队列长度、写入错误阈值等用于配合任务列表中的健康状态展示。8. 配置异常处理策略异常处理策略区域同样默认折叠见 异常处理策略说明。通用处理策略有三种归档写入归档文件不写入目标库、丢弃忽略、报错任务报错。MySQL 同步任务中常见的异常项及可选策略包括异常项可选处理策略目标库连接超时归档、丢弃、报错、缓存目标库恢复后重新入库目标库不存在归档、丢弃、报错表不存在归档、丢弃、报错、自动建表主键时间戳溢出检查 now − keep1 至 now 100y 范围归档、丢弃、报错主键时间戳空归档、丢弃、报错、使用当前时间复合主键空归档、丢弃、报错表名长度溢出子表名最大 192 字符归档、丢弃、报错、截断、截断且归档表名非法字符如符号.归档、丢弃、报错、非法字符替换为指定字符串列名不存在归档、丢弃、报错、自动增加缺失列列长度溢出归档、丢弃、报错、截断、截断且归档数据异常归档、丢弃、报错此外还有归档与缓存的存储参数连接超时1~600 秒、临时存储文件位置实际生效为${data_dir}/tasks/:id/{location}、归档数据保留天数、归档数据可用空间、归档数据文件位置、归档失败处理策略删除旧文件/丢弃/报错并停止任务等。对于迁移历史数据这类长周期任务建议将关键异常项配置为「归档」配合保留天数便于事后补数。9. 提交任务并查看执行情况点击提交按钮即完成 MySQL 到 TDengine 的数据同步任务创建。回到数据源列表页面可查看任务状态与执行情况任务提交成功后状态切换为「运行中」失败时可通过任务的活动日志查找错误原因。断点恢复与任务可靠性从文档仓库的总览页可以看出taosX 的 MySQL 数据源支持断点恢复MySQL以及 PostgreSQL、Oracle、SQL Server、MongoDB 等会持久化记录上次查询的时间戳任务重新启动后从记录的时间戳继续查询不会从头重扫。结合上文「延迟时长」机制——查询时间点滞后于数据到达时间——二者共同降低了重启与迟报两类场景下丢数的风险。另外自v3.3.5.0起任务管理列表提供健康状态Ready/Idle/Active/Pending/Busy/Bounce/SourceError/SinkError/Fatal 等配合高级选项中的健康监测阈值可以直观判断 MySQL 同步任务是否出现源端错误、写入积压或数据异常状态含义见 总览页健康状态章节。关键配置速查配置项位置关键要点字符集连接选项默认utf8mb4旧版 MySQL 建议utf8SSL 模式连接选项默认PREFERRED强安全场景用REQUIRED子表字段SQL 查询select distinct语句须与 SQL 模板占位符、tag 映射三者配合解决乱序SQL 模板SQL 查询必须含成对时间范围条件支持${start}/${end}等 3 类占位符建议order by ts asc起始/结束时间SQL 查询起始必填结束留空即实时同步查询间隔SQL 查询默认 1 天分段拉取避免单次数据量过大延迟时长SQL 查询与查询间隔配合容忍迟到数据过滤/映射数据映射过滤表达式为 true 才入库映射到目标超级表批次大小高级选项常见默认 1000 或 10000异常处理异常处理策略归档/丢弃/报错/自动建表等迁移任务建议归档便于补数参考文档MySQL 数据接入原始文档零代码数据写入总览数据源支持列表、ETL 能力、健康状态、断点恢复高级选项说明异常处理策略说明同类关系型数据源PostgreSQL、Oracle、SQL Server【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址: https://gitcode.com/GitHub_Trending/tde/TDengine创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考