使用 Dataflow 处理来自 BigQuery 的数据

Process data from BigQuery using Dataflow

我想从 BigQuery 中检索每小时到达的数据并进行一些处理,然后将新的计算变量拉入新的 BigQuery table。问题是我以前从未与 gcp 合作过,现在我必须为我的工作工作。 我已经在 python 中有了我的代码来处理数据,但它只适用于“静态”数据集

根据 Google 建议,当您的数据在 BigQuery 中并且您想要转换它们以将它们存储在 BigQuery 中时,如果您可以用SQL.

这就是为什么我不建议您将数据流用于您的用例。如果你不想,或者你不能直接使用 SQL,你可以在 Javascript.

中创建 User Defined Function (UDF) in BigQuery

编辑

如果您在将数据更新到 BigQuery 时没有任何信息,Dataflow 将不会在这方面帮助您。只有当这些数据出现在 PubSub 中时,Dataflow 才能处理实时数据。如果没有,那就不是魔法!!

因为您没有执行加载时间的信息,所以您必须 运行 按计划执行您的过程。为此,Scheduled Queries 是您使用 BigQuery 进行处理的正确解决方案。

由于您的源和汇都在 BigQuery 中,我建议您在 BigQuery 中进行转换。 如果您需要在预定时间内 运行 的计划作业,您可以使用 Scheduled Queries.

使用计划查询,您可以保存一些查询,定期执行并将结果保存到另一个 table。

要创建计划查询,请按照以下步骤操作:

  1. 在 BigQuery 控制台中,编写您的查询

  2. 编写正确的查询后,点击计划查询,然后点击创建新的计划查询见下图

  1. 注意这两个字段:

    • Schedule options:有一些预先配置的schedule,比如daily,monthly等。如果你需要每两个小时执行一次,比如你可以设置Repeat 选项作为 Custom 并将您的 Custom schedule 设置为 'every 2 hours '。在 开始日期和 运行 时间 字段中,select 应该开始执行查询的时间和数据。
    • 查询结果的目的地:您可以在此处设置数据集和table查询结果的保存位置。请记住,如果您使用 scripting,则此选项不可用。换句话说,您应该只使用 SQL 而不是在您的转换中编写脚本。


  1. 单击计划

之后,您的查询将根据您的日程安排和目的地 table 配置开始执行。