hive存储格式

格式类型

Hive支持的存储数据的格式主要有:TEXTFILE 文本格式文件(行式存储)、 SEQUENCEFILE 二进制序列化文件(行式存储)、ORC(列式存储)、PARQUET(列式存储)等。
hive的存储格式通常是:textfile 、 sequencefile 、 rcfile 、 orc 、自定义 set hive.default.fileformat=TextFile; 默认存储格式为:textfile textFile:普通文本存储,不进行压缩。查询效率较低。

  • 大多数的Hadoop和hive存储是行式储存
  • 行存储的缺点也是显而易见的,它不能支持快速查询处理,
    因为当查询仅仅针对多列表中的少数几列时,它不能跳过不必要的列读取;此外由于混合着不同数据值的列,
    行存储不易获得极高的压缩比,即空间利用率不易大幅提高。尽管通过熵编码和利用列相关性能够获得一个较好的压缩比,
    但是复杂数据存储实现会导致解压开销增大。

各个格式类型的特点

  • Hive 中的常用文件存储格式 Parquet
    是一个面向列的二进制文件格式,所以是不可以直接读取的,文件中包括该文件的数据和元数据,因此Parquet格式文件是自解析的。Parquet对于大型查询的类型是高效的。对于扫描特定表格中的特定列的查询,Parquet特别有用。Parquet一般使用Snappy、Gzip压缩,默认是Snappy。
建表语句是:sorted as Parquet
  • textfile
建表语句是:stored as textfile

textfile,即是文本格式,默认格式,数据不做压缩,磁盘开销大,数据解析开销大

  • ORCFILE**
建表语句是:sorted as orc

存储方式:数据按行分块,每块按照列存储。
压缩快,快速列存取。效率比rcfile高,是rcfile的改良版本。

  • rcfile
建表语句是:sorted as rcfile

是一种行列存储相结合的存储方式,先将数据按行分块再按列式存储,保证同一条记录在一个块上,避免读取多个块,
有利于数据压缩和快速进行列存储。

总结

  • textfile 存储空间消耗比较大,并且压缩的text 无法分割和合并 查询的效率最低,可以直接存储,加载数据的速度最高

  • sequencefile 存储空间消耗最大,压缩的文件可以分割和合并 查询效率高,需要通过text文件转化来加载

建表语句是:sorted as sequencefile
  • orcfile, rcfile存储空间最小,查询的效率最高 ,需要通过text文件转化来加载,加载的速度最低.

  • orcfile, rcfile较有优势,orcfile,rcfile具备相当于行存储的数据加载和负载适应能力,扫描表时避免不必要的列读取,
    拥有比其他结构更好的性能,而使用列维度的压缩,能有效提升存储空间利用率。
    但orcfile, rcfile数据加载是性能损失较大,但由于hdfs一次写入多次读写,所以损失可以接受。

  • SequenceFile,ORCFile(ORC),rcfile格式的表不能直接从本地文件导入数据,数据要先导入到textfile格式的表中,
    然后再从textfile表中导入到SequenceFile,ORCFile(ORC),rcfile表中。

原文章地址:https://www.gxlcms.com/mysql-307720.html
https://www.modb.pro/db/174806

posted on   唯一的Dove  阅读(2169)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示