Net*_*itz 8 java hive amazon-web-services presto amazon-athena
有没有一种方法可以根据基于Avro模式的实木复合地板文件直接在Amazon Athena中创建表?该模式已编码到文件中,因此它看起来很愚蠢,我需要亲自创建DDL。
但它们与Hive直接相关,对Athena无效。理想情况下,我正在寻找一种无需您在控制台上进行定义即可以编程方式进行操作的方法。
现在使用AWS Glue或多或少可以做到这一点。Glue 可以抓取一堆不同的数据源,包括S3 上的 Parquet 文件。发现的表被添加到 Glue 数据目录中,并可从 Athena 查询。根据您的需要,您可以安排 Glue 爬虫定期运行,或者您可以使用 Glue API 定义和运行爬虫。
如果您有许多共享模式的独立数据块,您还可以使用分区表来减少向 Athena 提供新负载的开销。例如,我有一些每日转储加载到按日期分区的表中。只要架构没有改变,您所需要做的就是MSCK REPAIR TABLE.
对于 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