TiCDC New Sink Component

June 7, 2023 · 0 min · Rustin liu

TiCDC Sink 开发指南

我近半年的时间都在做 TiCDC Sink 模块的改造工作,目前新的 Sink 实现已经成功替换了旧的实现。最近有客户希望通过自己实现 Sink 的方式来接入 TiCDC,所以我想把这段时间的改造和设计经验分享出来,希望能帮助到大家。 此博客在 GitHub 上公开发布。 如果您有任何问题,请在此处打开一个 issue。 ⚠️ 注意: 该指南主要面向开发者,如果您只是想使用 TiCDC,请参阅 TiCDC 使用文档。 在阅读该指南前,请先阅读 TiCDC 架构和数据同步链路解析了解 TiCDC 的基本架构和数据同步流程。 基本概念 可以先简单浏览这些子组件概念,后面会有详细的介绍。 Sink:TiCDC 的 Sink 模块负责将 TiCDC 的数据变更输出到外部系统中。目前 TiCDC 支持输出到 MySQL、TiDB、Kafka、S3 等外部系统中。 Table Sink:负责将 TiCDC 的数据变更按照表为单位进行聚合,然后输出到外部系统中。 Event Sink:负责与外部系统进行交互,将 TiCDC 的数据变更编码后输出到外部系统中。这里的 Event 主要指的是 TiCDC 的数据变更事件,比如 Insert、Update、Delete 等。 MQ Event Sink:负责将 TiCDC 的数据变更输出到 Message Queue 中。MQ Sink 会将数据变更事件编码为 MQ 消息,然后输出到 MQ 中。目前 TiCDC 支持输出到 Kafka 中。 Txn Event Sink:负责将 TiCDC 的数据变更按照事务为单位进行聚合,然后输出到外部系统中。目前 TiCDC 支持输出到 MySQL、TiDB 中。 DDL Sink:负责将 TiCDC 的 DDL 语句输出到外部系统中。目前 TiCDC 支持输出到 Kafka、MySQL、TiDB 中。 MQ DDL Sink:负责将 TiCDC 接受到的 DDL 语句输出到 Kafka 中。 Txn DDL Sink:,负责将 TiCDC 接受到的 DDL 语句输出到 MySQL、TiDB 中。 基本架构 我们可以将 TiCDC 接收到的数据分为两类:...

February 7, 2023 · 8 min · Rustin liu

TiCDC, a tool for replicating the incremental data of TiDB

November 5, 2022 · 0 min · Rustin liu

TiCDC Sink Component

April 13, 2022 · 0 min · Rustin liu