跳到主要内容
跳到主要内容

从 Postgres 到 ClickHouse 的数据摄取(使用 CDC)

您可以使用 ClickPipes 将数据从源 Postgres 数据库摄取到 ClickHouse Cloud。源 Postgres 数据库可以托管在本地或云端,包括 Amazon RDS、Google Cloud SQL、Azure Database for Postgres、Supabase 等。

前提条件

要开始,您首先需要确保您的 Postgres 数据库已正确设置。根据您的源 Postgres 实例,您可以遵循以下任一指南:

  1. Amazon RDS Postgres

  2. Amazon Aurora Postgres

  3. Supabase Postgres

  4. Google Cloud SQL Postgres

  5. Azure Flexible Server for Postgres

  6. Neon Postgres

  7. Crunchy Bridge Postgres

  8. 通用 Postgres 来源,如果您使用的是其他 Postgres 提供商或使用自托管实例。

  9. TimescaleDB,如果您在托管服务或自托管实例上使用 TimescaleDB 扩展。

警告

Postgres 代理如 PgBouncer、RDS Proxy、Supabase Pooler 等,不支持基于 CDC 的复制。请确保在 ClickPipes 设置中不要使用它们,而是添加实际 Postgres 数据库的连接详情。

一旦您的源 Postgres 数据库设置完成,您可以继续创建您的 ClickPipe。

创建您的 ClickPipe

确保您已登录到 ClickHouse Cloud 账户。如果您还没有账户,可以在 这里注册

  1. 在 ClickHouse Cloud 控制台中,导航到您的 ClickHouse Cloud 服务。
ClickPipes service
  1. 在左侧菜单中选择 Data Sources 按钮,然后点击“设置 ClickPipe”
Select imports
  1. 选择 Postgres CDC 瓦片

    Select Postgres

添加您的源 Postgres 数据库连接

  1. 填写您在前提条件步骤中配置的源 Postgres 数据库的连接详情。

    信息

    在开始添加连接详情之前,请确保在防火墙规则中列入 ClickPipes IP 地址。您可以在 这里 找到 ClickPipes IP 地址的列表。 有关更多信息,请参考本页顶部链接的源 Postgres 设置指南 前提条件

    Fill in connection details

如果您的源 Postgres 数据库托管在 AWS 上,您可以使用 AWS Private Link 进行连接。这对于想要保持数据传输私密的用户非常有用。 您可以遵循 设置指南来设置连接

(可选)设置 SSH 隧道

如果您的源 Postgres 数据库不可公开访问,您可以指定 SSH 隧道的详细信息。

  1. 启用“使用 SSH 隧道”切换按钮。

  2. 填写 SSH 连接详情。

    SSH tunneling
  3. 要使用基于密钥的身份验证,请单击“撤销并生成密钥对”以生成新密钥对,并将生成的公钥复制到您的 SSH 服务器的 ~/.ssh/authorized_keys

  4. 单击“验证连接”以验证连接。

备注

确保在 SSH 中继主机的防火墙规则中列入 ClickPipes IP 地址,以便 ClickPipes 可以建立 SSH 隧道。

填写连接详情后,单击“下一步”。

配置复制设置

  1. 确保从下拉列表中选择前提条件步骤中创建的复制槽。

    Select replication slot

高级设置

如果需要,您可以配置高级设置。每个设置的简要描述如下:

  • 同步间隔:这是 ClickPipes 每次轮询源数据库以获取更改的时间间隔。这会影响目标 ClickHouse 服务,对于对成本敏感的用户,我们建议将此值保持在较高的值(超过 3600)。
  • 初始加载的并行线程:这是用于获取初始快照的并行工作者的数量。当您有大量表并希望控制用于获取初始快照的并行工作者数量时,这非常有用。此设置是按表计算的。
  • 拉取批量大小:单次批量中要提取的行数。这是基于最大努力的设置,在某些情况下可能无法遵守。
  • 每个分区的快照行数:这是在初始快照期间在每个分区中要获取的行数。当您的表中有大量行且希望控制每个分区获取的行数时,这非常有用。
  • 并行快照的表数量:这是在初始快照期间将并行提取的表数量。当您有大量表并希望控制并行提取的表数量时,这非常有用。

配置表

  1. 在此处,您可以选择 ClickPipe 的目标数据库。您可以选择一个现有的数据库或创建一个新的。

    Select destination database
  2. 您可以选择要从源 Postgres 数据库复制的表。在选择表时,您还可以选择在目标 ClickHouse 数据库中重命名表以及排除特定列。

    警告

    如果您在 ClickHouse 中定义的排序键与 Postgres 中的主键不同,请务必阅读有关的所有 注意事项

审查权限并启动 ClickPipe

  1. 从权限下拉菜单中选择“完全访问”角色,然后单击“完成设置”。

    Review permissions

接下来做什么?

一旦您设置了 ClickPipe 将数据从 PostgreSQL 复制到 ClickHouse Cloud,您可以专注于如何查询和建模您的数据以获取最佳性能。请参阅 迁移指南,评估哪种策略最适合您的需求,以及有关 CDC 工作负载的最佳实践的 去重策略(使用 CDC)排序键 页面。

有关 PostgreSQL CDC 和故障排除的常见问题,请参阅 Postgres 常见问题页面