我的表test_orc包含(用于一个分区):

col1 col2 part1
abc  def  1
ghi  jkl  1
mno  pqr  1
koi  hai  1
jo   pgl  1
hai  tre  1

通过运行
hive --orcfiledump /hive/user.db/test_orc/part1=1/000000_0

我得到以下内容:
Structure for /hive/a0m01lf.db/test_orc/part1=1/000000_0 .
2018-02-18 22:10:24 INFO: org.apache.hadoop.hive.ql.io.orc.ReaderImpl -  Reading ORC rows from /hive/a0m01lf.db/test_orc/part1=1/000000_0 with {include: null, offset: 0, length: 9223372036854775807} .
Rows: 6 .
Compression: ZLIB .
Compression size: 262144 .
Type: struct<_col0:string,_col1:string> .

Stripe Statistics:
  Stripe 1:
    Column 0: count: 6 .
    Column 1: count: 6 min: abc max: mno sum: 17 .
    Column 2: count: 6 min: def max: tre sum: 18 .

File Statistics:
  Column 0: count: 6 .
  Column 1: count: 6 min: abc max: mno sum: 17 .
  Column 2: count: 6 min: def max: tre sum: 18 .

Stripes:
  Stripe: offset: 3 data: 58 rows: 6 tail: 49 index: 67 .
    Stream: column 0 section ROW_INDEX start: 3 length 9 .
    Stream: column 1 section ROW_INDEX start: 12 length 29 .
    Stream: column 2 section ROW_INDEX start: 41 length 29 .
    Stream: column 1 section DATA start: 70 length 20 .
    Stream: column 1 section LENGTH start: 90 length 12 .
    Stream: column 2 section DATA start: 102 length 21 .
    Stream: column 2 section LENGTH start: 123 length 5 .
    Encoding column 0: DIRECT .
    Encoding column 1: DIRECT_V2 .
    Encoding column 2: DIRECT_V2 .

关于条纹的部分是什么意思?

最佳答案

首先,让我们看一下ORC文件的外观。

hadoop - 有人可以向我解释orcfiledump的输出吗?-LMLPHP

现在,上图中以及您的问题中使用了一些关键字!

  • strip -存储在ORC文件中的数据块。任何ORC文件都被划分为称为块的那些块,每个块的大小为250 MB,其中包含索引数据,实际数据以及该块中存储的实际数据的一些元数据。
  • 压缩-用于压缩存储的数据的压缩编解码器。 ZLIB是ORC的默认设置。
  • 索引数据-包括每列的最小值和最大值以及每列中的行位置。 (也可以包括位字段或Bloom过滤器。)行索引条目提供偏移量,这些偏移量使能够在压缩块内寻找正确的压缩块和字节。请注意,ORC索引仅用于选择条纹和行组,而不用于回答查询。
  • 行数据-实际数据。用于表扫描。
  • 条纹页脚-条纹页脚包含每个列的编码以及流的目录及其位置。为了描述每个流,ORC存储流的类型,列ID和流的大小(以字节为单位)。每个流中存储的内容的详细信息取决于列的类型和编码。
  • 后记-保存压缩参数和压缩页脚的大小。
  • 文件页脚-文件页脚包含文件中的 strip 列表,每个 strip 的行数以及每一列的数据类型。它还包含列级聚合计数,最小,最大和总和。

  • 现在!谈论您从orcfiledump的输出。
  • 首先是有关文件的一般信息。名称,位置,压缩编解码器,压缩大小等。
  • strip 统计信息将列出您的ORC文件中的所有 strip 及其相应信息。您可以查看有关Integer列的计数和一些统计信息,例如min,max,sum等。
  • 文件统计信息与#2相似。仅针对完整文件,而不是#2中的每个条纹。
  • 最后一部分,Stripe部分,讨论文件中的每一列以及每个文件的对应索引信息。

  • 另外,您可以对orcfiledump使用各种选项来获得“所需”结果。遵循方便的指南。
    // Hive version 0.11 through 0.14:
    hive --orcfiledump <location-of-orc-file>
    
    // Hive version 1.1.0 and later:
    hive --orcfiledump [-d] [--rowindex <col_ids>] <location-of-orc-file>
    
    // Hive version 1.2.0 and later:
    hive --orcfiledump [-d] [-t] [--rowindex <col_ids>] <location-of-orc-file>
    
    // Hive version 1.3.0 and later:
    hive --orcfiledump [-j] [-p] [-d] [-t] [--rowindex <col_ids>] [--recover] [--skip-dump]
        [--backup-path <new-path>] <location-of-orc-file-or-directory>
    

    遵循上述命令中使用的选项的快速指南。
  • 在命令中指定-d将导致其转储ORC文件数据
    而不是元数据(Hive 1.1.0和更高版本)。
  • 用逗号分隔的列ID列表指定--rowindex将
    使它打印指定列的行索引,其中0为
    包含所有列的顶层结构,第一个是1
    列ID(配置单元1.1.0和更高版本)。
  • 在命令中指定-t将显示
    作家。
  • 在命令中指定-j将以JSON打印ORC文件元数据
    格式。要漂亮地打印JSON元数据,请在命令中添加-p。
  • 在命令中指定--recover将恢复损坏的ORC文件
    由Hive流媒体生成。
  • 与--recover一起指定--skip-dump将执行恢复
    而不转储元数据。
  • 使用新路径指定--backup-path将使恢复工具
    将损坏的文件移动到指定的备份路径(默认值:/ tmp)。
  • 是ORC文件的URI。
  • 是ORC文件的URI或
    目录。从Hive 1.3.0开始,此URI可以是目录
    包含ORC文件。

  • 希望有帮助!

    关于hadoop - 有人可以向我解释orcfiledump的输出吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48860476/

    10-12 17:31