athena从parquet模式创建表

lqfhib0f  于 2021-06-26  发布在  Hive
关注(0)|答案(2)|浏览(555)

有没有一种方法可以直接从基于avro模式的parquet文件在amazonathena中创建一个表?模式被编码到文件中,所以我需要自己创建ddl看起来很愚蠢。
我看到了这个还有另一个复制品
但是它们和Hive有直接的关系,这对雅典娜不起作用。理想情况下,我正在寻找一种无需在控制台上定义它的编程方式。

2ledvvac

2ledvvac1#

现在,使用aws胶水或多或少可以做到这一点。glue可以抓取一堆不同的数据源,包括s3上的Parquet文件。发现的表被添加到glue数据目录中,并可从athena查询。根据您的需要,您可以安排一个glue crawler定期运行,也可以使用glue api定义并运行一个crawler。
如果有许多独立的数据块共享一个模式,那么还可以使用分区表来减少athena可以使用新加载的开销。例如,我有一些每日转储,它们加载到按日期分区的表中。只要模式不变,那么您所需要做的就是 MSCK REPAIR TABLE .

t5fffqht

t5fffqht2#

以雅典娜为代表似乎是不可能的 avro.schema.url 不是受支持的属性。 table property 'avro.schema.url' is not supported. (Service: AmazonAthena; Status Code: 400; Error Code: InvalidRequestException...) 你可以用 avro.schema.literal (您必须将avrojson模式复制到查询中),但之后我仍然遇到了查询数据的问题。
奇怪的错误,如: SYNTAX_ERROR: line 1:8: SELECT * not allowed in queries without FROM clause

相关问题