【发布时间】:2020-05-31 11:05:24
【问题描述】:
假设我有一个表 t1,它在列 sdate 上进行日期分区
我有另一个表 t2,它也在列 pdate 上分区,其中一些分区中已经有数据(20200101 到 20200130)
现在,我想从t1 中的数据覆盖t2 中的几个分区(20200105 到 20200110)
我想在一个查询中完成,而不是每个分区一个查询。
选择查询:
SELECT sdate,
c1, c2
FROM `dataset.t1` where sdate between "2020-01-05" and "2020-01-10"
我见过一些例子,我们可以指定像t2$20200102 这样的目标表,但这只会覆盖一个分区。
我们如何编写插入语句来填充选定的分区
对插入查询的外观有什么想法吗?
【问题讨论】:
-
是否有任何主键可以关联表 t1 和表 t2 中的行?
-
不,没有任何钥匙。我唯一的目的是用来自 t2 的数据覆盖 t1 中的分区
-
我问是因为要使用合并、更新和删除行,您需要一个主键来关联这两个表。否则,Guillem Xercavins 的答案是最好的选择。
-
同意。我一直在寻找“原子”的东西。由于涉及多个步骤,如果任何步骤失败,我们最终可能会处于不一致的状态
标签: google-bigquery