是否可以将窗口无界 PCollection 写入特定的 BQ 分区



给定流式处理中的窗口PCollection,我想基于窗口写入BQ表中的特定分区。

BigQueryIO.Write.Bound.to(SerializableFunction<BoundedWindow,String> tableSpecFunction)(文档)指定tableSpecFunction时,似乎我只能为表引用字符串指定字母数字名称。

在没有指定表装饰器的情况下,数据似乎被写入分区 ID __UNPARTITIONED__ 。AFAICT 这最终将解决到今天的分区。

对于我的用例,我希望可以在正确的分区中立即访问数据。此外,能够考虑延迟数据并将其写入正确的分区也很棒。

所以重申我的问题:

是否可以将窗口无界 PCollection 写入特定的 BQ 分区?

您应该能够直接使用分区名称。BigQuery API(流式处理)支持通过使用表的分区修饰器写入表的给定分区。例如,要写入表 T 的 2016-05-01 分区,您可以使用 T$20160501

<table_name>$<date>语法不适合您吗?

最新更新