部署 MongoDB Atlas 和 Google Cloud 之间的数据转换过程

Last reviewed 2023-12-13 UTC

本文档介绍如何部署 MongoDB Atlas 和 Google Cloud 之间的数据转换。在本文档中,您将在从 MongoDB Atlas 到 BigQuery 的数据之间部署提取、转换和加载 (ETL) 流程。

这些说明适用于想要使用 BigQuery 对存储在 MongoDB Atlas 中的运营数据执行复杂分析的数据管理员。您需要熟悉 MongoDB Atlas、BigQuery 和 Dataflow。

架构

下图展示了部署此解决方案时使用的参考架构。

MongoDB Atlas 和 Google Cloud 之间的数据转换架构

如图所示,有三个 Dataflow 模板来处理集成过程。第一个模板是 MongoDB to BigQuery,这是一个批处理流水线,可从 MongoDB 读取文档并将其写入 BigQuery。第二个模板是 BigQuery to MongoDB,这是一个批处理模板,可用于从 BigQuery 读取分析后的数据并将其写入 MongoDB。第三个模板是 MongoDB to BigQuery (CDC),这是一个流处理流水线,可与 MongoDB 变更数据流搭配使用,以处理运营数据更改。如需了解详情,请参阅 MongoDB Atlas 和 Google Cloud 之间的数据转换

目标

以下部署步骤演示了如何使用 MongoDB to BigQuery 模板在 MongoDB Atlas 到 BigQuery 的数据之间执行 ETL 流程。如需部署此 ETL 流程,请执行以下任务:

  • 在 Google Cloud 中预配 MongoDB Atlas 集群。
  • 将数据加载到 MongoDB 集群中。
  • 配置集群访问权限。
  • 在 Google Cloud 上设置 BigQuery 表。
  • 创建并监控将 MongoDB 数据转移到 BigQuery 的 Dataflow 作业。
  • 验证 BigQuery 上的输出表。

费用

在本文档中,您将使用 Google Cloud 的以下收费组件:

您可使用价格计算器根据您的预计使用情况来估算费用。 Google Cloud 新用户可能有资格申请免费试用

完成本文档中描述的任务后,您可以通过删除所创建的资源来避免继续计费。如需了解详情,请参阅清理

准备工作

完成以下步骤,为 MongoDB to BigQuery 架构设置环境。

  1. 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  3. 确保您的 Google Cloud 项目已启用结算功能

  4. 启用 BigQuery and Dataflow API。

    启用 API

  5. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  6. 确保您的 Google Cloud 项目已启用结算功能

  7. 启用 BigQuery and Dataflow API。

    启用 API

安装 MongoDB Atlas

在本部分中,您将使用 Cloud Marketplace 安装 MongoDB Atlas 实例。以下说明假定您还没有 MongoDB 账号。如需全面了解如何设置订阅并将 Google 结算账号关联到 MongoDB 账号,请参阅 MongoDB 文档中的 Google Cloud 自助 Marketplace

  1. 在 Google Cloud 控制台中,展开导航菜单,然后选择 Marketplace
  2. 在 Marketplace 搜索框中,输入 MongoDB Atlas
  3. 在搜索结果中,选择 MongoDB Atlas(随用随付)
  4. MongoDB Atlas(即用即付)页面上,查看条款及条件的概览,然后点击注册 MongoDB
  5. 在 MongoDB 订阅页面上,选择您的结算账号,接受条款,然后点击订阅
  6. 点击注册到 MongoDB 按钮并创建一个 MongoDB 账号。
  7. 在要求您选择组织的页面上,选择要关联 Google Cloud 结算账号的 MongoDB 组织。
  8. 等待 Google Cloud 完成对组织的同步。

账号同步后,Google Cloud 控制台中的 MongoDB Atlas(即用即付)页面将更新,以显示在提供商网站上管理按钮。

创建 MongoDB Atlas 集群

在本部分中,您将创建一个 MongoDB 集群。在创建过程中,您需要选择以下信息:

  • 您的集群类型。根据您的基础架构要求选择集群层级
  • 集群的首选区域。我们建议您选择最靠近您的物理位置的区域。

