【问题标题】:Bigquery Schedule query to load data to a particular partitionBigquery 计划查询以将数据加载到特定分区
【发布时间】:2020-01-24 16:56:10
【问题描述】:

我使用 bigquery 计划查询功能每 30 分钟运行一次查询。 我的目标表将是一个分区表,分区列是'event_date'

我使用的计划查询是从source_table -> Dest_table 复制今天的数据 (如select * from source_table where event_date = CURRENT_DATE()) 每 30 分钟一次, 但我希望它可以 write_truncate 现有分区而不写入截断整个表。(因为我不想每 30 分钟复制一次今天的数据)

目前,当我安排此查询并将 partition_field 设置为 event_datewrite_truncate 时,它会截断整个表,这会导致以前的数据丢失。还有什么我想念的吗

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    您可以使用 MERGE 仅截断一个分区,而不是指定目标表。

    不幸的是,它更昂贵,因为您还需要支付从 dest_table 中删除数据的费用。 (插入仍然免费)

    MERGE dest_table t
    USING source_table
    ON FALSE
    WHEN NOT MATCHED BY SOURCE AND event_date=CURRENT_DATE() THEN DELETE
    WHEN NOT MATCHED BY TARGET THEN INSERT ROW
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-19
      • 2020-12-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多