14

有没有办法直接从基于 avro 模式的 parquet 文件在 Amazon Athena 中创建表?架构被编码到文件中,所以我需要自己实际创建 DDL 似乎很愚蠢。

我看到了这个和另一个重复

但它们与 Hive 直接相关,它不适用于 Athena。理想情况下,我正在寻找一种无需在控制台上定义它的编程方式。

4

2 回答 2

7

现在使用AWS Glue或多或少可以做到这一点。Glue 可以抓取一堆不同的数据源,包括S3 上的 Parquet 文件。发现的表将添加到 Glue 数据目录中,并可从 Athena 查询。根据您的需要,您可以安排 Glue 爬虫定期运行,或者您可以使用 Glue API 定义和运行爬虫。

如果您有许多共享模式的单独数据块,您还可以使用分区表来减少为 Athena 提供新负载的开销。例如,我有一些每日转储,它们加载到按日期分区的表中。只要架构没有改变,那么您需要做的就是MSCK REPAIR TABLE.

于 2018-02-06T20:46:13.217 回答
2

Athena 似乎不可能,因为avro.schema.url它不是受支持的属性。

table property 'avro.schema.url' is not supported. (Service: AmazonAthena; Status Code: 400; Error Code: InvalidRequestException...)

您可以使用avro.schema.literal(您必须将 avro json 模式复制到查询中),但之后我在查询数据时仍然遇到问题。

奇怪的错误,例如: SYNTAX_ERROR: line 1:8: SELECT * not allowed in queries without FROM clause

于 2017-06-14T12:37:55.053 回答