跳转到主要内容
本文档介绍如何在 Postgres ClickPipe 处于 CDC (运行中) 模式 时控制同步过程。

概述

数据库 ClickPipes 的架构由两个并行过程组成:从源数据库拉取,以及向目标数据库推送。拉取过程由同步配置控制,该配置定义了数据拉取的频率,以及每次拉取的数据量。这里的“每次”指一个批次,因为 ClickPipe 是按批次拉取和推送数据的。 控制 Postgres ClickPipe 同步的方式主要有两种。当以下任一设置生效时,ClickPipe 就会开始推送。

同步间隔

管道的同步间隔,是指 ClickPipe 从源数据库拉取记录的持续时间 (以秒为单位) 。将已拉取的数据推送到 ClickHouse 所花费的时间不计入该间隔。 默认值为 1 分钟。 同步间隔可设置为任意正整数,但建议保持在 10 秒以上。

拉取批次大小

拉取批次大小是指 ClickPipe 单次从源数据库拉取的记录数。这里的记录包括对属于该管道的表执行的插入、更新和删除操作。 默认值为 100,000 条记录。 建议的安全上限为 1000 万。

一个例外:源数据库上的长事务

当源数据库上有事务在运行时,ClickPipe 会一直等待,直到收到该事务的 COMMIT 后才会继续处理。这会覆盖同步间隔和拉取批次大小。

配置同步设置

你可以在创建 ClickPipe 时设置同步间隔和拉取批次大小,也可以在编辑现有 ClickPipe 时进行设置。 创建 ClickPipe 时,这些设置会显示在创建向导的第二步,如下所示: 编辑现有 ClickPipe 时,你可以前往该管道的 设置 选项卡,暂停管道,然后点击此处的 配置 这会打开一个包含同步设置的弹出面板,你可以在其中修改同步间隔和拉取批次大小:

调整同步设置以帮助缓解 replication slot 增长

下面我们来看看如何使用这些设置来处理 CDC 管道中过大的 replication slot。 向 ClickHouse 推送数据所需的时间,并不会随着从源数据库拉取数据所需时间的增加而线性增长。可以利用这一点来缩小过大的 replication slot。 通过同时增大同步间隔和拉取批次大小,ClickPipe 就能一次性从源数据库拉取大量数据,然后再将其推送到 ClickHouse。

监控同步控制行为

你可以在 ClickPipe 的 指标 选项卡中的 CDC 同步 表中查看每个批次的耗时。请注意,此处的耗时包含推送时间;此外,如果没有新行传入,ClickPipe 会等待,这段等待时间也会计入耗时。
最后修改于 2026年6月10日