文件格式对比ORC-Parquet,存储格式对比Gzip-Bzip2-Snappy

Posted 榛西

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件格式对比ORC-Parquet,存储格式对比Gzip-Bzip2-Snappy相关的知识,希望对你有一定的参考价值。

Parquet和ORC对比

1.存储文件的压缩比总结:ORC >  Parquet 

2.存储文件的查询速度总结:查询速度相近,ORC好一点点

3.可兼容的平台:ORC常用于Hive、Presto;
                            Parquet常用于Impala、Drill、Spark、Arrow;
                            Avro常用于Kafka、Druid

             impala和spark现在很流行所以parquet存储格式流行

4.orc支持事务表分桶update操作,parquet完全不支持

5.处理深层次文件  parquet设计之初就是为了处理嵌套式数据如json。除此之外没有比ORC好太多的地方

Gzip-Bzip2-Snappy压缩格式对比

GZipBZip2LZOSnappy
HadoopCodec类GzipCodecBzip2CodecLzopCodecSnappyCodec
算法DeflateGZip2LZOSnappy
文件扩展名.gz.bz2.lzo.snappy
Hadoop内嵌
可切片
压缩比(测试值)2 (13.4%)1 (13.2%)3 (20.5%)4 (22.2%)
压缩速率3 (21MB/S)4 (2.4MB/S)2 (135MB/S)1 (172MB/S)
解压速率3 (118MB/s)4 (9.5MB/s)1 (410MB/s)2 (409MB/S)
特点GZip压缩比高,大部分Linux系统自带Gzip命令,Hadoop原生就支持使用很方便;速度较慢,而且不支持切片BZip2压缩比最高,但速度实在太慢了压缩比尚可,速度快,支持切片(需要建立索引,且文件修改后要重建索引,还需将 InputFormat 指定为Lzo)。支持hadoop native库,但不是Hadoop自带,需要自己安装。压缩比最低,但速度最快,但不支持切片。支持hadoop native库,但不是Hadoop自带,需要自己安装。需要注意的是,实际生产环境中Snappy的表现通常比 LZO 好,应当进行测试对比再决定。
使用场景如果压缩后大小和Block差不多大可以使用。也适合磁盘不富裕要求压缩比且对压缩时间无特别要求的场景,如异步离线压缩归档,比如HBase写入后的刷盘

适合很老的、极低频使用的历史文件(冷数据)归档

Bzip2压缩解压的速度都非常慢,现在使用愈来愈少

特点是支持切片

实时写入的Hive底层HDFS文件可用LZO方式压缩

Snappy解压速度最快,对解压速度要求高的场景使用比较多,Hadoop平台上使用最广泛

以上是关于文件格式对比ORC-Parquet,存储格式对比Gzip-Bzip2-Snappy的主要内容,如果未能解决你的问题,请参考以下文章

Python Dataframe之excelcsvpicklefeatherparquetjayhdf5 文件存储格式==》存读效率对比

Python Dataframe之excelcsvpicklefeatherparquetjayhdf5 文件存储格式==》存读效率对比

Hadoop支持的压缩格式对比和应用场景以及Hadoop native库

稀疏矩阵存储格式总结+存储效率对比:COO,CSR,DIA,ELL,HYB

MySQL引擎各个引擎对比介绍

原创Nokia LTE xml 格式数据对比工具