The*_*heo 5 file-format hive amazon-athena
.csv.metadataAmazon Athena 写入的文件的数据格式是什么?
除了每个查询的输出文件之外,还有一个元数据文件。看起来它描述了结果的架构。我假设这是 Athena 用于创建请求ResultSet.ResultSetMetadata响应部分的内容GetQueryResults,并且它是由 Hive 或 Presto 以某种方式创建的。
2019-04-23 14:51:29 27 e7629796-9b91-476a-bfb7-2fe6c9595bce.csv
2019-04-23 14:51:29 56 e7629796-9b91-476a-bfb7-2fe6c9595bce.csv.metadata
2019-04-27 14:23:53 1591958 ebe432ac-db7b-4ea1-b5de-529350d1a02a.csv
2019-04-27 14:23:53 712 ebe432ac-db7b-4ea1-b5de-529350d1a02a.csv.metadata
2019-04-25 16:31:23 10152 eeb6f4ab-9ac3-4a7e-81c4-0cc155187acb.csv
2019-04-25 16:31:23 494 eeb6f4ab-9ac3-4a7e-81c4-0cc155187acb.csv.metadata
2019-04-25 22:30:56 22384376 f0160ff7-e5b3-466d-926a-a660a5208c5f.csv
2019-04-25 22:30:56 494 f0160ff7-e5b3-466d-926a-a660a5208c5f.csv.metadata
Run Code Online (Sandbox Code Playgroud)
e7629796-9b91-476a-bfb7-2fe6c9595bce.csv.metadata这是上面列表中的十六进制转储:
00000000 0a 1b 32 30 31 39 30 34 32 33 5f 31 32 35 31 32 |..20190423_12512|
00000010 38 5f 30 30 30 30 31 5f 65 68 74 75 72 22 19 0a |8_00001_ehtur"..|
00000020 04 68 69 76 65 22 03 61 72 79 2a 03 61 72 79 32 |.hive".ary*.ary2|
00000030 05 61 72 72 61 79 48 03 |.arrayH.|
Run Code Online (Sandbox Code Playgroud)
它ResultSet.ResultSetMetadata看起来像这样:
"ResultSetMetadata": {
"ColumnInfo": [
{
"CatalogName": "hive",
"SchemaName": "",
"TableName": "",
"Name": "ary",
"Label": "ary",
"Type": "array",
"Precision": 0,
"Scale": 0,
"Nullable": "UNKNOWN",
"CaseSensitive": false
}
]
}
Run Code Online (Sandbox Code Playgroud)
我意识到这些是 Athena 的内部文件,但我很好奇。
Ash*_*Ash -3
元数据文件不是人类可读的(二进制格式),适用于 Athena。
来自 AWS 文档:
DML 和 DDL 查询元数据文件以二进制格式保存,人类无法读取。文件扩展名对应于相关的查询结果文件。Athena 在使用 GetQueryResults 操作读取查询结果时使用元数据。尽管可以删除这些文件,但我们不建议这样做,因为有关查询的重要信息会丢失。
有关更多详细信息,请参阅“识别查询输出文件”部分:https ://docs.aws.amazon.com/athena/latest/ug/querying.htmlIdentifying