Google bigquery 云数据流:在BigQuery中生成表

Google bigquery 云数据流:在BigQuery中生成表,google-bigquery,google-cloud-dataflow,google-cloud-pubsub,Google Bigquery,Google Cloud Dataflow,Google Cloud Pubsub,我有一个从云发布/订阅读取流式数据的管道,这些数据由数据流处理,然后保存到一个大的BigQuery表中,每个发布/订阅消息都包含一个关联的帐户id。当识别出一个新帐户id时,有没有办法动态创建新表?然后用关联帐户id中的数据填充它们 我知道这可以通过更新每个新帐户的管道来实现。但在理想情况下,云数据流将以编程方式在代码中生成这些表。用于创建BigQuery表的API位于 不过,如果您将所有帐户存储在一个静态表中,该表将帐户id作为一列,可能会更容易。想分享我看到的几个选项 选项1-等待功能 我们

我有一个从云发布/订阅读取流式数据的管道,这些数据由数据流处理,然后保存到一个大的BigQuery表中,每个发布/订阅消息都包含一个关联的帐户id。当识别出一个新帐户id时,有没有办法动态创建新表?然后用关联帐户id中的数据填充它们


我知道这可以通过更新每个新帐户的管道来实现。但在理想情况下,云数据流将以编程方式在代码中生成这些表。

用于创建BigQuery表的API位于


不过,如果您将所有帐户存储在一个静态表中,该表将帐户id作为一列,可能会更容易。

想分享我看到的几个选项

选项1-等待功能
我们不知道这将在什么时候实现,什么时候可以使用,所以这可能不是您现在想要的。但是,当这将成为现实-这将是这种情况下的最佳选择

选项2–您可以将您的帐户id散列到预定义的存储桶数中。
在这种情况下,您可以预先创建所有这些表,并且在代码中具有基于帐户哈希处理各个目标表的逻辑。与查询数据时需要使用的哈希逻辑相同

我是否正确理解?在运行时之前,您不知道管道中这些BigQuery表/接收器的名称,即它们是动态的。是吗?正确,我想在运行时以动态方式创建表。我确实知道他们的名字,但我们一直都有新帐户,不断更新每个帐户的管道并不是很及时。对所有帐户使用一个大表的问题是:遍历每个帐户的行数据的成本和速度。请在更简单的情况下也看到这个答案,这对我的组织来说也更昂贵。有没有一种方法可以使用云数据流实现上述问题?请参阅Mikhail Berlyant的回答。如果您想最小化工作量,在非日期字段上分区是最好的选择。