任务2 掌握Hive数据存储模型
1.2.1 Hive存储格式
Hive中的数据分为真实数据与元数据,一 般来说Hive的存储格式是指真实数据的存储格式。Hive常用的存储格式包括以下4种: TEXTFILE、 SEQUENCEFILE、RCFILE 和ORCFILE。
1. TEXTFILE(文本文件格式)
常见的txt、csv、tsv等文件都属于TEXTFILE。Hive默认存储格式为TEXTFILE。内容为普通的文本格式,一般可以使用cat命令直接查看。TEXTFILE数据文件无需处理即可导入Hive。
2.SEQUENCEFILE
SEQUENCEFILE是Hadoop提供的一种由“二进制序列化过的Key/Value字节流组成的文本存储文件格式。其由于内容为二进制字节,所以无法通过cat命令查看原始字符,这可以抽象地理解为,在SEQUENCEFILE中每条记录均以键值对的方式进行存储,仅支持追加。与TEXTFILE类似,SEQUENCEFILE同样按行存储。
Hive无法直接导入SEQUENCEFILE格式的数据文件。数据须首先导入至TEXTFILE格式的表中,然后再从TEXTFILE格式的表中采用插入方式导入至SEQUENCEFILE格式的表。
SEQUENCEFILE是可分割的文件格式,支持3种压缩选项。
(1)NONE:不压缩。
(2)RECORD(默认选项):记录级压缩,压缩率低。
(3)BLOCK:块级压缩,压缩率高。