✨[面试进阶]INSERT INTO 和 INSERT OVERWRITE 的区别?(Hive篇)✨
Posted manor的大数据奋斗之路
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了✨[面试进阶]INSERT INTO 和 INSERT OVERWRITE 的区别?(Hive篇)✨相关的知识,希望对你有一定的参考价值。
🚩 问题分析
本题主要考察面试者对插入数据和覆盖数据的基本使用。
🚩 核心答案讲解
INSERT OVERWRITE 会覆盖已经存在的数据,假如,原始表使用OVERWRITE 上的数据,先将原始表的数据Remove,再插入新数据。
INSERT INTO 只是简单的插入,不考虑原始表的数据,直接追加到表中。
🚩 问题扩展
INSERT INTO Partition时,如果分区不存在,会自动创建分区。
多个INSERT INTO Partition作业并发时,如果分区不存在,会自动创建分区,但只会成功创建一个分区。
如果不能控制INSERT INTO Partition作业并发,则只能通过预创建分区避免问题。
🚩 结合项目中使用
INSERT OVERWRITE 会覆盖已经存在的数据,如被覆盖的表中有3条数据和要插入的一条数据相同,那么覆盖后只会有1条数据;
INSERT INTO 只是简单的copy插入,不做重复性校验。
以上是关于✨[面试进阶]INSERT INTO 和 INSERT OVERWRITE 的区别?(Hive篇)✨的主要内容,如果未能解决你的问题,请参考以下文章
Oracle中insert into select和select into的区别