目前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/