跳至內容

如何解決 Athena 中的「Query Timeout」錯誤?

2 分的閱讀內容
0

我在 Amazon Athena 中執行了一個查詢,但查詢失敗,並顯示「Query Timeout」錯誤訊息。

簡短說明

當超過 DML 查詢逾時限制時,您可能會收到查詢逾時錯誤,或查詢執行速度變慢。

解決方法

遵循以下最佳實務來最佳化查詢,並避免逾時錯誤。

減少 Athena 查詢的執行時間

您可以在 Athena 採取以下步驟以縮短查詢執行時間:

  • 使用分割投影,將資料表拆分成多個部分,並將相關資料集中在一起。
  • 壓縮檔案,或者分割檔案 (如果可以)。如需支援的壓縮格式的詳細資訊,請參閱 Athena 壓縮支援
  • 最佳化檔案大小。

增加 Amazon Athena 查詢執行時間

當您將資料從 Athena 匯入 Amazon QuickSight SPICE 時,如果 DML 查詢達到執行時間上限,您可能會收到查詢逾時錯誤。

若要解決此問題:

  1. 請檢查 Athena 查詢歷史紀錄,找出 QuickSight 所產生的查詢。
  2. 確認查詢在失敗前執行了多久。
  3. 遵循前一節「減少 Athena 查詢執行時間」中的步驟,重新執行查詢。如果仍無法解決查詢問題,請進行步驟 4
  4. 如果這段時間接近 DML 查詢逾時配額上限 (以分鐘為單位),請增加服務配額。

如需 Service Quotas 及申請增加額度的資訊,請參閱 Service Quotas

設定 Athena 查詢逾時通知

若要在查詢逾時和失敗時收到通知,請使用 Amazon CloudWatch 事件規則擷取事件。接著,使用 Amazon Simple Notification Service (Amazon SNS) 設定通知。

如需操作說明,請參閱如何為 Athena 查詢逾時生成通知?

Amazon S3 存取日誌查詢

若您對 Amazon Simple Storage Service (Amazon S3) 存取日誌執行查詢且查詢逾時,您可對 S3 資料進行分割。使用 AWS Glue ETL 作業對 Amazon S3 資料進行分割。然後,對有限的分區執行 Athena 查詢。

如需操作說明,請參閱如何使用分割的 Amazon S3 存取日誌來避免 Athena 查詢逾時?

CloudTrail 資料查詢

若使用 Athena 查詢 AWS CloudTrail 資料,查詢可能需要很長時間或逾時。這是因為 CloudTrail 日誌的大小會隨著時間而增加,即使您對 CloudTrail 資料表進行分割以縮短查詢時間,查詢仍可能耗時。

使用分割投影手動建立 CloudTrail 資料表。此方法允許 Athena 動態計算 CloudTrail 資料表的值,從而縮短查詢時間。使用分割投影時,無需管理分割,因為分割值與位置會從組態計算。

如需操作說明,請參閱如何使用分割投影為 Athena 查詢建立 CloudTrail 資料表?

使用 CTAS 查詢

CREATE TABLE AS SELECT (CTAS) 查詢可從其他查詢的 SELECT 陳述式建立 Athena 新資料表。CTAS 可一次性從查詢結果建立資料表,使操作原始資料集更方便。CTAS 查詢也可提升查詢效能並降低查詢成本。

如需範例,請參閱 CTAS 查詢範例

如需更多資訊,請參閱如何在 Athena 執行 CTAS 查詢時,設定檔案數量或大小?

使用 EXPLAIN 與 EXPLAIN ANALYZE 陳述式

在 Athena 中使用 EXPLAIN 和 EXPLAIN ANALYZE 來處理複雜查詢。EXPLAIN 陳述式可透過最佳化 SQL 陳述式來最佳化查詢,並確認分割修剪的效果。

請務必檢視 EXPLAIN 與 EXPLAIN ANALYZE 陳述式的注意事項與限制

如需更多資訊,請參閱 EXPLAIN 陳述式範例

相關資訊

Amazon Athena 的 10 大效能調整秘訣

如何在另一個查詢作業中使用 Amazon Athena 查詢的結果?

AWS 官方已更新 2 年前