Hive学习(四):Hive文件存储结构

Hive学习(四):Hive文件存储结构,第1张

Hive学习(四):Hive文件存储结构

上一篇:Hive学习(三):Hive数据类型

文件结构

Hive支持多种文件的存储结构,以对应不同的场景,Hive通过在创建表时的sorted as来指定文件结构。

基础知识

对于一张表数据的存储

idnamesex1张三男2李四女 行式存储

以一行数据为单位进行连续存储,表现为:

优势:插入新纪录时,直接在数据尾部添加即可,效率高劣势:如果在查询时只需要name,也需要加载整行数据,消耗大

列式存储

以一列数据为单位进行连续存储,表现为:

优势:查询只需要name时,只需要读出连续的name数据即可,效率高劣势:插入新记录时,需要到每一个列单元后插入新的列数据

类型 TextFile

文本文件,为默认设置,行式存储。不做压缩。可结合压缩软件使用,如Bzip2,查询时Hive自动对其进行解压。磁盘开销大,数据解析开销大。

SequenceFile

二进制序列化文件,行式存储。使用方便,可分割,可压缩,有none, record, block三种压缩方式的选择

none:不压缩record:每条记录到文件时都压缩block:文件大小达到要压缩的块大小时压缩,压缩率更高 RCFile

行列式存储,先按行分为行组,每个组里列式储存,相同的数据不会重复存储

相对于单纯的行存储,能够只读取符合条件的几个行组。

相对于单纯的列存储,如果列数据不在同一个hdfs块上,会进行列重组,而RCFile的列一定在同一个块上,减少了列重组的开销。

ORCFile

Hive推出的优化版RCFile,更高效,它的设计是为了克服其他Hive文件格式的限制。使用ORC文件可以提高Hive读写和处理数据时的性能。

 从结构上能看到,ORC在RC的行组基础上,在加上了Index Data和Stripe Footer形成了一个Stripe

Index Data:每列的最小值和最大值以及每列中的行位置。行索引项提供偏移量,用于在解压缩块中寻找正确的压缩块和字节Stripe Footer:存了行数和每个列的数据类型。它还包含列级聚合计数、最小值、最大值和总和File Footer:包含文件中Stripe的列表、每个Stripe的行数和每个列的数据类型。它还包含列级聚合计数、最小值、最大值和总和。 Parquet

列式存储,擅长处理深度嵌套数据,二进制文件,支持非常高效的压缩和编码方案。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5706204.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存