Skip to content

Commit d3dbc48

Browse files
authored
ticdc: add new doc for TiCDC data replication capabilities (#20345) (#20373)
1 parent 1fb4960 commit d3dbc48

File tree

3 files changed

+50
-1
lines changed

3 files changed

+50
-1
lines changed

TOC.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,7 @@
188188
- [与 Apache Kafka 和 Apache Flink 进行数据集成](/replicate-data-to-kafka.md)
189189
- 参考指南
190190
- [TiCDC 架构设计与原理](/ticdc/ticdc-architecture.md)
191+
- [TiCDC 数据同步能力详解](/ticdc/ticdc-data-replication-capabilities.md)
191192
- [TiCDC Server 配置参数](/ticdc/ticdc-server-config.md)
192193
- [TiCDC Changefeed 配置参数](/ticdc/ticdc-changefeed-config.md)
193194
- [TiCDC 客户端鉴权](/ticdc/ticdc-client-authentication.md)
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
---
2+
title: TiCDC 数据同步能力详解
3+
summary: 了解 TiCDC 的数据同步能力。
4+
---
5+
6+
# TiCDC 数据同步能力详解
7+
8+
[TiCDC](/ticdc/ticdc-overview.md) (TiDB Change Data Capture) 是 TiDB 生态中用于​​实时数据同步​​的核心组件。本文详细解释 TiCDC 的数据同步能力。
9+
10+
## 工作原理​
11+
12+
- TiCDC 监听 TiKV 的变更日志 (Raft Log),将行数据的增删改操作转换为下游兼容的 SQL 语句,并不基于上游的 SQL 获取数据变更。详情请参考 [TiCDC 处理数据变更的实现原理](/ticdc/ticdc-overview.md#ticdc-处理数据变更的实现原理)
13+
14+
- TiCDC 生成与 SQL 语义等效的逻辑操作(如 `INSERT``UPDATE``DELETE`),而非逐条还原上游执行的原始 SQL 语句。详情请参考 [TiCDC 处理数据变更的实现原理](/ticdc/ticdc-overview.md#ticdc-处理数据变更的实现原理)
15+
16+
- TiCDC 提供事务最终一致性的保证。开启 [redo log](/ticdc/ticdc-sink-to-mysql.md#灾难场景的最终一致性复制) 后,TiCDC 可以保证容灾场景下的最终一致性;开启 [Syncpoint](/ticdc/ticdc-upstream-downstream-check.md#启用-syncpoint) 后,TiCDC 提供一致性快照读和数据一致性校验。
17+
18+
## 支持的下游
19+
20+
TiCDC 支持同步数据到多类下游,包括:
21+
22+
- [TiDB 及兼容 MySQL 协议的数据库](/ticdc/ticdc-sink-to-mysql.md)
23+
- [Apache Kafka](/ticdc/ticdc-sink-to-kafka.md)
24+
- [Message Queue (MQ) 类的下游](/ticdc/ticdc-changefeed-config.md#sink),如 [Pulsar](/ticdc/ticdc-sink-to-pulsar.md)
25+
- [存储服务(Amazon S3、GCS、Azure Blob Storage 和 NFS)](/ticdc/ticdc-sink-to-cloud-storage.md)
26+
- [通过 Confluent Cloud 同步至 Snowflake、ksqlDB、SQL Server](/ticdc/integrate-confluent-using-ticdc.md)
27+
- [使用 Apache Flink 消费同步至 Kafka 的数据](/replicate-data-to-kafka.md)
28+
29+
## 数据同步范围
30+
31+
TiCDC 对上游数据变更的支持范围如下:
32+
33+
+ 支持:
34+
35+
- DDL 和 DML 语句(非系统表)。
36+
- 索引操作 (`ADD INDEX`, `CREATE INDEX`):为了减少对 Changefeed 同步延迟的影响,当下游为 TiDB 时,TiCDC 会[异步执行创建和添加索引的 DDL 操作](/ticdc/ticdc-ddl.md#创建和添加索引-ddl-的异步执行)
37+
- 外键约束 DDL 语句 (`ADD FOREIGN KEY`):TiCDC 不会同步上游系统变量的设置,需要在下游手动设置 [`foreign_key_checks`](/system-variables.md#foreign_key_checks) 来决定是否开启下游的外键约束检查。TiCDC 不会检查数据是否满足下游的外键约束。
38+
39+
+ 不支持:
40+
41+
- 系统表(如 `mysql.*``information_schema.*`)的 DDL 和 DML 语句。
42+
- 临时表的 DDL 和 DML 语句。
43+
- DQL (Data Query Language) 语句 和 DCL (Data Control Language) 语句。
44+
45+
## 使用限制
46+
47+
- TiCDC 对一些场景暂不支持,详见[暂不支持的场景](/ticdc/ticdc-overview.md#暂不支持的场景)
48+
- TiCDC 只检查上游数据变更的完整性,不检查数据变更是否符合上游或下游的约束。如果遇到不满足下游约束的数据变更,TiCDC 会在写入下游时报错。例如,TiCDC 不会进行任何外键约束的检查。

ticdc/ticdc-overview.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ summary: TiCDC 是一款 TiDB 增量数据同步工具,适用于多 TiDB 集
55

66
# TiCDC 简介
77

8-
[TiCDC](https://github.com/pingcap/tiflow/tree/release-8.5/cdc) 是一款 TiDB 增量数据同步工具,通过拉取上游 TiKV 的数据变更日志,TiCDC 可以将数据解析为有序的行级变更数据输出到下游。
8+
[TiCDC](https://github.com/pingcap/tiflow/tree/release-8.5/cdc) 是一款 TiDB 增量数据同步工具,通过拉取上游 TiKV 的数据变更日志,TiCDC 可以将数据解析为有序的行级变更数据输出到下游。关于具体的数据同步能力,参见 [TiCDC 数据同步能力详解](/ticdc/ticdc-data-replication-capabilities.md)
99

1010
## TiCDC 适用场景
1111

0 commit comments

Comments
 (0)