Hive存储格式简单介绍
一、 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是面向分析性业务的列式存储格式,是以二进制方式进行存储,所以不能直接进行读取。
二、几个格式的简单
存储格式 | 存储方式 | 特点 |
textfile | 行存储 |
|
sequencefile | 行存储 |
|
orc | 列存储 | 1.节省存储空间 2.查询效率高 3.压缩快 |
parquet | 列存储 |
|
三、如何选择hive的存储格式
hive 表的数据存储格式建议选择orc或者parquet,压缩方式建议选snappy。
- 点赞
- 收藏
- 关注作者
评论(0)