ワークグループのトラブルシューティング - Amazon Athena

ワークグループのトラブルシューティング

ワークグループのトラブルシューティングを行うには、以下のヒントを参考にしてください。

  • アカウントの個々のユーザーのアクセス権限を確認します。それらは、クエリ結果の場所、およびクエリを実行するワークグループへのアクセス権を持っている必要があります。ワークグループを切り替える場合は、両方のワークグループに対するアクセス権限も必要です。詳細については、「ワークグループにアクセスするための IAM ポリシー」を参照してください。

  • Athena コンソールの内容に注目して、どのワークグループでクエリを実行するのかを確認します。ドライバーを使用する場合は、ワークグループを必要なものに設定する必要があります。詳細については、クエリを実行するワークグループの指定 を参照してください。

  • API またはドライバーを使用してクエリを実行する場合は、次の方法のいずれかを使用してクエリ結果の場所を指定する必要があります。個々のクエリについては OutputLocation (クライアント側) を使用します。ワークグループでは WorkGroupConfiguration を使用します。場所がどちらの方法でも指定されていない場合、Athena はクエリランタイムでエラーを発行します。

  • クライアント側の設定をワークグループの設定で上書きすると、クエリ結果の場所でエラーが発生する可能性があります。例えば、ワークグループのユーザーに、クエリ結果を保存するための Amazon S3 内のワークグループの場所に対する許可がない場合があります。この場合は、必要な許可を追加します。

  • ワークグループは、API オペレーションの動作に変更を加えます。以下の既存の API オペレーションの呼び出しには、アカウントのユーザーが、呼び出しを行うワークグループに対して IAM にリソースベースの許可を持っている必要があります。ワークグループ、およびワークグループアクションに対する許可がない場合は、AccessDeniedExceptionCreateNamedQueryDeleteNamedQueryGetNamedQueryListNamedQueriesStartQueryExecutionStopQueryExecutionListQueryExecutionsGetQueryExecutionGetQueryResults、および GetQueryResultsStream (この API アクションはドライバーでの使用のみに利用でき、一般的な使用には公開されていません) の API アクションが をスローします。詳細については、サービス承認リファレンスの「Amazon Athena のアクション、リソース、および条件キー」を参照してください。

    BatchGetQueryExecution および BatchGetNamedQuery API オペレーションの呼び出しは、ユーザーがアクセス権を持つワークグループで実行されるクエリに関する情報しか返しません。ユーザがワークグループにアクセスできない場合、これらの API オペレーションは未処理の ID リストの一部として未承認クエリ ID を返します。詳細については、「 Athena ワークグループ API」を参照してください

  • クエリが実行されるワークグループが強制されたクエリ結果の場所で設定されている場合は、CTAS クエリに external_location を指定しないでください。この場合、Athena がエラーを発行して、external_location を指定するクエリを失敗させます。たとえば、クエリ結果の場所に関するクライアント側の設定を上書きし、ワークグループに独自の場所を使用するように強制すると、次のクエリは失敗します。CREATE TABLE <DB>.<TABLE1> WITH (format='Parquet', external_location='s3://my_test/test/') AS SELECT * FROM <DB>.<TABLE2> LIMIT 10;

次のエラーが表示されることがあります。この表は、ワークグループに関連したエラーのリストを提供し、ソリューションを提案します。

ワークグループのエラー
エラー 表示される場合
query state CANCELED. Bytes scanned limit was exceeded. クエリがクエリごとのデータ制限に達し、キャンセルされました。読み込むデータを少なくするためにクエリを書き換えることを検討するか、アカウント管理者に連絡してください。
User: arn:aws:iam::123456789012:user/abc is not authorized to perform: athena:StartQueryExecution on resource: arn:aws:athena:us-east-1:123456789012:workgroup/workgroupname ユーザーがワークグループでクエリを実行しましたが、アクセスできません。ワークグループにアクセスできるようにポリシーを更新してください。
INVALID_INPUT. WorkGroup <name> is disabled. ユーザーがワークグループでクエリを実行しましたが、そのワークグループが無効になっています。ワークグループは管理者によって無効にされている可能性があります。また、アクセス権限がない可能性もあります。いずれの場合も、ワークグループを変更するアクセス権限を持つ管理者に連絡してください。
INVALID_INPUT. WorkGroup <name> is not found. ユーザーがワークグループでクエリを実行しましたが、そのワークグループが存在しません。ワークグループが削除された場合、このエラーが発生する可能性があります。別のワークグループに切り替えてクエリを実行してください。
InvalidRequestException: when calling the StartQueryExecution operation: No output location provided. An output location is required either through the Workgroup result configuration setting or as an API input.

ユーザーがクエリ結果の場所を指定せずに API を使用してクエリを実行しました。2 つの方法のいずれかを使用して、クエリ結果の出力場所を設定する必要があります。個別のクエリの場合は「OutputLocation」 (クライアント側) を使用するか、ワークグループの場合は「WorkGroupConfiguration」を使用するかのいずれかです。

The Create Table As Select query failed because it was submitted with an 'external_location' property to an Athena Workgroup that enforces a centralized output location for all queries. Please remove the 'external_location' property and resubmit the query.

クエリが実行されるワークグループに、強制されたクエリ結果の場所が設定されていて、CTAS クエリに external_location を指定しました。この場合、external_location を削除し、クエリを再実行します。