Parquet 和ORC 是两种比较应用比较多的列式存储格式,列式存储不同于传统关系型数据库中行式存储的模式,这种主要的差别可能由于联机事务处理(OLTP)和联机分析处理(OLAP)的需求场景不同所造成的。在OLTP 场景多是需要存储系统能满足快速的CRUD,这种操作对象都是以行为单位的。而在OLAP 场景下,主要的特征是数据量巨大,而对实时性的要求并不高。而列式存储正式满足了这一需求特征。因为当数据以列的方式存储,在查询的时候引擎所读取的数据量将会更小,而且同一列的数据往往内容类似,更加便于进行数据压缩,但列式存储不适于更新和删除频繁的场景。
Parquet 和Orc 同为列式存储,但他们的存储格式并不相同,这种差异造成了两者在存储不同类型的数据时所出现的性能差异,从网上的一些文章看,Orc 的性能要比Parquet 好一点, 但是Impala 是不支持Orc 的, 并且诸如Delta Lake这种数据湖产品,也是基于Parquet 去做的。所以在选择采用哪种列式存储格式时,还是要根据自身的业务特点来决定。
以上内容摘自《高德技术2020年刊合集》电子书,点击https://developer.aliyun.com/topic/download?id=1135可下载完成版
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。