【问题标题】:How do you overwrite certain date partitions in BigQuery?如何覆盖 BigQuery 中的某些日期分区?
【发布时间】:2019-09-15 06:09:09
【问题描述】:

我有一个按列date 的分区表。

假设我在以下日期有 3 个分区:2019-04-01, 2019-04-02, 2019-04-03

t+1,我有一个包含2019-04-02, 2019-04-03, 2019-04-04 数据的输入文件。

我想要做的是替换任何重叠日期的当前分区,并保持2019-04-01, 2019-04-04 的分区不变。

我尝试过使用WRITE_TRUNCATE,但这最终会删除我的整个表格。有人可以帮忙吗?

我知道可以使用分区装饰器,例如table$20190404,但这究竟是如何工作的?它与WRITE_TRUNCATE 一起工作吗?如果我只能为装饰器提供一个日期,它如何覆盖多个日期分区?

【问题讨论】:

  • 你得到答案了吗?
  • 是的,我找到了解决方案
  • @staten12 你的解决方案是什么?
  • @TommyW 我设置了一个气流预定的预处理作业,它解析每个日期并使用分区装饰器 table_name$20200124 将其加载到所述分区。

标签: python python-3.x google-bigquery


【解决方案1】:

您可能需要为此用例预处理输入数据,并在目标表中排除您不想更新的数据。或者,您可以将输入数据加载到新的 BQ 表中,然后使用DML statement 更新目标分区表

【讨论】:

    猜你喜欢
    • 2018-11-22
    • 2020-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-30
    相关资源
    最近更新 更多