Bigquery计划查询以将数据加载到特定分区

问题描述 投票:0回答:1

我正在使用bigquery计划查询功能来每30分钟运行一次查询。我的目标表将是一个分区表,而partionining列是'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个回答
0
投票

代替指定目标表,您可以使用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
© www.soinside.com 2019 - 2024. All rights reserved.