Hive文件格式(表stored as 的五种类型)
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文件。