雅典娜从镶木地板图案创建表

时间:2017-03-29 16:13:23

标签: java amazon-web-services hive presto amazon-athena

有没有办法直接从基于avro架构的镶木地板文件在Amazon Athena中创建表?模式被编码到文件中,因此我看起来很愚蠢,我需要自己实际创建DDL。

我看到了this以及另一个duplication

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

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

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