随着国家对自主可控的日益重视,目前在各个行业和区域中面临越来越多的国产化,采用有自主知识产权的国产数据库正在成为主流。长期以来,作为拥有纯国产自研背景的 TapData,自是非常重视对于更多国产信创数据库的数据连接器支持,旗下产品已陆续与阿里云、华为云、麒麟软件、优炫数据库、Apache Doris、人大金仓、OceanBase 等国产数据库及操作系统完成产品生态集成认证或产品兼容互认证。
本专题将以 TapData 正在支持的各国产信创数据源为原点,提供详细的数据库同步、迁移教程,为有需求的用户提供更灵活的工具选择。本文将介绍的 TapData 数据源为——TDengine。
国产化浪潮之下,基础软件自主可控迫在眉睫,越来越多的国内企业开始从 Oracle、MySQL 这一类海外数据库向国产数据库迁移,TapData 的能力恰好满足企业快速、无痛实现迁移的需求,有效推动信创行业国产化建设更进一步。信创领域和基础软件设施的自主可控作为国家重点关注领域,全面国产化替代的进程仍在全速前进中。
同为国产基础软硬件生态的积极建设者,TapData 一直以来都在坚持拓展并持续深化与更多国产信创数据库的生态与战略伙伴关系,以期推动更多行业数据管理解决方案及创新应用的落地,提供更加广泛的基础设施选择及技术服务保障,从而为加速国产软硬件产品的应用普及与协同发展贡献力量。纯国产自研的背景更是为 TapData 的这一发展目标添翼。目前,TapData 已成功实现对主流国产数据库的广泛支持,以 TDengine 为例:
TDengine 是一款专为物联网、工业互联网等场景设计并优化的大数据平台,它能安全高效地将大量设备、数据采集器每天产生的高达 TB 甚至 PB 级的数据进行汇聚、存储、分析和分发,对业务运行状态进行实时监测、预警,提供实时的商业洞察。其核心模块是高性能、集群开源、云原生、极简的时序数据库 TDengine OSS。
此外,作为 2024年8月墨天轮中国数据库流行度排行榜上的时序数据库 Top1,TDengine 广泛适用于 IoT、工业互联网、车联网、IT 运维、能源、金融证券等领域场景。截至目前,已在 GitHub 上获得 23.1k Star,曾多次在 GitHub 全球趋势排行榜上排名第一,全球运行的 TDengine 实例数超过 588.4k,用户遍布全球。
那么,如何高效实现 TDengine 的数据同步?
更多详情,参见《TDengine 产品文档》:https://docs.taosdata.com/
关于 TDengine 的迁移和同步,有多种适用的方案和工具可供选择,其中比较常见的包括手动方案,以及基于 DataX 或是 TapData 这一类数据同步工具的现代化数据解决方案。
手动迁移与同步是最基本的方案,通常适用于小规模数据迁移或一次性数据迁移任务。该方法涉及从源数据库导出数据,通过脚本或工具将数据转换为 TDengine 兼容的格式,最后将数据导入 TDengine。尽管手动方案可以完全控制迁移过程,但其操作也相对复杂,容易出现错误,且不适合大规模数据迁移或需要频繁同步的场景。
手动迁移数据需要注意以下两个问题:
1)在磁盘中存储导出数据时,磁盘需要有足够的存储空间以便能够充分容纳导出的数据文件。为了避免全量数据导出后导致磁盘文件存储紧张,可以采用部分导入的模式,对于归属于同一个超级表的时间线优先导出,然后将导出部分的数据文件导入到 TDengine 系统中。
2)在系统全负载运行下,如果有足够的剩余计算和 IO 资源,可以建立多线程的导入机制,最大限度地提升数据迁移的效率。考虑到数据解析对于 CPU 带来的巨大负载,需要控制最大的并行任务数量,以避免因导入历史数据而触发的系统整体过载。
DataX
DataX 是阿里云 DataWorks 数据集成的开源版本,支持多种数据源与目标之间的数据迁移与同步。通过配置 DataX,可以实现从关系型数据库、Hadoop、NoSQL 等多种数据源向 TDengine 的数据同步。DataX 提供了简洁的 JSON 配置方式,用户只需定义源数据、目标数据和转换逻辑即可。DataX 适合需要频繁同步且数据量较大的场景,但对实时性要求较高的场景支持有限。
除此之外,为了方便历史数据的迁移工作,TDengine 为 DataX 提供了适配 TDengine 3.0 的插件—— TDengine30Reader 和 TDengine30Writer,能够将数据自动写入到 TDengine 中,需要注意的是 DataX 的自动化数据迁移只能够支持单值模型的数据迁移过程。目前可以做到 OpenTSDB、MySQL、TDengine(Time Series DataBase,TSDB) 等不同数据源之间的数据迁移。
TDengine30Reader 提供的功能:
支持通过 SQL 进行数据筛选;
根据时间间隔进行任务切分;
支持 TDengine 的全部数据类型;
支持批量读取,通过 batchSize 参数控制批量拉取结果集的大小,提高读取性能。
TDengine30Writer 支持的功能:
支持 OpenTSDB 的 json 格式的行协议,使用 TDengine 的 schemaless 方式写入 TDengine。
支持批量写入,通过 batchSize 参数控制批量写入的数量,提高写入性能。
TapData
TapData 专注于激发实时数据的应用价值,是一款以低延迟数据移动为核心优势构建的现代数据平台型工具,以出色的 CDC(Change Data Capture,变更数据捕获)能力和集中数据中心架构为关键特性,旨在以新颖的方式解决长期存在的数据集成问题。TapData 内置 100+ 数据连接器,支持多种数据源和目标之间的实时数据集成,且具有高度的可扩展性和自动化特性。其可视化配置界面简化了复杂的数据同步流程,适合企业级的实时数据集成需求。
DataX vs Dataworks vs TapData
工具 | DataX | Dataworks | TapData | 备注 |
安装部署 | 复杂 | 云版产品无需部署 | 简单 | TapData 安装使用向导方式配置,可快速安装部署,只依赖存储数据库和 JDK,无需其他技术栈。 |
日常维护 | 复杂 | 简单 | 简单 | TapData 集群有可视化监控页面,可以可视化操作集群中的服务合作。 |
全量同步 | 支持 | 支持 | 支持 | TapData 支持全量数据同步,可定时同步全量数据。 |
实时 CDC 同步 | 不支持 | 大部分数据源不支持,不支持跨时区同步 | 支持 | TapData 支持主流数据库的 CDC 同步,可对本地数据库和云端数据库进行实时同步数据。DataWorks 的实时同步不支持在阿里云内跨时区同步数据,如需同步,需引入其他方案处理。DataX 不支持实时数据同步,如需同步,需引入其他方案处理。 |
DDL | 不支持 | 不支持 | 支持 | TapData 支持源库出现 DDL 操作时,目标端自动完成 DDL 操作。 |
高可用 | 不支持 | 不支持 | 支持 | TapData 支持高可用部署方式,避免节点故障导致数据同步中断。 |
自动建表 | 不支持 | 不支持 | 支持 | TapData 支持自动构架和为数据表自动建表,异构数据自动建表。 |
可视化配置任务 | 不支持 | 支持 | 支持 | TapData 有可视化拖拉拽功能的任务配置,学习成本低。Dataworks 是表单式配置。 |
可视化任务监控 | 不支持 | 支持 | 支持 | TapData 有完整的可视化监控界面,可以查看任务的执行状态,监控日志功能,查看异常错误日志信息。 |
实时数据校验 | 不支持 | 不支持 | 支持 | TapData 支持实时数据校验功能,可通过多种方式检测同步数据的准确性。 |
监控告警 | 不支持 | 支持 | 支持 | TapData 支持任务运行状态告警,异常状态告警功能。 |
支持服务 | 不支持 | 支持 | 支持 | TapData 提供完善的售后服务支持,为数据同步保驾护航。 |
更多详情,参见《TapData 帮助文档-连接数据源-自建数据库 TDengine》:
https://docs.tapdata.net/prerequisites/on-prem-databases/tdengine
完成 TapData Agent 部署后,即可跟随以下教程在 TapData 中添加 TDengine 数据连接(支持版本:TDengine 3.x),后续可将其作为源或目标库来构建数据管道。这里我们将以 TDengine 为数据源,RDS MySQL 为数据目标进行模拟演示。(*涉及工具版本为 TapData 本地部署版)
版本指路:
由于TapData 采用 REST 方式连接至 TDengine,在配置连接前,您需要在 TDengine 所属服务器上执行 sudo systemctl start taosadapter
命令开启 taosAdapter 服务。
*提示:如希望 TapData 读取 TDengine 的增量数据,您还需要在 Agent 所属服务器上安装 TDengine 客户端驱动。
进入 TapData 控制台,在左侧导航栏,单击连接管理。
单击页面右侧的创建,在弹框中,搜索并选择 TDengine。
在跳转到的页面,根据下述说明填写 PolarDB 连接信息:
连接名称:填写具有业务意义的独有名称。
连接类型:支持同时作为源或目标。
地址:填写数据库的连接地址。
端口:填写 taosAdapter 的服务端口,默认为 6041。
数据库:数据库名称,一个连接对应一个数据库,如有多个数据库则需创建多个数据连接。
账号、密码:分别填写数据库账号和密码。
时区:默认为数据库所用的时区,您也可以根据业务需求手动指定。
包含表:默认为全部,您也可以选择自定义并填写包含的表,多个表之间用英文逗号(,)分隔。
排除表:打开该开关后,可以设定要排除的表,多个表之间用英文逗号(,)分隔。
Agent 设置:默认为平台自动分配,您也可以手动指定 Agent。
4. 单击连接测试,测试通过后单击保存:
*提示:如提示连接测试失败,请根据页面提示进行修复。
1. 参照 TDengine 连接创建流程,完成 RDS MySQL 连接配置信息填写,添加数据目标 :
2. 测试 RDS MySQL 的连接:
1. 左侧导航栏点击数据复制,并点击右侧创建:
2. 进入 DAG 页面,构建数据复制任务,通过拖拉拽的方式添加源与目标节点,并连接源与目标
3. 单击源与目标节点,即可按需对二者进行设置:
4. 保存任务
2. 增量同步开启
以上,便是借助 TapData 快速实现 TDengine 到 RDS MySQL 的全、增量同步的模拟教程。
后续,我们还将陆续输出 GaussDB、人大金仓Kingbase、神州通用、南大通用、OpenGauss、瀚高、TDSQL、VastBase 等热门国产数据源的连接教程,欢迎关注 TapData 官方公众号,了解更多。
【推荐阅读】: