hive存儲的文件格式對比


 

Hive的文件存儲格式包括:textfile, sequencefile, rcfile, orc, parquet

 

textfile

 

  默認的文件格式,行存儲。建表時不指定存儲格式即為textfile,導入數據時把數據文件拷貝至hdfs不進行處理。

 

優點:最簡單的數據格式,便於和其他工具(Pig, grep, sed, awk)共享數據,便於查看和編輯;加載較快。

 

缺點:耗費存儲空間,I/O性能較低;Hive不進行數據切分合並,不能進行並行操作,查詢效率低。

 

適用於小型查詢,查看具體數據內容的測試操作。

 

sequencefile

 

  含有鍵值對的二進制文件,行存儲。

 

優點:可壓縮、可分割,優化磁盤利用率和I/O;可並行操作數據,查詢效率高;

 

缺點:存儲空間消耗最大;對於Hadoop生態系統之外的工具不適用,需要通過text文件轉化加載。

 

適用於數據量較小、大部分列的查詢。

 

rcfile

  行列式存儲。先將數據按行分塊,同一個record在一個塊上,避免讀一條記錄需要讀多個block;然后塊數據列式存儲。

優點:可壓縮,高效的列存取;查詢效率較高。

缺點:加載時性能消耗較大,需要通過text文件轉化加載;讀取全量數據性能低。

 

orc

  優化后的rcfile,行列式存儲。

優缺點與rcfile類似,查詢效率最高。

適用於Hive中大型的存儲、查詢。

 

parquet

  列存儲。

優點:更高效的壓縮和編碼;不與任何數據處理技術綁定,可用於多種數據處理框架(Hive, Impala, Presto查詢引擎;MapReduce, Spark計算框架;Avro, Thrift, PB數據模型 )。

缺點:不支持update, insert, delete, ACID

適用於字段數非常多,無更新,只取部分列的查詢。

 

 

表的字段個數不多時,文件按塊進行壓縮,行存儲對於處理重復數據時比較高效;

表的字段個數成百上千時,而只需查詢其中的較少字段時,列存儲可較大提高效率。

數據倉庫一次寫入,多次讀寫,orc格式的優勢較明顯。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM