企业宣传,产品推广,广告招商,广告投放联系seowdb

一文读懂Hive底层数据存储格局

本文解说 Hive 的数据存储,是 Hive 操作数据的基础。选用一个适宜的底层数据存储文件格局,即使在不扭转 Hive SQL 的状况下,性能也能获取数量级的优化。这种优化方式对学过 MySQL 等相关型数据库的小同伴并不生疏,选用不同的数据存储引擎,代表着不同的数据组织方式,关于数据库的体现会有不同的影响。

Hive 数据存储罕用的格局如下:

注:RCFile 和 ORCFile 并不是纯正的列式存储,它是先基于行对数据表启动分组(行组),而后对行组启动列式存储

咱们看下这几种存储结构的优缺陷:

水平的行存储结构:

行存储形式就是把一整行存在一同,包括一切的列,这是最经常出现的形式。这种结构能很好的顺应灵活的查问。

比如:select a from tableA 和 select a, b, c, d, e, f, g from tableA这样两个查问其实查问的开支差不多,都要求把一切的行读出去过一遍,拿出要求的列。

而且这种状况下,属于同一行的数据都在同一个 HDFS块上,重建一行数据的老本比拟低。

然而这样做有两个关键的弱点:

垂直的列存储结构:

列存储是将每列独自存储或许将某几个列作为列组存在一同。列存储内口头查问时可以防止读取不用要的列。而且普通同列的数据类型分歧,取值范畴相对多列混合更小,在这种状况下紧缩数据能到达比拟高的紧缩比。

然而这种结构在重建行时比拟吃力,尤其当一行的多个列不在一个 HDFS 块上的时刻。比如咱们从第一个>

     textfile_tableueserid STRINGmovieid STRINGrating STRINGts STRING formated delimated    stored  textfile

© 版权声明
评论 抢沙发
加载中~
每日一言
不怕万人阻挡,只怕自己投降
Not afraid of people blocking, I'm afraid their surrender