Hive 的 ORCParquet 等列式存储的优点

Posted 闭关苦炼内功

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hive 的 ORCParquet 等列式存储的优点相关的知识,希望对你有一定的参考价值。

ORC:

ORC 文件是自描述的,它的元数据使用 Protocol Buffers 序列化,文件中的数据尽可能的压缩以降低存储空间的消耗;以二进制方式存储,不可以直接读取;自解析,包含许多元数据,这些元数据都是同构 ProtoBuffer 进行序列化的;会尽可能合并多个离散的区间尽可能的减少 I/O次数;在新版本的 ORC 中也加入了对 Bloom Filter 的支持,它可以进一 步提升谓词下推的效率,在 Hive 1.2.0 版本以后也加入了对此的支 持。

Parquet:

Parquet 支持嵌套的数据模型,类似于 Protocol Buffers,每一个数据模型的 schema 包含多个字段,每一个字段有三个属性:重复次数、数据类型和字段名;Parquet 中没有 Map、Array 这样的复杂数据结构,但是可以通过 repeated 和 group 组合来实现;通过 Striping/Assembly 算法,parquet 可以使用较少的存储空间表示复杂的嵌套格式,并且通常 Repetition level 和 Definition level 都是较小的整数值,可以通过 RLE 算法对其进行压缩,进一步降低存储空间;Parquet 文件以二进制方式存储,不可以直接读取和修改,Parquet 文件是自解析的,文件中包括该文件的数据和元数据

以上是关于Hive 的 ORCParquet 等列式存储的优点的主要内容,如果未能解决你的问题,请参考以下文章

[Hive]-列式存储篇

SparkSQL并发写入orcparquet表的异常问题排查

彻底理解大数据的列式存储

彻底理解大数据的列式存储

hive储存与压缩

hive储存与压缩