Google 云数据流 ETL(数据存储 -> 转换 -> BigQuery)
Google Cloud Dataflow ETL (Datastore -> Transform -> BigQuery)
我们在 Google App Engine 上有一个应用程序 运行 使用 Datastore 作为持久性后端。当前应用程序主要具有 'OLTP' 功能和一些基本报告。在实施报告时,我们发现使用 Datastore 和 GQL 处理大量数据(数百万个对象)非常困难。为了使用适当的报告和商业智能功能增强我们的应用程序,我们认为最好设置 ETL 过程以将数据从 Datastore 移动到 BigQuery。
最初我们考虑将 ETL 过程实现为 App Engine cron 作业,但看起来 Dataflow 也可以用于此。我们有以下设置流程的要求
- 能够使用非流将所有现有数据推送到 BigQuery
API 的 BigQuery。
- 完成以上操作后,只要 updated/created 中有任何新数据就推送
使用流 API.
将数据存储到 BigQuery
我的问题是
- Cloud Dataflow 是否适合实施此管道?
- 我们可以推送现有数据吗?有些种类有
数百万个对象。
- 正确的实施方法应该是什么?我们正在考虑两种方法。
第一个 方法是通过 pub/sub 即为现有数据创建一个 cron 作业并将所有数据推送到 pub/sub。对于任何新的更新,将数据推送到 pub/sub,同时它会在 DataStore 中更新。 Dataflow Pipeline 将从 pub/sub 中选取它并将其推送到 BigQuery。
第二种 方法是在 Dataflow 中创建一个批处理管道,它将查询 DataStore 并将任何新数据推送到 BigQuery。
问题是这两种方法可行吗?哪个更划算?还有比以上两种更好的方法吗?
谢谢,
里兹塔克
Dataflow 绝对可以用于此目的。事实上,Dataflow 的可扩展性应该让这个过程变得快速且相对容易。
您的两种方法都应该有效——我更喜欢第二种方法,即使用批处理管道移动现有数据,然后使用流式管道通过云处理新数据 Pub/Sub .除了数据移动之外,Dataflow 还允许对数据本身执行任意 analytics/manipulation。
也就是说,BigQuery 和 Datastore 可以直接连接。例如,请参阅 BigQuery 文档中的 Loading Data From Cloud Datastore。
我们在 Google App Engine 上有一个应用程序 运行 使用 Datastore 作为持久性后端。当前应用程序主要具有 'OLTP' 功能和一些基本报告。在实施报告时,我们发现使用 Datastore 和 GQL 处理大量数据(数百万个对象)非常困难。为了使用适当的报告和商业智能功能增强我们的应用程序,我们认为最好设置 ETL 过程以将数据从 Datastore 移动到 BigQuery。
最初我们考虑将 ETL 过程实现为 App Engine cron 作业,但看起来 Dataflow 也可以用于此。我们有以下设置流程的要求
- 能够使用非流将所有现有数据推送到 BigQuery API 的 BigQuery。
- 完成以上操作后,只要 updated/created 中有任何新数据就推送 使用流 API. 将数据存储到 BigQuery
我的问题是
- Cloud Dataflow 是否适合实施此管道?
- 我们可以推送现有数据吗?有些种类有 数百万个对象。
- 正确的实施方法应该是什么?我们正在考虑两种方法。 第一个 方法是通过 pub/sub 即为现有数据创建一个 cron 作业并将所有数据推送到 pub/sub。对于任何新的更新,将数据推送到 pub/sub,同时它会在 DataStore 中更新。 Dataflow Pipeline 将从 pub/sub 中选取它并将其推送到 BigQuery。 第二种 方法是在 Dataflow 中创建一个批处理管道,它将查询 DataStore 并将任何新数据推送到 BigQuery。
问题是这两种方法可行吗?哪个更划算?还有比以上两种更好的方法吗?
谢谢,
里兹塔克
Dataflow 绝对可以用于此目的。事实上,Dataflow 的可扩展性应该让这个过程变得快速且相对容易。
您的两种方法都应该有效——我更喜欢第二种方法,即使用批处理管道移动现有数据,然后使用流式管道通过云处理新数据 Pub/Sub .除了数据移动之外,Dataflow 还允许对数据本身执行任意 analytics/manipulation。
也就是说,BigQuery 和 Datastore 可以直接连接。例如,请参阅 BigQuery 文档中的 Loading Data From Cloud Datastore。