工作群組疑難排解 - Amazon Athena

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

工作群組疑難排解

使用以下秘訣進行工作群組疑難排解。

  • 檢查您的帳戶中個別使用者的許可。他們必須有權存取查詢結果的位置,以及您們想要在其中執行查詢的工作群組。如果他們想要切換工作群組,則還需要有這兩個工作群組的許可。如需相關資訊,請參閱 用於存取工作群組的 IAM 政策

  • 請注意 Athena 主控台中的內容,了解您將在哪個工作群組中執行查詢。如果您使用驅動程式,請務必設定為您需要的工作群組。如需相關資訊,請參閱指定工作群組在其中執行查詢

  • 如果您使用 API 或驅動程式執行查詢,則必須使用下列其中一種方式指定查詢結果位置:針對個別查詢,請使用 OutputLocation(用戶端)。在工作群組中,使用WorkGroupConfiguration。如果未以任何方式指定位置,Athena 會在查詢執行期時發出錯誤。

  • 如果您以工作群組設定覆寫用戶端設定,您可能會遇到查詢結果位置方面的錯誤。例如,工作群組的使用者可能沒有許可,無法在 Amazon S3 中的工作群組位置存放查詢結果。在這種情況下,請新增必要的許可。

  • 工作群組會對 API 操作的行為造成改變。您帳戶中的使用者在 IAM 中,對工作群組需要有以資源為基礎的許可,才能在這些工作群組中呼叫以下現有的 API 操作。如果沒有工作群組和工作群組動作的權限,則下列 API 動作會擲回AccessDeniedExceptionCreateNamedQueryDeleteNamedQueryGetNamedQueryListNamedQueries、、StartQueryExecutionStopQueryExecutionListQueryExecutions、、GetQueryExecutionGetQueryResults、、、和 GetQueryResultsStream(此 API 動作僅適用於驅動程式使用,否則不會公開供公眾使用)。如需詳細資訊,請參閱《服務授權參考》中的 Amazon Athena 的動作、資源和條件索引鍵

    BatchGetQueryExecutionBatchGetNamedQueryAPI 作業的呼叫僅會傳回在使用者可存取的工作群組中執行之查詢的相關資訊。如果使用者無法存取此工作群組,這些 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;

您可能會看到下列錯誤。下表列出工作群組的一些相關錯誤和建議的解決方案。

工作群組錯誤
錯誤 發生時情況...
查詢狀態為 CANCELED (已取消)。超出掃描的位元組限制。 查詢達到每一查詢資料限制,並且被取消。請考慮重寫查詢,以讀取較少的資料,或聯絡您的帳戶管理員。
使用者:ARN: aw: IAM:: 123456789012: 使用者/ABC 未授權執行:雅典娜:在資源上:ARN: AW: 雅典娜:美國東部 1:123456789012: 工作群組/工作群組名稱 StartQueryExecution 使用者在工作群組中執行查詢,但沒有它的存取權。更新您的政策以提供此工作群組的存取權。
無效 _ 輸入。 WorkGroup <name>已停用。 使用者在工作群組中執行查詢,但此工作群組已停用。管理員可能停用您的工作群組。也可能是您沒有它的存取權。在這兩種情況下,請聯絡有權修改工作群組的管理員。
無效 _ 輸入。 WorkGroup <name>找不到。 使用者在工作群組中執行查詢,但此工作群組不存在。如果已刪除工作群組,則可能發生此情況。切換到另一個工作群組來執行您的查詢。
InvalidRequestException: 呼叫 StartQueryExecution作業時:未提供輸出位置。需要透過工作群組結果組態設定或作為 API 輸入來提供輸出位置。

使用者以 API 執行查詢,但未指定查詢結果的位置。您必須使用下列兩種方式之一來設定查詢結果的輸出位置:針對個別查詢、使用 OutputLocation(用戶端) 或在工作群組中使用 WorkGroupConfiguration.

Create Table As Select 查詢失敗,因為該查詢已使用 'external_location' 屬性提交至 Athena 工作群組,而該工作群組會針對所有查詢強制執行集中輸出位置。請移除 'external_location' 屬性,然後重新提交查詢。

如果執行查詢的工作群組已設定強制的查詢結果位置,而且您為 CTAS 查詢指定 external_location。在這種情況下,請移除 external_location 並重新執行查詢。
無法建立預備陳述式 prepared_statement_name。此工作群組中的預備陳述式數目超過 1000 的上限。 工作群組包含的預備陳述式超過 1000 的上限。若要解決此問題,請使用 DEALLOCATE PREPARE 以從工作群組中移除一或多個預備陳述式。或者,建立新的工作群組。