Hive学习笔记:插入数据
日常从临时表复制数据到正式表可通过:
create table table_name_new as
select * from table_name;
但这样子原表的信息,分区等无法直接复制,需要通过额外的方式进行构建表、插入数据。
具体参考如下。
一、全量复制
drop table table_name_new;
create table if not exists table_name_new like table_name;
use data_base_name;
set hive.vectorized.execution.enabled = false;
insert overwrite table table_name_new
select * from table_name;
二、分区插入数据
-- 1.建表 4个字段
create table database_name.table_name
(
a string,
b string,
c bigint
)
partitioned by (update_date int)
row format delimited fields terminated by "\t";
-- 2.插入数据
use database_name;
set hive.exec.dynamic.partition.mode=nonstrict;
insert overwrite table table_name
partition(update_date)
select a,
b,
c,
update_date
from table_name_old;