工作負載管理 - Amazon Redshift

Amazon Redshift 自 2025 年 11 月 1 日起不再支援建立新的 Python UDF。如果您想要使用 Python UDF,請在該日期之前建立 UDF。現有 Python UDF 將繼續正常運作。如需詳細資訊,請參閱部落格文章

工作負載管理

本節說明工作負載管理 (WLM),其可協助您了解 Amazon Redshift 如何準備和執行查詢。

Amazon Redshift 工作負載管理 (WLM) 提供了在工作負載內彈性管理優先順序的方式,如此一來,快速執行的簡短查詢就不會卡在佇列中長時間執行的查詢之後。Amazon Redshift 會在執行時期根據服務類別建立查詢佇列,服務類別定義各種佇列的組態參數,包括內部系統佇列和使用者可存取的佇列。從使用者的角度來看,使用者可存取的服務類別和佇列在功能上是相同的。為了保持一致,本文件使用佇列一詞,來同時表示使用者可存取的服務類別,以及執行時間佇列。

Redshift 提供自動工作負載管理功能,稱為自動 WLM,經過調校後可處理不同的工作負載,也是建議的預設值。利用自動 WLM,Redshift 會在查詢到達時判斷資源使用率,並動態判斷要在主要叢集、並行擴展叢集上執行查詢,還是將每個查詢傳送至佇列。(將查詢排入佇列時,自動 WLM 會優先處理較短持續時間的查詢。) 自動 WLM 會充分利用總輸送量,並讓您維持高效率的資料倉儲資源。您執行工作負載時,不必擔心其大小或排程方式。自動 WLM 是佈建叢集的預設值。如需相關資訊,請參閱實作自動 WLM

注意

Amazon Redshift Serverless 工作群組一律使用自動 WLM。

在執行大量查詢或資源密集的查詢時,工作負載管理可以在工作負載於本機資源上佇列時,擴展到其他運算資源。使用自動 WLM 的並行擴展可針對幾乎無限的並行使用者和並行查詢支援一致的效能。

如果您需要精細的手動最佳化,Redshift 佈建叢集提供手動 WLM。這種方式是由客戶管理資源配置、查詢並行和佇列。當查詢執行時,WLM 會根據使用者的使用者群組,或是藉由比對佇列組態中所列的查詢群組,將查詢指派至佇列。這是透過使用者設定的查詢群組標籤來設定。如需詳細資訊,請參閱實作手動 WLM

雖然手動 WLM 可以隨著時間進行微調以符合您的工作負載模式,但在大多數情況下,我們並不建議使用它,因為其靜態性質可能會讓您更難以適應一整天或長時間不斷變化的工作負載。此方法需要更多的監控和持續調校。此外,在許多情況下,手動 WLM 不會像自動 WLM 一樣有效率地使用運算資源,例如,在手動設定佇列來限制其分配到的記憶體的情況。

衡量工作負載管理組態是否成功的重要指標是系統輸送量,換句話說,就是已成功完成多少查詢。系統輸送量是以每秒查詢數來計算。如需系統指標的詳細資訊,請參閱監控 Amazon Redshift 叢集效能

管理 WLM 組態最簡單的方式,是使用 Amazon Redshift 管理主控台。您也可以使用 Amazon Redshift 命令列介面 (CLI) 或 Amazon Redshift API。如需建置和使用工作負載管理機制的相關資訊,請參閱實作工作負載管理