美文网首页
Hive文件存储格式

Hive文件存储格式

作者: 大空翼123 | 来源:发表于2021-12-14 19:01 被阅读0次

    文件存储格式

    Hive支持的存储数据的格式主要有:TEXTFILE (行存储)、SEQUENCEFILE(行存储)、ORC(列存储)、PARQUET(列存储)。

    9.4.1 列式存储和行式存储

    如图所示左边为逻辑表,右边第一个为行式存储,第二个为列式存储。

    1)行存储的特点

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

    2)列存储的特点

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

    TEXTFILE和SEQUENCEFILE的存储格式都是基于行存储的;

    ORC和PARQUET是基于列式存储的。

    ORC与PARQUET的选择

    1、存储空间

    orc的压缩比parquet更好,相同大小的文件,orc格式往往占用的空间更小!

    但是其实现在硬盘的价格相对于内存和cpu,gpu来说,应该是很便宜的了,所以在这点上你说orc有多大优势,并不见得

    存储在hadoop上会有三副本,可以考虑调低副本数(但是就降低了可用性),或者hadoop3.x好像有什么纠删码策略,可以减少副本数(具体没了解过)

    2、查询框架

    查询往往都是使用不同的框架查询同一份数据,问题在于这些不同的框架对于这个格式的支持度如何?

    比如spark默认的数据格式是parquet,也从侧面印证spark对于parquet数据的查询优于orc

    比如impala低版本是不支持orc格式的!

    比如hive查询orc格式的数据速度更快性能更好!

    相关文章

      网友评论

          本文标题:Hive文件存储格式

          本文链接:https://www.haomeiwen.com/subject/wbdyfrtx.html