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

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

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

相关推荐
王小王-1235 天前
基于 Hive 的网易云音乐数据分析及可视化系统
hive·hadoop·数据分析·音乐数据分析·网易云音乐分析·hive音乐分析·hadoop网易云
极光代码工作室5 天前
基于数据仓库的电商数据分析平台
大数据·hadoop·python·spark·数据可视化
Database_Cool_5 天前
大规模数据分析降本指南:AnalyticDB Serverless 弹性架构实战
数据仓库·阿里云·架构·数据分析·serverless
Database_Cool_5 天前
什么是湖仓一体?和数据仓库的本质区别(附 AnalyticDB MySQL 湖仓一体方案)
数据库·数据仓库·mysql
Chris _data5 天前
WPF 学习第三天 — Modbus RTU 串口通信
hadoop·学习·wpf
知识分享小能手5 天前
Hadoop学习教程,从入门到精通,Flume日志采集系统 — 完整知识点与案例代码(9)
hadoop·学习·flume
递归尽头是星辰5 天前
AI 访问数据仓库:从直连到微服务化
数据仓库·人工智能·微服务·dataagent·ai数据治理
Francek Chen6 天前
【大数据处理与分析】MapReduce:06 MapReduce编程实践
大数据·hadoop·分布式·mapreduce
王小王-1236 天前
基于 Hadoop 的二手房数据分析与可视化平台项目展示
大数据·hadoop·数据分析·大数据房价分析·二手房价格预测·hive房价数据分析
知识分享小能手6 天前
Hadoop学习教程,从入门到精通, HBase 分布式数据库 — 完整知识点与案例代码(8)
数据库·hadoop·分布式