大查询数据流加载到NULL分区

时间:2018-09-25 23:34:24

标签: python google-bigquery google-cloud-dataflow apache-beam

使用apache beam Python SDK,我设置了一个数据流,该数据流写入Big Query上日期分区表中的各个分区。根据{{​​3}},每个日期分区表都有特殊的NULLUNPARTITIONED分区。根据那些文档,我可以通过仅设置过去或将来的日期来写入UNPARTITIONED分区,但是如何写入NULL分区呢?

我试图根据数据中的值将数据加载到分区,有时该字段为null。我宁愿写到NULL分区,也不愿定一个用于null的日期。

作为参考,我编写了类似以下内容的日期分区:

beam.io.Write(beam.io.BigQuerySink(table_id+'$20180925',
    project=project_id, dataset=dataset_id, schema=schema))

要写入$20180925,我需要替换NULL吗?

1 个答案:

答案 0 :(得分:3)

NULL 分区仅在按数据中的列进行分区的表中可用,而对摄取时间已分区的表则不可用。如果要写入列分区表,则不能简单地在特定行中填充该列的值,而不能使用table_id(不带任何分区后缀)写入 NULL 分区。