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后目录还在是因为之前有修改过分区的映射

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

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

相关推荐
小四的快乐生活19 小时前
Hive 存储管理测试用例设计指南
hive·hadoop·测试用例
没有梦想的咸鱼185-1037-16631 天前
SWMM排水管网水力、水质建模及在海绵与水环境中的应用
数据仓库·人工智能·数据挖掘·数据分析
三劫散仙1 天前
mac m1上使用Kerberos访问远程linux hadoop集群的正确姿势
linux·hadoop·macos
源图客1 天前
Apache Ozone 2.0.0集群部署
hadoop·ozone
计算机毕设残哥1 天前
大数据毕业设计推荐:基于Hadoop+Spark的手机信息分析系统完整方案
大数据·hadoop·课程设计
PawSQL1 天前
十年磨一剑!Apache Hive 性能优化演进全史(2013 - )
大数据·hive·性能优化
派可数据BI可视化1 天前
解读商业智能BI,数据仓库中的元数据
大数据·数据仓库·数据分析·spark·商业智能bi
老刘聊集成1 天前
ETL 工具选型评测:2025 年 Top 5 工具优缺点对比(附评分表)
数据仓库·etl
越来越无动于衷2 天前
Spring Boot 整合 Spring MVC:自动配置与扩展实践
数据仓库·hive·hadoop
Raisy_2 天前
05 ODS层(Operation Data Store)
大数据·数据仓库·kafka·flume