HIVE存储格式详解

目前hive常用的存储格式

STORED AS (TextFile|RCFile|SequenceFile|AVRO|ORC|Parquet)

TEXTFILE, SEQUENCEFILE, RCFILE, ORC, PARQUET, AVRO

下面是他们的详细对比:

格式 存储方式 压缩方式 具体特点
TEXTFILE 按行存储 Gzip,Bzip2  存储空间消耗比较大,并且压缩的text 无法分割和合并 查询的效率最低,可以直接存储,加载数据的速度最高
SEQUENCEFILE 按行存储 NONE,RECORD,BLOCK。Record压缩率低,一般建议使用BLOCK压缩 存储空间消耗最大,压缩的文件可以分割和合并 查询效率高,需要通过text文件转化来加载
RCFILE 按列存储  
存储空间最小,
查询的效率最高 ,
需要通过text文件转化来加载,
加载的速度最低。
压缩快 快速列存取。
读记录尽量涉及到的block最少 
读取需要的列只需要读取每个row group 的头部定义。 
读取全量数据的操作 性能可能比sequencefile没有明显的优势
ORC 按列存储 zlib(default),snappy 压缩快,快速列存取 ,效率比rcfile高,是rcfile的改良版本
PARQUET 按列存储   相对于PRC,Parquet压缩比较低,查询效率较低,不支持update、insert和ACID.但是Parquet支持Impala查询引擎
AVRO 按行存储    

参考资料:

https://zh.hortonworks.com/blog/orcfile-in-hdp-2-better-compression-better-performance/

https://www.cnblogs.com/skyl/p/4740301.html

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+ORC

 http://dwgeek.com/hive-different-file-formats-text-sequence-rc-avro-orc-parquet-file.html/

posted @ 2018-11-18 17:01  代号菜鸟  阅读(2309)  评论(0编辑  收藏  举报