From 5c1978526e1999865bfb1c17540e6d9eb0a335ed Mon Sep 17 00:00:00 2001 From: hongyunyan <649330952@qq.com> Date: Fri, 16 May 2025 15:46:40 +0800 Subject: [PATCH 01/19] update --- ticdc/ticdc-data-sync-capabilities.md | 31 +++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 ticdc/ticdc-data-sync-capabilities.md diff --git a/ticdc/ticdc-data-sync-capabilities.md b/ticdc/ticdc-data-sync-capabilities.md new file mode 100644 index 0000000000000..7f6f9ea8053ba --- /dev/null +++ b/ticdc/ticdc-data-sync-capabilities.md @@ -0,0 +1,31 @@ +--- +title: TiCDC's Data Synchronization Capability +summary: Learn the TiCDC's data synchronization capabilities. +--- + +# TiCDC's Data Synchronization Capability + +## Backgroud + +TiCDC (TiDB Change Data Capture) is a core component for real-time data synchronization in the TiDB ecosystem. + +1. TiCDC monitors TiKV's Raft Log to convert row-level data changes (insert/update/delete) into downstream-compatible SQL statements. Unlike Binlog, TiCDC does not rely on parsing SQL statements. Refer to [TiCDC's Implementation Principles for Processing Data Changes](/ticdc/ticdc-overview.md#implementation-of-processing-data-changes). + + +2. TiCDC generates logical operations (such as INSERT/UPDATE/DELETE) that are equivalent to SQL semantics, rather than restoring the original SQL executed upstream one by one. Refer to [TiCDC's Implementation Principles for Processing Data Changes](/ticdc/ticdc-overview.md#implementation-of-processing-data-changes). + +3. TiCDC provides the guarantee of eventual consistency of transactions. [redo log](/ticdc/ticdc-sink-to-mysql.md#eventually-consistent-replication-in-disaster-scenarios) provides the final consistency guarantee in disaster recovery scenarios. [Syncpoint](/ticdc/ticdc-upstream-downstream-check.md#enable-syncpoint) provides consistent snapshot reads and data consistency checks. + +4. TiCDC supports synchronizing data to multiple downstreams, including [TiDB and MySQL-compatible databases](/ticdc/ticdc-sink-to-mysql.md), [Kafka](/ticdc/ticdc-sink-to-kafka.md), [Pulsar](/ticdc/ticdc-sink-to-pulsar), [storage services (Amazon S3, GCS, Azure Blob Storage, and NFS](/ticdc/ticdc-sink-to-cloud-storage.md). + +## Data synchronization capabilities of TiCDC + +1. TiCDC supports synchronizing DDL and DML statements executed upstream, but does not synchronize DDL and DML executed in upstream system tables (including `mysql.*` and `information_schema.*`), nor does it synchronize temporary tables created in the upstream. + +2. TiCDC does not support synchronizing DQL (Data Query Language) statements, nor does it support synchronizing DCL (Data Control Language) statements. + +3. TiCDC supports synchronizing the settings of the index in the upstream table through DDL (`add index`, `create index`), and in order to reduce the impact on the synchronization delay of Changefeed, if the downstream is TiDB, TiCDC will [asynchronously execute the DDL operations of creating and adding indexes](/ticdc/ticdc-ddl.md#asynchronous-execution-of-add-index-and-create-index-ddls). + +4. For the foreign key constraints set in the table, TiCDC will synchronize the corresponding DDL (`add foreign key`) statements, but TiCDC is not responsible for synchronizing the settings of upstream system variables, such as [foreign_key_checks](/system-variables.md#foreign_key_checks). Therefore, customers need to set appropriate system variables in the downstream to determine whether the downstream foreign key constraint check is enabled. + +5. TiCDC only checks the integrity of the upstream changes received internally, and does not participate in checking whether the data changes meet the various downstream constraints. If a data change that does not meet the downstream constraints is encountered, TiCDC will report an error when writing downstream. \ No newline at end of file From 8e12b2e3dd9210422c9e4139bc240b872d667aa8 Mon Sep 17 00:00:00 2001 From: hongyunyan <649330952@qq.com> Date: Fri, 16 May 2025 15:49:17 +0800 Subject: [PATCH 02/19] Update ticdc/ticdc-data-sync-capabilities.md Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- ticdc/ticdc-data-sync-capabilities.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ticdc/ticdc-data-sync-capabilities.md b/ticdc/ticdc-data-sync-capabilities.md index 7f6f9ea8053ba..fa53e6726ff00 100644 --- a/ticdc/ticdc-data-sync-capabilities.md +++ b/ticdc/ticdc-data-sync-capabilities.md @@ -16,7 +16,7 @@ TiCDC (TiDB Change Data Capture) is a core component for real-time data synchron 3. TiCDC provides the guarantee of eventual consistency of transactions. [redo log](/ticdc/ticdc-sink-to-mysql.md#eventually-consistent-replication-in-disaster-scenarios) provides the final consistency guarantee in disaster recovery scenarios. [Syncpoint](/ticdc/ticdc-upstream-downstream-check.md#enable-syncpoint) provides consistent snapshot reads and data consistency checks. -4. TiCDC supports synchronizing data to multiple downstreams, including [TiDB and MySQL-compatible databases](/ticdc/ticdc-sink-to-mysql.md), [Kafka](/ticdc/ticdc-sink-to-kafka.md), [Pulsar](/ticdc/ticdc-sink-to-pulsar), [storage services (Amazon S3, GCS, Azure Blob Storage, and NFS](/ticdc/ticdc-sink-to-cloud-storage.md). +4. TiCDC supports synchronizing data to multiple downstreams, including [TiDB and MySQL-compatible databases](/ticdc/ticdc-sink-to-mysql.md), [Kafka](/ticdc/ticdc-sink-to-kafka.md), [Pulsar](/ticdc/ticdc-sink-to-pulsar), [storage services (Amazon S3, GCS, Azure Blob Storage, and NFS)](/ticdc/ticdc-sink-to-cloud-storage.md). ## Data synchronization capabilities of TiCDC From d55061cfcad823c8d7b8c98abeabee3dfb993ad7 Mon Sep 17 00:00:00 2001 From: hongyunyan <649330952@qq.com> Date: Fri, 16 May 2025 15:49:24 +0800 Subject: [PATCH 03/19] Update ticdc/ticdc-data-sync-capabilities.md Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- ticdc/ticdc-data-sync-capabilities.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ticdc/ticdc-data-sync-capabilities.md b/ticdc/ticdc-data-sync-capabilities.md index fa53e6726ff00..5c8e2faaab671 100644 --- a/ticdc/ticdc-data-sync-capabilities.md +++ b/ticdc/ticdc-data-sync-capabilities.md @@ -5,7 +5,7 @@ summary: Learn the TiCDC's data synchronization capabilities. # TiCDC's Data Synchronization Capability -## Backgroud +## Background TiCDC (TiDB Change Data Capture) is a core component for real-time data synchronization in the TiDB ecosystem. From 8b9a3eff16e6b9dd8e66ea70222519cbed3822d7 Mon Sep 17 00:00:00 2001 From: hongyunyan <649330952@qq.com> Date: Fri, 16 May 2025 15:49:32 +0800 Subject: [PATCH 04/19] Update ticdc/ticdc-data-sync-capabilities.md Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- ticdc/ticdc-data-sync-capabilities.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ticdc/ticdc-data-sync-capabilities.md b/ticdc/ticdc-data-sync-capabilities.md index 5c8e2faaab671..a790137b79664 100644 --- a/ticdc/ticdc-data-sync-capabilities.md +++ b/ticdc/ticdc-data-sync-capabilities.md @@ -26,6 +26,6 @@ TiCDC (TiDB Change Data Capture) is a core component for real-time data synchron 3. TiCDC supports synchronizing the settings of the index in the upstream table through DDL (`add index`, `create index`), and in order to reduce the impact on the synchronization delay of Changefeed, if the downstream is TiDB, TiCDC will [asynchronously execute the DDL operations of creating and adding indexes](/ticdc/ticdc-ddl.md#asynchronous-execution-of-add-index-and-create-index-ddls). -4. For the foreign key constraints set in the table, TiCDC will synchronize the corresponding DDL (`add foreign key`) statements, but TiCDC is not responsible for synchronizing the settings of upstream system variables, such as [foreign_key_checks](/system-variables.md#foreign_key_checks). Therefore, customers need to set appropriate system variables in the downstream to determine whether the downstream foreign key constraint check is enabled. +4. For the foreign key constraints set in the table, TiCDC will synchronize the corresponding DDL (`add foreign key`) statements, but TiCDC is not responsible for synchronizing the settings of upstream system variables, such as [foreign_key_checks](/system-variables.md#foreign_key_checks). Therefore, you need to set appropriate system variables in the downstream to determine whether the downstream foreign key constraint check is enabled. 5. TiCDC only checks the integrity of the upstream changes received internally, and does not participate in checking whether the data changes meet the various downstream constraints. If a data change that does not meet the downstream constraints is encountered, TiCDC will report an error when writing downstream. \ No newline at end of file From 6b5aa8a2cf251ab33d2310a7c0f6883b11631d2f Mon Sep 17 00:00:00 2001 From: hongyunyan <649330952@qq.com> Date: Fri, 16 May 2025 15:49:41 +0800 Subject: [PATCH 05/19] Update ticdc/ticdc-data-sync-capabilities.md Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- ticdc/ticdc-data-sync-capabilities.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ticdc/ticdc-data-sync-capabilities.md b/ticdc/ticdc-data-sync-capabilities.md index a790137b79664..0388ee0296afd 100644 --- a/ticdc/ticdc-data-sync-capabilities.md +++ b/ticdc/ticdc-data-sync-capabilities.md @@ -14,7 +14,7 @@ TiCDC (TiDB Change Data Capture) is a core component for real-time data synchron 2. TiCDC generates logical operations (such as INSERT/UPDATE/DELETE) that are equivalent to SQL semantics, rather than restoring the original SQL executed upstream one by one. Refer to [TiCDC's Implementation Principles for Processing Data Changes](/ticdc/ticdc-overview.md#implementation-of-processing-data-changes). -3. TiCDC provides the guarantee of eventual consistency of transactions. [redo log](/ticdc/ticdc-sink-to-mysql.md#eventually-consistent-replication-in-disaster-scenarios) provides the final consistency guarantee in disaster recovery scenarios. [Syncpoint](/ticdc/ticdc-upstream-downstream-check.md#enable-syncpoint) provides consistent snapshot reads and data consistency checks. +3. TiCDC guarantees eventual consistency of transactions. [redo log](/ticdc/ticdc-sink-to-mysql.md#eventually-consistent-replication-in-disaster-scenarios) provides the final consistency guarantee in disaster recovery scenarios. [Syncpoint](/ticdc/ticdc-upstream-downstream-check.md#enable-syncpoint) provides consistent snapshot reads and data consistency checks. 4. TiCDC supports synchronizing data to multiple downstreams, including [TiDB and MySQL-compatible databases](/ticdc/ticdc-sink-to-mysql.md), [Kafka](/ticdc/ticdc-sink-to-kafka.md), [Pulsar](/ticdc/ticdc-sink-to-pulsar), [storage services (Amazon S3, GCS, Azure Blob Storage, and NFS)](/ticdc/ticdc-sink-to-cloud-storage.md). From 19e9071c1c8183b88a8fc04a9aa5471c8c47a2ba Mon Sep 17 00:00:00 2001 From: hongyunyan <649330952@qq.com> Date: Fri, 16 May 2025 15:49:55 +0800 Subject: [PATCH 06/19] Update ticdc/ticdc-data-sync-capabilities.md Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- ticdc/ticdc-data-sync-capabilities.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ticdc/ticdc-data-sync-capabilities.md b/ticdc/ticdc-data-sync-capabilities.md index 0388ee0296afd..71d4cd64eb9a1 100644 --- a/ticdc/ticdc-data-sync-capabilities.md +++ b/ticdc/ticdc-data-sync-capabilities.md @@ -28,4 +28,4 @@ TiCDC (TiDB Change Data Capture) is a core component for real-time data synchron 4. For the foreign key constraints set in the table, TiCDC will synchronize the corresponding DDL (`add foreign key`) statements, but TiCDC is not responsible for synchronizing the settings of upstream system variables, such as [foreign_key_checks](/system-variables.md#foreign_key_checks). Therefore, you need to set appropriate system variables in the downstream to determine whether the downstream foreign key constraint check is enabled. -5. TiCDC only checks the integrity of the upstream changes received internally, and does not participate in checking whether the data changes meet the various downstream constraints. If a data change that does not meet the downstream constraints is encountered, TiCDC will report an error when writing downstream. \ No newline at end of file +5. TiCDC only checks the integrity of the upstream changes received internally, and does not participate in checking whether the data changes meet the various downstream constraints. If a data change that does not meet the downstream constraints is encountered, TiCDC will report an error when writing to the downstream. \ No newline at end of file From b9b7e1e8c2775ff27af3642262d31b91929e5108 Mon Sep 17 00:00:00 2001 From: hongyunyan <649330952@qq.com> Date: Fri, 16 May 2025 15:51:59 +0800 Subject: [PATCH 07/19] Update ticdc/ticdc-data-sync-capabilities.md Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- ticdc/ticdc-data-sync-capabilities.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ticdc/ticdc-data-sync-capabilities.md b/ticdc/ticdc-data-sync-capabilities.md index 71d4cd64eb9a1..cb9e4a4fdfabb 100644 --- a/ticdc/ticdc-data-sync-capabilities.md +++ b/ticdc/ticdc-data-sync-capabilities.md @@ -1,6 +1,6 @@ --- title: TiCDC's Data Synchronization Capability -summary: Learn the TiCDC's data synchronization capabilities. +summary: Learn TiCDC's data synchronization capabilities. --- # TiCDC's Data Synchronization Capability From c7519f2bb49e1c6324561f0c1b6d350a7838b184 Mon Sep 17 00:00:00 2001 From: hongyunyan <649330952@qq.com> Date: Fri, 16 May 2025 15:52:09 +0800 Subject: [PATCH 08/19] Update ticdc/ticdc-data-sync-capabilities.md Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- ticdc/ticdc-data-sync-capabilities.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ticdc/ticdc-data-sync-capabilities.md b/ticdc/ticdc-data-sync-capabilities.md index cb9e4a4fdfabb..3bbb82f8b7c83 100644 --- a/ticdc/ticdc-data-sync-capabilities.md +++ b/ticdc/ticdc-data-sync-capabilities.md @@ -24,7 +24,7 @@ TiCDC (TiDB Change Data Capture) is a core component for real-time data synchron 2. TiCDC does not support synchronizing DQL (Data Query Language) statements, nor does it support synchronizing DCL (Data Control Language) statements. -3. TiCDC supports synchronizing the settings of the index in the upstream table through DDL (`add index`, `create index`), and in order to reduce the impact on the synchronization delay of Changefeed, if the downstream is TiDB, TiCDC will [asynchronously execute the DDL operations of creating and adding indexes](/ticdc/ticdc-ddl.md#asynchronous-execution-of-add-index-and-create-index-ddls). +3. TiCDC supports synchronizing the settings of the index in the upstream table through DDL (`add index`, `create index`), and to reduce the impact on the synchronization delay of Changefeed, if the downstream is TiDB, TiCDC will [asynchronously execute the DDL operations of creating and adding indexes](/ticdc/ticdc-ddl.md#asynchronous-execution-of-add-index-and-create-index-ddls). 4. For the foreign key constraints set in the table, TiCDC will synchronize the corresponding DDL (`add foreign key`) statements, but TiCDC is not responsible for synchronizing the settings of upstream system variables, such as [foreign_key_checks](/system-variables.md#foreign_key_checks). Therefore, you need to set appropriate system variables in the downstream to determine whether the downstream foreign key constraint check is enabled. From 81c003aa915f00034a955d4a86ca383f0fa40f2e Mon Sep 17 00:00:00 2001 From: hongyunyan <649330952@qq.com> Date: Fri, 16 May 2025 16:12:49 +0800 Subject: [PATCH 09/19] update --- ticdc/ticdc-data-sync-capabilities.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ticdc/ticdc-data-sync-capabilities.md b/ticdc/ticdc-data-sync-capabilities.md index 7f6f9ea8053ba..849c469afbccc 100644 --- a/ticdc/ticdc-data-sync-capabilities.md +++ b/ticdc/ticdc-data-sync-capabilities.md @@ -16,7 +16,7 @@ TiCDC (TiDB Change Data Capture) is a core component for real-time data synchron 3. TiCDC provides the guarantee of eventual consistency of transactions. [redo log](/ticdc/ticdc-sink-to-mysql.md#eventually-consistent-replication-in-disaster-scenarios) provides the final consistency guarantee in disaster recovery scenarios. [Syncpoint](/ticdc/ticdc-upstream-downstream-check.md#enable-syncpoint) provides consistent snapshot reads and data consistency checks. -4. TiCDC supports synchronizing data to multiple downstreams, including [TiDB and MySQL-compatible databases](/ticdc/ticdc-sink-to-mysql.md), [Kafka](/ticdc/ticdc-sink-to-kafka.md), [Pulsar](/ticdc/ticdc-sink-to-pulsar), [storage services (Amazon S3, GCS, Azure Blob Storage, and NFS](/ticdc/ticdc-sink-to-cloud-storage.md). +4. TiCDC supports synchronizing data to multiple downstreams, including [TiDB and MySQL-compatible databases](/ticdc/ticdc-sink-to-mysql.md), [Kafka](/ticdc/ticdc-sink-to-kafka.md), [Pulsar](/ticdc/ticdc-sink-to-pulsar.md), [storage services (Amazon S3, GCS, Azure Blob Storage, and NFS](/ticdc/ticdc-sink-to-cloud-storage.md). ## Data synchronization capabilities of TiCDC From e0a0ee6a38a8ba7afff6ce04efc2026c2dec3c33 Mon Sep 17 00:00:00 2001 From: hongyunyan <649330952@qq.com> Date: Wed, 21 May 2025 10:42:54 +0800 Subject: [PATCH 10/19] update --- TOC.md | 1 + ticdc/ticdc-data-replication-capabilities.md | 47 ++++++++++++++++++++ ticdc/ticdc-data-sync-capabilities.md | 31 ------------- ticdc/ticdc-overview.md | 2 +- 4 files changed, 49 insertions(+), 32 deletions(-) create mode 100644 ticdc/ticdc-data-replication-capabilities.md delete mode 100644 ticdc/ticdc-data-sync-capabilities.md diff --git a/TOC.md b/TOC.md index 48d73a7920e25..38b1ee7e92fb1 100644 --- a/TOC.md +++ b/TOC.md @@ -193,6 +193,7 @@ - [Integrate with Apache Kafka and Apache Flink](/replicate-data-to-kafka.md) - Reference - [TiCDC Architecture](/ticdc/ticdc-architecture.md) + - [Analysis of TiCDC's Data Replication Capabilities](/ticdc/ticdc-data-replication-capabilities.md) - [TiCDC Server Configurations](/ticdc/ticdc-server-config.md) - [TiCDC Changefeed Configurations](/ticdc/ticdc-changefeed-config.md) - [TiCDC Client Authentication](/ticdc/ticdc-client-authentication.md) diff --git a/ticdc/ticdc-data-replication-capabilities.md b/ticdc/ticdc-data-replication-capabilities.md new file mode 100644 index 0000000000000..63ec787f58cc3 --- /dev/null +++ b/ticdc/ticdc-data-replication-capabilities.md @@ -0,0 +1,47 @@ +--- +title: Analysis of TiCDC's Data Replication Capabilities +summary: Learn TiCDC's data Replication capabilities. +--- + +# Analysis of TiCDC's Data Replication Capabilities + +TiCDC (TiDB Change Data Capture) is a core component for real-time data synchronization in the TiDB ecosystem. This doc provides a detailed explanation of TiCDC's data replication capabilities. + +## Working Pinciples of TiCDC + ++ TiCDC monitors TiKV's Raft Log to convert row-level data changes (insert/update/delete) into downstream-compatible SQL statements. Unlike Binlog, TiCDC does not rely on parsing SQL statements. Refer to [TiCDC's Implementation Principles for Processing Data Changes](/ticdc/ticdc-overview.md#implementation-of-processing-data-changes). + + ++ TiCDC generates logical operations (such as INSERT/UPDATE/DELETE) that are equivalent to SQL semantics, rather than restoring the original SQL executed upstream one by one. Refer to [TiCDC's Implementation Principles for Processing Data Changes](/ticdc/ticdc-overview.md#implementation-of-processing-data-changes). + ++ TiCDC guarantees eventual consistency of transactions. [redo log](/ticdc/ticdc-sink-to-mysql.md#eventually-consistent-replication-in-disaster-scenarios) provides the final consistency guarantee in disaster recovery scenarios. [Syncpoint](/ticdc/ticdc-upstream-downstream-check.md#enable-syncpoint) provides consistent snapshot reads and data consistency checks. + +## Downstream Systems Supported by TiCDC + +TiCDC supports replication data to multiple downstreams, including: + +- [TiDB and MySQL-compatible databases](/ticdc/ticdc-sink-to-mysql.md) +- [Message Queue(MQ) Sink](/ticdc/ticdc-changefeed-config.md#sink), such as [Kafka](/ticdc/ticdc-sink-to-kafka.md), [Pulsar](/ticdc/ticdc-sink-to-pulsar.md) +- [Cloud Storage Sink](/ticdc/ticdc-sink-to-cloud-storage.md), such as Amazon S3, GCS, Azure Blob Storage, and NFS. +- [Integrate Data with Confluent Cloud and Snowflake](/ticdc/integrate-confluent-using-ticdc.md) +- [Integrate Data with Apache Kafka and Apache Flink](/ticdc/replicate-data-to-kafka-and-flink.md) + + +# Data Replication Scope of TiCDC + +TiCDC supports the following upstream data changes: + +- Support + - DDL and DML statements(exclude system tables). + - Index Action(`ADD INDEX`, `CREATE INDEX`): to reduce the impact on the replication delay of Changefeed, if the downstream is TiDB, TiCDC will [asynchronously execute the DDL operations of creating and adding indexes](/ticdc/ticdc-ddl.md#asynchronous-execution-of-add-index-and-create-index-ddls) + - Foreign Key Constraints DDL(`ADD FOREIGN KEY`): TiCDC is not responsible for synchronizing the settings of upstream system variables, such as [foreign_key_checks](/system-variables.md#foreign_key_checks). Therefore, you need to set appropriate system variables in the downstream to determine whether the downstream foreign key constraint check is enabled. + +- Not Support: + - DDL and DML statements executed in upstream system tables (including `mysql.*` and `information_schema.*`). + - DDL and DML statements executed in upstream temporary tables. + - DQL (Data Query Language) and DCL (Data Control Language) statements. + +## TiCDC Usage Limitations​ + +- TiCDC does not support some scenarios. For details, see [Unsupported scenarios](/ticdc/ticdc-overview.md#unsupported-scenarios). +- TiCDC only checks the integrity of the upstream changes received internally, and does not participate in checking whether the data changes meet the various downstream constraints. If a data change that does not meet the downstream constraints is encountered, TiCDC will report an error when writing to the downstream. \ No newline at end of file diff --git a/ticdc/ticdc-data-sync-capabilities.md b/ticdc/ticdc-data-sync-capabilities.md deleted file mode 100644 index feae696da7843..0000000000000 --- a/ticdc/ticdc-data-sync-capabilities.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: TiCDC's Data Synchronization Capability -summary: Learn TiCDC's data synchronization capabilities. ---- - -# TiCDC's Data Synchronization Capability - -## Background - -TiCDC (TiDB Change Data Capture) is a core component for real-time data synchronization in the TiDB ecosystem. - -1. TiCDC monitors TiKV's Raft Log to convert row-level data changes (insert/update/delete) into downstream-compatible SQL statements. Unlike Binlog, TiCDC does not rely on parsing SQL statements. Refer to [TiCDC's Implementation Principles for Processing Data Changes](/ticdc/ticdc-overview.md#implementation-of-processing-data-changes). - - -2. TiCDC generates logical operations (such as INSERT/UPDATE/DELETE) that are equivalent to SQL semantics, rather than restoring the original SQL executed upstream one by one. Refer to [TiCDC's Implementation Principles for Processing Data Changes](/ticdc/ticdc-overview.md#implementation-of-processing-data-changes). - -3. TiCDC guarantees eventual consistency of transactions. [redo log](/ticdc/ticdc-sink-to-mysql.md#eventually-consistent-replication-in-disaster-scenarios) provides the final consistency guarantee in disaster recovery scenarios. [Syncpoint](/ticdc/ticdc-upstream-downstream-check.md#enable-syncpoint) provides consistent snapshot reads and data consistency checks. - -4. TiCDC supports synchronizing data to multiple downstreams, including [TiDB and MySQL-compatible databases](/ticdc/ticdc-sink-to-mysql.md), [Kafka](/ticdc/ticdc-sink-to-kafka.md), [Pulsar](/ticdc/ticdc-sink-to-pulsar.md), [storage services (Amazon S3, GCS, Azure Blob Storage, and NFS)](/ticdc/ticdc-sink-to-cloud-storage.md). - -## Data synchronization capabilities of TiCDC - -1. TiCDC supports synchronizing DDL and DML statements executed upstream, but does not synchronize DDL and DML executed in upstream system tables (including `mysql.*` and `information_schema.*`), nor does it synchronize temporary tables created in the upstream. - -2. TiCDC does not support synchronizing DQL (Data Query Language) statements, nor does it support synchronizing DCL (Data Control Language) statements. - -3. TiCDC supports synchronizing the settings of the index in the upstream table through DDL (`add index`, `create index`), and to reduce the impact on the synchronization delay of Changefeed, if the downstream is TiDB, TiCDC will [asynchronously execute the DDL operations of creating and adding indexes](/ticdc/ticdc-ddl.md#asynchronous-execution-of-add-index-and-create-index-ddls). - -4. For the foreign key constraints set in the table, TiCDC will synchronize the corresponding DDL (`add foreign key`) statements, but TiCDC is not responsible for synchronizing the settings of upstream system variables, such as [foreign_key_checks](/system-variables.md#foreign_key_checks). Therefore, you need to set appropriate system variables in the downstream to determine whether the downstream foreign key constraint check is enabled. - -5. TiCDC only checks the integrity of the upstream changes received internally, and does not participate in checking whether the data changes meet the various downstream constraints. If a data change that does not meet the downstream constraints is encountered, TiCDC will report an error when writing to the downstream. \ No newline at end of file diff --git a/ticdc/ticdc-overview.md b/ticdc/ticdc-overview.md index c1d5ec955e75b..e052d1e09ad4b 100644 --- a/ticdc/ticdc-overview.md +++ b/ticdc/ticdc-overview.md @@ -6,7 +6,7 @@ aliases: ['/docs/dev/ticdc/ticdc-overview/','/docs/dev/reference/tools/ticdc/ove # TiCDC Overview -[TiCDC](https://github.com/pingcap/tiflow/tree/master/cdc) is a tool used to replicate incremental data from TiDB. Specifically, TiCDC pulls TiKV change logs, sorts captured data, and exports row-based incremental data to downstream databases. +[TiCDC](https://github.com/pingcap/tiflow/tree/master/cdc) is a tool used to replicate incremental data from TiDB. Specifically, TiCDC pulls TiKV change logs, sorts captured data, and exports row-based incremental data to downstream databases. For detailed data replication capabilities, see [Analysis of TiCDC's Data Replication Capabilities](/ticdc/ticdc-data-replication-capabilities.md). ## Usage scenarios From 1db77d7dbcd466b841fac38c2047a21597c72c93 Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Wed, 21 May 2025 14:47:22 +0800 Subject: [PATCH 11/19] Apply suggestions from code review --- TOC.md | 2 +- ticdc/ticdc-overview.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/TOC.md b/TOC.md index 38b1ee7e92fb1..93c12828ff9e4 100644 --- a/TOC.md +++ b/TOC.md @@ -193,7 +193,7 @@ - [Integrate with Apache Kafka and Apache Flink](/replicate-data-to-kafka.md) - Reference - [TiCDC Architecture](/ticdc/ticdc-architecture.md) - - [Analysis of TiCDC's Data Replication Capabilities](/ticdc/ticdc-data-replication-capabilities.md) + - [TiCDC Data Replication Capabilities](/ticdc/ticdc-data-replication-capabilities.md) - [TiCDC Server Configurations](/ticdc/ticdc-server-config.md) - [TiCDC Changefeed Configurations](/ticdc/ticdc-changefeed-config.md) - [TiCDC Client Authentication](/ticdc/ticdc-client-authentication.md) diff --git a/ticdc/ticdc-overview.md b/ticdc/ticdc-overview.md index e052d1e09ad4b..94b7e854c3942 100644 --- a/ticdc/ticdc-overview.md +++ b/ticdc/ticdc-overview.md @@ -6,7 +6,7 @@ aliases: ['/docs/dev/ticdc/ticdc-overview/','/docs/dev/reference/tools/ticdc/ove # TiCDC Overview -[TiCDC](https://github.com/pingcap/tiflow/tree/master/cdc) is a tool used to replicate incremental data from TiDB. Specifically, TiCDC pulls TiKV change logs, sorts captured data, and exports row-based incremental data to downstream databases. For detailed data replication capabilities, see [Analysis of TiCDC's Data Replication Capabilities](/ticdc/ticdc-data-replication-capabilities.md). +[TiCDC](https://github.com/pingcap/tiflow/tree/master/cdc) is a tool used to replicate incremental data from TiDB. Specifically, TiCDC pulls TiKV change logs, sorts captured data, and exports row-based incremental data to downstream databases. For detailed data replication capabilities, see [TiCDC Data Replication Capabilities](/ticdc/ticdc-data-replication-capabilities.md). ## Usage scenarios From 09d55c7209acb004eeb333f35b3dbb237761bac6 Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Wed, 21 May 2025 14:56:41 +0800 Subject: [PATCH 12/19] Update wording --- ticdc/ticdc-data-replication-capabilities.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ticdc/ticdc-data-replication-capabilities.md b/ticdc/ticdc-data-replication-capabilities.md index 63ec787f58cc3..9eebfaae57280 100644 --- a/ticdc/ticdc-data-replication-capabilities.md +++ b/ticdc/ticdc-data-replication-capabilities.md @@ -1,9 +1,9 @@ --- -title: Analysis of TiCDC's Data Replication Capabilities -summary: Learn TiCDC's data Replication capabilities. +title: TiCDC Data Replication Capabilities +summary: Learn the data replication capabilities of TiCDC. --- -# Analysis of TiCDC's Data Replication Capabilities +# TiCDC Data Replication Capabilities TiCDC (TiDB Change Data Capture) is a core component for real-time data synchronization in the TiDB ecosystem. This doc provides a detailed explanation of TiCDC's data replication capabilities. From 91c5f17d155b8fd7d3d4d0459227e1fe599a9597 Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Wed, 21 May 2025 16:34:24 +0800 Subject: [PATCH 13/19] Improve descriptions to make them clear --- ticdc/ticdc-data-replication-capabilities.md | 53 ++++++++++---------- 1 file changed, 26 insertions(+), 27 deletions(-) diff --git a/ticdc/ticdc-data-replication-capabilities.md b/ticdc/ticdc-data-replication-capabilities.md index 9eebfaae57280..a6938783cdc3a 100644 --- a/ticdc/ticdc-data-replication-capabilities.md +++ b/ticdc/ticdc-data-replication-capabilities.md @@ -5,43 +5,42 @@ summary: Learn the data replication capabilities of TiCDC. # TiCDC Data Replication Capabilities -TiCDC (TiDB Change Data Capture) is a core component for real-time data synchronization in the TiDB ecosystem. This doc provides a detailed explanation of TiCDC's data replication capabilities. +[TiCDC](/ticdc/ticdc-overview.md) (TiDB Change Data Capture) is a core component in the TiDB ecosystem for real-time data replication. This document provides a detailed explanation of TiCDC data replication capabilities. -## Working Pinciples of TiCDC +## Implementation principles -+ TiCDC monitors TiKV's Raft Log to convert row-level data changes (insert/update/delete) into downstream-compatible SQL statements. Unlike Binlog, TiCDC does not rely on parsing SQL statements. Refer to [TiCDC's Implementation Principles for Processing Data Changes](/ticdc/ticdc-overview.md#implementation-of-processing-data-changes). +- TiCDC listens to TiKV change logs (Raft logs) and converts row-level data changes (`INSERT`, `UPDATE`, and `DELETE` operations) into downstream-compatible SQL statements. TiCDC does not rely on the original SQL statements executed on the upstream database. For details, see [how TiCDC processes data changes](/ticdc/ticdc-overview.md#implementation-of-processing-data-changes). +- TiCDC generates logical operations (such as `INSERT`, `UPDATE`, and `DELETE`) equivalent to SQL semantics, rather than restoring the original SQL statements executed on the upstream database one by one. For details, see [how TiCDC processes data changes](/ticdc/ticdc-overview.md#implementation-of-processing-data-changes). -+ TiCDC generates logical operations (such as INSERT/UPDATE/DELETE) that are equivalent to SQL semantics, rather than restoring the original SQL executed upstream one by one. Refer to [TiCDC's Implementation Principles for Processing Data Changes](/ticdc/ticdc-overview.md#implementation-of-processing-data-changes). +- TiCDC ensures eventual consistency of transactions. With [redo log](/ticdc/ticdc-sink-to-mysql.md#eventually-consistent-replication-in-disaster-scenarios) enabled, TiCDC can guarantee eventual consistency in disaster recovery scenarios. With [Syncpoint](/ticdc/ticdc-upstream-downstream-check.md#enable-syncpoint) enabled, TiCDC supports consistent snapshot reads and data consistency validation. -+ TiCDC guarantees eventual consistency of transactions. [redo log](/ticdc/ticdc-sink-to-mysql.md#eventually-consistent-replication-in-disaster-scenarios) provides the final consistency guarantee in disaster recovery scenarios. [Syncpoint](/ticdc/ticdc-upstream-downstream-check.md#enable-syncpoint) provides consistent snapshot reads and data consistency checks. +## Supported downstream systems -## Downstream Systems Supported by TiCDC +TiCDC supports replicating data to various downstream systems, including the following: -TiCDC supports replication data to multiple downstreams, including: +- [TiDB database or other MySQL-compatible databases](/ticdc/ticdc-sink-to-mysql.md) +- [Apache Kafka](/ticdc/ticdc-sink-to-kafka.md) +- [Message Queue (MQ)-type sinks](/ticdc/ticdc-changefeed-config.md#sink), such as [Pulsar](/ticdc/ticdc-sink-to-pulsar.md) +- [Storage services (Amazon S3, GCS, Azure Blob Storage, and NFS)](/ticdc/ticdc-sink-to-cloud-storage.md) +- [Snowflake, ksqlDB, SQL Server via Confluent Cloud integration](/ticdc/integrate-confluent-using-ticdc.md) +- [Apache Flink for consuming Kafka-replicated data](/ticdc/replicate-data-to-kafka-and-flink.md) -- [TiDB and MySQL-compatible databases](/ticdc/ticdc-sink-to-mysql.md) -- [Message Queue(MQ) Sink](/ticdc/ticdc-changefeed-config.md#sink), such as [Kafka](/ticdc/ticdc-sink-to-kafka.md), [Pulsar](/ticdc/ticdc-sink-to-pulsar.md) -- [Cloud Storage Sink](/ticdc/ticdc-sink-to-cloud-storage.md), such as Amazon S3, GCS, Azure Blob Storage, and NFS. -- [Integrate Data with Confluent Cloud and Snowflake](/ticdc/integrate-confluent-using-ticdc.md) -- [Integrate Data with Apache Kafka and Apache Flink](/ticdc/replicate-data-to-kafka-and-flink.md) +# Scope of data replication +TiCDC supports the following types of upstream data changes: -# Data Replication Scope of TiCDC ++ **Supported:** + - DDL and DML statements(excluding system tables). + - Index operations (`ADD INDEX`, `CREATE INDEX`): to reduce the impact on changefeed replication latency, if the downstream is TiDB, TiCDC [asynchronously executes the `ADD INDEX` and `CREATE INDEX` DDL operations](/ticdc/ticdc-ddl.md#asynchronous-execution-of-add-index-and-create-index-ddls). + - Foreign key constraint DDL statements (`ADD FOREIGN KEY`): TiCDC does **not** replicate upstream system variable settings. You need to manually configure [`foreign_key_checks`](/system-variables.md#foreign_key_checks) in the downstream to determine whether the downstream foreign key constraint check is enabled. -TiCDC supports the following upstream data changes: +- **Not supported**: + - DDL and DML statements executed in upstream system tables (including `mysql.*` and `information_schema.*`). + - DDL and DML statements executed in upstream temporary tables. + - DQL (Data Query Language) and DCL (Data Control Language) statements. -- Support - - DDL and DML statements(exclude system tables). - - Index Action(`ADD INDEX`, `CREATE INDEX`): to reduce the impact on the replication delay of Changefeed, if the downstream is TiDB, TiCDC will [asynchronously execute the DDL operations of creating and adding indexes](/ticdc/ticdc-ddl.md#asynchronous-execution-of-add-index-and-create-index-ddls) - - Foreign Key Constraints DDL(`ADD FOREIGN KEY`): TiCDC is not responsible for synchronizing the settings of upstream system variables, such as [foreign_key_checks](/system-variables.md#foreign_key_checks). Therefore, you need to set appropriate system variables in the downstream to determine whether the downstream foreign key constraint check is enabled. +## Limitations​ -- Not Support: - - DDL and DML statements executed in upstream system tables (including `mysql.*` and `information_schema.*`). - - DDL and DML statements executed in upstream temporary tables. - - DQL (Data Query Language) and DCL (Data Control Language) statements. - -## TiCDC Usage Limitations​ - -- TiCDC does not support some scenarios. For details, see [Unsupported scenarios](/ticdc/ticdc-overview.md#unsupported-scenarios). -- TiCDC only checks the integrity of the upstream changes received internally, and does not participate in checking whether the data changes meet the various downstream constraints. If a data change that does not meet the downstream constraints is encountered, TiCDC will report an error when writing to the downstream. \ No newline at end of file +- TiCDC does not support certain scenarios. For details, see [unsupported scenarios](/ticdc/ticdc-overview.md#unsupported-scenarios). +- TiCDC only verifies the integrity of upstream data changes. It does not validate whether the changes conform to downstream constraints. If the data violates downstream constraints, TiCDC will return an error when writing to the downstream. \ No newline at end of file From 686b4190502f1b50ff8d6094188f331ea03ba94d Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Wed, 21 May 2025 16:36:44 +0800 Subject: [PATCH 14/19] Apply suggestions from code review --- ticdc/ticdc-data-replication-capabilities.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ticdc/ticdc-data-replication-capabilities.md b/ticdc/ticdc-data-replication-capabilities.md index a6938783cdc3a..248105b5739c7 100644 --- a/ticdc/ticdc-data-replication-capabilities.md +++ b/ticdc/ticdc-data-replication-capabilities.md @@ -7,7 +7,7 @@ summary: Learn the data replication capabilities of TiCDC. [TiCDC](/ticdc/ticdc-overview.md) (TiDB Change Data Capture) is a core component in the TiDB ecosystem for real-time data replication. This document provides a detailed explanation of TiCDC data replication capabilities. -## Implementation principles +## How TiCDC works - TiCDC listens to TiKV change logs (Raft logs) and converts row-level data changes (`INSERT`, `UPDATE`, and `DELETE` operations) into downstream-compatible SQL statements. TiCDC does not rely on the original SQL statements executed on the upstream database. For details, see [how TiCDC processes data changes](/ticdc/ticdc-overview.md#implementation-of-processing-data-changes). @@ -26,16 +26,18 @@ TiCDC supports replicating data to various downstream systems, including the fol - [Snowflake, ksqlDB, SQL Server via Confluent Cloud integration](/ticdc/integrate-confluent-using-ticdc.md) - [Apache Flink for consuming Kafka-replicated data](/ticdc/replicate-data-to-kafka-and-flink.md) -# Scope of data replication +## Scope of data replication TiCDC supports the following types of upstream data changes: + **Supported:** + - DDL and DML statements(excluding system tables). - Index operations (`ADD INDEX`, `CREATE INDEX`): to reduce the impact on changefeed replication latency, if the downstream is TiDB, TiCDC [asynchronously executes the `ADD INDEX` and `CREATE INDEX` DDL operations](/ticdc/ticdc-ddl.md#asynchronous-execution-of-add-index-and-create-index-ddls). - Foreign key constraint DDL statements (`ADD FOREIGN KEY`): TiCDC does **not** replicate upstream system variable settings. You need to manually configure [`foreign_key_checks`](/system-variables.md#foreign_key_checks) in the downstream to determine whether the downstream foreign key constraint check is enabled. -- **Not supported**: ++ **Not supported**: + - DDL and DML statements executed in upstream system tables (including `mysql.*` and `information_schema.*`). - DDL and DML statements executed in upstream temporary tables. - DQL (Data Query Language) and DCL (Data Control Language) statements. From 41a34c85d149bbf6ee8add14566bfab18b6abaab Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Wed, 21 May 2025 16:48:09 +0800 Subject: [PATCH 15/19] Update a link --- ticdc/ticdc-data-replication-capabilities.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ticdc/ticdc-data-replication-capabilities.md b/ticdc/ticdc-data-replication-capabilities.md index 248105b5739c7..57b8c938ac070 100644 --- a/ticdc/ticdc-data-replication-capabilities.md +++ b/ticdc/ticdc-data-replication-capabilities.md @@ -24,7 +24,7 @@ TiCDC supports replicating data to various downstream systems, including the fol - [Message Queue (MQ)-type sinks](/ticdc/ticdc-changefeed-config.md#sink), such as [Pulsar](/ticdc/ticdc-sink-to-pulsar.md) - [Storage services (Amazon S3, GCS, Azure Blob Storage, and NFS)](/ticdc/ticdc-sink-to-cloud-storage.md) - [Snowflake, ksqlDB, SQL Server via Confluent Cloud integration](/ticdc/integrate-confluent-using-ticdc.md) -- [Apache Flink for consuming Kafka-replicated data](/ticdc/replicate-data-to-kafka-and-flink.md) +- [Apache Flink for consuming Kafka-replicated data](/ticdc/replicate-data-to-kafka.md) ## Scope of data replication From 03f3b29c23a70778028dd5721efaef39add3a3ff Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Wed, 21 May 2025 16:51:20 +0800 Subject: [PATCH 16/19] Fix a link to pass check --- ticdc/ticdc-data-replication-capabilities.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ticdc/ticdc-data-replication-capabilities.md b/ticdc/ticdc-data-replication-capabilities.md index 57b8c938ac070..3fe88f0a8e056 100644 --- a/ticdc/ticdc-data-replication-capabilities.md +++ b/ticdc/ticdc-data-replication-capabilities.md @@ -24,7 +24,7 @@ TiCDC supports replicating data to various downstream systems, including the fol - [Message Queue (MQ)-type sinks](/ticdc/ticdc-changefeed-config.md#sink), such as [Pulsar](/ticdc/ticdc-sink-to-pulsar.md) - [Storage services (Amazon S3, GCS, Azure Blob Storage, and NFS)](/ticdc/ticdc-sink-to-cloud-storage.md) - [Snowflake, ksqlDB, SQL Server via Confluent Cloud integration](/ticdc/integrate-confluent-using-ticdc.md) -- [Apache Flink for consuming Kafka-replicated data](/ticdc/replicate-data-to-kafka.md) +- [Apache Flink for consuming Kafka-replicated data](/replicate-data-to-kafka.md) ## Scope of data replication From eb377e75db17a3e3a6e1505fbf7701098536f76e Mon Sep 17 00:00:00 2001 From: hongyunyan <649330952@qq.com> Date: Thu, 22 May 2025 14:43:04 +0800 Subject: [PATCH 17/19] update --- ticdc/ticdc-data-replication-capabilities.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ticdc/ticdc-data-replication-capabilities.md b/ticdc/ticdc-data-replication-capabilities.md index 3fe88f0a8e056..591002ec3f179 100644 --- a/ticdc/ticdc-data-replication-capabilities.md +++ b/ticdc/ticdc-data-replication-capabilities.md @@ -34,7 +34,7 @@ TiCDC supports the following types of upstream data changes: - DDL and DML statements(excluding system tables). - Index operations (`ADD INDEX`, `CREATE INDEX`): to reduce the impact on changefeed replication latency, if the downstream is TiDB, TiCDC [asynchronously executes the `ADD INDEX` and `CREATE INDEX` DDL operations](/ticdc/ticdc-ddl.md#asynchronous-execution-of-add-index-and-create-index-ddls). - - Foreign key constraint DDL statements (`ADD FOREIGN KEY`): TiCDC does **not** replicate upstream system variable settings. You need to manually configure [`foreign_key_checks`](/system-variables.md#foreign_key_checks) in the downstream to determine whether the downstream foreign key constraint check is enabled. + - Foreign key constraint DDL statements (`ADD FOREIGN KEY`): TiCDC does **not** replicate upstream system variable settings. You need to manually configure [`foreign_key_checks`](/system-variables.md#foreign_key_checks) in the downstream to determine whether the downstream foreign key constraint check is enabled. TiCDC does **not** validate whether the data satisfies foreign key constraints. + **Not supported**: From dae0011a62ff9605c0111c4bf7ca472870b42403 Mon Sep 17 00:00:00 2001 From: Flowyi Date: Thu, 22 May 2025 14:45:55 +0800 Subject: [PATCH 18/19] Update ticdc/ticdc-data-replication-capabilities.md --- ticdc/ticdc-data-replication-capabilities.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ticdc/ticdc-data-replication-capabilities.md b/ticdc/ticdc-data-replication-capabilities.md index 591002ec3f179..819b02d0d6108 100644 --- a/ticdc/ticdc-data-replication-capabilities.md +++ b/ticdc/ticdc-data-replication-capabilities.md @@ -45,4 +45,4 @@ TiCDC supports the following types of upstream data changes: ## Limitations​ - TiCDC does not support certain scenarios. For details, see [unsupported scenarios](/ticdc/ticdc-overview.md#unsupported-scenarios). -- TiCDC only verifies the integrity of upstream data changes. It does not validate whether the changes conform to downstream constraints. If the data violates downstream constraints, TiCDC will return an error when writing to the downstream. \ No newline at end of file +- TiCDC only verifies the integrity of upstream data changes. It does not validate whether the changes conform to upstream or downstream constraints. If the data violates downstream constraints, TiCDC will return an error when writing to the downstream. For instance, TiCDC does **not** do foreign key validation at all. \ No newline at end of file From c902e71a9eaa2b325c28f43a9cdcea355c478a7f Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Thu, 22 May 2025 15:30:00 +0800 Subject: [PATCH 19/19] Improve wording --- ticdc/ticdc-data-replication-capabilities.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ticdc/ticdc-data-replication-capabilities.md b/ticdc/ticdc-data-replication-capabilities.md index 819b02d0d6108..730ea565fe709 100644 --- a/ticdc/ticdc-data-replication-capabilities.md +++ b/ticdc/ticdc-data-replication-capabilities.md @@ -34,7 +34,7 @@ TiCDC supports the following types of upstream data changes: - DDL and DML statements(excluding system tables). - Index operations (`ADD INDEX`, `CREATE INDEX`): to reduce the impact on changefeed replication latency, if the downstream is TiDB, TiCDC [asynchronously executes the `ADD INDEX` and `CREATE INDEX` DDL operations](/ticdc/ticdc-ddl.md#asynchronous-execution-of-add-index-and-create-index-ddls). - - Foreign key constraint DDL statements (`ADD FOREIGN KEY`): TiCDC does **not** replicate upstream system variable settings. You need to manually configure [`foreign_key_checks`](/system-variables.md#foreign_key_checks) in the downstream to determine whether the downstream foreign key constraint check is enabled. TiCDC does **not** validate whether the data satisfies foreign key constraints. + - Foreign key constraint DDL statements (`ADD FOREIGN KEY`): TiCDC does **not** replicate upstream system variable settings. You need to manually configure [`foreign_key_checks`](/system-variables.md#foreign_key_checks) in the downstream to determine whether the downstream foreign key constraint check is enabled. TiCDC does **not** validate whether the data complies with foreign key constraints. + **Not supported**: @@ -45,4 +45,4 @@ TiCDC supports the following types of upstream data changes: ## Limitations​ - TiCDC does not support certain scenarios. For details, see [unsupported scenarios](/ticdc/ticdc-overview.md#unsupported-scenarios). -- TiCDC only verifies the integrity of upstream data changes. It does not validate whether the changes conform to upstream or downstream constraints. If the data violates downstream constraints, TiCDC will return an error when writing to the downstream. For instance, TiCDC does **not** do foreign key validation at all. \ No newline at end of file +- TiCDC only verifies the integrity of upstream data changes. It does not validate whether the changes conform to upstream or downstream constraints. If the data violates downstream constraints, TiCDC will return an error when writing to the downstream. For example, TiCDC does **not** perform any foreign key validation. \ No newline at end of file