资讯动态

TDengine 零代码数据接入:通过 taosExplorer 将 MySQL 数据迁移/同步至 TDengine 完整指南

发布时间:2026/9/12 16:09:43 来源:尧图企业网站定制
TDengine 零代码数据接入通过 taosExplorer 将 MySQL 数据迁移/同步至 TDengine 完整指南【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址: https://gitcode.com/GitHub_Trending/tde/TDengine本文是 TDengine 零代码数据接入系列中针对 MySQL 数据源的操作指南完整讲解如何在 taosExplorer 图形界面中创建从 MySQL 到当前 TDengine 集群的数据迁移与实时同步任务。读者将掌握数据源与认证配置、字符集与 SSL 协商、基于时间占位符的 SQL 模板、子表拆分防乱序、数据映射提取/过滤/映射、并发与批量参数调优以及异常处理策略等全部实操要点可直接上手搭建 MySQL → TDengine 的生产级数据管道。功能概述为什么用 TDengine 接入 MySQL 数据MySQL 是最流行的关系型数据库之一大量 IoT 与工业互联网系统曾长期使用 MySQL 存储设备上报的数据。但随着接入设备数量持续增长、用户对数据实时反馈的要求不断提高MySQL 在高并发写入、海量时序数据压缩与查询性能上逐渐无法满足业务需求。TDengine TSDB-Enterprise 提供内置的 MySQL 连接器能够高效地从 MySQL 中读取数据并写入 TDengine实现两类典型场景历史数据迁移将 MySQL 中积压的历史时序数据一次性、分段地导入 TDengine实时数据同步持续订阅 MySQL 中新增数据实现准实时的双向业务衔接。注意本文所述功能属于TDengine TSDB-Enterprise 专属特性Enterprise feature开源版 TDengine TSDB-OSS 不包含这些能力详见 Enterprise 特性声明。从源码结构看该能力由外部连接器External Connector模块承载extConnectorInt.h 中定义了以mysql / postgresql / influxdb为名称的 Provider 注册表并通过mysqlProvider及其mysqlProviderInit/Cleanup/ThreadCleanup生命周期接口对外暴露 MySQL 连接能力。前置条件在创建任务前请确认部署的是TDengine TSDB-Enterprise且 taosExplorer 已正常启动浏览器可访问 taosExplorer 界面其默认监听在 TDengine 所在主机IP的6060 端口目标 TDengine 集群中已有或可在界面中即时创建用于接收数据的数据库源 MySQL 数据库账号具备可读取目标库/表的权限。操作流程概览整个任务的创建过程如下打开 taosExplorer添加数据源Data In → Add Task配置源 MySQL 的连接、认证与连接选项并做连通性检查配置 SQL 查询模板、时间窗口与取数粒度配置数据映射列提取/拆分、过滤、字段映射按需调整高级选项与异常处理策略提交任务并在数据源列表页跟踪执行状态。添加数据源在浏览器中打开 taosExplorer位于运行 TDengine 的主机名或 IP 的 6060 端口按以下步骤新建数据接入任务在左侧主菜单中点击Data In然后点击Add Task在Name字段中输入该数据接入任务的唯一名称从Type下拉列表中选择MySQL可选如果该任务需要 Agent 支持从Agent下拉列表中选择对应 Agent也可以点击Create New Agent立即创建Agent 的安装与说明可参考 安装 taosX-Agent从Target DB下拉列表中选择本任务数据写入的目标数据库也可以点击Create Database立即创建。配置连接信息在Connection Configuration连接配置区域填写源 MySQL 数据库的连接信息包含以下字段连接信息源 MySQL 数据库的主机地址、端口、库名等连接参数用户User源 MySQL 数据库的用户名该用户必须拥有对应组织内的读取权限密码Password上述用户在该源 MySQL 数据库中的登录密码。配置连接选项字符集Character Set设置连接使用的字符集默认值为utf8mb4。utf8mb4自 MySQL 5.5.3 起支持若连接的 MySQL 版本更旧建议改为utf8。可选值包括utf8、utf8mb4、utf16、utf32、gbk、big5、latin1、ascii。SSL 模式SSL Mode设置是否与服务器协商安全的 SSL TCP/IP 连接以及协商优先级。默认值为PREFERRED。可选值包括取值含义DISABLED不建立 SSL 连接PREFERRED优先尝试 SSL服务器不支持时回退到非加密连接REQUIRED强制要求 SSL服务器不支持则连接失败配置完成后点击Check Connectivity检查连通性按钮验证上述填写的信息能否正常从源 MySQL 数据库中取到数据。配置 SQL 查询SQL 查询SQL Query区域是整个迁移任务取数的核心包含以下配置项。子表字段Subtable Field用于拆分目标超级表supertable的子表是一条select distinctSQL 语句用于查询指定字段组合的非重复项通常与 transform 中的tag相对应。该配置主要用于解决数据迁移乱序问题且必须与SQL Template配合使用否则无法达到预期效果。使用示例如下填写子表字段语句select distinct col_name1, col_name2 from table表示用源表中的col_name1、col_name2两个字段来拆分目标超级表的子表在SQL Template中添加子表字段占位符例如在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 Template用于查询的 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。时间窗口与取数粒度开始时间Start Time数据迁移的开始时间必填结束时间End Time数据迁移的结束时间可留空。若设置迁移任务到达结束时间后会自动停止若留空则持续同步实时数据任务不会自动停止查询间隔Query Interval分段查询数据的时间间隔默认1 天。为避免一次性查询大量数据每个数据同步子任务会按该间隔对取数进行分段延迟时长Delay Duration在实时数据同步场景中为避免因写入延迟导致丢数据每个同步任务会从延迟时长之前的位置开始读取数据。配置数据映射在Data Mapping数据映射区域填写与数据映射相关的配置参数。首先点击Retrieve from Server从服务端获取按钮从 MySQL 服务器拉取样例数据。Extract or Split from Column从列提取或拆分填写需要从消息体中提取或拆分的字段。例如将vValue字段拆分为vValue_0与vValue_1选择拆分提取器填入分隔符,与数量2Filter过滤填写过滤条件。例如写入Value 0则只有 Value 大于 0 的数据才会写入 TDengineMapping映射选择要映射到的 TDengine 超级表以及映射到超级表的列Preview预览点击预览查看映射结果确认字段与取值是否符合预期。配置高级选项Advanced Options高级选项区域默认折叠点击右侧展开包含以下参数Maximum Read Concurrency最大读取并发数据源连接数或读取线程数的上限。默认值0表示由连接器自动配置当源响应较慢、需要提高并发时适当调大该值也可在需要调整资源占用时修改Batch Size批量大小单次发送的最大消息数或行数默认10000。部分数据源还提供Write Concurrency写入并发用于指定可并发写入 TDengine 的任务数。与健康监控相关的选项监控周期、繁忙阈值、写队列长度、写错误阈值等可参考 Health Status 章节。配置异常处理策略Exception Handling Strategy异常处理策略区域默认折叠点击展开。通用策略包括Archive归档将无效数据写入归档文件默认路径为${data_dir}/tasks/id/datetime不写入目标数据库Discard丢弃忽略无效数据Error报错报告错误Cache缓存当目标连接失败或资源不足时将数据写入缓存文件待目标恢复后再摄入。可针对下列异常场景分别配置处理策略异常场景可选策略目标连接超时归档 / 丢弃 / 报错 / 缓存目标数据库不存在归档 / 丢弃 / 报错表不存在归档 / 丢弃 / 报错 / 自动建表并重试主时间戳超出范围now - keep1至now 100y归档 / 丢弃 / 报错主时间戳为 null归档 / 丢弃 / 报错 / 使用当前时间复合主键为 null归档 / 丢弃 / 报错表名超过 192 个字符归档 / 丢弃 / 报错 / 截断 / 截断并归档表名含非法字符如.归档 / 丢弃 / 报错 / 用配置的字符串替换非法字符表名模板变量为 null丢弃 / 留空变量 / 用配置的字符串替换列不存在归档 / 丢弃 / 报错 / 自动补列并重试列名超过 64 个字符归档 / 丢弃 / 报错列值超过定义长度归档 / 丢弃 / 报错 / 截断 / 截断并归档也可启用Automatic Column Expansion自动扩列修改表结构后重试其他数据错误归档 / 丢弃 / 报错其余相关设置包括Connection Timeout连接超时目标连接超时时间秒取值范围1600Temporary Storage Location临时存储位置相对于${data_dir}/tasks/id/的路径Archive Retention Days归档保留天数非负整数0表示不限Archive Available Space归档可用空间取值范围0655350表示不限Archive Location归档位置相对于${data_dir}/tasks/id/的路径Archive Write Failure Strategy归档写入失败策略删除旧文件 / 丢弃数据 / 报错并停止任务。上述策略的完整定义可查阅 异常处理策略资源文件。提交任务并跟踪状态点击Submit按钮完成从 MySQL 到 TDengine 的数据同步任务创建随后返回Data Source List数据源列表页面即可查看任务执行状态、监控运行指标并在出现异常时依据上文策略查看归档或排查日志。实现原理与源码佐证从源码层面看MySQL 连接器在 TDengine 中作为外部连接器External Connector的一个 Provider 实现extConnectorInt.h 中定义了 Provider 名称注册表mysql与postgresql、influxdb并列说明 MySQL 是官方内置支持的数据源类型之一该文件同时声明了mysqlProvider第 194 行及其生命周期函数mysqlProviderInit、mysqlProviderCleanup、mysqlProviderThreadCleanup第 196-198 行对应连接器的初始化、资源回收与线程级清理为任务运行时的连接管理与并发读取提供底层支撑外部连接器通过extConnectorLoadRuntimeLibrary/extConnectorLoadRuntimeSymbol/extConnectorCloseRuntimeLibrary第 203-205 行动态加载运行时库与符号并在 extConnectorQuery.c 中完成取值与类型转换value conversion这解释了本文所述“从服务端获取样例数据”“拆分/过滤/映射”等界面能力背后的数据读取与转换链路。理解这套 Provider 机制有助于在遇到连接异常、并发不足或数据类型转换问题时快速定位是连接器加载、查询执行还是值转换环节出现故障。总结通过 taosExplorer 的零代码界面你可以在不编写任何代码的情况下完成 MySQL 到 TDengine 的历史数据迁移与实时同步正确配置连接与认证、字符集与 SSL 模式利用${start}/${end}等时间占位符与子表字段拆分保证取数有序借助数据映射实现列提取、过滤与 tag 映射再配合读取并发、批量大小和精细化的异常处理策略即可构建稳定、可控、可观测的数据管道将 MySQL 中积压的海量时序数据平稳迁入 TDengine为后续的时序分析、实时告警与业务创新奠定数据基础。【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址: https://gitcode.com/GitHub_Trending/tde/TDengine创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价