hive文件存儲格式包括以下幾類:
1、TEXTFILE
2、SEQUENCEFILE
3、RCFILE
4、ORCFILE(0.11以后出現)
5、PARQUET
1、其中TEXTFILE為默認格式,建表時不指定默認為這個格式,導入數據時會直接把數據文件拷貝到hdfs上不進行處理;
SEQUENCEFILE,RCFILE,ORCFILE,PARQUET格式的表不能直接從本地文件導入數據,數據要先導入到textfile格式的表中, 然后再從表中用insert導入SequenceFile,RCFile,ORCFile,PARQUET表中;或者用復制表結構及數據的方式(create table as select * from table )。
textfile
默認格式;
存儲方式為行存儲;
磁盤開銷大 數據解析開銷大;
但使用這種方式,hive不會對數據進行切分,從而無法對數據進行並行操作。
2、sequencefile
二進制文件,以<key,value>的形式序列化到文件中;
存儲方式:行存儲;
可分割 壓縮;
一般選擇block壓縮;
優勢是文件和Hadoop api中的mapfile是相互兼容的
3、refile
存儲方式:數據按行分塊 每塊按照列存儲;
壓縮快 快速列存取;
讀記錄盡量涉及到的block最少;
讀取需要的列只需要讀取每個row group 的頭部定義;
讀取全量數據的操作 性能可能比sequencefile沒有明顯的優勢,
4、orcfile
存儲方式:數據按行分塊 每塊按照列存儲;
壓縮快 快速列存取;
效率比rcfile高,是rcfile的改良版本。
5、parquet
類似於orc,相對於orc文件格式,hadoop生態系統中大部分工程都支持parquet文件。
轉自:https://blog.csdn.net/weixin_43599377/article/details/106457294?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101.3001.4242