

 Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 Python UDF 將繼續正常運作至 2026 年 6 月 30 日。如需詳細資訊，請參閱[部落格文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 Amazon Redshift Serverless 監控查詢和工作負載
<a name="serverless-monitoring"></a>

您可以使用所提供的系統檢視來監控 Amazon Redshift Serverless 查詢和工作負載。

監控檢視**是 Amazon Redshift Serverless 中用來監控查詢和工作負載用量的系統檢視。這些檢視位於 `pg_catalog` 結構描述中。可用的系統檢視旨在為您提供要監控 Amazon Redshift Serverless 所需的資訊，這比已佈建叢集所需的資訊簡單得多。SYS 系統檢視旨在與 Amazon Redshift Serverless 搭配運作。若要顯示這些檢視所提供的資訊，請執行 SQL SELECT 陳述式。

定義系統檢視是為了支援下列監控目標。

**工作負載監控**  
您可以監控一段時間內的查詢活動，以便執行下列操作：  
+ 了解工作負載模式，以知道什麼是正常 (基準) 以及商業服務水準協議 (SLA) 中的內容。
+ 快速識別偏離正常的情況，這可能是短暫的問題或需要採取進一步行動的事件。

**資料載入與卸載的監控**  
將資料移入和移出 Amazon Redshift Serverless 是一項關鍵功能。您可以使用 COPY 和 UNLOAD 來載入或卸載資料，而且您必須密切監控每一傳輸資料列的位元組和已完成檔案的進度，以追蹤商業 SLA 的遵循情況。這一般會透過頻繁 (即每分鐘) 執行系統資料表查詢來追蹤進度，並在偵測到重大偏差時提出調查/糾正行動的提醒。

**失敗和問題診斷**  
在某些情況下，您必須針對查詢或執行期的失敗採取行動。開發人員依賴系統資料表來自我診斷問題並確定正確的補救措施。

**效能調校**  
您可能需要針對從一開始就不符合 SLA 要求的查詢，或是隨時間降級的查詢進行微調。若要微調，您必須具有執行期的詳細資訊，包括執行計劃、統計資料、持續時間和資源取用。您需要有違規查詢的基準資料，以判斷偏差的原因，並指導您如何改善效能。

**使用者物件事件監控**  
您需要監控使用者物件上的動作和活動，例如重新整理具體化視觀表、清空和分析。這包括系統管理的事件，如具體化視觀表的自動重新整理 您會想要監控使用者啟動的事件何時結束，或是系統啟動的最後一次成功執行。

**帳單的用量追蹤**  
您可以監控一段時間內的用量趨勢，以便執行下列操作：  
+ 了解預算規劃和業務擴展估算。
+ 找出潛在的成本節約機會，例如移除冷資料。

使用 SYS 系統檢視以監控 Amazon Redshift Serverless。如需 SYS 監控檢視的詳細資訊，請參閱《Amazon Redshift 資料庫開發人員指南》中的 [SYS 監控檢視](https://docs.aws.amazon.com//redshift/latest/dg/serverless_views-monitoring.html)。

# 新增查詢監控政策
<a name="serverless-monitor-access"></a>

超級使用者可以為非超級使用者的使用者提供存取權，讓非超級使用者可以針對所有使用者執行查詢監控。首先，請為使用者或角色新增政策，以提供查詢監控存取權。然後，向使用者或角色授予查詢監控許可。

**新增查詢監控政策**

1. 選擇 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在 **Access management** (存取管理) 下，請選擇 **Policies** (政策)。

1. 選擇**建立政策**。

1. 選擇 **JSON**，並貼上下列政策定義。

------
#### [ JSON ]

****  

   ```
   {
   "Version":"2012-10-17",		 	 	 
   "Statement": [
   {
   "Effect": "Allow",
   "Action": [
       "redshift-data:ExecuteStatement",
       "redshift-data:DescribeStatement",
       "redshift-data:GetStatementResult",
       "redshift-data:ListDatabases"
   ],
   "Resource": "*"
   },
   {
   "Effect": "Allow",
   "Action": "redshift-serverless:GetCredentials",
   "Resource": "*"
   }
   ]
   }
   ```

------

1. 選擇**檢閱政策**。

1. 對於 **Name (名稱)**，輸入政策的名稱，例如 `query-monitoring`。

1. 選擇**建立政策**。

建立政策後，就可以授予適當許可。

若要提供存取權，請新增權限至您的使用者、群組或角色：
+ 中的使用者和群組 AWS IAM Identity Center：

  建立權限合集。請按照《*AWS IAM Identity Center 使用者指南*》中的[建立權限合集](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)說明進行操作。
+ 透過身分提供者在 IAM 中管理的使用者：

  建立聯合身分的角色。遵循《*IAM 使用者指南*》的[為第三方身分提供者 (聯合) 建立角色](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html)中的指示。
+ IAM 使用者：
  + 建立您的使用者可擔任的角色。請按照《*IAM 使用者指南*》的[為 IAM 使用者建立角色](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html)中的指示。
  + (不建議) 將政策直接附加至使用者，或將使用者新增至使用者群組。請遵循《*IAM 使用者指南*》的[新增許可到使用者 (主控台)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) 中的指示。

# 對使用者授予查詢監控許可
<a name="serverless-monitor-access-user"></a>

具有 `sys:monitor` 許可的使用者可以檢視所有查詢。此外，具有 `sys:operator` 許可的使用者可以取消查詢、分析查詢歷史記錄，以及執行清空操作。

**向使用者授予查詢監控許可**

1. 輸入下列命令來提供系統監控存取權，其中 *user-name* 是您想要為其提供存取權之使用者的名稱。

   ```
   grant role sys:monitor to "IAM:user-name";
   ```

1. (選擇性) 輸入下列命令來提供系統操作人員存取權，其中 *user-name* 是您想要為其提供存取權之使用者的名稱。

   ```
   grant role sys:operator to "IAM:user-name";
   ```

# 對角色授予查詢監控許可
<a name="serverless-monitor-access-role"></a>

使用者若有具有 `sys:monitor` 許可的角色，便可以檢視所有查詢。此外，使用者若有具有 `sys:operator` 許可的角色，便可以取消查詢、分析查詢歷史記錄，以及執行清空操作。

**向角色授予查詢監控許可**

1. 輸入下列命令來提供系統監控存取權，其中 *role-name* 是您想要為其提供存取權之角色的名稱。

   ```
   grant role sys:monitor to "IAMR:role-name";
   ```

1. (選擇性) 輸入下列命令來提供系統操作人員存取權，其中 *role-name* 是您想要為其提供存取權之角色的名稱。

   ```
   grant role sys:operator to "IAMR:role-name";
   ```

# 設定用量限制，包括設定 RPU 限制
<a name="serverless-workgroup-max-rpu"></a>

在工作群組的**限制**索引標籤下，您可以新增一或多個用量限制，以控制您在給定期間內使用的 RPU 上限，或設定資料共用用量限制。

1. 選擇**管理用量限制**。限制區段會顯示在**按期間計算用量**面板的底部。

1. 以小時為單位設定用量限制。

1. 首先，選擇**頻率**，即**每日**、**每週**或**每月**。這會設定用量限制的期間。在這種情況下，選擇**每日**可提供更詳細的控制能力。

1. 以小時數為單位設定用量限制。

1. 設定動作。這些項目如下：
   + **記錄至系統資料表** - 將記錄新增至系統檢視 [SYS\$1QUERY\$1HISTORY](https://docs.aws.amazon.com/redshift/latest/dg/SYS_QUERY_HISTORY.html)。您可以查詢此檢視中的 `usage_limit` 欄，以判斷查詢是否超過限制。
   + **提醒** — 使用 Amazon SNS 設定通知訂閱，並在超出限制時傳送通知。您可以選擇現有的 Amazon SNS 主題，或建立新的主題。
   + **關閉使用者查詢** — 停用查詢以停止 Amazon Redshift Serverless 的使用。其也會傳送通知。

   前兩個動作會提供參考資訊，最後一個動作則會關閉查詢的處理。

1. 您可以選擇性地設定**跨區域資料共用用量限制**，以限制取用者可查詢多少從生產者區域傳輸至取用者區域的資料。若要這麼做，請選擇**新增限制**，然後遵循步驟來進行。

1. 在頁面底部選擇**儲存變更**以儲存您限制。

1. 視需要設定最多 3 個限制。

如需更多有關 RPU 和帳單的概念性資訊，請參閱 [Amazon Redshift Serverless 的帳單](https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-billing.html)。

# 設定查詢限制
<a name="serverless-workgroup-query-limits"></a>

在工作群組的**限制**索引標籤下，您可以新增限制以監控效能和限制。如需查詢監控限制的相關資訊，請參閱 [WLM 查詢監控規則](https://docs.aws.amazon.com/redshift/latest/dg/cm-c-wlm-query-monitoring-rules.html)。

1. 選擇**管理查詢限制**。在**管理查詢限制**對話方塊上選擇**新增新的限制**。

1. 選擇您要設定的限制類型，然後輸入其對應限制的值。

1. 選擇**儲存變更**以儲存限制。

當您變更查詢限制和組態參數時，資料庫將會重新啟動。

# 設定查詢佇列
<a name="serverless-workgroup-query-queues"></a>

Amazon Redshift Serverless 支援佇列型查詢資源管理。您可以建立專用的查詢佇列，採用自訂的監控規則來處理不同的工作負載。此功能可讓您精細控制資源用量。

查詢監控規則 (QMR) 僅適用於 Redshift Serverless 工作群組層級，影響此工作群組中執行的所有查詢。佇列式的方法可讓您建立具有不同監控規則的佇列。您可以將這些佇列指派給特定使用者角色和查詢群組。每個佇列都會獨立運作，而規則只會影響該佇列內的查詢。

佇列可讓您設定指標型述詞和自動回應。例如，您可以設定規則，以自動中止超過時間限制或耗用太多資源的查詢。

## 考量事項
<a name="serverless-workgroup-query-queues-considerations"></a>

使用無伺服器佇列時，請考慮下列事項：
+ Redshift Serverless 佇列不支援 Amazon Redshift 佈建叢集中使用的下列工作負載管理 (WLM) 組態金鑰：`max_execution_time`、`short_query_queue`、、`auto_wlm``concurrency_scaling`、`priority`、`queue_type``query_concurrency`、`memory_percent_to_use`、`user_group`、、`user_group_wild_card`。

  此外，Serverless 不支援 change\$1query\$1priority 動作。
+ Amazon Redshift Serverless 不支援跳轉動作 （在佇列之間移動查詢）。
+ 僅 Amazon Redshift 佈建叢集支援佇列優先順序。
+ Amazon Redshift Serverless 會自動管理擴展和資源配置，以獲得最佳效能，因此您不需要手動設定佇列優先順序。

## 設定查詢佇列
<a name="serverless-workgroup-query-queues-setup"></a>

您可以使用 AWS 管理主控台 AWS CLI或 Redshift Serverless API，在無伺服器工作群組的限制索引標籤下建立佇列。

------
#### [ Console ]

請依照下列步驟，為您的無伺服器工作群組建立佇列。

1. 導覽至 Redshift Serverless 工作群組。

1. 選取限制索引標籤。

1. 在**查詢佇列**下，選擇**啟用佇列**。
**重要**  
啟用查詢佇列是永久變更。一旦啟用，您就無法還原至無佇列監控。

1. 使用下列參數設定佇列：

   **佇列層級參數**
   + `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" （必要）

   **述詞層級參數**
   + `metric_name` - 要監控的指標 （必要）
   + `operator` - "="、"<" 或 ">" （必要）
   + `value` - 數值閾值 （必要）

   **限制**
   + 最多 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"]
  }
]
```

在此範例中：
+ 如果儀表板查詢執行超過 60 秒，則會中止查詢
+ 如果 ETL 查詢執行時間超過一小時，則會記錄這些查詢
+ 管理員佇列沒有任何資源限制

------
#### [ 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\"]}]"}]'
```

------

## 最佳實務
<a name="serverless-workgroup-query-queues-best-practices"></a>

當您使用無伺服器佇列時，請記住下列最佳實務。
+ 對於具有不同限制需求的工作負載 （例如 ETL、報告或臨機操作分析），請使用個別佇列。
+ 從簡單的閾值開始，並根據查詢行為和用量模式進行調整。您可以使用系統資料表和檢視中[記錄的資料表和檢視來監控查詢用量模式，以取得查詢監控規則](https://docs.aws.amazon.com/redshift/latest/dg/cm-c-wlm-query-monitoring-rules.html#cm-c-wlm-qmr-tables-and-views)。

# 使用儀表板檢查 Amazon Redshift Serverless 摘要資料
<a name="serverless-dashboard"></a>

Amazon Redshift Serverless 儀表板包含一組面板，這些面板會顯示一目了然的指標以及有關工作群組和命名空間的資訊。這些面板包括下列項目：
+ **資源摘要** — 顯示有關 Amazon Redshift Serverless 的高階資訊，例如已使用的儲存和其他指標。
+ **查詢摘要** — 顯示有關查詢的資訊，包括已完成的查詢和執行中的查詢。選擇**檢視詳細資訊**以移至具有其他篩選條件的畫面。
+ **已使用的 RPU 容量** — 顯示給定期間內已使用的整體容量，例如前 10 個小時。
+ **資料共用** - 顯示資料共用的計數，用於在 AWS 帳戶之間共用 darta。這個指標會顯示哪些資料共用需要授權以及其他資訊。
+ **總運算用量** - 顯示所選時間範圍內所選工作群組的總使用 RPU 時數 (最多過去 7 天)。

您可以從儀表板快速深入了解這些可用指標，以查看有關 Amazon Redshift Serverless 的詳細資訊，或是檢閱查詢或追蹤工作項目。