乐趣区

关于数据库:CloudCanal-x-TiDB-数据迁移同步功能落地

简介

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 反对 TiDB 为源端数据迁徙同步性能,通过这个能力,用户能够便当地将 TiDB 中数据实时同步到其余数据库,实现数据更宽泛、更实时的利用。

退出移动版