Hive学习----分区操作

Hive分区操作详解
本文介绍了Hive如何进行分区操作,包括创建分区、加载数据时添加分区、单独添加分区及删除分区。通过分区,可以有效地管理和提升查询效率。示例中展示了如何创建分区表、使用LOAD DATA指令添加数据到特定分区,以及如何通过ALTER TABLE命令单独添加和删除分区。强调了明确指定分区信息在查询中的重要性,以避免全表扫描导致的效率问题。

1.创建分区

对表中的数据进行管理,并能提高查询效率,Hive的分区实际上就是表下创建子目录

创建表分区通过关键字PARTITIONED BY

CREATE TABLE IF NOT EXISTS tb1(

id int,

name string

)PARTITIONED BY (year int,month int)

ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

 

 

2.添加分区

2.1 加载数据时添加分区

load data local inpath '/home/omc/students.txt' into table tb1

PARTITION (year=2018,month=8);

 

 

查询分区

show partitions tb1;

2.2 单独添加分区

alter table tb1

add partition (year=2017,month=8);

 

虽然没有数据,但先把目录已经创建成功了

将同样的数据上传到year=2017/month=8目录下

查询分区数据,不指定分区信息的话,会进行全表扫描,由于我们上传了两份一模一样的数据到两个分区,所以我们会查到重复记录

现实生产中,我们要指明分区信息来提高查询效率

select * from tb1 where month=8;

select * from tb1 where year=2018;

3.删除分区

alter table tb1

drop partition (year=2017);

 

hdfs上没有year=2017目录以及子目录

 

手工移动分区数据到其他目录下,结果无法查出。因为破坏了分区目录结构

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值