hive 存儲格式對比

hive 存儲格式對比

Apache Hive支持Apache Hadoop中使用的幾種熟悉的文件格式,如TextFile,RCFile,SequenceFile,AVRO,ORC和Parquet格式。
Cloudera Impala也支持這些文件格式。 在建表時使用STORED AS (TextFile|RCFile|SequenceFile|AVRO|ORC|Parquet)來指定存儲格式。

TextFile每一行都是一條記錄,每行都以換行符(\ n)結尾。數據不做壓縮,磁盤開銷大,數據解析開銷大。可結合Gzip、Bzip2使用(系統自動檢查,執行查詢時自動解壓),但使用這種方式,hive不會對數據進行切分,從而無法對數據進行並行操作。

SequenceFile是Hadoop API提供的一種二進制文件支持,其具有使用方便、可分割、可壓縮的特點。支持三種壓縮選擇:NONE, RECORD, BLOCK。 Record壓縮率低,一般建議使用BLOCK壓縮。

RCFile是一種行列存儲相結合的存儲方式。首先,其將數據按行分塊,保證同一個record在一個塊上,避免讀一個記錄需要讀取多個block。其次,塊數據列式存儲,有利於數據壓縮和快速的列存取。

AVRO是開源項目,爲Hadoop提供數據序列化和數據交換服務。您可以在Hadoop生態系統和以任何編程語言編寫的程序之間交換數據。Avro是基於大數據Hadoop的應用程序中流行的文件格式之一。

ORC文件代表了優化排柱狀的文件格式。ORC文件格式提供了一種將數據存儲在Hive表中的高效方法。這個文件系統實際上是爲了克服其他Hive文件格式的限制而設計的。Hive從大型表讀取,寫入和處理數據時,使用ORC文件可以提高性能。
Parquet是一個面向列的二進制文件格式。Parquet對於大型查詢的類型是高效的。對於掃描特定表格中的特定列的查詢,Parquet特別有用。Parquet桌子使用壓縮Snappy,gzip;目前Snappy默認。
存儲格式對比
parques和orc對比
各存儲格式對應文件大小
總結:如果僅僅是在HIve中存儲和查詢,建議使用ORC格式,如果在Hive中存儲,而使用Impala查詢,建議使用Parquet

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章