Avroスキーマに基づいて寄木細工のファイルから直接AmazonAthenaにテーブルを作成する方法はありますか?スキーマはファイルにエンコードされているので、実際に自分でDDLを作成する必要があるのはばかげているようです。
this と別の duplication を見ました
しかし、それらはHiveに直接関連しているため、Athenaでは機能しません。理想的には、コンソールで定義する必要なしに、プログラムでそれを行う方法を探しています。
これは、 AWS Glue を使用して多かれ少なかれ可能になりました。 Glueは、 S3のParquetファイル など、さまざまなデータソースをクロールできます。検出されたテーブルはGlueデータカタログに追加され、Athenaからクエリ可能になります。必要に応じて、Glueクローラーを定期的に実行するようにスケジュールすることも、GlueAPIを使用してクローラーを定義して実行することもできます。
スキーマを共有する多数の個別のデータの塊がある場合は、 パーティションテーブル を使用して、Athenaが新しいロードを利用できるようにするオーバーヘッドを減らすこともできます。たとえば、日付でパーティション化されたテーブルにロードされる毎日のダンプがいくつかあります。スキーマが変更されない限り、次に行う必要があるのはMSCK REPAIR TABLE
。
_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
_