简介

TiDB 是一款由 PingCAP 开源的 分布式联系型 数据库,主打 HTAP 才能,具备 优异的伸缩性。其开源社区强大,产品颇具流行度。

数据同步场景中,TiDB 官方供给如 TiCDC、TiDB Binlog 等工具,但为了满足用户将 TiDB 数据搬迁同步到愈加广泛数据库的需求,CloudCanal 近期推出了 TiDB 为源端的数据搬迁同步 功用,本文将简要介绍该才能的落地。

功用介绍

方针数据库和才能

方针端数据源 结构搬迁 数据初始化 增量同步 数据校验 数据订正
MySQL 支撑 支撑 支撑 支撑 支撑
TiDB 支撑 支撑 支撑 支撑 支撑

方针数据源不断增加中

TiDB 源端特色才能

不依赖 TiCDC

TiDB 为源端的增量数据同步完成有两种方式

  • 作为 TiCDC 下游接纳改变记录,完成数据同步
  • 与 TiKV/PD 直接通讯,接纳实时改变数据,完成数据同步

CloudCanal 考虑到部署的 轻量性可控性,挑选了第二种方案,跳过 TiCDC、TiDB Server 组件,直接与 PD 建立 gRPC 通讯,实时接纳源端数据改变记录,经过算法解析字节省内容,主动同步到对端数据库中。

支撑断点续传

长周期数据同步,使命可能会因为参数调整问题数据修正性能优化等操作暂停或重启使命,断点续传才能不可或缺。

CloudCanal 为 TiDB 源端定时或定量保存对端消费后的位点,以完成断点续传才能。

全量搬迁中,对亿级别数据量的大表中止重启,断点续传才能可尽可能少的影响搬迁进展,增量同步中,断点续传才能确保使命重启后可继续,并不丢掉数据。

改变事情保序

订阅 TiDB 增量改变事情,可能因为各种原因,单个改变数据抵达时刻不一致(乱序),导致数据丢掉或改变过错。

CloudCanal 为此选用自研算法处理事情,并根据业务 终究提交时刻 来确保业务的有序消费。

支撑 DDL、DML 增量数据同步

CloudCanal 支撑以 TiDB 为源端,TiDB、MySQL 为对端 (支撑的对端数据源还在不断增加) 的 DDL 和 DML 同步。

  • DDL 数据同步才能:
    • ALTER TABLE … ADD/DROP/MODIFY COLUMN …
    • ALTER TABLE … ADD/ALTER/DROP INDEX …
    • RENAME TABLE … TO …
  • DML 数据同步才能
    • INSERT/UPDATE/DELETE

除了 DDL、DML 同步功用完成,CloudCanal 根据 SCHEMA SNAPSHOT 和 DDL 构建了表 多版别表快照才能,确保改变数据和结构保持一致,数据消费愈加精准。

结构搬迁类型主动处理与优化

不同数据库对于数据类型支撑存在差异,CloudCanal 结构搬迁时会进行类型主动转换与优化。

TiDB 为源端的结构搬迁也存在相似转换与优化,如以 MySQL 为对端的 Float 类型若不指定精度,则可能形成数据精度丢掉,CloudCanal 将 Float 类型主动转换为 Float(0),确保了精度的准确性

配套数据校验与订正才能

在数据同步过程中,因为数据的外部关联性结构束缚差异数据库运维操作软件bug等情况,两头数据可能会不一致,此时数据校验和订正功用十分必要。

CloudCanal 为 TiDB 为源端的数据同步才能额定供给了数字、字符类型主键表的数据校验数据订正功用,快速确定不一致数据范围,并针对差异数据进行修正。

产品化才能支撑

可视化创立

CloudCanal 创立 TiDB 数据搬迁同步使命是彻底可视化的,经过获取数据库元数据,让用户在 web 页面上决议哪些库、表、列进行搬迁同步,或者设定过滤条件自定义数据处理逻辑等。

主动化流程

TiDB 数据搬迁同步使命创立后,CloudCanal 将主动流通各个阶段的使命,用户无需干与,直达数据实时同步状态。

监控图表支撑

CloudCanal 为 TiDB 数据搬迁同步使命供给了多个有用监控指标,包括增量缓存RPS增量缓存延迟(ms)内存队列数据个数等,当调优使命性能或排查使命反常原因时,监控指标供给了很好的判断根据。

告警支撑

CloudCanal 为 TiDB 数据搬迁使命供给了包括钉钉/企业微信/飞书/自定义等 webhook 类型告警,对于企业级客户,可额定挑选邮件,以及短信告警,实时保证同步使命的高可用。

简略示例

本示例以将数据从 TiDB 数据库同步到 MySQL 数据库为操作案例,以便更好地阐明 CloudCanal 在不同数据库之间进行数据同步的才能。

预备动作

  • 预备 CloudCanal,装置详细请参考:全新装置
  • 预备好 TiDB 数据库(本例运用 5.4.3 版别)和 MySQL 数据库(本例运用 8.0 版别)
  • 登录 CloudCanal 平台 ,增加 TiDB 和 MySQL
  • TiDB 增量同步依赖 PD 通讯,如需进行增量同步,请在额定参数处填写 PD 地址
    CloudCanal x TiDB 数据迁移同步功能落地

使命创立

  • 使命办理 -> 新建使命

  • 测试链接并挑选 源 和 方针 数据库

  • 点击下一步

    CloudCanal x TiDB 数据迁移同步功能落地

  • 挑选 数据同步,并勾选 全量数据初始化,其他选项默许

    CloudCanal x TiDB 数据迁移同步功能落地

  • 挑选需要搬迁同步的表和列 (本例以常见的 数字、字符、时刻类型主键、多主键表为例)

    CloudCanal x TiDB 数据迁移同步功能落地

  • 承认创立使命

    CloudCanal x TiDB 数据迁移同步功能落地

  • 使命主动履行结构搬迁、全量同步和增量同步,履行一些增量数据同步后进行数据校验,结果显现数据校验经过

    CloudCanal x TiDB 数据迁移同步功能落地

总结

本文首要介绍了 CloudCanal 支撑 TiDB 为源端数据搬迁同步功用,经过这个才能,用户可以便利地将 TiDB 中数据实时同步到其他数据库,完成数据更广泛、更实时的应用。