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
是基于列式存储的.