🎉 CloudCanal 上线 V6.1.0.0:KingbaseES 分区表迁移性能大幅提升
跳到主要内容

TiDB 到 ClickHouse

CloudCanal 支持从 TiDB 到 ClickHouse 的数据迁移、同步、校验和链路能力。

选择对端数据库:

数据链路

基本功能

功能说明
结构迁移

如目标不存在所选表,则自动根据源端元数据,结合映射生成对端创建语句并执行创建

全量数据迁移

逻辑迁移,通过顺序扫描表数据,将数据分批写入到对端数据库

增量实时同步

支持 INSERT, UPDATE, DELETE 常见 DML 同步

数据校验

全量数据校验, 并支持定时

修改订阅

新增、删除、修改订阅表,支持历史数据迁移,文档:修改订阅

重置位点

时间戳 回溯位点,重新消费过去一段时间未被 TiKV GC 掉的增量数据

表名映射

支持 和源端保持一致, 转小写, 转大写, 以'_数字'后缀截取

DDL 同步
  • ALTER TABLE ADD COLUMN, DROP COLUMN
元数据检索

从源端表查对端,查询设置过过滤条件的,查询设置过对端主键的

高级功能

功能说明
追加模式写入

INSERT 和 UPDATE 以追加模式批量写入, DELETE 单独通过 ALTER 方式执行

定时优化表

通过设置 autoOptimizeThresholdSec 参数,定时优化表

定时全量迁移

文档1:创建定时全量任务
文档2:定时全量实现增量数据迁移

自定义代码

文档1:创建自定义代码任务
文档2:自定义代码任务 debug
文档3:在自定义代码中打日志

数据过滤条件

支持 WHERE 条件进行数据过滤,内容为 SQL 92 子集,文档:创建数据过滤任务

限制和注意点

限制项说明
特殊操作

DELETE 操作过多(>50 条/秒)将大幅影响数据同步性能

目标端表引擎

仅支持以下表引擎以及对应的源端表类型:

  • MergeTree(无主键表)
  • ReplacingMergeTree(有主键表)
  • ReplicatedMergeTree(无主键表)
  • ReplicatedReplacingMergeTree(有主键表)

源端数据源

前置条件

条件说明
账号权限

文档:TiDB 需要的权限

PD节点网络连通

请确保 CloudCanal 各节点能正常与 PD 各节点通讯

  • telnet [PD节点IP] [PD节点端口号]
TiKV GC 回收频率

在 TiDB Server 中修改 GC 周期时间为 24小时 以上

  • set global tidb_gc_life_time = "24h0m0s";
TiKV 历史变更数据缓存

建议根据任务所需适当调整大小

  • old-value-cache-memory-quota:增量旧数据占用 TiKV 节点的内存的上限
  • sink-memory-quota:增量数据占用 TiKV 节点的内存的上限

任务参数

参数名称说明
printDetailLog

打印接收到的增量,常用于判断源端是否有增量数据推送

pdHost

任务请求的 PD 节点地址,格式为: [PD_IP]:[PD_PORT], 多个 PD 节点用 , 隔开
例: 127.0.0.1:2379,127.0.0.1:2380

cdcGrpcTimeout

任务与 PD 节点 gRpc 连接通道的超时时间,单位ms

cdcStubTimeout

gRpc 通道中的每个 stub 的超时时间,超过该时间会自动重新订阅,单位ms

fastFailKeywords

字符串数组,以逗号分隔,当异常信息中包含这些关键字时,任务不再尝试重连,直接重启。例如 DEADLINE_EXCEEDED 表示当 gRPC 超时异常时不再重连,直接重启任务

Tips: 通用参数配置请参考 通用参数及功能


目标端数据源

前置条件

条件说明
账号权限

具备 SELECT, INSERT, 常见 DDL 权限

网络准备

迁移同步节点(sidecar)可连接 ClickHouse 标准交互接口(如 8123)

任务参数

参数名称说明
multiReplica

是否为多副本集群

clusterName

集群名称,当 multiReplica 为 true, 则自动在 DDL/DML 中加入 ON CLUSTER clusterName 子句

ckTableEngine

当前支持以下表引擎:

  • MergeTree
  • ReplacingMergeTree
  • ReplicatedMergeTree
  • ReplicatedReplacingMergeTree
autoOptimizeThresholdSec

定时优化表(optimize table final)间隔,<=0 则关闭此功能

enableTimeRangeClamping

是否启用时间范围裁剪,强制将时间和日期值收束到 ClickHouse JDBC 的合法区间内,超出的数值将被截断至最小值或最大值。默认关闭(false)。

收束后范围(UTC):

  • Date:[1970-01-01, 2149-06-06]
  • Date32:[1925-01-01, 2283-11-11]
  • Timestamp:[1970-01-01 00:00:00, 2106-02-07 14:28:15]
  • Timestamp64:[1925-01-01 08:00:00.000, 2283-11-12 07:59:59.000]

Tips: 通用参数配置请参考 通用参数及功能

联系我们
微信二维码

扫码添加微信,获取技术支持