六大神兽 轻松玩转hive中join“六大神兽”之间的关系

六大神兽 轻松玩转hive中join“六大神兽”之间的关系


文章图片

各种连接之间的关系:
Hive编程是整个数据仓库运营的核心,各种业务之间的连接是Hive的核心,所以可以理解掌握Hive中的各种连接是数据仓库开发工程师必备的技能。
注意:
hive中的Join只支持等价连接,也就是说,join on中on上的表之间的连接条件只能是=,不能是等号。此外,上的equijoin只能是和,不能是或。
1 .内部连接
内部联接,它将只保留两个联接表中满足联接条件的数据,并返回两个表中存在的信息
内部连接是最常见的连接类型,称为普通连接,而E.FCodd最初称为自然连接。
内部可以省略。
内部联接= =联接等同于早期的联接语法
通俗理解:返回两个表中的信息;
2 .左连接
左外连接,其中outer也可以省略,左外连接是一个早期的词。
列表连接B基于表A中的记录,A可以看作左表,B可以看作右表,列表连接基于左表。
这意味着将显示左表中的所有记录,而右表将仅显示满足搜索条件的记录,例如on和where条件。
表b中缺少的记录为空。
列表连接B相当于B右连接a。
通俗理解:前一个表作为主表与其他表关联,返回的记录数与主表相同,不能关联的字段为NULL
3 .右连接
同样,与左连接相反,A右连接B将显示表B中的所有记录,表A不足以填充null
同样,右外连接= righr连接,也可以省略outer。
通俗理解:后表为主表,前表关联。返回的记录数与主表相同,不能关联的字段为空;
4 .完全外部连接
相当于完全连接,完全外部连接
包含左表和右表的所有行,而不管其他表中是否有匹配的行。
在功能上,它相当于两个数据集的左外连接和右连接,然后消除了重复行的并行操作,将上述两个结果集组合成一个结果集。
未关联字段为空;
注意:Hive不使用mapjoin来优化完全连接;
通俗理解:返回两个表记录的并集,不能关联的字段为NULL
5 .左半连接
如果打开左半连接,则显示左半表中的记录,前提是右半表中的记录满足on语句中的判断条件。
左半连接的效果与内连接相似,比内连接更有效。
通俗理解:关键字前面的表为主表,两个表与on条件字段相交,返回上一个表中的记录
6 .交叉连接
返回两个表的笛卡尔乘积结果,而不指定关联键;这似乎与内部连接相同。
在SQL标准中,定义了交叉连接,这是无条件的内部连接。
在mysql中,没有区别,两者是等价的。
通俗理解:要返回两个表的笛卡尔乘积结果,不需要指定关联键;
如果你认为这对你有帮助。记得收藏关注!
如需转载,请注明出处
和巨婴程一起长大。让自己变得更加优秀

六大神兽 轻松玩转hive中join“六大神兽”之间的关系


文章图片

【六大神兽 轻松玩转hive中join“六大神兽”之间的关系】想了解更多精彩内容,快来关注跟着巨婴来反攻吧
我最近一直在思考这个问题。你有什么看法?注意我,快点说。让我们一起交流~

    推荐阅读