随着国家对自主可控的日益重视,目前在各个行业和区域中面临越来越多的国产化,采用有自主知识产权的国产数据库正在成为主流。长期以来,作为拥有纯国产自研背景的 TapData,自是非常重视对于更多国产信创数据库的数据连接器支持,旗下产品已陆续与阿里云、华为云、麒麟软件、优炫数据库、Apache Doris、人大金仓、OceanBase 等国产数据库及操作系统完成产品生态集成认证或产品兼容互认证。
本专题将以 TapData 正在支持的各国产信创数据源为原点,提供详细的数据库同步、迁移教程,为有需求的用户提供更灵活的工具选择。本文将介绍的 TapData 数据源为——TiDB。
国产化浪潮之下,基础软件自主可控迫在眉睫,越来越多的国内企业开始从 Oracle、MySQL 这一类海外数据库向国产数据库迁移,TapData 的能力恰好满足企业快速、无痛实现迁移的需求,有效推动信创行业国产化建设更进一步。信创领域和基础软件设施的自主可控作为国家重点关注领域,全面国产化替代的进程仍在全速前进中。
同为国产基础软硬件生态的积极建设者,TapData 一直以来都在坚持拓展并持续深化与更多国产信创数据库的生态与战略伙伴关系,以期推动更多行业数据管理解决方案及创新应用的落地,提供更加广泛的基础设施选择及技术服务保障,从而为加速国产软硬件产品的应用普及与协同发展贡献力量。纯国产自研的背景更是为 TapData 的这一发展目标添翼。目前,TapData 已成功实现对主流国产数据库的广泛支持,以 TiDB 为例:
TiDB 由 PingCAP 自主设计、研发,为企业关键业务打造,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP) 的融合型分布式数据库,具备水平扩容或者缩容、金融级高可用、实时 HTAP、云原生的分布式数据库、兼容 MySQL 协议和 MySQL 生态等重要特性。适合高可用、强一致要求较高、数据规模较大等各种应用场景。核心场景包括金融行业场景、海量数据及高并发的 OLTP 场景、实时 HTAP 场景,以及数据汇聚、二次加工处理的场景。是目前较为知名的国产数据库产品之一。
那么,面临国产化推进需求的企业,如何高效实现面向 TiDB 的数据迁移?
一、TiDB 数据迁移方案
更多详情,参见《TiDB 技术文档-数据迁移》:
https://docs.pingcap.com/zh/tidb/stable/migration-overview
TiDB 在官方文档中,为大家提供了一些适用的数据迁移方案:
全量数据迁移
- 数据导入:使用 TiDB Lightning 将 Aurora Snapshot,CSV 文件或 SQL dump 文件的数据全量导入到 TiDB 集群。
- 数据导出:使用 Dumpling 将 TiDB 集群的数据全量导出为 CSV 文件或 SQL dump 文件,从而更好地配合从 MySQL 数据库或 MariaDB 数据库进行数据迁移。
- TiDB DM (Data migration) 也提供了适合小规模数据量数据库(例如小于 1 TiB)的全量数据迁移功能。
- 快速初始化 TiDB 集群:TiDB Lightning 提供的快速导入功能可以实现快速初始化 TiDB 集群的指定表的效果。请注意,使用快速初始化 TiDB 集群的功能对 TiDB 集群的影响极大,在进行初始化的过程中,TiDB 集群不支持对外访问。
- 增量数据迁移:使用 TiDB DM 从 MySQL,MariaDB 或 Aurora 同步 Binlog 到 TiDB,该功能可以极大降低业务迁移过程中停机窗口时间。
- TiDB 集群复制:TiDB 支持备份恢复功能,该功能可以实现将 TiDB 的某个快照初始化到另一个全新的 TiDB 集群。
- TiDB 集群增量数据同步:TiCDC 支持同构数据库之间的灾备场景,能够在灾难发生时保证主备集群数据的最终一致性。目前该场景仅支持 TiDB 作为主备集群。
根据迁移数据所在数据库类型、部署位置、业务数据规模大小、业务需求等因素,会有不同数据迁移选择。下面是一些常用的迁移工具汇总:
以上是使用这些工具的场景、支持的上下游、优势和相关限制等信息,可根据实际需求选择合适的工具。
二、TapData 高效迁移教程:以 MySQL → TiDB 为例
更多详情,参见《TapData 帮助文档-连接数据源-自建数据库 TiDB》:
https://docs.tapdata.net/prerequisites/on-prem-databases/tidb
完成 TapData Agent 部署后,即可跟随以下教程在 TapData 中添加 TiDB 数据源(支持版本:TiDB 6.0.0 及以上),后续可将其作为源或目标库来构建数据管道。这里我们将以 MySQL 为数据源,TiDB 为数据目标进行模拟演示。(*涉及工具版本为 Tapdata 本地部署版)
版本指路:
>>> 点击登录 Tapdata Cloud
>>> 申请试用 Tapdata 本地部署版
*注意:为保障数据的正常同步,TiDB 集群与 TapData 引擎(Agent)之间需处于同一内网且能正常通信。
① 准备工作
- 登录 TiDB 数据库,执行下述格式的命令,创建用于数据同步/开发任务的账号。
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
- username:用户名。
- host:允许该账号登录的主机,百分号(%)表示允许任意主机。
- password:密码。
示例:创建一个名为 tapdata 的账号,允许从任意主机登录。
CREATE USER 'tapdata'@'%' IDENTIFIED BY 'your_passwd';
- 为刚创建的账号授予权限。
-- 授予指定库权限
GRANT SELECT, INSERT, UPDATE, DELETE, ALTER, CREATE, CREATE ROUTINE, CREATE TEMPORARY TABLES, DROP ON database_name.* TO 'username';
-- 授予所有库权限
GRANT SELECT, INSERT, UPDATE, DELETE, ALTER, CREATE, CREATE ROUTINE, CREATE TEMPORARY TABLES, DROP ON *.* TO 'username';
- database_name:数据库名称。
- username:用户名。
② 创建 TiDB 的连接
- 进入 TapData 控制台,在左侧导航栏,单击连接管理。
- 单击页面右侧的创建,在弹框中,搜索并选择 TiDB。
- 在跳转到的页面,根据下述说明填写 TiDB 连接信息:
连接信息设置
- 连接名称:填写具有业务意义的独有名称。
- 连接类型:支持将 TiDB 数据库作为源或目标。
- PD Server 地址:填写 PDServer 的连接地址和端口,默认端口号为 2379,本参数仅在作为源库时需填写。
- 数据库地址:数据库连接地址。
- 端口:数据库的服务端口,默认为 4000。
- 数据库名称:数据库名称,即一个连接对应一个数据库,如有多个数据库则需创建多个数据连接。
- 账号、密码:数据库的账号和密码,账号的创建和授权方法,见准备工作。
高级设置
- 其他连接串参数:额外的连接参数,默认为空。
- 时间类型的时区:默认为数据库所用的时区,您也可以根据业务需求手动指定。
- 共享挖掘:挖掘源库的增量日志,可为多个任务共享源库的增量日志,避免重复读取,从而最大程度上减轻增量同步对源库的压力,开启该功能后还需要选择一个外存用来存储增量日志信息,本参数仅在作为源库时需填写。
- 包含表:默认为全部,您也可以选择自定义并填写包含的表,多个表之间用英文逗号(,)分隔。
- 排除表:打开该开关后,可以设定要排除的表,多个表之间用英文逗号(,)分隔。
- agent 设置:默认为平台自动分配,您也可以手动指定。
- 模型加载时间:当数据源中模型数量小于 10,000 时,每小时刷新一次模型信息;如果模型数据超过 10,000,则每天按照您指定的时间刷新模型信息。
- 开启心跳表:当连接类型选择为源头和目标、源头时,支持打开该开关,由 Tapdata 在源库中创建一个名为 _tapdata_heartbeat_table 的心跳表并每隔 10 秒更新一次其中的数据(数据库账号需具备相关权限),用于数据源连接与任务的健康度监测。
- SSL 设置:选择是否开启 SSL 连接数据源,可进一步提升数据安全性,开启该功能后还需要上传 CA 文件、客户端证书、密钥填写客户端密码。更多介绍,见生成自签名证书。
*提示:数据源需在数据复制/开发任务引用并启动后,心跳任务任务才会启动,此时您可以再次进入该数据源的编辑页面,即可单击查看心跳任务。
- 单击连接测试,测试通过后单击保存:
*提示:如提示连接测试失败,请根据页面提示进行修复。
③ 创建 MySQL 的连接
- 参照 TiDB 连接创建流程,完成 MySQL 连接配置信息填写,添加数据源 MySQL:
- 测试 MySQL 连接:
④ 创建数据复制/开发任务
- 左侧导航栏点击数据复制,并点击右侧创建:
- 进入 DAG 页面,构建数据复制任务,通过拖拉拽的方式添加源与目标节点,并连接源与目标:
- 单击源与目标节点,即可按需对二者进行设置:
- 保存任务:
⑤ 任务启动与监控
- 启动任务,任务全量同步正常运行:
- 增量事件正常同步:
以上,便是借助 TapData 快速实现 MySQL 到 TiDB 的全、增量同步的模拟教程。
后续,我们还将陆续输出 GaussDB、人大金仓Kingbase、Oceanbase、神州通用、南大通用、OpenGauss、瀚高、 TDengine、TDSQL、VastBase等热门国产数据源的连接教程,欢迎关注 TapData 官方公众号,了解更多。
【推荐阅读】
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。