我有两个蜂巢表 T1 和 T2。T1 是按列 date1,hour1 分区的外部表。它还有另一个名为 date2 的日期列(不同于 date1)。
T2 是一个按 date2 分区的 Hive 表。
我将每小时递增地获取数据,并且可以轻松地将其添加到具有动态分区的表 T1 中。
我想要一种有效的方法来从 T1 中选择数据并将数据增量加载到 T2 中,按 date2 分区。
这就是我现在正在做的
insert into T2
select
*,
date2
from
(
select * from T1 where date1="a constant date" and hour1 = "a constant hour"
) T1SubQuery
left outer join
T2
on
T1SubQuery.idColumn = T2.idColumn
where
T2.idColumn is null
我正在做一个左外连接和“T1.idColumn 为空”来模拟“不在哪里”。我这样做是为了避免重复数据,查询可以运行多次,我希望它是幂等的。
问题
此查询将使用 T2 中的哪些分区?如何最小化使用的分区数量?
进行这种幂等增量数据加载的最有效方法是什么?