Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 Python UDF 將繼續正常運作至 2026 年 6 月 30 日。如需詳細資訊,請參閱部落格文章。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定查詢佇列
Amazon Redshift Serverless 支援佇列型查詢資源管理。您可以使用不同工作負載的自訂監控規則來建立專用查詢佇列。此功能提供對資源用量的精細控制。
查詢監控規則 (QMR) 僅適用於 Redshift Serverless 工作群組層級,影響此工作群組中執行的所有查詢。佇列型方法可讓您建立具有不同監控規則的佇列。您可以將這些佇列指派給特定使用者角色和查詢群組。每個佇列都會獨立運作,規則只會影響該佇列中的查詢。
佇列可讓您設定指標型述詞和自動化回應。例如,您可以設定規則來自動中止超過時間限制或耗用太多資源的查詢。
考量事項
使用無伺服器佇列時,請考慮下列事項:
-
Redshift Serverless 佇列不支援 Amazon Redshift 佈建叢集中使用的下列工作負載管理 (WLM) 組態金鑰:max_execution_time、short_query_queue、auto_wlm、concurrency_scaling、priorityqueue_type、query_concurrency、memory_percent_to_use、user_group、、user_group_wild_card。
此外,Serverless 不支援 change_query_priority 動作。
-
Amazon Redshift Serverless 不支援躍點動作 (在佇列之間移動查詢)。
-
僅 Amazon Redshift 佈建叢集支援佇列優先順序。
-
Amazon Redshift Serverless 會自動管理擴展和資源配置,以獲得最佳效能,因此您不需要手動設定佇列優先順序。
設定查詢佇列
您可以使用 AWS 管理主控台 AWS CLI或 Redshift Serverless API,在無伺服器工作群組的限制索引標籤下建立佇列。
- Console
-
請依照下列步驟,為您的無伺服器工作群組建立佇列。
-
導覽至 Redshift Serverless 工作群組。
-
選取限制索引標籤。
-
在查詢佇列下,選擇啟用佇列。
啟用查詢佇列是永久變更。一旦啟用,您就無法還原至無佇列監控。
-
使用下列參數設定佇列:
佇列層級參數
name - 佇列識別符 (必要、唯一、非空白)
user_role - 使用者角色陣列 (選用)
query_group - 查詢群組陣列 (選用)
query_group_wild_card - 0 或 1 以啟用萬用字元比對 (選用)
user_group_wild_card - 0 或 1 以啟用萬用字元比對 (選用)
rules - 監控規則陣列 (選用)
規則層級參數
rule_name - 唯一識別符,最多 32 個字元 (必要)
predicate - 條件陣列,1-3 個述詞 (必要)
action - "abort" 或 "log" (必要)
述詞層級參數
限制
最多 8 個佇列
所有佇列最多 25 個規則
每個規則最多 3 個述詞
規則名稱全域必須是唯一的
範例組態
三個佇列範例:一個用於短逾時的儀表板查詢,一個用於長逾時的 ETL 查詢,另一個用於管理員佇列:
[
{
"name": "dashboard",
"user_role": ["analyst", "viewer"],
"query_group": ["reporting"],
"query_group_wild_card": 1,
"rules": [
{
"rule_name": "short_timeout",
"predicate": [
{
"metric_name": "query_execution_time",
"operator": ">",
"value": 60
}
],
"action": "abort"
}
]
},
{
"name": "ETL",
"user_role": ["data_scientist"],
"query_group": ["analytics", "ml"],
"rules": [
{
"rule_name": "long_timeout",
"predicate": [
{
"metric_name": "query_execution_time",
"operator": ">",
"value": 3600
}
],
"action": "log"
},
{
"rule_name": "memory_limit",
"predicate": [
{
"metric_name": "query_temp_blocks_to_disk",
"operator": ">",
"value": 100000
}
],
"action": "abort"
}
]
},
{
"name": "admin_queue",
"user_role": ["admin"],
"query_group": ["admin"]
}
]
在此範例中:
- CLI
-
您可以使用 CreateWorkgroup 或 UpdateWorkgroup APIs搭配 wlm_json_configuration 組態參數來管理佇列,以 JSON 格式指定佇列。
aws redshift-serverless create-workgroup \
--workgroup-name test-workgroup \
--namespace-name test-namespace \
--config-parameters '[{"parameterKey": "wlm_json_configuration", "parameterValue": "[{\"name\":\"dashboard\",\"user_role\":[\"analyst\",\"viewer\"],\"query_group\":[\"reporting\"],\"query_group_wild_card\":1,\"rules\":[{\"rule_name\":\"short_timeout\",\"predicate\":[{\"metric_name\":\"query_execution_time\",\"operator\":\">\",\"value\":60}],\"action\":\"abort\"}]},{\"name\":\"ETL\",\"user_role\":[\"data_scientist\"],\"query_group\":[\"analytics\",\"ml\"],\"rules\":[{\"rule_name\":\"long_timeout\",\"predicate\":[{\"metric_name\":\"query_execution_time\",\"operator\":\">\",\"value\":3600}],\"action\":\"log\"},{\"rule_name\":\"memory_limit\",\"predicate\":[{\"metric_name\":\"query_temp_blocks_to_disk\",\"operator\":\">\",\"value\":100000}],\"action\":\"abort\"}]},{\"name\":\"admin_queue\",\"user_role\":[\"admin\"],\"query_group\":[\"admin\"]}]"}]'
最佳實務
當您使用無伺服器佇列時,請記住下列最佳實務。