首页  

列式存储引擎Parquet和ORC比较     所属分类 bigdata 浏览量 1307
列式存储引擎具有更高的压缩比,更少的IO操作
尤其是在数据列很多,但每次操作仅针对若干列的场景
宽表

Parquet  ORC

Parquet 
源于google Dremel系统
相当于Google Dremel中的数据存储引擎,Apache Drill 是Dremel的开源实现
最初设计用来存储嵌套式数据,比如Protocolbuffer,thrift,json等,将这类数据存储成列式格式,以方便对其高效压缩和编码
不支持update操作 ,不支持ACID等

ORC
OptimizedRC File   源于RC(RecordColumnar File)
有限的schema演化支持
主要在压缩编码,查询性能方面做了优化。
RC/ORC最初在Hive中使用
Hive 1.x版本对事务和update操作的支持,便是基于ORC实现的
支持update操作,支持ACID,支持struct,array复杂类型


parquet提供的schema表达方式更容易表示出多级嵌套的数据类型

parquet vs ORC

列编码 | 支持多种编码 字典 RLE delta   | 支持主流编码 与 parquet类似
嵌套结构支持  | 完美支持 | 多层嵌套表示复杂,未使用 Google dremel 类似实现 ,性能空间损失较大
ACID |  不支持 | 支持
UPDATE操作  |  不支持 | 支持 
索引支持 | 粗粒度索引 block/group/chunk 级别统计信息 | 粗粒度索引 file/stripe/row 级别统计信息  ,不能精确到列索引
查询性能   OCR 稍高
压缩能力   OCR 更好
支持的SQL引擎  |  drill/impala |  hive

压缩效果
TXT       585G
RCFile    505G
parquet   221G
ORCFile   131G

 hive四种存储格式 

上一篇     下一篇
H2 MVStore

H2 MVStore Log Structured Storage

H2 limits

parquet基本原理

H2数据库使用

ORC文件格式