对于同一份数据导入两张不同的表,一般方法
insert overwrite table info1 select * from info where sex='male';
insert overwrite table info2 select * from info where sex='female';
上述方法会对同一张表全表扫描两次,而使用下面的方法,只需要扫描一次即可将数据导入两张不用的表,结果和上述方法一致
from info
insert overwrite table info1 select * where sex='male'
insert overwrite table info2 select * where sex='female'
方法二表的结果如下图
限制条件
一般情况下,单个
SQL
里最多可以写
128
路输出,超过
128
路报语法错误;
在一个
multi insert
中,对于分区表,同一个目标分区不可以出现多次
;
对于未分区表,该表不能出现多次;
对于同一张分区表的不同分区,不能同时有
insert overwrite
和
insert into
操作,否则报错返回。
推荐使用场景
适合推数据,不同的部门对同一张表中的数据需求不一样。