IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 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
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-02-26 11:37:32  更:2022-02-26 11:41:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:57:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码