本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
對工作群組錯誤進行故障診斷
使用以下秘訣進行工作群組疑難排解。
-
檢查您的帳戶中個別使用者的許可。他們必須有權存取查詢結果的位置,以及您們想要在其中執行查詢的工作群組。如果他們想要切換工作群組,則還需要有這兩個工作群組的許可。如需相關資訊,請參閱 使用IAM政策來控制工作群組存取。
-
請注意 Athena 主控台中的內容,了解您將在哪個工作群組中執行查詢。如果您使用驅動程式,請務必設定為您需要的工作群組。如需相關資訊,請參閱 指定查詢的工作群組。
-
如果您使用 API或 驅動程式來執行查詢,則必須使用下列其中一種方式指定查詢結果位置:對於個別查詢,請使用 OutputLocation(用戶端)。在工作群組中,使用 WorkGroupConfiguration。如果未以任何方式指定位置,Athena 會在查詢執行期時發出錯誤。
-
如果您以工作群組設定覆寫用戶端設定,您可能會遇到查詢結果位置方面的錯誤。例如,工作群組的使用者可能沒有許可,無法在 Amazon S3 中的工作群組位置存放查詢結果。在這種情況下,請新增必要的許可。
-
工作群組引入API操作行為的變更。對下列現有API操作的呼叫需要您帳戶中的使用者IAM在 中擁有其所在工作群組的資源型許可。如果工作群組和工作群組動作不存在許可,則下列API動作會擲出
AccessDeniedException
:CreateNamedQuery、、DeleteNamedQuery、GetNamedQueryListNamedQueriesStartQueryExecution、StopQueryExecution、ListQueryExecutions、GetQueryResults、 GetQueryExecution和 GetQueryResultsStream(此API動作僅適用於驅動程式,不會公開供公開使用)。如需詳細資訊,請參閱《服務授權參考》中的 Amazon Athena 的動作、資源和條件索引鍵。對 BatchGetQueryExecution和 BatchGetNamedQueryAPI操作的呼叫只會傳回在使用者可存取的工作群組中執行之查詢的相關資訊。如果使用者無法存取工作群組,這些API操作會傳回未經授權的查詢,IDs做為未處理IDs清單的一部分。如需詳細資訊,請參閱使用 Athena 工作群組 APIs。
-
如果將執行查詢的工作群組已設定強制執行的查詢結果位置,請勿
external_location
為CTAS查詢指定 。在這種情況下,Athena 會發出錯誤,且指定external_location
的查詢會失敗。例如,如果您覆寫用戶端的查詢結果位置設定,而強制工作群組使用其自己的位置,此查詢會失敗:CREATE TABLE <DB>.<TABLE1> WITH (format='Parquet',
external_location='s3://amzn-s3-demo-bucket/test/'
) AS SELECT * FROM <DB>.<TABLE2> LIMIT 10;
您可能會看到下列錯誤。下表列出工作群組的一些相關錯誤和建議的解決方案。
錯誤 | 發生時情況... |
---|---|
查詢狀態 CANCELED。超出掃描的位元組限制。 |
查詢達到每一查詢資料限制,並且被取消。請考慮重寫查詢,以讀取較少的資料,或聯絡您的帳戶管理員。 |
使用者: |
使用者在工作群組中執行查詢,但沒有它的存取權。更新您的政策以提供此工作群組的存取權。 |
INVALID_INPUT. WorkGroup <name> 已停用。 |
使用者在工作群組中執行查詢,但此工作群組已停用。管理員可能停用您的工作群組。也可能是您沒有它的存取權。在這兩種情況下,請聯絡有權修改工作群組的管理員。 |
INVALID找不到 _INPUT. WorkGroup <name>。 |
使用者在工作群組中執行查詢,但此工作群組不存在。如果已刪除工作群組,則可能發生此情況。切換到另一個工作群組來執行您的查詢。 |
InvalidRequestException:呼叫 StartQueryExecution操作時:未提供輸出位置。輸出位置是透過工作群組結果組態設定或 做為API輸入而需要的。 |
使用者使用 執行查詢,API而不指定查詢結果的位置。您必須使用下列兩種方式之一設定查詢結果的輸出位置:針對個別查詢,使用 OutputLocation(用戶端),或在工作群組中,使用 WorkGroupConfiguration。 |
|
如果查詢執行的工作群組使用強制執行的查詢結果位置設定,而您external_location 為CTAS查詢指定 。在這種情況下,請移除 external_location 並重新執行查詢。 |
無法建立準備好的陳述式 |
工作群組包含的預備陳述式超過 1000 的上限。若要解決此問題,請使用 DEALLOCATE PREPARE 以從工作群組中移除一或多個預備陳述式。或者,建立新的工作群組。 |