hive的分区

表分区

分区列对应目录

作用:辅助查询,缩小查询范围,加快数据的检索速度和对数据按照一定的规格和条件进行管理

添加分区

alter table ods_cities add if not exists partition(year='2015', month='09', day='01') location '/user/xiaoju/data/bi/gal_dw/ods_cities/2015/09/01';

查看分区

show partitions ods_cities;

删除分区(内部表会对应删除数据)

alter table ods_cities drop partition(year='2015', month='09', day='01');

 

HIVE默认是静态分区

静态分区语句

insert overwrite table test_static_pt_table partition (month=‘05’,day=’10’)
select url
from test_table;

查询分区

Hive> show partitions test_static_pt_table;
OK
month=05/day=10

开启动态分区命令

set hive.exec.dynamic.partition=true;  --允许使用动态分区可通过set hive.exec.dynamic.partition;查看
set hive.exec.dynamic.partition.mode=nonstrict;   --当需要设置所有列为dynamic时需要这样设置
set hive.exec.max.dynamic.partitions=1000;  --如果分区总数超过这个数量会报错
set hive.exec.max.dynamic.partitions.pernode=1000;  --单个MR Job允许创建分区的最大数量

动态分区语句

insert overwrite table test_dynamic_pt_table 
partition(month=‘06’, day) --注意不能父分区是dynamic而子分区是static
select url,day  --注意day一定要放在最后,这里可以对分区字段进行一些格式化
from test_table where substr(day,1,7)=‘2015-06’;

查询分区

hive> show partitions test_dynamic_pt_table;
OK
month=06/day=2015-06-14
month=06/day=2015-06-15

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值