自 2025 年 11 月 1 日起,Amazon Redshift 將不再支援建立新的 Python UDFs。如果您想要使用 Python UDFs,請在該日期之前建立 UDFs。現有的 Python UDFs將繼續如常運作。如需詳細資訊,請參閱部落格文章
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
動態 WLM 範例
使用 Amazon Redshift,您可以使用動態 WLM (工作負載管理) 自動管理 Amazon Redshift 叢集中的工作負載分佈和資源分配。動態 WLM 是工作負載管理 (WLM) 組態的範例,可根據工作負載需求動態調整記憶體配置,從而實現最佳的並行和效能。下一節提供實作和設定 Amazon Redshift 叢集動態 WLM 的詳細資訊。
假設您的叢集 WLM 使用下列動態屬性設定兩個佇列。
佇列 | 並行數量 | 要使用的記憶體 % |
---|---|---|
1 |
4 |
50% |
2 |
4 |
50% |
現在,假設您的叢集有 200 GB 的記憶體可供查詢處理使用。(此為任意數字,僅供示範用途。) 如下列方程式所示,每個槽配置 25 GB。
(200 GB * 50% ) / 4 slots = 25 GB
接下來,您將 WLM 變更為使用下列動態屬性。
佇列 | 並行數量 | 要使用的記憶體 % |
---|---|---|
1 |
3 |
75% |
2 |
4 |
25% |
如下列方程式所示,佇列 1 中每個槽的新記憶體配置為 50 GB。
(200 GB * 75% ) / 3 slots = 50 GB
假設套用新組態時,查詢 A1、A2、A3 和 A4 在執行中,而查詢 B1、B2、B3 和 B4 會排入佇列。WLM 會動態重新設定查詢槽,如下所示。
步驟 | 執行中的查詢 | 目前槽計數 | 目標槽計數 | 配置的記憶體 | 可用的記憶體量 |
---|---|---|---|---|---|
1 | A1、A2、A3、A4 | 4 | 0 | 100 GB | 50 GB |
2 | A2、A3、A4 | 3 | 0 | 75 GB | 75 GB |
3 | A3、A4 | 2 | 0 | 50 GB | 100 GB |
4 | A3、A4、B1 | 2 | 1 | 100 GB | 50 GB |
5 | A4、B1 | 1 | 1 | 75 GB | 75 GB |
6 | A4、B1、B2 | 1 | 2 | 125 GB | 25 GB |
7 | B1、B2 | 0 | 2 | 100 GB | 50 GB |
8 | B1、B2、B3 | 0 | 3 | 150 GB | 0 GB |
-
WLM 會重新計算每個查詢槽的記憶體配置。佇列 1 最初配置 100 GB。新的佇列總共配置 150 GB,所以新佇列立即有 50 GB 可用。佇列 1 現在使用四個槽,且新的並行層級是三個槽,所以不會新增任何槽。
-
當一個查詢完成,就會移除槽並釋出 25 GB。佇列 1 現在有三個槽和 75 GB 的可用記憶體。新的組態規定每個新的槽要有 50 GB,但新的並行層級是三個槽,所以不會新增任何槽。
-
當第二個查詢完成,就會移除槽並釋出 25 GB。佇列 1 現在有兩個槽和 100 GB 的可用記憶體。
-
使用 50 GB 的可用記憶體新增一個槽。佇列 1 現在有三個槽和 50 GB 的可用記憶體。排入佇列的查詢現在可以路由至新的槽。
-
當第三個查詢完成,就會移除槽並釋出 25 GB。佇列 1 現在有兩個槽和 75 GB 的可用記憶體。
-
使用 50 GB 的可用記憶體新增一個槽。佇列 1 現在有三個槽和 25 GB 的可用記憶體。排入佇列的查詢現在可以路由至新的槽。
-
當第四個查詢完成,就會移除槽並釋出 25 GB。佇列 1 現在有兩個槽和 50 GB 的可用記憶體。
-
使用 50 GB 的可用記憶體新增一個槽。佇列 1 現在有三個槽,各有 50 GB,所有可用的記憶體都已配置。
轉移完成,所有查詢槽都可供排入佇列的查詢使用。