有人可以向我解释 orcfiledump 的输出吗?
Can someone explain me the output of orcfiledump?
我的 table 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文件是什么样子的。
现在上图中和您的问题中使用了一些关键字!
- Stripe - 存储在 ORC 文件中的一大块数据。任何 ORC 文件都分为这些块,称为条带,每个块大小为 250 MB,其中包含索引数据、实际数据和存储在该条带中的实际数据的一些元数据。
- Compression - 用于压缩存储数据的压缩编解码器。 ZLIB 是 ORC 的默认值。
索引数据 - 包括每列的最小值和最大值以及每列内的行位置。 (也可以包括位字段或布隆过滤器。)行索引条目提供偏移量,可以在解压缩块中查找正确的压缩块和字节。 请注意,ORC 索引仅用于条带和行组的选择,而不用于回答查询。
行数据 - 实际数据。用于 table 扫描。
Stripe Footer - Stripe 页脚包含每一列的编码和流的目录,包括它们的位置。为了描述每个流,ORC 以字节为单位存储流的种类、列 ID 和流的大小。每个流中存储的内容的详细信息取决于列的类型和编码。
Postscript - 保存压缩参数和压缩页脚的大小。
- 文件页脚 - 文件页脚包含文件中的条带列表、每个条带的行数以及每列的数据类型。它还包含 column-level 聚合计数、最小值、最大值和总和。
现在!谈论你从 orcfiledump 的输出。
- 首先是有关文件的一般信息。名称、位置、压缩编解码器、压缩大小等
- 条带统计会列出您的ORC文件中的所有条带及其对应的信息。您可以看到关于整数列的计数和一些统计信息,例如最小值、最大值、总和等。
- 文件统计与#2 类似。仅针对完整文件,而不是 #2 中的每个条带。
- 最后一部分,Stripe 部分,讨论文件中的每一列以及每一列的相应索引信息。
此外,您可以将各种选项与 orcfiledump 一起使用以获得 "desired" 结果。遵循方便的指南。
// 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(Hive 1.1.0 及更高版本)。
- 在命令中指定-t 将打印
作家。
- 在命令中指定 -j 将在 JSON 中打印 ORC 文件元数据
格式。要漂亮地打印 JSON 元数据,请将 -p 添加到命令中。
- 在命令中指定 --recover 将恢复损坏的 ORC 文件
由 Hive 流生成。
- 指定 --skip-dump 和 --recover 将执行恢复
不转储元数据。
- 使用 new-path 指定 --backup-path 将使恢复工具
将损坏的文件移动到指定的备份路径(默认:/tmp)。
- 是 ORC 文件的 URI。
- 是 ORC 文件的 URI 或者
目录。从 Hive 1.3.0 开始,这个 URI 可以是一个目录
包含 ORC 文件。
希望对您有所帮助!
我的 table 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文件是什么样子的。
现在上图中和您的问题中使用了一些关键字!
- Stripe - 存储在 ORC 文件中的一大块数据。任何 ORC 文件都分为这些块,称为条带,每个块大小为 250 MB,其中包含索引数据、实际数据和存储在该条带中的实际数据的一些元数据。
- Compression - 用于压缩存储数据的压缩编解码器。 ZLIB 是 ORC 的默认值。
索引数据 - 包括每列的最小值和最大值以及每列内的行位置。 (也可以包括位字段或布隆过滤器。)行索引条目提供偏移量,可以在解压缩块中查找正确的压缩块和字节。 请注意,ORC 索引仅用于条带和行组的选择,而不用于回答查询。
行数据 - 实际数据。用于 table 扫描。
Stripe Footer - Stripe 页脚包含每一列的编码和流的目录,包括它们的位置。为了描述每个流,ORC 以字节为单位存储流的种类、列 ID 和流的大小。每个流中存储的内容的详细信息取决于列的类型和编码。
Postscript - 保存压缩参数和压缩页脚的大小。
- 文件页脚 - 文件页脚包含文件中的条带列表、每个条带的行数以及每列的数据类型。它还包含 column-level 聚合计数、最小值、最大值和总和。
现在!谈论你从 orcfiledump 的输出。
- 首先是有关文件的一般信息。名称、位置、压缩编解码器、压缩大小等
- 条带统计会列出您的ORC文件中的所有条带及其对应的信息。您可以看到关于整数列的计数和一些统计信息,例如最小值、最大值、总和等。
- 文件统计与#2 类似。仅针对完整文件,而不是 #2 中的每个条带。
- 最后一部分,Stripe 部分,讨论文件中的每一列以及每一列的相应索引信息。
此外,您可以将各种选项与 orcfiledump 一起使用以获得 "desired" 结果。遵循方便的指南。
// 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(Hive 1.1.0 及更高版本)。
- 在命令中指定-t 将打印 作家。
- 在命令中指定 -j 将在 JSON 中打印 ORC 文件元数据 格式。要漂亮地打印 JSON 元数据,请将 -p 添加到命令中。
- 在命令中指定 --recover 将恢复损坏的 ORC 文件 由 Hive 流生成。
- 指定 --skip-dump 和 --recover 将执行恢复 不转储元数据。
- 使用 new-path 指定 --backup-path 将使恢复工具 将损坏的文件移动到指定的备份路径(默认:/tmp)。
- 是 ORC 文件的 URI。
- 是 ORC 文件的 URI 或者 目录。从 Hive 1.3.0 开始,这个 URI 可以是一个目录 包含 ORC 文件。
希望对您有所帮助!