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

[数据存储] 浅析 Hive 数据存储格式

0 序言

  • 续接[数据存储] 浅谈大数据领域的数据存储格式:ORC / Avro / Parquet / Arrow- 博客园/千千寰宇,展开回顾一下 Hive 的数据存储格式。

1 概述: Hive

  • Hive支持多种存储格式,选择合适的存储格式对于提升查询性能和存储效率至关重要。
  • 常见的Hive存储格式包括TextFile、SequenceFile、RCFile、ORCFile和Parquet。
  • 这些格式中,TextFile是默认的存储格式,而SequenceFile、RCFile、ORCFile和Parquet则提供了更高效的数据压缩和查询性能。

TextFile存储格式

  • TextFile是Hive的默认存储格式,它将数据以纯文本形式存储,不进行任何压缩处理。

  • 创建TextFile格式的Hive表时,可以直接使用LOAD DATA语句将数据加载到表中,这是因为TextFile不涉及数据压缩,因此加载速度快。

  • 但是,TextFile格式的缺点是磁盘占用较大,且在查询时需要逐个字符判断分隔符,导致查询效率不高。

SequenceFile存储格式

  • SequenceFile是Hadoop提供的一种二进制文件格式,支持数据的可分割和压缩。
  • 它以键值对的形式存储数据,可以选择记录压缩或块压缩。
  • SequenceFile格式的表不能直接从本地文件加载数据,需要先将数据导入到TextFile格式的表中,然后使用INSERT语句导入到SequenceFile格式的表中。

RCFile存储格式

  • RCFile(Row Columnar File)是一种行列混合存储的文件格式,它先将数据按行分组,然后在每个行组内部进行列式存储。
  • RCFile格式的表在查询时可以避免读取不必要的列,且同列数据类型一致,有利于数据压缩。
  • 但是,RCFile在重建行数据时可能会有较大的开销,尤其是当数据分布在不同的HDFS块上时。

ORCFile存储格式

  • ORCFile(Optimized Row Columnar File)是对RCFile的优化,提供了更高效的压缩和查询性能。
  • ORCFile在每个文件中提供了多级索引,可以快速定位查询数据,减少不必要的磁盘和网络I/O。
  • ORCFile支持ACID事务,允许对Hive表的单个记录进行修改。
  • 创建支持ACID事务的ORCFile格式的Hive表时,需要将表设置为分桶表,并在表属性中添加'transactional'='true'

Parquet存储格式

  • Parquet是另一种高性能的列式存储格式,它将数据分成多个行组,每个行组内部再分成若干页。
  • Parquet文件中包含了丰富的元数据信息,有助于提升数据读取效率。
  • Parquet在嵌套式结构支持上表现更佳,而ORC在多层级嵌套表达上可能会有性能损失。

存储格式的选择

  • 在选择Hive存储格式时,需要考虑数据的压缩比、查询速度和HDFS上的文件名。

    • ORCFile通常提供最高的压缩比,而Parquet和ORCFile在查询速度上相近。
    • 如果表中的数据需要压缩,可以选择SequenceFile、RCFile、ORCFile或Parquet格式。
    • 对于大数据量的场景,选择支持切分的压缩格式如Parquet的Lzo压缩会更加合适。
  • 在实际应用中,可以根据数据的特点和查询需求选择最合适的存储格式。

例如,对于需要频繁查询某几列数据的场景,列式存储格式如ORCFile或Parquet可能更优。

  • 而对于需要经常全表扫描的场景,行式存储格式如TextFile可能更合适。
  • 此外,还可以根据存储和查询的性能需求,对Hive表进行相应的配置优化,如设置压缩类型和大小、调整内存缓冲池大小等1。

Y 推荐文献

  • [数据存储] 浅谈大数据领域的数据存储格式:ORC / Avro / Parquet / Arrow- 博客园/千千寰宇

X 参考文献

http://www.gsyq.cn/news/58622.html

相关文章:

  • TypedSql:在 C# 类型系统上实现一个 SQL 查询引擎
  • KEYDIY MLB26 434 Mhz 3-Button Universal Smart Remote PCB Board - Non-OEM Solution
  • 102302133陈佳昕作业3
  • AI协助 一周打造「七巧板益智小游戏」:从零高效开发教学工具
  • VB6版MP3文件信息编辑器 - 开源研究系列文章 - 个人小作品
  • 手把手教你用 React + Zustand 打造 Windows 风格可拖拽,缩放,多窗口 Modal 组件
  • OI 笑传 #34
  • 第34天(简单题中等题 数据结构)
  • 2025.11.23总结
  • 字符串常见操作
  • 广州比较好的留学机构
  • 配置文件路径
  • AtCoder Beginner Contest 433 题解
  • 使用 Lua 语言识别英文数字验证码
  • 北京留学机构排行榜
  • 用 Kotlin 实现简单的文本处理程序
  • 北京出国留学的机构哪家好
  • 北京出国留学的机构哪个好
  • Upgrade Your Universal Audi-Style 3-Button Smart Key with KEYDIY MLB08 434MHz Non-OEM PCB
  • KEYDIY PAK09 Phone As Key: Smart Keyless Entry Remote Control for European/American Vehicles
  • 鸡哥防守关云长
  • 2025年数字人厂商最新推荐榜:AI数字人、IP、虚拟、数字人视频制作、数字人制作、数字人直播、数字人电商、自媒体、智能数字人
  • 2025年数字人全链路智能创作平台完全指南
  • 每日反思(2025年11月23日)
  • LiveCD
  • Java环境下HBase存储方案如何设计
  • 深入理解 Dart 中的 const 与 final:编译时常量与运行时常量
  • python: 缩放图片
  • 湖南工程学院 学科实践与创新协会电气部 幕后揭示
  • 20232309 2025-2026-1 《网络与系统攻防技术》实验六实验报告