ORC与PARQUET的区别

ORC与Parquet均为列式存储结构,那么他们有什么不同呢?

Apache Parquet
源自google Dremel 系统,Parquet 相当一Dremel中的数据存储引擎,而Apache顶级开源醒目 Drill正式Dremel的开源实现.
Apache Parquet 最初的设计动机是存储嵌套式数据,比如Protocolbuffer thrift json 等 将这类数据存储成列式格式以方便对其高效压缩和编码,
且使用更少的IO操作取出需要的数据,也是Parquet 相比于ORC的优势,它能透明的将protobuf 和thrift被广泛的使用的今天,于parquet 进行集成,是一件非常容易和自然地事情,
除了上述优势外,相比于ORC, Parquet 没有太多其他可圈可点的地方,比如他不支持uodate操作(数据写成后不可修改),不支持ACID等.

Apache ORC
ORC(optimizedRC File) 存储源自RC(RecordCloimnar File)这种存储格式,RC是一种列式存储引擎,对schema演化(修改schema需要重新生成数据)支持较差,主要是在压缩编码,查询性能方面做了优化.
RC/ORC最初是在Hive中得到使用,最后发展势头不错,独立成一个单独的项目.Hive1.xbanbendu版本对事物和update操作的支持,便是给予ORC实现的(其他存储格式暂不支持).
OCR发展到今天,已经具备一些非常高级的feature,比如支持update操作,支持ACID,支持struct,array复杂类型.你可以使用复杂类型构建一个类似parquet的嵌套式数据架构,但层数非常多时,写起来非常麻烦和复杂,而parquet提供的schema表达方式更容易表示出多级嵌套的数据类型.

 

一、ORC与Parquet总结对比
1、orc不支持嵌套结构(但可通过复杂数据类型如map<k,v>间接实现),parquet支持嵌套结构
2、orc与hive的兼容性强,作为hive的常用存储格式
3、orc相比parquet的存储压缩率较高,如下图
4、orc导入数据和数据查询的的速度比parquet快

image

 

 

在这里插入图片描述

 

上面的测试结果仅供参考,从上面也可以说明orc作为hive存储格式的普适性,无论从存储还是查询效率,orc均占有优势。

参考:

https://developer.aliyun.com/article/226990

 

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值