相同点
insert into 和 insert overwrite 都是往表中插入数据的。
不同点
区别1:
insert into :其实是将数据追加到表的末尾,注意:不是覆盖,是追加。
insert overwrite : 其实是将重写表(或分区)中的内容,即将原来的hive表(或分区)中的数据删除掉,再进行插入数据操作。
提示: 如果hive 表示分区表的话,insert overwrite 操作只是会重写当前分区的数据,是不会重写其他分区的数据的。
区别2:
hive > insert into stu select * from student;
注:将select * from student 的查询机结果追加到stu表内容的后面,而且table关键字是可以省略的。
hive > insert overwrite table stu select * from student;
注:将select * from student 的查询机结果覆盖掉stu表之前的数据,而且table关键字是不可省略的。
区别3:
使用insert into运行效率要比insert overwrite高很多,使用的资源比insert overwrite要少。