Hive 什么';s雅典娜的数据格式';元数据文件?
Amazon Athena编写的Hive 什么';s雅典娜的数据格式';元数据文件?,hive,amazon-athena,file-format,Hive,Amazon Athena,File Format,Amazon Athena编写的.csv.metadata文件的数据格式是什么 每个查询的输出文件旁边都有一个元数据文件。它似乎描述了结果的模式。我假设这就是雅典娜用来创建ResultSet.ResultSetMetadata的GetQueryResults请求响应的一部分,并且它是由Hive或Presto以某种方式创建的 2019-04-23 14:51:29 27 e7629796-9b91-476a-bfb7-2fe6c9595bce.csv 2019-04-23 14:5
.csv.metadata
文件的数据格式是什么
每个查询的输出文件旁边都有一个元数据文件。它似乎描述了结果的模式。我假设这就是雅典娜用来创建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
下面是上面列表中的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.|
它的ResultSet.ResultSetMetadata
如下所示:
"ResultSetMetadata": {
"ColumnInfo": [
{
"CatalogName": "hive",
"SchemaName": "",
"TableName": "",
"Name": "ary",
"Label": "ary",
"Type": "array",
"Precision": 0,
"Scale": 0,
"Nullable": "UNKNOWN",
"CaseSensitive": false
}
]
}
我意识到这些是雅典娜的内部文件,但我很好奇。我已经反向设计了格式,这里有一个解析器:–但是,我仍然想知道这个问题是否有真正的答案,如果我在解析器中所做的假设是正确的。更多的研究表明,该格式实际上是一个协议缓冲区。似乎是presto jdbc/src/main/java/com/facebook/presto/jdbc/PrestoResultSetMetaData.java和presto jdbc/src/main/java/com/facebook/presto/jdbc/columnfo.java的protobuf编码版本