Hive文件存儲格式的測試比較 api
http://yugouai.iteye.com/blog/1851606oop
1.textfile
textfile爲默認格式
存儲方式:行存儲
磁盤開銷大 數據解析開銷大
壓縮的text文件 hive沒法進行合併和拆分性能
2.sequencefile
二進制文件,以<key,value>的形式序列化到文件中
存儲方式:行存儲
可分割 壓縮
通常選擇block壓縮
優點是文件和hadoop api中的mapfile是相互兼容的。測試
3.rcfile
存儲方式:數據按行分塊 每塊按照列存儲
壓縮快 快速列存取
讀記錄儘可能涉及到的block最少
讀取須要的列只須要讀取每一個row group 的頭部定義。
讀取全量數據的操做 性能可能比sequencefile沒有明顯的優點spa
4.orcorm
存儲方式:數據按行分塊 每塊按照列存儲blog
壓縮快 快速列存取hadoop
效率比rcfile高,是rcfile的改良版本input
5.自定義格式
用戶能夠經過實現inputformat和 outputformat來自定義輸入輸出格式。it
總結:
textfile 存儲空間消耗比較大,而且壓縮的text 沒法分割和合並 查詢的效率最低,能夠直接存儲,加載數據的速度最高
sequencefile 存儲空間消耗最大,壓縮的文件能夠分割和合並 查詢效率高,須要經過text文件轉化來加載
rcfile 存儲空間最小,查詢的效率最高 ,須要經過text文件轉化來加載,加載的速度最低
我的建議:text,seqfile能不用就儘可能不要用 最好是選擇orc