Hive创建分区表、动态插入、删除分区表

如何在hive上建立分区表呢:
简单的创建sql如下:

CREATE EXTERNAL TABLE t(
`run_time` bigint  ,
`enterprise_num` bigint  ,
 )
PARTITIONED BY (
`day` string)

这样的话,就简单的创建了一个分区字段为day的分区表。

那么我们在分区插入的时候,怎么插入呢:

insert into table t partition(day='2021-06-09')
select run_time,enterprise_num from other_t ;

很明显,这样子的插入是写死的,如果想要每天都将查询的数据建立分区表,这样写sql还要有改动,那么如何进行动态分区呢:

set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
insert into table t partition(day)
select run_time,enterprise_num,current_date  from other_t ;

大家可以注意到,当我们查询了三个字段时(多了current_date 字段),所以系统默认以最后一个字段current_date 为分区名,因为分区表的分区字段默认也是该表中的字段,且依次排在表中字段的最后面。所以分区需要分区的字段只能放在后面,不能把顺序弄错.

那如何删除某个分区表呢:

alter table t drop partition(day='2021-06-08'); 

这样子就可以删除分区字段为2021-06-08的分区表了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值