Hive分区表,分痛表
分区表
1,静态分区:
(对已经分好类的文件导入静态分区)
create table tb_p_order(
oid int ,
dt string ,
cost double
)
partitioned by (mot string,day string)
row format delimited fields terminated by "," ;
实例:创建一个二级静态分区
导入数据:
load data local inpath "/opt2/06-18.txt" into table tb_p_order partition(mot='06',day='18');
06-18.txt
01,2020-06-18,200
02,2020-06-18,200
03,2020-06-18,100
03,2020-06-18,200
04,2020-06-18,200
05,2020-06-18,20
06,2020-06-18,100
07,2020-06-18,200
08,2020-06-18,200
09,2020-06-18,100
10,2020-06-18,200
查看效果:分到不同的文件夹下管理,二级分区就是二级文件夹,通过分区字段检查查询时间
2,动态分区:
根据查询的已存在hive中的数据的某个属性进行分区 ,就是动态分区。查询后动态导入建好的分区表
1,开启动态分区功能:
set hive.exec.dynamic.partition=true ;
set hive.exec.dynamic.partition.mode=nonstrick; 可以从普通表中导入数据
2,创建分区表:(和普通分区表创建没区别)
create table if not exists tb_p_user(
uid string ,
name string ,
age int ,
gender string ,
address string
)
partitioned by (addr string)
row format delimited fields terminated by " " ;
3,动态的从其他表中导入数据
插入数据的时候两张表字段类型个数一一对应。 最后一个字段就是分区字段 (其中tb_user就是普通表)
insert into tb_p_user partition(addr)
select uid , name , age , gender , address , address from tb_user ;
分桶表
版权声明:本文为Mr_ye931原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。