美文网首页
Hive数据格式-ORC

Hive数据格式-ORC

作者: 那些年搬过的砖 | 来源:发表于2022-09-23 21:05 被阅读0次

    普通的存储格式,比如我们表格中有abc三列,像mysql按行存储则如下所示


    逻辑存储格式

    大数据引擎存储中,大部分都是采用列式存储,比如Hive、Hbase
    a、b、c各列数据会集中存放在一起,如下所示


    标准列式存储

    Hive中textfile作为缺省的存储格式,采用列式存储,Hive也提供了ORC存储格式,ORC格式能采用更好的压缩算法、更高效的查询。结合了行存储和列式存储的优点


    一个orc文件的内部存储格式

    每个ORC文件由1个或多个条带(stripe)组成,每个条带一般是一个HDFS块。每个条带由Index Data、Row Data、 Stripe Footer组成。
    Index Data:保存了一些索引信息,记录着每个数据段在stripe中的位置。
    Row Data:主要存放数据的地方,一个Rows Data由多个行组构成,每10000行构成一个行组,行组内部以流式形式列式存储,实际上由两部分构成:metadata Stream描述行组的元数据,dataStream数据流。
    Stripe Footer:描述各个stream的类型、长度等信息

    另外,每个orc文件中除若干个stripe外,还包含file footer(文件脚注)、postscript(描述信息)
    file footer:记录每个stripe的行数,每个列的数据类型,每个列的最大值、最小值等信息。
    postscript:压缩参数、压缩大小等信息
    读取orc文件时,先读取postscript信息,根据postscript记录的filefooter长度信息,解析filefooter,再从filefooter中解析出各个stripe信息,再读取各个stripe。

    相关文章

      网友评论

          本文标题:Hive数据格式-ORC

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