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

从 Postgres 导入数据到 ClickHouse(使用 CDC)

Beta feature. Learn more.
信息

目前,通过 ClickPipes 将数据从 Postgres 导入到 ClickHouse Cloud 正处于公开测试阶段。

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

前提条件

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

  1. Amazon RDS Postgres

  2. Supabase Postgres

  3. Google Cloud SQL Postgres

  4. Azure Flexible Server for Postgres

  5. Neon Postgres

  6. Crunchy Bridge Postgres

  7. 通用 Postgres 源,如果您使用其他 Postgres 提供商或使用自托管实例

危险

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

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

创建您的 ClickPipe

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

  1. 在 ClickHouse Cloud 控制台中,导航到您的 ClickHouse Cloud 服务。
ClickPipes service
  1. 在左侧菜单中选择 Data Sources 按钮,然后点击 "Set up a ClickPipe"
选择导入
  1. 选择 Postgres CDC 瓦片

    选择 Postgres

添加源 Postgres 数据库连接

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

    信息

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

    填写连接详细信息

(可选)设置 SSH 隧道

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

  1. 启用 "Use SSH Tunnelling" 切换。

  2. 填写 SSH 连接详细信息。

    SSH 隧道
  3. 要使用密钥认证,请点击 "Revoke and generate key pair" 以生成新的密钥对,并将生成的公钥复制到您的 SSH 服务器的 ~/.ssh/authorized_keys 下。

  4. 点击 "Verify Connection" 以验证连接。

备注

请确保在防火墙规则中的 SSH 跃点主机上列入ClickPipes IP 地址的白名单,以便 ClickPipes 能够建立 SSH 隧道。

在填写连接详细信息后,点击 "Next"。

配置复制设置

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

    选择复制槽

高级设置

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

  • Sync interval: 这是 ClickPipes 每次轮询源数据库以检查更改的间隔。这对目标 ClickHouse 服务有影响,对于对成本敏感的用户,我们建议将其保持在较高的值(超过 3600)。
  • Parallel threads for initial load: 这是用于获取初始快照的并行工作线程数量。当您有大量表时,这很有用,您可以控制用于获取初始快照的并行工作线程数量。此设置是按表计算的。
  • Pull batch size: 每次批量获取的行数。这是一个尽力而为的设置,可能在所有情况下不被遵守。
  • Snapshot number of rows per partition: 初始快照期间,每个分区将获取的行数。当您的表中有大量行时,这非常有用,您可以控制每个分区中获取的行数。
  • Snapshot number of tables in parallel: 初始快照期间将并行获取的表的数量。当您有大量表时,这很有用,您可以控制并行提取的表的数量。

配置表

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

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

    危险

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

审查权限并启动 ClickPipe

  1. 从权限下拉列表中选择 "Full access" 角色,然后点击 "Complete Setup"。

    审查权限

接下来是什么?

当您将数据从 Postgres 移动到 ClickHouse 后,接下来的明显问题是如何在 ClickHouse 中建模数据以充分利用它。请参阅此页面上的ClickHouse 数据建模提示,适用于 Postgres 用户,以帮助您在 ClickHouse 中建模数据。

另外,请参考ClickPipes for Postgres FAQ,了解常见问题及其解决方案。

信息

此文档 尤其重要,因为 ClickHouse 与 Postgres 不同,您可能会遇到一些意外。本指南帮助解决潜在的陷阱,并确保您可以充分利用 ClickHouse。