繁体   English   中英

Google Cloud Dataflow ETL(数据存储 - >转换 - > BigQuery)

[英]Google Cloud Dataflow ETL (Datastore -> Transform -> BigQuery)

我们使用数据存储作为持久性后端在Google App Engine上运行应用程序。 目前,应用程序主要具有“OLTP”功能和一些初步报告。 在实施报告时,我们遇到使用数据存储区和GQL处理大量数据(数百万个对象)非常困难。 为了使用适当的报告和商业智能功能增强我们的应用程序,我们认为最好设置ETL过程以将数据从Datastore移动到BigQuery。

最初我们考虑将ETL过程实现为App Engine cron作业,但看起来Dataflow也可用于此。 我们有以下设置流程的要求

  • 能够通过使用BigQuery的非流API将所有现有数据推送到BigQuery。
  • 完成上述操作后,只要使用流API在Datastore到BigQuery中更新/创建任何新数据,就将其推送。

我的问题是

  1. Cloud Dataflow是否适合实施此管道?
  2. 我们能够推送现有数据吗? 一些种类有数百万个对象。
  3. 实施它的正确方法应该是什么? 我们正在考虑两种方法。 一种方法是通过pub / sub,即对于现有数据创建一个cron作业并将所有数据推送到pub / sub。 对于任何新的更新,在DataStore中更新数据的同时将数据推送到pub / sub。 Dataflow Pipeline将从pub / sub中选择它并将其推送到BigQuery。 第二种方法是在Dataflow中创建一个批处理管道,它将查询DataStore并将任何新数据推送到BigQuery。

问题是这两种方法可行吗? 哪一个更好的成本? 有没有比上面两个更好的其他方式?

谢谢,

rizTaak

数据流绝对可以用于此目的。 实际上,Dataflow的可扩展性应该使流程快速且相对容易。

你的两种方法都应该有效 - 我会优先考虑使用批处理管道来移动现有数据,然后通过Cloud Pub / Sub处理新数据的流管道。 除数据移动外,Dataflow还允许对数据本身执行任意分析/操作。

也就是说,BigQuery和Datastore可以直接连接。 例如,请参阅BigQuery文档中的从云数据存储区加载数据

另一种使用第三方解决方案将数据加载到Google BigQuery的方法。 有很多人在这里 他们中的大多数都是付费的,但有一个免费的数据加载频率有限。 在这种情况下,您不需要编写任何代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM