> ## 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.

> 介绍如何将 MongoDB 无缝连接到 ClickHouse Cloud。

# 从 MongoDB 向 ClickHouse 摄取数据（使用 CDC（变更数据捕获））

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>;
};

<Info>
  通过 ClickPipes 将 MongoDB 数据摄取到 ClickHouse Cloud 的功能目前处于 Public Beta 阶段。
</Info>

<Note>
  在 ClickHouse Cloud 控制台和文档中，对于 MongoDB，"table" 和 "collection" 这两个词可互换使用。
</Note>

您可以使用 ClickPipes 将 MongoDB 数据库中的数据摄取到 ClickHouse Cloud。源 MongoDB 数据库既可以托管在本地环境中，也可以通过 MongoDB Atlas 等服务托管在云端。

MongoDB ClickPipes 既可以通过 ClickPipes UI 手动部署和管理，也可以通过 [OpenAPI](/zh/integrations/clickpipes/programmatic-access/openapi) 和 [Terraform](/zh/integrations/clickpipes/programmatic-access/terraform) 以编程方式部署和管理。

<div id="prerequisites">
  ## 前置条件
</div>

开始之前，您首先需要确保 MongoDB 数据库已正确配置复制。具体配置步骤取决于您部署 MongoDB 的方式，因此请按照下方对应的指南进行操作：

1. [MongoDB Atlas](/zh/integrations/clickpipes/mongodb/source/atlas)

2. [通用 MongoDB](/zh/integrations/clickpipes/mongodb/source/generic)

3. [亚马逊 DocumentDB](/zh/integrations/clickpipes/mongodb/source/documentdb)

源 MongoDB 数据库设置完成后，您就可以继续创建 ClickPipe。

<div id="create-your-clickpipe">
  ## 创建您的 ClickPipe
</div>

