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

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

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

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

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

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

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

  • ワークグループは、API オペレーションの動作に変更を加えます。以下の既存の API オペレーションの呼び出しには、アカウントのユーザーが、呼び出しを行うワークグループに対して IAM にリソースベースの許可を持っている必要があります。ワークグループ、およびワークグループのアクションに対するアクセス許可がない場合は、CreateNamedQueryDeleteNamedQueryGetNamedQueryListNamedQueriesStartQueryExecutionStopQueryExecutionListQueryExecutionsGetQueryExecutionGetQueryResultsGetQueryResultsStream (この API アクションはドライバーでの使用のみに利用でき、一般的な使用には利用できません) の API アクションが AccessDeniedException をスローします。詳細については、「サービス承認リファレンス」の「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://DOC-EXAMPLE-BUCKET/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」(ユーザー: arn:aws:iam::123456789012:user/abc には実行する権限がありません: リソースでの athena:StartQueryExecution: arn:aws:athena:us-east-1:123456789012:workgroup/workgroupname) ユーザーがワークグループでクエリを実行しましたが、アクセスできません。ワークグループにアクセスできるようにポリシーを更新してください。
INVALID_INPUT. 「WorkGroup <name> is disabled.」(WorkGroup <name> は無効です) ユーザーがワークグループでクエリを実行しましたが、そのワークグループが無効になっています。ワークグループは管理者によって無効にされている可能性があります。また、アクセス権限がない可能性もあります。いずれの場合も、ワークグループを変更するアクセス権限を持つ管理者に連絡してください。
INVALID_INPUT. 「WorkGroup <name> is not found.」(WorkGroup <name> が見つかりません) ユーザーがワークグループでクエリを実行しましたが、そのワークグループが存在しません。ワークグループが削除された場合、このエラーが発生する可能性があります。別のワークグループに切り替えてクエリを実行してください。
InvalidRequestException: when calling the StartQueryExecution operation: No output location provided.」(InvalidRequestException: StartQueryExecution オペレーションを呼び出す場合: 出力場所が指定されていません) 「An output location is required either through the Workgroup result configuration setting or as an API input.」(出力場所は、ワークグループ結果構成設定を使用するか、API 入力として指定する必要があります)

ユーザーがクエリ結果の場所を指定せずに 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.」(Create Table As Select クエリは、すべてのクエリに対して集中管理された出力場所を強制する Athena ワークグループに 'external_location' プロパティを指定して送信されたため、失敗しました) 「Please remove the 'external_location' property and resubmit the query.」('external_location' プロパティを削除して、クエリを再送信してください)

クエリが実行されるワークグループに、強制されたクエリ結果の場所が設定されていて、CTAS クエリに external_location を指定しました。この場合、external_location を削除し、クエリを再実行します。
Cannot create prepared statement prepared_statement_name.」(準備済みステートメントの prepared_statement_name を作成できません) このワークグループ内の準備済みステートメントの数が上限の 1,000 を超えています。 ワークグループに含まれる準備済みステートメントの数が制限の 1,000 を超えています。この問題を回避するには、DEALLOCATE PREPARE を使用してワークグループから 1 つ以上の準備済みステートメントを削除します。または、新しいワークグループを作成します。