是否可以覆盖BigQuery中的分区?

时间:2019-09-27 22:19:38

标签: google-bigquery

本文:https://cloud.google.com/bigquery/docs/writing-results指出可以用新数据覆盖BigQuery表,但是我想做的是覆盖一个分区(或多个分区)。有可能吗?

我已经阅读了大量有关将数据插入BigQuery的文档(例如https://cloud.google.com/bigquery/docs/creating-column-partitions),并且找不到任何有关覆盖分区的引用,因此我认为问题的答案为“否”,但我认为我还是要问。

2 个答案:

答案 0 :(得分:1)

您很幸运!通过MERGE DML可以做到这一点。

https://cloud.google.com/bigquery/docs/using-dml-with-partitioned-tables#pruning_partitions_when_using_a_merge_statement

我的建议是尝试一下。如果您无法使用它,请发布一个包含特定数据/查询的新问题。

答案 1 :(得分:1)

您总是可以使用查询输出表名称中的YYYYMMDD后缀,以及使用WRITE_TRUNCATE作为写入配置来覆盖BQ中的分区表(即截断任何存在于该分区中并写入新结果)。

因此,可以说,当您运行查询时,并且想要覆盖名为xyz的表中日期为2019-01-15的分区时,只需将查询结果的输出目标设置为{ {1}}并将写处置指定为yourdataset.xyz$20190115

希望有帮助。