首页 文章

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

提问于
浏览
7

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

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

  • 能够通过使用BigQuery的非流API将所有现有数据推送到BigQuery .

  • 完成上述操作后,只要使用流API在Datastore到BigQuery中更新/创建任何新数据,就将其推送 .

我的问题是

  • Cloud Dataflow是否适合实施此管道?

  • 我们能够推送现有数据吗?一些种类有数百万个对象 .

  • 实施它的正确方法应该是什么?我们正在考虑两种方法 . First 方法是通过pub / sub,即现有数据创建一个cron作业并将所有数据推送到pub / sub . 对于任何新的更新,在DataStore中更新数据的同时将数据推送到pub / sub . Dataflow Pipeline将从pub / sub中选择它并将其推送到BigQuery . Second 方法是在Dataflow中创建一个批处理管道,它将查询DataStore并将任何新数据推送到BigQuery .

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

谢谢,

rizTaak

2 回答

  • 1

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

  • 7

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

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

    也就是说,BigQuery和Datastore可以直接连接 . 例如,请参阅BigQuery文档中的Loading Data From Cloud Datastore .

相关问题