TapData 信创数据源 | 国产信创数据库 TiDB 数据迁移指南,加速国产化进程,推进自主创新建设

news/2024/11/15 17:05:39/文章来源:https://www.cnblogs.com/tapdata/p/18334253

随着国家对自主可控的日益重视,目前在各个行业和区域中面临越来越多的国产化,采用有自主知识产权的国产数据库正在成为主流。长期以来,作为拥有纯国产自研背景的 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 作为主备集群。

根据迁移数据所在数据库类型、部署位置、业务数据规模大小、业务需求等因素,会有不同数据迁移选择。下面是一些常用的迁移工具汇总:

TiDB Data Migration (DM)

TiDB Lightning

TiCDC

TapData

Dumpling

Backup & Restore (BR)

sync-diff-inspector

以上是使用这些工具的场景、支持的上下游、优势和相关限制等信息,可根据实际需求选择合适的工具。

二、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)之间需处于同一内网且能正常通信。

① 准备工作

  1. 登录 TiDB 数据库,执行下述格式的命令,创建用于数据同步/开发任务的账号。
    CREATE USER 'username'@'host' IDENTIFIED BY 'password';
  • username:用户名。
  • host:允许该账号登录的主机,百分号(%)表示允许任意主机。
  • password:密码。

示例:创建一个名为 tapdata 的账号,允许从任意主机登录。
CREATE USER 'tapdata'@'%' IDENTIFIED BY 'your_passwd';

  1. 为刚创建的账号授予权限。
    `-- 授予指定库权限
    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 的连接

  1. 进入 TapData 控制台,在左侧导航栏,单击连接管理
  2. 单击页面右侧的创建,在弹框中,搜索并选择 TiDB
  3. 在跳转到的页面,根据下述说明填写 TiDB 连接信息:

  • 连接信息设置
    • 连接名称:填写具有业务意义的独有名称。
    • 连接类型:支持将 TiDB 数据库作为源或目标。
    • PD Server 地址:填写 PDServer 的连接地址和端口,默认端口号为 2379,本参数仅在作为源库时需填写。
    • 数据库地址:数据库连接地址。
    • 端口:数据库的服务端口,默认为 4000
    • 数据库名称:数据库名称,即一个连接对应一个数据库,如有多个数据库则需创建多个数据连接。
    • 账号、密码:数据库的账号和密码,账号的创建和授权方法,见准备工作。
  • 高级设置
    • 其他连接串参数:额外的连接参数,默认为空。
    • 时间类型的时区:默认为数据库所用的时区,您也可以根据业务需求手动指定。
    • 共享挖掘:挖掘源库的增量日志,可为多个任务共享源库的增量日志,避免重复读取,从而最大程度上减轻增量同步对源库的压力,开启该功能后还需要选择一个外存用来存储增量日志信息,本参数仅在作为源库时需填写。
    • 包含表:默认为全部,您也可以选择自定义并填写包含的表,多个表之间用英文逗号(,)分隔。
    • 排除表:打开该开关后,可以设定要排除的表,多个表之间用英文逗号(,)分隔。
    • agent 设置:默认为平台自动分配,您也可以手动指定。
    • 模型加载时间:当数据源中模型数量小于 10,000 时,每小时刷新一次模型信息;如果模型数据超过 10,000,则每天按照您指定的时间刷新模型信息。
    • 开启心跳表:当连接类型选择为源头和目标、源头时,支持打开该开关,由 Tapdata 在源库中创建一个名为 **_tapdata_heartbeat_table **的心跳表并每隔 10 秒更新一次其中的数据(数据库账号需具备相关权限),用于数据源连接与任务的健康度监测。
  • SSL 设置:选择是否开启 SSL 连接数据源,可进一步提升数据安全性,开启该功能后还需要上传 CA 文件、客户端证书、密钥填写客户端密码。更多介绍,见生成自签名证书。
    *提示:数据源需在数据复制/开发任务引用并启动后,心跳任务任务才会启动,此时您可以再次进入该数据源的编辑页面,即可单击查看心跳任务。
  1. 单击连接测试,测试通过后单击保存

*提示:如提示连接测试失败,请根据页面提示进行修复。

③ 创建 MySQL 的连接

  1. 参照 TiDB 连接创建流程,完成 MySQL 连接配置信息填写,添加数据源 MySQL:

  1. 测试 MySQL 连接:

④ 创建数据复制/开发任务

  1. 左侧导航栏点击数据复制,并点击右侧创建:

  1. 进入 DAG 页面,构建数据复制任务,通过拖拉拽的方式添加源与目标节点,并连接源与目标:

  1. 单击源与目标节点,即可按需对二者进行设置:

  1. 保存任务:

⑤ 任务启动与监控

  1. 启动任务,任务全量同步正常运行:

  1. 增量事件正常同步:

以上,便是借助 TapData 快速实现 MySQL 到 TiDB 的全、增量同步的模拟教程。

后续,我们还将陆续输出 GaussDB、人大金仓Kingbase、Oceanbase、神州通用、南大通用、OpenGauss、瀚高、 TDengine、TDSQL、VastBase等热门国产数据源的连接教程,欢迎关注 TapData 官方公众号,了解更多。

< 上一篇 达梦(Dameng)

【推荐阅读】

  • 如何高效整合分散数据,构建统一的实时数据平台?
  • 流式处理 vs 批处理,新数据时代的数据处理技术该如何选择?
  • TapData 医疗美容行业数字化白皮书上线
  • 战略资讯 | TapData 牵手思想科技,开启数据管理新篇章!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/774500.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于 LLM 制作了一个 SQL 方言转换器,未来的某天我可能会用上

事件起因,公司有从sqlserver转mysql的打算,源码里有不少sqlserver的语句,没有啥批量修改的好方法,人力解决最稳妥,所以基于大模型制作了一个方言转换器项目基于.NET6 MVC + Bootstrap 简单页面就没有去build前端了,jquery字符串拼接一把梭 项目已开源:https://github.co…

oracle产品周期

JDBC 下载链接:https://www.oracle.com/database/technologies/appdev/jdbc-downloads.html

计算机入门和服务器入门知识总结

一、计算机入门知识 1.1 什么是计算机 是一种能接收和存储信息,并按照存储在其内部的程序对海量数据进行自动、高速地处理,然后把处理结果输出的现代化智能电子设备发明计算机的目标是代替人类去高效且高质量地完成工作。 1.2 计算机发展史第一代计算机(1946-1957) 电子管时代…

会议海报/论文海报编辑流程

模板网站 https://www.posterpresentations.com/free-poster-templates.html 选择感兴趣的模板,下载对应的尺寸比如下载第一个,想要改变颜色设计的话,在ppt中最上面点击“设计-变体更多-颜色”,可以整体更改模板颜色 如果想要修改模板背景色之类的,比如改成白色,点击“视…

汽车测试及质量监控博览会(中国)——北汇信息邀请函

尊敬的先生/女士: 北汇信息将于 8.28-30 号参加汽车测试及质量监控博览会,展位号:7028,诚邀您莅临展位进行参观交流!汽车测试及质量监控博览会(中国)2024汽车测试及质量监控博览会(中国)(Testing Expo China – Automotive)是引领世界的国际博览会,展示汽车测试、开发…

golang对遍历目录操作的优化

一转眼go1.23都快发布了,时间过得真快。 不过今天我们把时间倒流回三年半之前,来关注一个在go1.16引入的关于处理目录时的优化。 对于go1.16的新变化,大家印象最深的可能是io包的大规模重构,但这个重构实际上还引进了一个优化,这篇文章要说的就是这个优化。 本文默认Linux…

老旧 Linux 系统搭建现代 C++ 开发环境 —— 基于 neovim

一台 CentOS7 老机器,能不能打造基于 vim 的现代化 IDE?本文以实操为主,带你一步步搭建自己的环境问题背景 公司配发的电脑是 macOS,日常开发需要访问 Linux 虚拟机,出于安全方面的考虑,只能通过跳板机登录。这阻止了大多数远程图形界面的使用,让写代码的工作变得复杂起…

UnitTest

UnitTest框架 是Python自带的单元测试框架,也可以用来做自动化测试(管理和执行用例) 核心要素(组成): 1、TestCase(测试用例) 2、TestSuite(测试套件):打包TestCase 3、TestRunner(测试执行):执行Testsuite 4、TestLoader(测…

帝国CMS网站什么是远程保存忽略地址?

什么是远程保存忽略地址?在此列表里的网站/地址将不会将文件远程保存本地扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MYSQL、HTML5、CSS3、Javascript等。承接:企业仿站、网站修改、网站改版、BUG修复、问题处理、二次开发、PSD转HT…

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version

错误记录: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near DEFAULT CHARSET=gbk at line 51 错误原因: 你新服务器上使用的是mysql4.0,而你原服务器使用的是4.1以上版本的原故。…

Got error 28 from table handler

错误记录: Got error 28 from table handler 错误原因: 数据库所在磁盘空间已满。 解决方案: 1.虚拟主机用户请联系空间商增加 MySQL 所在的磁盘空间或者清理一些无用文件; 2.独立主机用户请联系服务器管理员增加 MySQL 所在的磁盘空间或者清理一些无用文件。一般网站日志文…

帝国CMS网站采集入库错误 Fatal error: Call to undefined function: imagettfbbox() in ..../e/class/gd.php ..

采集入库错误 Fatal error: Call to undefined function: imagettfbbox() in ..../e/class/gd.php ..解答:你的空间的gd库不支持文字水印,推荐采用图片水印。扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MYSQL、HTML5、CSS3、Javascr…