标签:区别 str pre key att string write net routeros
区分insert into 和 insert overowrite:
0、
命令格式
INSERT OVERWRITE|INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)] [(col1,col2 ...)]
select_statement
FROM from_statement;
参数说明
功能说明
INSERT OVERWRITE/INTO
用于将计算的结果保存目标表中。
示例
sale_detail
表中不同地区的销售额存入表sale_detail_insert
中。
--创建目标表sale_detail_insert。
create table sale_detail_insert like sale_detail;
--给目标表增加分区。
alter table sale_detail_insert add partition(sale_date=‘2013‘, region=‘china‘);
--从源表sale_detail中取出数据插入目标表sale_detail_insert。
insert overwrite table sale_detail_insert partition (sale_date=‘2013‘, region=‘china‘)
select shop_name, customer_id,total_price from sale_detail;
select
子句中列的顺序,而不是表与表之间列名的对应关系。例如如下语句。
insert overwrite table sale_detail_insert partition (sale_date=‘2013‘, region=‘china‘)
select customer_id, shop_name, total_price from sale_detail;
在创建sale_detail_insert
表时,列的顺序为shop_name string、customer_id string、total_price bigint
,而从sale_detail
向sale_detail_insert
插入数据的顺序为customer_id、shop_name、total_price
。此时,会将sale_detail.customer_id
的数据插入sale_detail_insert.shop_name
,将sale_detail.shop_name
的数据插入sale_detail_insert.customer_id
。
select
列表中。下面语句报错返回,sale_date,region
为分区列,不允许出现在静态分区的insert语句中。
insert overwrite table sale_detail_insert partition (sale_date=‘2013‘, region=‘china‘)
select shop_name, customer_id, total_price, sale_date, region from sale_detail;
partition
的值只能是常量,不可以出现表达式。以下为错误用法。
insert overwrite table sale_detail_insert partition (sale_date=datepart(‘2016-09-18 01:10:00‘, ‘yyyy‘) , region=‘china‘)
select shop_name, customer_id, total_price from sale_detail;
使用动态分区注意事项
insert into partition
时,如果分区不存在,会自动创建分区。insert into partition
作业并发时,如果分区不存在,会自动创建分区,但只会成功创建一个分区。insert into partition
作业并发,则只能通过预创建分区避免问题。
1、insert into 语句
Hive> insert into table account select id,age,name from account_tmp;
2、insert overwrite语句
hive> insert overwrite table account2 select id,age,name from account_tmp;
--------------------
overwrite本质是覆盖现有数据!!!!(清空原有数据,新增查询数据),而into是直接将数据写入库。
参考:
https://blog.csdn.net/paopaopotter/java/article/details/83616295
https://blog.csdn.net/qq_41582642/article/details/82897424
Hive-insert into table 与 insert overwrite table 区别
标签:区别 str pre key att string write net routeros
原文地址:https://www.cnblogs.com/Formulate0303/p/12842167.html