简介
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 中数据实时同步到其他数据库,完成数据更广泛、更实时的应用。