Hive:静态分区(分区语法,多级分区,分区的查看修改增加删除)

hive在建表时引入了partition概念。即在建表时,将整个表存储在不同的子目录中,每一个子目录对应一个分区。在查询时,我们就可以指定分区查询,避免了hive做全表扫描,从而提高查询率。

oracle和Hive分区的区别

orcale在进行表分区时不需要定义分区字段的数据类型,Hive需要,因为oracle分区时用的是表内字段,Hive在分区时用的是表外字段

分区的注意事项


在 hive 中,分区字段名是不区分大小写的,不过字段值是区分大小写的

示例(一级分区,即分区时只有一个字段)

表里面只有2个字段(id和name) ,dt 是用来辅助分区的

导入数据

导入数据后查看

导入第二个分区的数据后查看

查询指定分区的数据

在oracle中使用where的时候是全盘扫描,但是Hive是局部扫描, 因为分区相当于一个目录

示例: part1表中的2个分区dt=2025-01-01和dt=2025-01-02

多级分区

分区时有多少个字段就是多少级分区

表中只有2个字段,另外2个是伪列, 是用来进行分区的

加载数据

加载数据后查看表

导入时month=01查询时变成1,是因为没有引号默认按照数值处理,省略了0

查看分区

示例

注意: year和month分区的层级关系, month是year的下一级目录,删掉year=2025分区后,2025下一级分区的month=1和month=2也是被删掉的

修改分区

即修改分区的数据来源, 下次访问该分区时映射修改后的路径数据

示例

修改分区

原本的数据还在原来的位置, 所以修改分区只是下次访问该分区时映射的不是原本的目录,映射修改后的路径数据

增加分区


3 ) 新增多分区
新增多个空分区, 通过show partitions 表名 查看是否新增分区成功



新增多个带数据的分区

注意: 新增分区(带数据)只是改变了映射

删除分区

示例

删除表part2的分区year=2025 month=01后目录还在是因为之前有修改过分区的映射

删除未修改过分区映射的分区

删除分区时,分区下面的目录也会被删除

相关推荐
落霞的思绪4 小时前
使用云虚拟机搭建hadoop集群环境
大数据·hadoop·分布式
无级程序员17 小时前
大数据平台之ranger与ldap集成,同步用户和组
大数据·hadoop
梦想画家1 天前
数据仓库:企业数据管理的核心枢纽
数据仓库
梦想画家2 天前
数据仓库中的代理键:概念、应用与实践指南
数据仓库·代理键·缓慢维度变化
王小王-1233 天前
基于Hadoop的用户购物行为可视化分析系统设计与实现
大数据·hadoop·分布式·用户购物行为·电商日志分析
爱吃面的猫4 天前
大数据Hadoop之——Flink1.17.0安装与使用(非常详细)
大数据·hadoop·分布式
zhuiQiuMX4 天前
脉脉maimai面试死亡日记
数据仓库·sql·面试
Edingbrugh.南空4 天前
Hadoop MapReduce 入门
大数据·hadoop·mapreduce
大数据CLUB5 天前
基于spark的奥运会奖牌变化数据分析
大数据·hadoop·数据分析·spark
Edingbrugh.南空5 天前
Hadoop高可用集群搭建
大数据·hadoop·分布式