栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

TiCDC介绍

TiCDC介绍

TiCDC 通过拉取TiKV变更日志,实现TiDB增量数据同步工具,具有将数据还原到雨上游任意时刻一致状态的能力;同时提供开放数据协议的能力,可以支持其他系统订阅数据变更;

TiCDC特性

高可用性: 可以多节点,互不干扰,如果某个节点故障,可以自动故障转移;性能:        一般3s内;支持丰富的下游格式:     兼容MySQL格式的任何DB; TiCDC架构和原理

TiDB接收SQL, TiKV的各个节点变更后,只输出自己本节点的修改日志给TiCDC Cluster集群TiCDC 节点负责接收到TiKV的日志,并在内部逻辑拼接在一起;多个Capture组成一个集群,某个Capture负责拉取一部分TiKV日志,并与其他Capture协同,将收到的日志聚集到某个Capture Owner,进而发送给下游;如果一个Capure故障,将会将owner自动转移到其他Capture,进而继续拼装所有的变更日志,输出到下游 TiCDC 适用场景

适合数据源(上游数据库)为TiCDC, 目标数据库(下游数据库)为类MySQL数据库和Kafka; 同时TiCDC Open Protocol是一种航级别的数据变更通知协议,可以为监控、缓存、全文索引、分析引擎、异构数据库的主从复制等提供数据源; 

TiCDC配置要求

生产环境: 16c/64G/SSD/万兆网卡/>2节点/ >Centos 7.3

部署

安装tidb集群的时候如果没有安装,则可以通过scale-out的方式进行安装;

vim scale-out.yaml

cdc_servers:
  - host: XX.XX.XX.XX
    port: 8300
    deploy_dir: "/export/servers/TiDB/ticdc-8300/"
    log_dir: "/export/servers/TiDB/ticdc-8300/log"
  - host: XX.XX.XX.XX
    port: 8300
    deploy_dir: "/export/servers/TiDB/ticdc-8300/"
    log_dir: "/export/servers/TiDB/ticdc-8300/log"

扩容命令: tiup cluster scale-out cluster-default scale-out.yaml 

cdc管理工具安装:  tiup install cdc

版本查看

TiCDC]# tiup cdc version
Starting component `cdc`: /root/.tiup/components/cdc/v5.3.0/cdc version
Release Version: v5.3.0
Git Commit Hash: 20626babf21fc381d4364646c40dd84598533d66
Git Branch: heads/refs/tags/v5.3.0
UTC Build Time: 2021-11-22 10:37:02
Go Version: go version go1.16.4 linux/amd64
Failpoint Build: false
创建任务
tiup cdc cli changefeed create --pd=${pd_address}:2379 --sink-url="mysql://rooot@123456@127.0.0.1:3306" -changefeed-id="cdc-task1"

--pd : 通过PD可以获取到TiKV的元数据信息;--sink-url :下游的数据库地址连接串--changefeed-id: 同步任务id,如果不指定,ticdc会自动生成一个UUID;--start-ts: 指定changefeed开始的TSO;省略则从执行时间开始;--target-ts: 指定目标TSO;指定后,截止到目标时间则停止同步; 省略则会一直同步;  其他相关参数

下游为MySQL/TiDB
worker-count: 下游执行的并发度
max-txn-row:  执行sql的batch大小

下游为Kafka
protocol: 输出到kafka消息协议,可选default、canal、 avro、 maxwell;
max-message-bytes: 每次向Kafka broker发送消息的最大数据量,默认64MB

任务查询

cdc cli changefeed list --pd=http://${pd_ip}:2379  

可以指定多个PD节点

cdc cli changefeed query -s --pd=http://${pd}:2379 --changefeed-id=${task-name}

暂停/恢复/删除同步任务

cdc cli changefeed pause/resume/remove  --pd=http://${pd}:2379 --changefeed-id=${task-name}
 

更新TiCDC同步任务配置
暂停 --> 修改配置 --> 恢复任务

cdc cli changefeed pause -C test-cf --pd=http://${pd}:2379
cdc cli changefeed update ...
cdc cli changefeed resume ..

.TiCDC 限制

有效索引:必须要有主键,或者非空/非虚拟生成列的唯一索引;暂不支持单独使用RawKV的TiKV集群;暂不支持 TiDB 中创建SEQUENCE的DDL操作和SEQUENCE函数不支持TiKV Hibernate Region

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/745055.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号