TDengine 到 MySQL 数据同步
· 阅读需 5 分钟
简述
TDengine 是一款开源、高性能、云原生的时序数据库,专为物联网、车联网、工业互联网、金融、IT 运维等场景优化设计。在工业自动化的时代,时序数据库在电力、轨道交通、智能制造等领域有着广泛的应用。
MySQL 是 全球广泛使用的开源关系型数据库,能够高效处理大量数据和复杂查询需求,并且具有较强的稳定性和可靠性。
本文主要介绍如何通过 CloudCanal 实现 TDengine 到 MySQL 数据迁移同步。
应用场景
- 数据备份与归档:将 TDengine 的数据迁移到 MySQL 作为备份或归档,确保数据长期保存和恢复,提升数据的安全性和高可用性。
- 复杂查询:MySQL 支持复杂 SQL 查询和事务处理,适合需要对时序数据进行深度分析或关联查询的场景。
- 数据集成与共享:企业通常会同时使用多种数据库,将 TDengine 的数据同步到 MySQL,便于将时序数据与其他业务数据进行关联分析。
- 数据分析:将 TDengine 的数据同步到 MySQL 后,可再通过 CloudCanal 将数据同步到其他分析型数据库或数仓,支持更复杂的数据分析和操作,满足更多业务需求。
技术点
增量数据同步整体流程
CloudCanal 基于 Query Topic 实现 TDengine 到 MySQL 的数据同步,同步流程如下:
- 创建 Topic,通过 Topic 订阅 TDengine 数据库的变更事件(无 法捕获 DELETE 事件)。
- 执行增量数据同步。
- 捕获变更事件,记录表级 offset 位点。
表级别多位点
CloudCanal 支持 TDengine 源端表级别多位点,即可以在表级别进行多位点的配置,确保每个表能够消费各自对应的增量同步位点。位点的具体体现为:
[
{
"db": "us_power",
"table": "s1",
"topic": "canalt7g262cm6jy_increment_us_power_s1",
"offset": 1010,
"vgroup": 3,
"timestamp": 1715828416114
},
{
"db": "us_power",
"table": "s2",
"topic": "canalt7g262cm6jy_increment_us_power_s2",
"offset": 2093,
"vgroup": 3,
"timestamp": 1715828311123
},
...
]
纳秒级时间戳同步
TDengine 最高支持纳秒级 Timestamp 类型,而 MySQL 最高支持微秒级 Timestamp 类型。CloudCanal 支持纳秒级时间戳同步,将 TDengine 纳秒级时间戳转换为 MySQL BIGINT 类型数据。
