我有一个从Cloud Pub / Sub读取流数据的管道,这些数据由Dataflow处理,然后保存到一个大的BigQuery表中,每个Pub / Sub消息包含一个关联的account_id。有没有办法在识别新的account_id时动态创建新表?然后用来自相关account_id的数据填充它们?
我知道这可以通过更新每个新帐户的管道来完成。但在理想的世界中,Cloud Dataflow会以编程方式在代码中生成这些表。
答案 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作为一列的静态表中,可能会更容易。