如需详细了解如何创建和部署免费 MongoDB 集群,请参阅 MongoDB 文档中的部署免费集群

如需创建和设置集群,请按以下步骤操作:

  1. 在 Google Cloud 控制台的 MongoDB Atlas(即用即付)页面上,点击在提供商网站上管理
  2. 在 MongoDB 登录页面上,点击 Google,然后点击您用于安装 MongoDB Atlas 的 Google 账号。

    作为新用户,MongoDB 界面会自动打开数据库部署页面。

  3. 在 Atlas 界面中,点击数据库部署页面上的创建

  4. 创建集群页面上,点击共享

    共享选项提供了一个免费集群,可用于测试此参考架构。

  5. 创建共享集群页面的 Cloud Provider 和区域部分,执行以下操作:

    1. 选择 Google Cloud
    2. 选择与您的地理位置最接近且具有您所需特征的区域。
  6. 集群层级部分中,选择 M0 选项。

    M0 集群是免费的,适用于小型概念验证应用。

  7. 集群名称中,为集群输入名称。

  8. 点击创建集群以部署集群。

设置 MongoDB 集群

在本部分中,您将完成以下步骤:

  • 将示例数据加载到集群中。
  • 配置对集群的访问权限。
  • 连接到您的集群。

将示例数据加载到 MongoDB 集群中

现在您已经创建了 MongoDB 集群,接下来需要将数据加载到该集群中。MongoDB 会加载各种示例数据集。 您可以使用这些数据集中的任意一个来测试此部署。但是,您可能希望使用与生产部署中使用的实际数据类似的数据集。

如需详细了解如何加载示例数据,请参阅 MongoDB 文档中的加载示例数据

如需加载示例数据,请执行以下步骤:

  1. 在 Atlas 界面的数据库部署页面上,找到您刚刚部署的集群。
  2. 点击省略号 (...) 按钮,然后点击加载示例数据集

    加载示例数据大约需要 5 分钟。

  3. 查看示例数据集,并记下在测试此部署时要使用的集合。

配置集群访问权限

如需连接集群,您需要同时创建数据库用户和设置集群的 IP 地址:

  • 数据库用户与 MongoDB 用户分开。您需要数据库用户能够从 Google Cloud 连接到 MongoDB。
  • 对于此参考架构,您可以使用 0.0.0.0/0 的 CIDR 地址块作为您的 IP 地址。此 CIDR 地址块支持从任何位置访问,并且仅适用于概念验证部署(例如该部署)。但是,在部署此架构的生产版本时,请确保输入适合您应用的 IP 地址范围。

如需详细了解如何为集群设置数据库用户和 IP 地址,请参阅 MongoDB 文档中的使用快速入门向导配置集群访问权限

如需配置集群访问权限,请执行以下步骤:

  1. 在左侧导航窗格中的安全部分中,点击快速入门
  2. 用户名和密码页面上,执行以下操作以创建数据库用户:
    1. 对于用户名,为数据库用户输入名称。
    2. 对于密码,为数据库用户输入密码。
    3. 点击 Create User(创建用户)。
  3. 用户名和密码页面上,执行以下操作以为您的集群添加 IP 地址:

    1. IP 地址中,输入 0.0.0.0/0

      对于生产环境,请选择适用于该环境的 IP 地址。

    2. (可选)对于说明,输入集群的说明。

    3. 点击添加条目

  4. 点击完成并关闭

连接到集群

配置对集群的访问权限后,您现在需要连接到集群。如需详细了解如何连接到集群,请参阅 MongoDB 文档中的连接到集群

请按照以下步骤连接到您的集群:

  1. 在 Atlas 界面的数据库部署页面上,找到您刚刚部署的集群。
  2. 选择连接
  3. 连接页面上,点击 Compass 选项。
  4. 找到复制连接字符串字段,然后复制并保存 MongoDB 连接字符串。您可以在运行 Dataflow 模板时使用此连接字符串。

    连接字符串具有以下语法:

    mongodb+srv://<UserName>:<Password>@<HostName>
    

    连接字符串会自动拥有您在上一步中创建的数据库用户的用户名。但是,使用此字符串进行连接时,系统会提示您输入数据库用户的密码。

  5. 点击关闭

