利用 BigQuery JSON 优化 MongoDB Dataflow 流水线

三月 12, 2025
Zi Wang Partner engineer
Venkatesh Shanbhag Sr Solutions Architect

我们很高兴地宣布,Google Cloud Dataflow 模板引入了针对 MongoDB Atlas 的重大改进。通过启用对 JSON 数据类型的直接支持,用户现在可以将 MongoDB Atlas 数据无缝集成到 BigQuery 中,而无需进行复杂的数据转换。

这种简化的流程节省了时间和资源,使用户能够通过先进的数据分析和机器学习解锁其数据的全部潜力。

JSON feature for user options on Dataflow Templates
图 1:Dataflow 模板上用户选项的 JSON 功能

没有 JSON 支持的局限性

传统而言,旨在处理 MongoDB Atlas 数据的 Dataflow 流水线通常需要将数据转换为 JSON 字符串或将复杂的结构扁平化为单层嵌套,然后才能加载到 BigQuery 中。尽管这种方法是可行的,但会带来几个缺点:

  • 延迟增加:需要进行的多次数据转换可能导致延迟增加,并显著减慢整个流水线的执行时间。

  • 运营成本增加:额外的数据转换和存储需求会增加运营成本。

  • 查询性能降低:将复杂的文档结构扁平化为 JSON 字符串格式会影响查询性能,并使得分析嵌套数据变得更加困难。


有什么新变化?

BigQuery 的原生 JSON 格式通过允许用户直接从 MongoDB Atlas 将嵌套的 JSON 数据加载到 BigQuery 中,而无需任何中间转换,解决了这些挑战。

这种方法有许多好处:

  • 运营成本降低:通过消除对额外数据转换的需求,用户可以显著减少运营开支,包括与基础设施、存储和计算资源相关的费用。

  • 查询性能增强:BigQuery 优化的存储和查询引擎旨在高效处理原生 JSON 格式的数据,从而实现更快的查询执行时间,并提升整体查询性能。

  • 数据灵活性提高:用户可以轻松查询和分析复杂的数据结构,包括嵌套和层次数据,而无需进行耗时且容易出错的扁平化或规范化处理。

此流水线的一个显著优势在于它能够直接利用 BigQuery 强大的 JSON 函数对加载到 BigQuery 中的 MongoDB 数据进行操作。这消除了对复杂且耗时的数据转换过程的需求。BigQuery 中的 JSON 数据可以使用标准 BQML 查询进行查询和分析。

无论您是喜欢简化的基于云的方法,还是需要动手的自定义解决方案,您都可以通过 Google Cloud 控制台,或者通过运行 GitHub 存储库中的代码来部署 Dataflow 流水线。


实现数据驱动的决策

总而言之,Google 的 Dataflow 模板为从 MongoDB 到 BigQuery 的数据传输提供了一个灵活的解决方案。它能够使用 MongoDB 的变更流功能处理整个集合或捕获增量更改。流水线的输出格式可以根据您的具体需求进行自定义。无论您是喜欢原始 JSON 表征还是带有单个字段的扁平化架构,都可以通过 userOption 参数轻松配置。此外,在模板执行期间,可以使用用户定义的函数 (UDF) 来进行数据转换。

通过在 Dataflow 流水线中采用 BigQuery 原生 JSON 格式,您可以显著提升数据处理工作流的效率、性能和成本效益。这种强大的组合使您能够从数据中提取有价值的信息,并做出数据驱动的决策。

请按照 Google 文档中的指南学习如何为 MongoDB Atlas 和 BigQuery 设置 Dataflow 模板。