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

时间:2017-01-12 23:27:55

标签: google-bigquery google-cloud-dataflow

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

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

如果未指定表装饰器,则数据似乎写入分区ID __UNPARTITIONED__。 AFAICT最终将解析为today's partition

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

重申我的问题:

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

1 个答案:

答案 0 :(得分:2)

您应该可以直接使用分区名称。 BigQuery API(流)支持使用表的分区装饰器写入表的给定分区。例如,要为表T写入2016-05-01的分区,您需要使用T $ 20160501

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