当前位置: 首页 > news >正文

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

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

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

http://www.lryc.cn/news/528974.html

相关文章:

  • 升级到Mac15.1后pod install报错
  • 智慧园区管理系统为企业提供高效运作与风险控制的智能化解决方案
  • JxBrowser 8.2.2 版本发布啦!
  • LangChain的开发流程
  • AI在自动化测试中的伦理挑战
  • 《Origin画百图》之同心环图
  • TPA注意力机制详解及代码复现
  • 深入理解Java并发编程中的原子操作、volatile关键字与读写锁
  • HTML(快速入门)
  • SpringBoot Web开发(SpringMVC)
  • 汽车蓝牙钥匙定位仿真小程序
  • K8S中高级存储之PV和PVC
  • 【C语言进阶】- 动态内存管理
  • Python实现基于TD3(Twin Delayed Deep Deterministic Policy Gradient)算法来实时更新路径规划算法
  • pytorch实现半监督学习
  • 我的毕设之路:(2)系统类型的论文写法
  • LosslessScaling-学习版[steam价值30元的游戏无损放大/补帧工具]
  • concurrent.futures.Future对象详解:利用线程池与进程池实现异步操作
  • StarRocks 安装部署
  • Python Matplotlib库:从入门到精通
  • 线程概念、操作
  • 【PySide6拓展】QSoundEffect
  • 33【脚本解析语言】
  • 【Unity】 HTFramework框架(五十九)快速开发编辑器工具(Assembly Viewer + ILSpy)
  • 如何解决TikTok网络不稳定的问题
  • 告别页面刷新!如何使用AJAX和FormData优化Web表单提交
  • WireShark4.4.2浏览器网络调试指南:数据统计(八)
  • Hypium+python鸿蒙原生自动化安装配置
  • 2025创业思路和方向有哪些?
  • 实验五---控制系统的稳定性分析---自动控制原理实验课