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

将数据从 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. Generic Postgres Source,如果您使用的是其他 Postgres 提供商或使用自托管实例。

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

危险

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

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

创建 ClickPipe

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

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

添加源 Postgres 数据库连接

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

    信息

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

如果您的源 Postgres 数据库托管在 AWS 上,您可以使用 AWS Private Link 进行连接。这在您希望保持数据传输隐私时非常有用。您可以按照 设置指南来设置连接

(可选)设置 SSH 隧道

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

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

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

  3. 要使用基于密钥的身份验证,单击 "Revoke and generate key pair" 生成新的密钥对,并将生成的公钥复制到您的 SSH 服务器 ~/.ssh/authorized_keys 下。

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

备注

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

一旦填写了连接详细信息,单击 "Next"。

配置复制设置

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

高级设置

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

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

配置表

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

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

    危险

    如果您在 ClickHouse 中定义的 Ordering Key 与 Postgres 中的主键不同,请务必查看所有相关的 注意事项!

审查权限并开始 ClickPipe

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

接下来是什么?

一旦您将数据从 Postgres 移动到 ClickHouse,接下来的显而易见的问题是如何在 ClickHouse 中查询和建模您的数据,以最大限度地利用它。请参考 迁移指南 获取有关从 PostgreSQL 迁移到 ClickHouse 的逐步方法。此外,请确保查看有关 去重策略(使用 CDC)Ordering Keys 的页面,以了解如何处理重复项并在使用 CDC 时自定义排序键。

最后,请参考 "ClickPipes for Postgres FAQ" 页面以获取有关常见问题及其解决方法的更多信息。