列存储ORC及与Parquet比较

一、关于ORC

Apache ORC(Optimized Row Columnar,优化行列)是Apache Hadoop生态系统的一种免费、开源、面向列的数据存储格式。类似于Hadoop生态系统中可用的其他列存储文件格式,例如RCFile和Parquet。它与Hadoop环境中的大多数数据处理框架兼容。2013年2月,Hortonworks与Facebook合作宣布了“优化行列”(ORC)文件格式。一个月后,Cloudera和Twitter开发了Apache Parquet格式。

二、ORC

最小:

最快:ORC较其他文件格式压缩比高,查询任务的输入数据量减少,使用的Task相应减少,所以快。

它并不是一个单纯的列式存储格式,仍然是首先根据行组分割整个表,在每一个行组内进行按列存储。ORC文件是自描述的,它的元数据使用Protocol Buffers序列化,并且文件中的数据尽可能的压缩以降低存储空间的消耗,目前也被Spark SQL、Presto等查询引擎支持,但是Impala对于ORC目前没有支持,仍然使用Parquet作为主要的列式存储格式。

优势:

  1. ORC是列式存储,有多种文件压缩方式,并且有着很高的压缩比。
  2. 文件是可切分(Split)的。因此,在Hive中使用ORC作为表的文件存储格式,不仅节省HDFS存储资源,查询任务的输入数据量减少,使用的MapTask也就减少了。
  3. 提供了多种索引,row group index、bloom filter index。
  4. ORC可以支持复杂的数据结构(比如Map等)

和Parquet不同,ORC原生是不支持嵌套数据格式的

降低Hadoop数据存储空间和加速Hive查询速度,并不是一个单纯的列式存储格式,仍然是首先根据行组分割整个表,在每一个行组内进行按列存储。

ORC中的数据以列的形式存储,首先,这会影响大小。为了确保流式读取的速度,将文件分为所谓的“条带”,每个条带都是自给自足的,即 可以分别读取(因此可以并行读取)。由于存在条带,文件大小将增加(非唯一列值将被存储几次-在找到此类值的那些条带中)-相同的``速度大小''平衡(又称折衷)。

ORC文件结构

ORC中使用了更加精确的索引信息,使得在读取数据时可以指定从任意一行开始读取,更细粒度的统计信息使得读取ORC文件跳过整个row group,ORC默认会对任何一块数据和索引信息使用ZLIB压缩,因此ORC文件占用的存储空间也更小

三、Parquet与ORC对比

Parquet文件是以二进制方式存储的,是不可以直接读取和修改的,Parquet文件是自解析的,文件中包括该文件的数据和元数据。

Parquet的schema

Parquet的schema结构

通常情况下,在存储Parquet数据的时候会按照HDFS的Block大小设置行组的大小,由于一般情况下每一个Mapper任务处理数据的最小单位是一个Block,这样可以把每一个行组由一个Mapper任务处理,增大任务执行并行度。Parquet文件的格式如下图所示。

Parquet文件结构

Parquet文件结构

大数据文件格式:Apache Parquet,Orc,RCFile

Apache Parquet,ORC和RCFile格式存储大数据文件的磁盘空间对比

大数据文件格式:Apache Parquet,ORC

大数据文件格式比较:Apache Parquet和ORC

Parquet设计动机是为了存储嵌套数据,可以将 ProtoBuf、Thrift、Avro 等格式的数据转换为列格式来存储,这是其最大的优势。此外,也有基本的功能,数据压缩、基本的索引功能、支持复杂类型等。也就是说:Parquet对于嵌套数据结构的支持比ORC强。

ORC是自描述的列存储,主要是在 Hive 中使用,支持数据压缩、索引功能、update 操作、ACID 操作、支持复杂类型等,其查询性能相对 Parquet 略有优势。

链接:

大数据:Hive - ORC 文件存储格式:https://www.cnblogs.com/ittangtang/p/7677912.html

ORC原理及查询优化:https://www.jianshu.com/p/0ba4f5c3f113

Parquet与ORC:高性能列式存储格式:https://blog.csdn.net/yu616568/article/details/51868447

Scala+Spark教程:RC ORC Parquet 格式比较和性能测试:http://www.bigdatastudy.net/show.aspx?id=571&cid=9

更高的压缩比,更好的性能–使用ORC文件格式优化Hive:http://lxw1234.com/archives/2016/04/630.htm

比较Hadoop中的存储格式:从ORC开始:https://habr.com/ru/company/alfastrah/blog/458552/

Apache Parquet 与Apache ORC简介:https://blog.csdn.net/kwame211/article/details/86702922

https://www.bigdataschool.ru/wiki/parquet

https://www.bigdataschool.ru/wiki/orc

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值