8.5 文件存储格式
Hive 支持的存储数的格式主要有:TEXTFILE 、SEQUENCEFILE、ORC、PARQUET
8.5.1 默认存储格式:TEXTFILE
Hive 在row format 或者 stored as 子句, 那么这个时候 Hive 所使用的默认存储格式就是TEXTFILE.
注意:
默认的行内分隔符是
ctrl+a, ASCII 码值是 1, 而不是制表符集合类(array, struct)的默认分隔符是:
ctrl+B(2)的映射(map)的默认分隔符是
ctrl+C(3)行与行之间用换行符分割(
\n)前面三中分隔符都可以手动设置, 行分隔符目前只支持换行符.
可以用八进制形式表示分隔符:
\001,\002,\003
create table ...;
# 等价于
create table ...;
row format delimited
    fields terminated by '\001'
    collection items terminated by '\002'
    map keys terminated by '\003'
    lines terminated by '\n'
8.5.2 二进制存储格式
SEQUENCEFILE顺序文件ORC文件PARQUET文件
二进制格式的使用方法很简单, 只要通过建表语句中的stored as 子句做相应的声明就可以了.
注意: 不需要指定 row format, 因为其格式是由底层的二进制文件格式来控制的.
二进制格式文件可以划分为两大类:
- 基于行的格式 适合同时处理一行中很多列的情况
 - 基于列的格式 适合于值访问其中一小部分的类的查询比较有效
 

SEQUENCEFILE的存储格式都是基于行存储的.
ORC和PARQUET是基于列式存储的.