在 BigQuery 中创建数据集

在 BigQuery 中创建数据集时,您只需输入数据集名称,然后为数据集选择地理位置。但是,您可以在数据集上设置可选字段。如需详细了解这些可选字段,请参阅创建数据集

  1. 在 Google Cloud 控制台中,转到 BigQuery 页面。

    转到 BigQuery

  2. 探索器面板中,选择您要在其中创建数据集的项目。

  3. 展开 选项,然后点击创建数据集

  4. 创建数据集页面上,执行以下操作:

    1. 对于数据集 ID,输入唯一的数据集名称
    2. 对于位置类型,为数据集选择一个地理位置。创建数据集后,就无法再更改此位置。

      如果您选择 EU 或某个欧盟区域作为数据集位置,则核心 BigQuery 客户数据会驻留在欧盟。如需了解核心 BigQuery 客户数据的定义,请参阅服务专用条款

    3. 点击创建数据集

创建、监控和验证 Dataflow 批量作业

在 Dataflow 中,请按照以下说明创建将批量数据从 MongoDB 加载到 BigQuery 的一次性批量作业。 创建批量作业后,您可以在 Dataflow 监控界面中监控该作业的进度。如需详细了解如何使用监控界面,请参阅使用 Dataflow 监控界面

  1. 在 Google Cloud 控制台中,转到 Dataflow 页面。

    进入 Dataflow

  2. 点击基于模板创建作业

  3. 基于模板创建作业页面上,执行以下步骤:

    1. 对于作业名称,输入唯一的作业名称,例如 mongodb-to-bigquery-batch。确保该项目当前没有运行具有该名称的其他 Dataflow 作业。
    2. 对于区域端点,选择与您刚刚创建的 BigQuery 数据集相同的位置。
    3. 对于 Dataflow 模板,请在批量处理数据(批处理)列表中,选择 MongoDB to BigQuery
    4. 必需参数部分中,输入以下参数:

      1. 对于 MongoDB Connection URI,请输入您的 Atlas MongoDB 连接字符串。
      2. 对于 Mongo 数据库,请输入您之前创建的数据库的名称。
      3. Mongo 集合部分,输入您之前记下的示例集合的名称。
      4. 对于 BigQuery 目标表,点击浏览,然后选择您在上一步中创建的 BigQuery 表。
      5. 对于用户选项,输入FLATTEN

        将整个 JSON 字符串格式的文档加载到 BigQuery 中。FLATTEN 将文档展平一个级别。如果您不提供 UDF,FLATTEN 选项仅适用于具有固定架构的文档。

      6. 如需启动作业,请点击运行作业

  4. 请按照以下步骤打开 Dataflow 监控界面,您可以在其中检查批量作业的进度,并验证作业是否已完成并且没有错误:

    1. 在 Google Cloud 控制台的此部署项目中,打开导航菜单。
    2. Analytics 中,点击 Dataflow
  5. 流水线成功运行后,请执行以下操作以验证表输出:

    1. 在 BigQuery 中,打开浏览器窗格。
    2. 展开项目,点击数据集,然后双击表。

      现在,您应该可以在表中查看 MongoDB 数据。

清理

为避免 MongoDB 和 Google Cloud 账号产生费用,您应暂停或终止 MongoDB Atlas 集群,并删除您为此参考架构创建的 Google Cloud 项目。

暂停或终止 MongoDB Atlas 集群

以下过程介绍了暂停集群的基础知识。如需了解完整详情,请参阅 MongoDB 文档中的暂停、恢复或终止集群

  1. 在 Atlas 界面中,转到 Atlas 项目的数据库部署页面。
  2. 对于要暂停的集群,点击
  3. 点击暂停集群
  4. 点击暂停集群以确认您的选择。

删除项目

  1. 在 Google Cloud 控制台中,进入管理资源页面。

    转到“管理资源”

  2. 在项目列表中,选择要删除的项目,然后点击删除
  3. 在对话框中输入项目 ID,然后点击关闭以删除项目。

后续步骤

贡献者

作者:

其他贡献者:

如需查看非公开的 LinkedIn 个人资料,请登录 LinkedIn。