文件格式对比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压缩格式对比
名 | GZip | BZip2 | LZO | Snappy |
HadoopCodec类 | GzipCodec | Bzip2Codec | LzopCodec | SnappyCodec |
算法 | Deflate | GZip2 | LZO | Snappy |
文件扩展名 | .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库