我有一个从Cloud Pub/Sub读取流数据的管道,这些数据由Dataflow处理,然后保存到一个大的BigQuery表中,每个Pub/Sub消息都包含一个关联的account_id。当一个新的account_id被识别时,有没有办法动态创建新表?然后用关联account_id的数据填充它们?
我知道这可以通过更新每个新帐户的管道来完成。但在理想情况下,Cloud Dataflow会以编程方式在代码中生成这些表。
想分享我看到的几个选择
选项1-等待非日期字段上的分区
功能
不知道什么时候会实现并可供我们使用,所以它可能不是您现在想要的。但是当它上线时-这将是此类场景的最佳选择
选项2-您可以将account_id哈希到预定义数量的存储桶中。在这种情况下,您可以预先创建所有这些表,并且在代码中具有基于帐户哈希处理各自目标表的逻辑。与查询该数据的查询所需使用的哈希逻辑相同
创建BigQuery表的APIhttps://cloud.google.com/bigquery/docs/reference/rest/v2/tables/insert.
然而,如果将所有帐户存储在一个静态表中,其中包含account_id作为一列,则可能会更容易。