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

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

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

相关推荐
梦里不知身是客1118 小时前
hive中metastore 服务的意义
数据仓库·hive·hadoop
计算机毕业编程指导师19 小时前
【Python大数据选题】基于Spark+Django的电影评分人气数据可视化分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·计算机·spark·django·电影评分人气
梦里不知身是客1119 小时前
hiveserver2服务的作用和启动
hive
梦里不知身是客1121 小时前
hive让分区关联数据的三种方式
数据仓库·hive·hadoop
咨询QQ8762239651 天前
从 Lumerical 和 COMSOL 中提取光栅反射相位
hive
jumu2022 天前
三菱FX5U与3台三菱E700变频器通讯实战
数据仓库
写代码的【黑咖啡】2 天前
数据仓库中保障数据质量的关键环节:任务发布后数据校验
数据仓库
m0_740043732 天前
Spring_全面详解入门
数据仓库·hive·hadoop
皓空揽月2 天前
windows安装hadoop2.7.2教程(单机版)
hadoop·windows
淡定一生23332 天前
数据仓库基本概念
大数据·数据仓库·spark