简介
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 中数据实时同步到其余数据库,实现数据更宽泛、更实时的利用。