2017-03-29 9 views
2

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

私はそれは文句を言わないアテナのために働く、thisと、別のduplication

を見ましたが、それらはハイブに直接関係しています。 理想的には、コンソールで定義する必要なしにプログラムで実行する方法を探しています。

+0

それを試してみること(あるいは少なくともドキュメントを読むこと - http://docs.aws.amazon.com/athena/latest/ug/creating-tables.html)よりも、仕事。 –

+0

AthenaはCREATE EXTERNAL TABLEのみをサポートしています。提案されたソリューションは、avroスキーマのCREATE TABLEに基づいており、寄木細工用に外部のものを作成するよりです。 – NetanelRabinowitz

+0

したがって、外部テーブルを作成してください。それはなぜ重要なのでしょうか? –

答えて

0

アテーナでは可能ではないようです。avro.schema.urlはサポートされていません。

table property 'avro.schema.url' is not supported. (Service: AmazonAthena; Status Code: 400; Error Code: InvalidRequestException...)

を使用できavro.schema.literal(クエリにアブロJSONスキーマをコピーする必要があります)が、私はまだ、その後データを照会問題を経験しました。

奇妙なエラーが好き:これは今、多かれ少なかれ可能AWS Glueを使用している SYNTAX_ERROR: line 1:8: SELECT * not allowed in queries without FROM clause

+1

あなたが言った "奇妙なエラー"は、プレストのバグであるようです:https://github.com/prestodb/presto/issues/8654 – fiorix

0

。グルーは、Parquet files on S3など、さまざまなデータソースをクロールできます。検出されたテーブルは、グルーデータカタログに追加され、Athenaからクエリ可能です。必要に応じて、定期的にグルークローラーを実行するようにスケジューリングするか、グルーAPIを使用してクローラーを定義して実行することができます。

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

関連する問題