云数据流:在BigQuery中生成表

时间:2017-03-27 10:15:08

标签: google-bigquery google-cloud-dataflow google-cloud-pubsub

我有一个从Cloud Pub / Sub读取流数据的管道,这些数据由Dataflow处理,然后保存到一个大的BigQuery表中,每个Pub / Sub消息包含一个关联的account_id。有没有办法在识别新的account_id时动态创建新表?然后用来自相关account_id的数据填充它们?

我知道这可以通过更新每个新帐户的管道来完成。但在理想的世界中,Cloud Dataflow会以编程方式在代码中生成这些表。

2 个答案:

答案 0 :(得分:1)

希望分享一些我看到的选项

选项1 - 等待Partition on non-date field功能
我们不知道这什么时候会实现并且可供我们使用,所以现在可能不是你想要的。但是,当这种情况发生时 - 这将是此类情景的最佳选择

选项2 - 您可以将您的account_id哈希到预定义数量的存储桶中。 在这种情况下,您可以预先创建所有这些表,并在您的代码中具有将根据帐户哈希处理相应目标表的逻辑。与将在查询该数据的查询中使用的哈希逻辑相同的哈希逻辑

答案 1 :(得分:0)

用于创建BigQuery表的API位于https://cloud.google.com/bigquery/docs/reference/rest/v2/tables/insert

尽管如此,如果将所有帐户存储在一个包含account_id作为一列的静态表中,可能会更容易。