Hive分区——Partition(静态分区,动态分区)详解

本文详细介绍了Hive分区的目的,如提高查询性能,以及分区的创建方法,包括静态和动态分区的创建过程。动态分区允许根据查询动态分配数据到分区,适合数据量较小的全量导入。此外,还讨论了多分区的创建、增删改查等操作。
摘要由CSDN通过智能技术生成

分区目的

-分区主要用于提高性能
-分区列的值将表划分为一个个的文件夹
-查询时语法使用"分区"列和常规列类似
-查询时Hive会只从指定分区查询数据,提高查询效率
-分为静态分区和动态分区

分区的创建

Hive创建分区时,是通过partitioned by关键字进行创建,要注意的是这个关键字定义的列是表中正式的列,不能与表中其他列名重复,他们是目录(分区)名,目录下放的才是数据。分区字段不能与表中其他字段重复,否则会报错

1.创建建表时候不管动态还是静态分区
create table userinfos(
	userid string,
	age string,
	birthday string) 
partitioned by (sex string) 
row format delimited fields terminated by ',' 
stored as textfile;
2.执行load 装载数据

(其实load操作相当于把文件移动到HDFS的Hive目录下)

这种方式不合理直接忽略了性别,在查的时候强行改变该列的值但是原数据没有改变

 load data local inpath '/opt/datas/user.csv' overwrite into table userinfos partition (sex='male');
3.查看表结构,查询分区表的数据
desc userinfos;
select * from userinfos;
4.静态分区:

指定分区就忽略该字段强行为分区值
场景:增量表

create table ods_users(
userid string,
username string,
birthday string
  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值