请确保您已登录 ClickHouse Cloud 账户。如果您还没有账户，可以在[这里](https://cloud.clickhouse.com/)注册。

1. 在 ClickHouse Cloud 控制台中，进入您的 ClickHouse Cloud 服务。

<Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/lGskH5qUgz9Vtlav/images/integrations/data-ingestion/clickpipes/cp_service.png?fit=max&auto=format&n=lGskH5qUgz9Vtlav&q=85&s=1fa8d992c5f2b6c481249d120e8715a2" alt="ClickPipes 服务" size="lg" border width="1184" height="482" data-path="images/integrations/data-ingestion/clickpipes/cp_service.png" />

2. 在左侧菜单中选择 `Data Sources`，然后点击“Set up a ClickPipe”。

<Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/lGskH5qUgz9Vtlav/images/integrations/data-ingestion/clickpipes/cp_step0.png?fit=max&auto=format&n=lGskH5qUgz9Vtlav&q=85&s=8604d9b9df8655f1edcdc73536e5def1" alt="选择导入" size="lg" border width="2606" height="790" data-path="images/integrations/data-ingestion/clickpipes/cp_step0.png" />

3. 选择 `MongoDB CDC` 卡片。

<Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/lGskH5qUgz9Vtlav/images/integrations/data-ingestion/clickpipes/mongodb/mongodb-tile.png?fit=max&auto=format&n=lGskH5qUgz9Vtlav&q=85&s=791256c050414aa87bcb37e612d76fac" alt="选择 MongoDB" size="lg" border width="1802" height="986" data-path="images/integrations/data-ingestion/clickpipes/mongodb/mongodb-tile.png" />

<div id="add-your-source-mongodb-database-connection">
  ### 添加源 MongoDB 数据库连接
</div>

4. 填写您在前置条件步骤中配置的源 MongoDB 数据库连接信息。

<Info>
  在开始添加连接信息之前，请确保已在防火墙规则中将 ClickPipes IP 地址加入允许名单。您可以在下一页查看 [ClickPipes IP 地址列表](/zh/integrations/clickpipes/home#list-of-static-ips)。
  更多信息，请参阅本页[顶部](#prerequisites)链接的源 MongoDB 设置指南。
</Info>

<Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/lGskH5qUgz9Vtlav/images/integrations/data-ingestion/clickpipes/mongodb/mongodb-connection-details.png?fit=max&auto=format&n=lGskH5qUgz9Vtlav&q=85&s=81843025f418b02044d9aa9c463a2762" alt="填写连接信息" size="lg" border width="1538" height="1698" data-path="images/integrations/data-ingestion/clickpipes/mongodb/mongodb-connection-details.png" />

<div id="optional-set-up-ssh-tunneling">
  #### &#x20;(可选) 设置 SSH 隧道
</div>

如果源 MongoDB 数据库无法通过公网访问，你可以指定 SSH 隧道的相关详细信息。

1. 打开“Use SSH Tunnelling”开关。

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

   <Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/8xU-7NRzcVe16bmG/images/integrations/data-ingestion/clickpipes/postgres/ssh-tunnel.jpg?fit=max&auto=format&n=8xU-7NRzcVe16bmG&q=85&s=c257ddbc479fb91047b029a3ddef29aa" alt="SSH 隧道" size="lg" border width="1780" height="1342" data-path="images/integrations/data-ingestion/clickpipes/postgres/ssh-tunnel.jpg" />

3. 若要使用基于密钥的身份验证，请点击“Revoke and generate key pair”生成新的密钥对，然后将生成的公钥复制到 SSH 服务器上的 `~/.ssh/authorized_keys` 中。

4. 点击“Verify Connection”验证连接。

<Note>
  请确保在 SSH 堡垒机的防火墙规则中将 [ClickPipes IP 地址](/zh/integrations/clickpipes/home#list-of-static-ips) 加入允许列表，以便 ClickPipes 能够建立 SSH 隧道。
</Note>

填写完连接详细信息后，点击 `Next`。

<div id="advanced-settings">
  #### 配置高级设置
</div>

如有需要，您可以配置高级设置。下面简要介绍各项设置：

* **Sync interval**：指 ClickPipes 轮询源数据库变更的时间间隔。该设置会影响目标端 ClickHouse 服务；对于注重成本的用户，建议将其设为较大的值 (大于 `3600`) 。
* **拉取批次大小**：单个批次中拉取的行数。这是一个尽力而为的设置，因此在某些情况下可能无法严格遵循。
* **Snapshot number of tables in parallel**：指初始快照期间并行拉取的表数量。如果您有大量表，并希望控制并行拉取的表数，此设置会很有用。

<div id="configure-the-tables">
  ### 配置表
</div>

5. 在这里，您可以为 ClickPipe 选择目标数据库。您可以选择现有数据库，也可以新建一个。

   <Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/lGskH5qUgz9Vtlav/images/integrations/data-ingestion/clickpipes/mongodb/select-destination-db.png?fit=max&auto=format&n=lGskH5qUgz9Vtlav&q=85&s=77eb118f26d71d33201761aecf3e4ab7" alt="选择目标数据库" size="lg" border width="1742" height="548" data-path="images/integrations/data-ingestion/clickpipes/mongodb/select-destination-db.png" />

6. 您可以选择要从源 MongoDB 数据库复制过来的表。选择表时，您还可以为目标 ClickHouse 数据库中的这些表重命名。

<div id="review-permissions-and-start-the-clickpipe">
  ### 检查权限并启动 ClickPipe
</div>

7. 在权限下拉菜单中选择“完全访问”角色，然后点击“完成设置”。

   <Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/8xU-7NRzcVe16bmG/images/integrations/data-ingestion/clickpipes/postgres/ch-permissions.jpg?fit=max&auto=format&n=8xU-7NRzcVe16bmG&q=85&s=220285c9d16d656b26c97fd0587b9086" alt="检查权限" size="lg" border width="1844" height="716" data-path="images/integrations/data-ingestion/clickpipes/postgres/ch-permissions.jpg" />

<div id="whats-next">
  ## 接下来呢？
</div>

在将 ClickPipe 配置为把数据从 MongoDB 复制到 ClickHouse Cloud 后，你就可以着重考虑如何查询和建模数据，以获得最佳性能。

<div id="caveats">
  ## 注意事项
</div>

使用此连接器时，请注意以下几点：

* 需要使用 5.1.0 及以上版本的 MongoDB。
* 我们使用 MongoDB 原生的 Change Streams API 来实现 CDC (变更数据捕获) ，该 API 依赖 MongoDB 的 oplog 捕获实时变更。
* 默认情况下，MongoDB 中的文档会以 JSON 类型复制到 ClickHouse 中。这让 schema 管理更加灵活，并可使用 ClickHouse 丰富的 JSON 操作符进行查询和分析。你可以在[这里](/zh/reference/data-types/newjson)了解有关查询 JSON 数据的更多信息。
* 目前暂不支持自助式 PrivateLink 配置。如果你使用 AWS 且需要 PrivateLink，请联系 [db-integrations-support@clickhouse.com](mailto:db-integrations-support@clickhouse.com) 或创建支持工单——我们会协助你完成启用。
