8.5 文件存储格式

Hive 支持的存储数的格式主要有:TEXTFILESEQUENCEFILEORCPARQUET

8.5.1 默认存储格式:TEXTFILE

Hive 在创建表的时候的时候如果没有使用row format 或者 stored as 子句, 那么这个时候 Hive 所使用的默认存储格式就是TEXTFILE.

文件中一个行(line), 存储表中的一行数据(row).

注意:

  • 默认的行内分隔符是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 二进制存储格式

  1. SEQUENCEFILE 顺序文件

  2. ORC 文件

  3. PARQUET 文件

二进制格式的使用方法很简单, 只要通过建表语句中的stored as 子句做相应的声明就可以了.

注意: 不需要指定 row format, 因为其格式是由底层的二进制文件格式来控制的.

二进制格式文件可以划分为两大类:

  • 基于行的格式 适合同时处理一行中很多列的情况
  • 基于列的格式 适合于值访问其中一小部分的类的查询比较有效

SEQUENCEFILE的存储格式都是基于行存储的.

ORCPARQUET是基于列式存储的.

Copyright © 尚硅谷大数据 2019 all right reserved,powered by Gitbook
该文件最后修订时间: 2019-03-16 07:15:56

results matching ""

    No results matching ""