Hive存储格式简单介绍

2020-06-15 10:40:12 浏览数 (1)

一、 Hive文件存储格式

 Hive支持的存储格式有: textfile、sequencefile、orc和parquet这几种格式。Hive 的存储方式有列式存储和行式存储。 textfile和sequencefile的存储格式是给予行存储的;而orc和parquet是基于列存储的(实质上也不是完全的列存储。

关于行式存储和列式存储: 

行存储的特点: 查询满足条件的一整行数据的时候, 列存储则需要去每个聚集的字段找到对应的每个列的值,行存储只需要找到其中一个值,其余的值都在相邻地方,所以此时行存储查询的速度更快。

列存储的特点: 因为每个字段的数据聚集存储,在查询只需要少数几个字段的时候,能大大减少读取的数据量;每个字段的数据类型一定是相同的,列式存储可以针对性的设计更好的设计压缩算法。

textfile 是hive的默认格式,因为对于这种格式,数据不做压缩,所以对磁盘容量和数据的解析都是一个挑战。当然也可以结合压缩算法使用,比如 gzip、bzip2等。压缩的text文件hive无法进行合并或拆分。

sequencefile是一种二进制文件,以K-V的形式序列化到文件里,这种文件格式是可压缩和可分割的。

orc是hive 0.11版本里引入的一种新的存储格式。这种格式会将数据按行来进行分块,每个块按列进行存储。压缩是非常快的。

parquet是面向分析性业务的列式存储格式,是以二进制方式进行存储,所以不能直接进行读取。

sequencefile行存储

  1. 存储空间的消耗最大
  2. 压缩的文件可以分割和合并
  3. 查询效率高,但需要通过text文件转化来加载

orc列存储   1.节省存储空间    2.查询效率高    3.压缩快parquet列存储

  1. 压缩效率高 
  2. 查询效率高
  3. 支持Impala查询引擎

三、如何选择hive的存储格式

hive 表的数据存储格式建议选择orc或者parquet,压缩方式建议选snappy。

0 人点赞