Big Query Dataflow 加载到 NULL 分区
Big Query Dataflow Load to NULL partition
使用 apache beam Python SDK,我设置了一个数据流,该数据流在 Big Query 上的日期分区 table 中写入各个分区。根据 this documentation 每个日期分区 table 都有特殊的 NULL
和 UNPARTITIONED
分区。根据这些文档,我可以通过将我的日期设置为过去或将来的日期来写入 UNPARTITIONED
分区,但是如何写入 NULL
分区?
我正在尝试根据数据中的值将数据加载到分区,但有时该字段为空。我宁愿写入 NULL
分区也不愿编造一个用于空值的日期。
作为参考,我写了日期分区做这样的事情:
beam.io.Write(beam.io.BigQuerySink(table_id+'180925',
project=project_id, dataset=dataset_id, schema=schema))
我需要用什么来替换 180925
才能写入 NULL
?
NULL 分区仅在按数据列分区的 table 中可用,在摄取时间分区 table 中不可用。如果您正在写入分区 table 的列,您可以简单地不在特定行中填充该列的值并使用 table_id (没有任何分区后缀)写入 NULL 分区。
使用 apache beam Python SDK,我设置了一个数据流,该数据流在 Big Query 上的日期分区 table 中写入各个分区。根据 this documentation 每个日期分区 table 都有特殊的 NULL
和 UNPARTITIONED
分区。根据这些文档,我可以通过将我的日期设置为过去或将来的日期来写入 UNPARTITIONED
分区,但是如何写入 NULL
分区?
我正在尝试根据数据中的值将数据加载到分区,但有时该字段为空。我宁愿写入 NULL
分区也不愿编造一个用于空值的日期。
作为参考,我写了日期分区做这样的事情:
beam.io.Write(beam.io.BigQuerySink(table_id+'180925',
project=project_id, dataset=dataset_id, schema=schema))
我需要用什么来替换 180925
才能写入 NULL
?
NULL 分区仅在按数据列分区的 table 中可用,在摄取时间分区 table 中不可用。如果您正在写入分区 table 的列,您可以简单地不在特定行中填充该列的值并使用 table_id (没有任何分区后缀)写入 NULL 分区。