静态分区表
单分区
必须在表定义时指定对应partition字段
单分区建表语句
上传数据
双分区
双分区创建语句
增加分区
alter table fei add partition(dt=10,hour=40);
也就是说添加分区的时候不能直接添加,而是需要将原来的分区也要包含其中,完成相应的排序
删除分区
alter table tablename drop partition (sex='boy')
注:删除分区的时候,会将所有存在的分区都删除
动态分区表
1、修改权限
set hive.exec.dynamic.partiton=true //开启动态分区
2、修改默认状态
set hive.exec.dynamic.partiton.mode=nostrict
//默认strict。至少有一个静态分区
跟静态分区创建一样
动态写入数据
from psn21 //已经存在的表格并且要有数据
insert overwrite table pas22 partiton (age,sex)
select * distribute by age,sex
分桶表
开启分桶
set hive.enforce.bucketing=true
创建分桶的操作
加载数据
insert into table psnbucket select id,name,age from psn31
抽样
select * from bucket_table tablesample(bucket 1 out of 4 on age)
这里就好了