本文档介绍如何部署 MongoDB Atlas 和 Google Cloud 之间的数据转换。在本文档中,您将在从 MongoDB Atlas 到 BigQuery 的数据之间部署提取、转换和加载 (ETL) 流程。
这些说明适用于想要使用 BigQuery 对存储在 MongoDB Atlas 中的运营数据执行复杂分析的数据管理员。您需要熟悉 MongoDB Atlas、BigQuery 和 Dataflow。
架构
下图展示了部署此解决方案时使用的参考架构。
如图所示,有三个 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 的以下收费组件:
您可使用价格计算器根据您的预计使用情况来估算费用。
完成本文档中描述的任务后,您可以通过删除所创建的资源来避免继续计费。如需了解详情,请参阅清理。
准备工作
完成以下步骤,为 MongoDB to BigQuery 架构设置环境。
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery and Dataflow APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery and Dataflow APIs.
安装 MongoDB Atlas
在本部分中,您将使用 Cloud Marketplace 安装 MongoDB Atlas 实例。以下说明假定您还没有 MongoDB 账号。如需全面了解如何设置订阅并将 Google 结算账号关联到 MongoDB 账号,请参阅 MongoDB 文档中的 Google Cloud 自助 Marketplace。
- 在 Google Cloud 控制台中,展开导航菜单,然后选择 Marketplace。
- 在 Marketplace 搜索框中,输入 MongoDB Atlas。
- 在搜索结果中,选择 MongoDB Atlas(随用随付)。
- 在 MongoDB Atlas(即用即付)页面上,查看条款及条件的概览,然后点击注册 MongoDB。
- 在 MongoDB 订阅页面上,选择您的结算账号,接受条款,然后点击订阅。
- 点击注册到 MongoDB 按钮并创建一个 MongoDB 账号。
- 在要求您选择组织的页面上,选择要关联 Google Cloud 结算账号的 MongoDB 组织。
- 等待 Google Cloud 完成对组织的同步。
账号同步后,Google Cloud 控制台中的 MongoDB Atlas(即用即付)页面将更新,以显示在提供商网站上管理按钮。
创建 MongoDB Atlas 集群
在本部分中,您将创建一个 MongoDB 集群。在创建过程中,您需要选择以下信息:
- 您的集群类型。根据您的基础架构要求选择集群层级。
- 集群的首选区域。我们建议您选择最靠近您的物理位置的区域。
如需详细了解如何创建和部署免费 MongoDB 集群,请参阅 MongoDB 文档中的部署免费集群。
如需创建和设置集群,请按以下步骤操作:
- 在 Google Cloud 控制台的 MongoDB Atlas(即用即付)页面上,点击在提供商网站上管理。
在 MongoDB 登录页面上,点击 Google,然后点击您用于安装 MongoDB Atlas 的 Google 账号。
作为新用户,MongoDB 界面会自动打开数据库部署页面。
在 Atlas 界面中,点击数据库部署页面上的创建。
在创建集群页面上,点击共享。
共享选项提供了一个免费集群,可用于测试此参考架构。
在创建共享集群页面的 Cloud Provider 和区域部分,执行以下操作:
- 选择 Google Cloud。
- 选择与您的地理位置最接近且具有您所需特征的区域。
在集群层级部分中,选择 M0 选项。
M0
集群是免费的,适用于小型概念验证应用。在集群名称中,为集群输入名称。
点击创建集群以部署集群。
设置 MongoDB 集群
在本部分中,您将完成以下步骤:
- 将示例数据加载到集群中。
- 配置对集群的访问权限。
- 连接到您的集群。
将示例数据加载到 MongoDB 集群中
现在您已经创建了 MongoDB 集群,接下来需要将数据加载到该集群中。MongoDB 会加载各种示例数据集。 您可以使用这些数据集中的任意一个来测试此部署。但是,您可能希望使用与生产部署中使用的实际数据类似的数据集。
如需详细了解如何加载示例数据,请参阅 MongoDB 文档中的加载示例数据。
如需加载示例数据,请执行以下步骤:
- 在 Atlas 界面中,进入数据库部署页面,找到刚刚部署的集群。
点击省略号 (...) 按钮,然后点击加载示例数据集。
加载示例数据大约需要 5 分钟。
查看示例数据集,并记下在测试此部署时要使用的集合。
配置集群访问权限
如需连接集群,您需要同时创建数据库用户和设置集群的 IP 地址:
- 数据库用户与 MongoDB 用户分开。您需要数据库用户能够从 Google Cloud 连接到 MongoDB。
- 对于此参考架构,您可以使用
0.0.0.0/0
的 CIDR 地址块作为您的 IP 地址。此 CIDR 地址块支持从任何位置访问,并且仅适用于概念验证部署(例如该部署)。但是,在部署此架构的生产版本时,请确保输入适合您应用的 IP 地址范围。
如需详细了解如何为集群设置数据库用户和 IP 地址,请参阅 MongoDB 文档中的使用快速入门向导配置集群访问权限。
如需配置集群访问权限,请执行以下步骤:
- 在左侧导航窗格中的安全部分中,点击快速入门。
- 在用户名和密码页面上,执行以下操作以创建数据库用户:
- 对于用户名,为数据库用户输入名称。
- 对于密码,为数据库用户输入密码。
- 点击 Create User(创建用户)。
在用户名和密码页面上,执行以下操作以为您的集群添加 IP 地址:
在 IP 地址中,输入 0.0.0.0/0。
对于生产环境,请选择适用于该环境的 IP 地址。
(可选)对于说明,输入集群的说明。
点击添加条目。
点击完成并关闭。
连接到集群
配置对集群的访问权限后,您现在需要连接到集群。如需详细了解如何连接到集群,请参阅 MongoDB 文档中的连接到集群。
请按照以下步骤连接到您的集群:
- 在 Atlas 界面中,进入数据库部署页面,找到刚刚部署的集群。
- 选择连接。
- 在连接页面上,点击 Compass 选项。
找到复制连接字符串字段,然后复制并保存 MongoDB 连接字符串。您可以在运行 Dataflow 模板时使用此连接字符串。
连接字符串具有以下语法:
mongodb+srv://<UserName>:<Password>@<HostName>
连接字符串会自动拥有您在上一步中创建的数据库用户的用户名。但是,使用此字符串进行连接时,系统会提示您输入数据库用户的密码。
点击关闭。
在 BigQuery 中创建数据集
在 BigQuery 中创建数据集时,您只需输入数据集名称,然后为数据集选择地理位置。但是,您可以在数据集上设置可选字段。如需详细了解这些可选字段,请参阅创建数据集。
在 Google Cloud 控制台中,前往 BigQuery 页面。
在探索器面板中,选择您要在其中创建数据集的项目。
展开
选项,然后点击创建数据集。在创建数据集页面上,执行以下操作:
创建、监控和验证 Dataflow 批量作业
在 Dataflow 中,请按照以下说明创建将批量数据从 MongoDB 加载到 BigQuery 的一次性批量作业。 创建批量作业后,您可以在 Dataflow 监控界面中监控该作业的进度。如需详细了解如何使用监控界面,请参阅使用 Dataflow 监控界面。
在 Google Cloud 控制台中,转到 Dataflow 页面。
点击基于模板创建作业。
在基于模板创建作业页面上,执行以下步骤:
- 对于作业名称,输入唯一的作业名称,例如 mongodb-to-bigquery-batch。确保该项目当前没有运行具有该名称的其他 Dataflow 作业。
- 对于区域端点,选择与您刚刚创建的 BigQuery 数据集相同的位置。
- 对于 Dataflow 模板,请在批量处理数据(批处理)列表中,选择 MongoDB to BigQuery。
在必需参数部分中,输入以下参数:
- 对于 MongoDB Connection URI,请输入您的 Atlas MongoDB 连接字符串。
- 对于 Mongo 数据库,请输入您之前创建的数据库的名称。
- 在 Mongo 集合部分,输入您之前记下的示例集合的名称。
- 对于 BigQuery 目标表,点击浏览,然后选择您在上一步中创建的 BigQuery 表。
对于用户选项,输入无或 FLATTEN。
无将整个 JSON 字符串格式的文档加载到 BigQuery 中。FLATTEN 将文档展平一个级别。如果您不提供 UDF,FLATTEN 选项仅适用于具有固定架构的文档。
如需启动作业,请点击运行作业。
请按照以下步骤打开 Dataflow 监控界面,您可以在其中检查批量作业的进度,并验证作业是否已完成并且没有错误:
- 在 Google Cloud 控制台的此部署项目中,打开导航菜单。
- 在 Analytics 中,点击 Dataflow。
流水线成功运行后,请执行以下操作以验证表输出:
- 在 BigQuery 中,打开浏览器窗格。
展开项目,点击数据集,然后双击表。
现在,您应该可以在表中查看 MongoDB 数据。
清理
为避免 MongoDB 和 Google Cloud 账号产生费用,您应暂停或终止 MongoDB Atlas 集群,并删除您为此参考架构创建的 Google Cloud 项目。
暂停或终止 MongoDB Atlas 集群
以下过程介绍了暂停集群的基础知识。如需了解完整详情,请参阅 MongoDB 文档中的暂停、恢复或终止集群。
- 在 Atlas 界面中,转到 Atlas 项目的数据库部署页面。
- 对于要暂停的集群,点击 。
- 点击暂停集群。
- 点击暂停集群以确认您的选择。
删除项目
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
后续步骤
- 如果要自定义模板,请在 GitHub 上找到 Google Dataflow 模板。
- 详细了解 Cloud 技能提升中的 MongoDB Atlas 和 Google Cloud 解决方案。
- 详细了解此参考架构中使用的 Google Cloud 产品:
- 如需查看更多参考架构、图表和最佳实践,请浏览 Cloud 架构中心。
贡献者
作者:
- Saurabh Kumar | ISV 合作伙伴工程师
- Venkatesh Shanbhag | 高级解决方案架构师 (MongoDB)
其他贡献者:
- Jun Liu | 支持性技术主管
- Maridi (Raju) Makaraju | 支持性技术主管
- Sergei Lilichenko | 解决方案架构师
- Shan Kulandaivel | 组合产品经理