Hive分区表,分痛表

标签: Hive  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 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Mr_ye931/article/details/107519883