重新同步数据库 ClickPipe
Resync 有什么作用?
Resync 会按以下顺序执行操作:
- 删除现有的 ClickPipe,并启动一个新的“resync” ClickPipe。这样,在你执行 resync 时,对源表结构的更改会被捕获。
- resync ClickPipe 会创建(或替换)一组新的目标表,这些表与原始表同名,但会多一个
_resync后缀。 - 对
_resync表执行初始加载。 - 然后将
_resync表与原始表进行交换。在交换前,会将原始表中的软删除行转移到_resync表中。
原始 ClickPipe 的所有设置都会保留在 resync ClickPipe 中。原始 ClickPipe 的统计信息会在 UI 中被清除。
何时需要对 ClickPipe 进行 Resync
以下是几种典型场景:
- 你可能需要在源表上执行重大 schema 变更,这会导致现有 ClickPipe 出错,需要重新启动。这种情况下,只需在完成变更后点击 Resync 即可。
- 尤其是对于 ClickHouse,你可能需要更改目标表上的 ORDER BY 键。你可以通过 Resync 将数据重新填充到带有正确排序键的新表中。
- ClickPipe 的 replication slot 失效:Resync 会在源数据库上创建一个新的 ClickPipe 和一个新的 slot。
注意
你可以执行多次 resync,但在 resync 时请考虑对源数据库的负载, 因为每次都会涉及使用并行线程的初始加载。
Resync ClickPipe 指南
- 在 Data Sources 选项卡中,点击你想要执行 resync 的 Postgres ClickPipe。
- 进入 Settings 选项卡。
- 点击 Resync 按钮。

- 会弹出一个确认对话框。再次点击 Resync。
- 前往 Metrics 选项卡。
- 大约 5 秒后(或刷新页面后),该 pipe 的状态应为 Setup 或 Snapshot。
- 可以在 Tables 选项卡的 Initial Load Stats 区域监控 resync 的初始加载过程。
- 一旦初始加载完成,pipe 会以原子方式将
_resync表与原始表进行交换。交换期间,状态会显示为 Resync。 - 交换完成后,pipe 会进入 Running 状态,并在启用的情况下执行 CDC(变更数据捕获)。