在 impala 中找出 table a 是否是 table b 的子集的最佳方法是什么?
What are the best way to find out in impala if table a is a subset of table b?
我在 Impala 中有两个基于 parquet 的外部表,想知道一个是否是另一个的子集,获得它的最佳方法是什么?
两个表schema相同,有十几个甚至上百个字段
谢谢。
假设 table 中都没有重复项,那么如果计数来自:
,则 A 将是 B 的子集
select count(*)
from B;
与来自以下的计数相同:
select count(*)
from ((select * from a) union
(select * from b)
) ab;
也就是说,将 A
的行添加到 B
并消除重复项不会再添加任何行。
这不是 严格的 子集关系,因为 "A" 可能等同于 "B"。对于严格的子集关系,添加条件:
select count(*)
from A
严格小于B
的计数。
这假设 A
和 B
中的类型和列是兼容的——如果您询问一个是另一个的子集,这是一个合理的假设。
我在 Impala 中有两个基于 parquet 的外部表,想知道一个是否是另一个的子集,获得它的最佳方法是什么?
两个表schema相同,有十几个甚至上百个字段
谢谢。
假设 table 中都没有重复项,那么如果计数来自:
,则 A 将是 B 的子集select count(*)
from B;
与来自以下的计数相同:
select count(*)
from ((select * from a) union
(select * from b)
) ab;
也就是说,将 A
的行添加到 B
并消除重复项不会再添加任何行。
这不是 严格的 子集关系,因为 "A" 可能等同于 "B"。对于严格的子集关系,添加条件:
select count(*)
from A
严格小于B
的计数。
这假设 A
和 B
中的类型和列是兼容的——如果您询问一个是另一个的子集,这是一个合理的假设。