hive之路6-存储格式和数据格式

2021-03-02 16:11:30 浏览数 (1)

hive存储格式

Hive会为每个创建的数据库在HDFS上创建一个目录,该数据库的表会以子目录形式存储,表中的数据会以表目录下的文件形式存储。 对于默认的defautl数据库,默认缺省的数据库没有自己的目录,default数据库的表默认存放在/usr/hive/warehouse目录下

存储方式

格式

行存储

textfile Parquet

列存储

ORCfile

行列结合

RCfile

二进制存储

SequenceFile


一、 textfile

默认格式,存放方式为行存储;数据不做压缩,磁盘开销大,数据解析开销大

二、SequenceFile

Hadoop API提供的**二进制存储格式,**具有使用方便、可分割、可压缩等特点。它支持三种压缩格式:

  • NONE
  • RECORD
  • BLOCK

Record压缩率低,一般选择是BLOCK压缩

三、RCfile

一种行列存储相结合的存储方式。

四、ORCfile

数据按照行分块,每个块按照列存储,每个块都有一个索引。数据压缩快,快速列存取,是hive给出的一种新存储格式。

五、Parquet

一种行存储方式,压缩性能好;同时可以减少大量表的扫描和反序列化时间。

hive数据格式

当数据存储在文本文件中,必须按照一定的格式来区分行和列,并且在行列中自定这些区分符。

hive中默认使用的几个比较少见的字符:

分隔符

描述

n

换行符对于文本文件来说,每行是一条记录,所以n 来分割记录

^A (Ctrl A)

分割字段,也可以用01 来表示

^B (Ctrl B)

用于分割 Arrary 或者 Struct 中的元素,或者用于 map 中键值之间的分割,也可以用02 分割。

^C

用于 map 中键和值自己分割,也可以用03 表示。

0 人点赞