列式存储引擎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文件格式