web-dev-qa-db-ja.com

Athenaは寄木細工のスキーマからテーブルを作成します

Avroスキーマに基づいて寄木細工のファイルから直接AmazonAthenaにテーブルを作成する方法はありますか?スキーマはファイルにエンコードされているので、実際に自分でDDLを作成する必要があるのはばかげているようです。

this と別の duplication を見ました

しかし、それらはHiveに直接関連しているため、Athenaでは機能しません。理想的には、コンソールで定義する必要なしに、プログラムでそれを行う方法を探しています。

12

これは、 AWS Glue を使用して多かれ少なかれ可能になりました。 Glueは、 S3のParquetファイル など、さまざまなデータソースをクロールできます。検出されたテーブルはGlueデータカタログに追加され、Athenaからクエリ可能になります。必要に応じて、Glueクローラーを定期的に実行するようにスケジュールすることも、GlueAPIを使用してクローラーを定義して実行することもできます。

スキーマを共有する多数の個別のデータの塊がある場合は、 パーティションテーブル を使用して、Athenaが新しいロードを利用できるようにするオーバーヘッドを減らすこともできます。たとえば、日付でパーティション化されたテーブルにロードされる毎日のダンプがいくつかあります。スキーマが変更されない限り、次に行う必要があるのはMSCK REPAIR TABLE

2
Steve McKay

_avro.schema.url_はサポートされているプロパティではないため、Athenaでは不可能のようです。

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_

0
andresp