> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# ClickHouse 集成

> 使用内置的 CDC（变更数据捕获）功能，将 Postgres 数据复制到 ClickHouse

export const Image = ({img, alt, size}) => {
  return <Frame>
      <img src={img} alt={alt} />
    </Frame>;
};

export const galaxyOnClick = eventName => () => {
  try {
    if (typeof window !== "undefined" && window.galaxy && eventName) {
      window.galaxy.track(eventName, {
        interaction: "click"
      });
    }
  } catch (e) {}
};

export const BetaBadge = ({link, galaxyTrack, galaxyEvent}) => {
  if (link) {
    return <a href={link} target="_blank" rel="noopener noreferrer" className="betaBadge" onClick={galaxyTrack && galaxyEvent ? galaxyOnClick(galaxyEvent) : undefined}>
                <Icon />
                <span>Beta</span>
            </a>;
  }
  return <div className="betaBadge">
            <Icon />
            <span>
                Beta feature. 
                <u>
                    <a href="/docs/beta-and-experimental-features#beta-features">
                        Learn more.
                    </a>
                </u>
            </span>
        </div>;
};

每个 Managed Postgres 实例都内置了向任意 ClickHouse 服务进行 CDC (变更数据捕获) 的能力。这使你能够将 Postgres 实例中的部分或全部数据迁移到 ClickHouse，并让 Postgres 中的数据变更持续、近乎实时地同步到 ClickHouse。其底层由 [ClickPipes](/zh/integrations/clickpipes/home) 提供支持。

要使用此功能，请点击 Postgres 实例侧边栏中的 **ClickHouse 集成**。

<Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/qT0j4CNmQubVqREl/images/managed-postgres/clickhouse-integration-intro.png?fit=max&auto=format&n=qT0j4CNmQubVqREl&q=85&s=725f49ffaae6f1cc5666e66a8cb2e900" alt="显示侧边栏中集成选项的 ClickHouse 集成页面" size="md" border width="2682" height="1274" data-path="images/managed-postgres/clickhouse-integration-intro.png" />

<Note>
  在继续之前，请确保你的 Postgres 服务可被 ClickPipes 服务访问。默认情况下通常已满足此条件，但如果你限制了 IP 访问，则可能需要根据你的 **ClickHouse 服务** 所在的区域，从[此](/zh/integrations/clickpipes/home#list-of-static-ips)列表中为某些源 IP 开放访问。
</Note>

点击 **在 ClickHouse 中复制数据**，开始设置你的 ClickPipe。

<Steps>
  <Step>
    ## 配置复制服务

    填写复制设置：

    * **集成名称**：此 ClickPipe 的名称
    * **ClickHouse 服务**：选择现有的 ClickHouse Cloud 服务或创建一个新的
    * **Postgres 数据库**：要从中复制的源数据库
    * **复制方法**：选择以下之一：
      * **初始加载 + CDC**：导入现有数据，并使用后续变更持续更新表 (推荐)
      * **仅初始加载**：对现有数据执行一次性快照，不进行持续更新
      * **仅 CDC**：跳过初始快照，仅捕获后续变更

    <Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/qT0j4CNmQubVqREl/images/managed-postgres/replication-service-step.png?fit=max&auto=format&n=qT0j4CNmQubVqREl&q=85&s=dfdb6548307e14cbab3bd99f014ae918" alt="复制服务配置，显示集成名称、目标服务和复制方法选项" size="md" border width="2076" height="1290" data-path="images/managed-postgres/replication-service-step.png" />

    点击 **下一步** 继续。
  </Step>

  <Step>
    ## 选择要复制的表

    选择目标数据库，并选择要复制的表：

    * **目标数据库**：选择现有的 ClickHouse 数据库或创建一个新的
    * **默认目标表名加上 schema 名称前缀**：添加 Postgres schema 作为前缀，以避免命名冲突
    * **保留源中的 NULL 值**：保留 NULL 值，而不是将其转换为默认值
    * **在合并期间移除已删除的行**：对于 [ReplacingMergeTree](/zh/reference/engines/table-engines/mergetree-family/replacingmergetree) 表，会在后台合并期间物理删除已删除的行

    展开各个 schema 并选择要复制的单个表。你还可以自定义目标表名和列设置。

    <Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/qT0j4CNmQubVqREl/images/managed-postgres/select-tables-step.png?fit=max&auto=format&n=qT0j4CNmQubVqREl&q=85&s=bc98e7efa4ba22f0ee00d452e158daa2" alt="选择表步骤，显示数据库选择、复制选项，以及按 schema 分组的表选择器" size="md" border width="2454" height="1804" data-path="images/managed-postgres/select-tables-step.png" />

    点击 **将数据复制到 ClickHouse** 开始复制。
  </Step>

  <Step>
    ## 监控你的 ClickPipe

    ClickPipe 启动后，你会在同一菜单中看到它。所有数据的初始快照可能需要一些时间，具体取决于你的表大小。

    <Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/qT0j4CNmQubVqREl/images/managed-postgres/integration-running.png?fit=max&auto=format&n=qT0j4CNmQubVqREl&q=85&s=9a94e816b4507d6cc67414342cf27a6a" alt="ClickHouse 集成列表，显示一个处于运行中的 ClickPipe 及其目标服务和状态" size="md" border width="2518" height="622" data-path="images/managed-postgres/integration-running.png" />

    点击集成名称可查看详细状态、监控进度、查看错误并管理 ClickPipe。参见 [Postgres ClickPipe 的生命周期](/zh/integrations/clickpipes/postgres/lifecycle)，了解 ClickPipe 可能处于的不同状态。
  </Step>
</Steps>
