

 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/)。

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

# 並行擴展
<a name="concurrency-scaling"></a>

使用並行擴展功能，您可以藉由持續的快速查詢效能，支援數千個並行使用者和並行查詢。開啟並行擴展時，Amazon Redshift 會自動新增額外的叢集容量以處理增加的讀取及寫入查詢。使用者會看到最新資料，無論查詢是執行於主要叢集或並行擴展叢集。

您可藉由設定 (WLM) 佇列來管理要將哪些查詢傳送至並行擴展叢集。當您開啟並行擴展時，合格查詢會傳送到並行擴展叢集，而非在佇列中等待。

我們只會向您收取並行擴展叢集實際執行查詢的費用。如需定價的相關資訊，包括費用應計方式與最低費用，請參閱[並行擴展定價](https://aws.amazon.com/redshift/pricing/#Concurrency_Scaling_pricing)。

**Topics**
+ [並行擴展功能](#concurrency-scaling-capabilities)
+ [並行擴展的限制](#concurrency-scaling-limitations)
+ [AWS 區域 用於並行擴展](#concurrency-scaling-regions)
+ [並行擴展候選項目](#concurrency-scaling-candidates)
+ [設定並行擴展佇列](#concurrency-scaling-queues)
+ [監控並行擴展](#concurrency-scaling-monitoring)
+ [並行擴展系統檢視](#concurrency-scaling-monitoring-system-views)

## 並行擴展功能
<a name="concurrency-scaling-capabilities"></a>

當您為 WLM 佇列開啟並行擴展時，其適用於讀取操作，例如儀表板查詢。也適用於常用的寫入操作，例如用於資料擷取和處理的陳述式。

### 寫入操作的並行擴展功能
<a name="concurrency-scaling-capabilities-write-operations"></a>

並行擴展支援常用的寫入操作，例如擷取、轉換和載入 (ETL) 陳述式。當您想要在叢集收到大量要求時維持一致的回應時間時，寫入操作的並行擴展特別有用。這會改善在主叢集上爭用資源的寫入操作輸送量。

並行擴展支援 COPY、INSERT、DELETE、UPDATE、CREATE TABLE AS (CTAS) 和 VACUUM 陳述式。此外，並行擴展支援手動重新整理具體化視觀表 (MVs和自動清空操作。不支援其他資料操作語言 (DML) 陳述式和資料定義語言 (DDL) 陳述式。如果不支援的寫入陳述式 (例如沒有 TABLE AS 的 CREATE) 包含在支援的寫入陳述式之前的明確交易中，則不會在並行擴展叢集上執行任何寫入陳述式。

當您為並行擴展累積點數時，此點數累積適用於讀取與寫入操作。

## 並行擴展的限制
<a name="concurrency-scaling-limitations"></a>

 以下是使用 Amazon Redshift 並行擴展的限制：
+ 不支援對使用交錯排序索引鍵的資料表進行查詢。
+ 不支援對暫存資料表進行查詢。
+ 不支援可存取受限制網路或虛擬私有雲端 (VPC) 組態保護的外部資源的查詢。
+ 不支援包含 Python 使用者定義函數 (UDF) 和 Lambda UDF 的查詢。
+ 不支援可存取系統資料表、PostgreSQL 目錄資料表或無備份資料表的查詢。
+ 若設有較嚴格的 IAM 政策許可，則不支援存取外部資源的 COPY 或 UNLOAD 查詢。這包括套用至 Amazon S3 儲存貯體或 DynamoDB 資料表等資源或套用至來源的許可。IAM 來源可包括以下各項：
  + `aws:sourceVpc` - 來源 VPC。
  + `aws:sourceVpce` - 來源 VPC 端點。
  + `aws:sourceIp` - 來源 IP 位址。

  在某些情況下，您可能需要移除限制資源或來源的許可，以便將存取資源的 COPY 和 UNLOAD 查詢傳送至並行擴展叢集。

   如需資源政策的詳細資訊，請參閱 AWS Identity and Access Management 使用者指南中的[政策類型](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policy-types)，以及[使用儲存貯體政策控制 VPC 端點的存取](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies-vpc-endpoint.html)。
+ 大多數 DDL 操作不支援寫入操作的 Amazon Redshift 並行擴展，例如 CREATE TABLE。
+ 不支援 COPY 命令的 ANALYZE。
+ 不支援在 DISTSTYLE 設定為 ALL 的目標資料表上進行寫入操作。
+ 不支援以下檔案格式的 COPY：
  + Parquet
  + ORC
+ 不支援對具有身分資料欄的資料表進行寫入操作。
+ Amazon Redshift 只在 Amazon Redshift RA3 節點上支援寫入操作的並行擴展。其他節點類型不支援寫入操作的並行擴展。

## AWS 區域 用於並行擴展
<a name="concurrency-scaling-regions"></a>

透過 Amazon Redshift，您可以使用並行擴展來管理不同 Redshift 叢集的並行工作負載需求。本主題詳細說明您可以在哪些區域中搭配 Amazon Redshift 使用並行擴展。

並行擴展適用於以下 AWS 區域：
+ 美國東部 (維吉尼亞北部) 區域 (us-east-1)
+ 美國東部 (俄亥俄) 區域 (us-east-2)
+ 美國西部 (加利佛尼亞北部) 區域 (us-west-1)
+ 美國西部 (奧勒岡) 區域 (us-west-2) 
+ 非洲 (開普敦) 區域 (af-south-1)
+ 亞太區域 (孟買) 區域 (ap-south-1)
+ 亞太區域 (海德拉巴) 區域 (ap-south-2)
+ 亞太區域 (首爾) 區域 (ap-northeast-2)
+ 亞太區域 (大阪) (ap-northeast-3)
+ 亞太區域 (新加坡) 區域 (ap-southeast-1)
+ 亞太區域 (雪梨) 區域 (ap-southeast-2)
+ 亞太區域 (雅加達) 區域 (ap-southeast-3)
+ 亞太區域 (馬來西亞) 區域 (ap-southeast-5)
+ 亞太區域 (紐西蘭) 區域 (ap-southeast-6)
+ 亞太區域 (泰國) (ap-southeast-7)
+ 亞太區域 (香港) 區域 (ap-east-1)
+ 亞太區域 (台北) 區域 (ap-east-2)
+ 亞太區域 (東京) 區域 (ap-northeast-1)
+ 加拿大 (中部) 區域 (ca-central-1)
+ 加拿大西部 (卡加利) 區域 (ca-west-1)
+ 中國 (北京) 區域 (cn-north-1)
+ 中國 (寧夏) 區域 (cn-northwest-1)
+ 歐洲 (法蘭克福) 區域 (eu-central-1)
+ 歐洲 (愛爾蘭) 區域 (eu-west-1)
+ 歐洲 (倫敦) 區域 (eu-west-2)
+ 歐洲 (巴黎) 區域 (eu-west-3)
+ 歐洲 (斯德哥爾摩) 區域 (eu-north-1) 
+ 歐洲 (蘇黎世) 區域 (eu-central-2) 
+ 歐洲 (米蘭) 區域 (eu-south-1) 
+ 歐洲 (西班牙) 區域 (eu-south-2) 
+ 以色列 (特拉維夫) 區域 (il-central-1) 
+ 中東 (巴林) 區域 (me-south-1) 
+ 墨西哥 (中部) (mx-central-1)
+ 南美洲 (聖保羅) 區域 (sa-east-1)
+ AWS GovCloud （美國東部）
+ AWS GovCloud （美國西部）

## 並行擴展候選項目
<a name="concurrency-scaling-candidates"></a>

使用 Amazon Redshift 即可橫向擴充查詢處理，以加速執行並行查詢。下列主題說明 Amazon Redshift 用來判斷要將哪些查詢路由至並行擴展的準則。

只有在主要叢集符合以下要求時，查詢才會路由至並行擴展叢集：
+ EC2-VPC 平台。
+ 節點類型必須是 dc2.8xlarge、dc2.large、ra3.large、ra3.xlplus、ra3.4xlarge 或 ra3.16xlarge。只有 Amazon Redshift RA3 節點支援寫入操作的並行擴展。
+ 最多 32 個運算節點可用於節點類型為 ra3.xlplus、ra3.4xlarge 或 ra3.16xlarge 的叢集。此外，最初建立叢集時，主要叢集的節點數不得超過 32 個節點。例如，如果叢集最初建立時為 40 個節點，即使叢集目前具備 20 個節點，也不符合並行擴展的需求。相反的，如果 DC2 叢集目前具備 40 個節點，但最初建立時僅具備 20 個節點，便符合並行擴展的需求。
+ 非單一節點叢集。

## 設定並行擴展佇列
<a name="concurrency-scaling-queues"></a>

您可以使用 Amazon Redshift 透過設定並行擴展來管理並行和系統資源。並行擴展佇列可讓您設定可並行執行的查詢數量或使用者工作階段數量限制。下節說明如何在 Amazon Redshift 中啟用並行擴展佇列，讓您有效地處理並行查詢和使用者工作階段。

您可以藉由在工作負載管理 (WLM) 佇列中啟用並行擴展的方式，將查詢路由至並行擴展叢集。若要開啟佇列的並行擴展，請將 **Concurrency Scaling mode (並行擴展模式)** 值設定為 **auto (自動)**。

當路由至已啟用並行擴展之佇列的查詢數量超過並行容量時 (無論是手動設定或自動判斷的容量)，就會將合格查詢傳送至並行擴展叢集。當主叢集上有佇列位置可用時，查詢就會路由至主叢集並在主叢集上執行。就如同任何 WLM 佇列，您可以依據使用者群組或以查詢群組標籤來標記查詢，或是根據[將查詢指派給佇列](https://docs.aws.amazon.com/redshift/latest/dg/cm-c-executing-queries.html)中的比對條件，將查詢路由至並行擴展佇列。您也可以藉由定義 [WLM 查詢監控規則](cm-c-wlm-query-monitoring-rules.md) 來路由查詢。例如，您可以將耗時超過 5 秒的所有查詢路由至並行擴展佇列。請記住，佇列行為可能會因您使用自動 WLM 還是手動 WLM 而有所不同。如需詳細資訊，請參閱[實作自動 WLM](https://docs.aws.amazon.com/redshift/latest/dg/automatic-wlm.html) 或[實作手動 WLM](https://docs.aws.amazon.com/redshift/latest/dg/cm-c-defining-query-queues.html)。

並行擴展叢集的預設數目為一。可使用的並行擴展叢集數目由 [max\$1concurrency\$1scaling\$1clusters](r_max_concurrency_scaling_clusters.md) 控制。

## 監控並行擴展
<a name="concurrency-scaling-monitoring"></a>

您可以使用 Amazon Redshift 監控和管理並行擴展，以最佳化資料倉儲工作負載的效能和成本效益。並行擴展可讓 Amazon Redshift 在工作負載需求增加時自動新增額外的叢集容量，以及在需求減少時移除該容量。下節提供監控 Amazon Redshift 叢集並行擴展的指引。

若要查看查詢是執行於主要叢集或並行擴展叢集，您可以瀏覽至 Amazon Redshift 主控台中的**叢集**，然後選擇一個叢集。然後選擇**查詢監控**索引標籤和**工作負載並行**，檢視有關執行中查詢和佇列查詢的資訊。

若要找出執行時間，請查詢 STL\$1QUERY 資料表並篩選 `concurrency_scaling_status` 欄。以下查詢可針對執行於並行擴展叢集與執行於主要叢集的查詢，比較其佇列時間與執行時間。

```
SELECT w.service_class AS queue
, CASE WHEN q.concurrency_scaling_status = 1 THEN 'concurrency scaling cluster' ELSE 'main cluster' END as concurrency_scaling_status
, COUNT( * ) AS queries
, SUM( q.aborted ) AS aborted
, SUM( ROUND( total_queue_time::NUMERIC / 1000000,2) ) AS queue_secs
, SUM( ROUND( total_exec_time::NUMERIC / 1000000,2) ) AS exec_secs
FROM stl_query q
JOIN stl_wlm_query w
USING (userid,query)
WHERE q.userid > 1
AND q.starttime > '2019-01-04 16:38:00'
AND q.endtime < '2019-01-04 17:40:00'
GROUP BY 1,2
ORDER BY 1,2;
```

根據您的需求調整 `starttime` 和 `endtime` 值。

## 並行擴展系統檢視
<a name="concurrency-scaling-monitoring-system-views"></a>

透過 Amazon Redshift，您可以使用並行擴展系統檢視來監控和管理叢集中的並行擴展活動。下節說明查詢這些系統檢視和解譯結果，以有效地利用 Amazon Redshift 環境中的並行擴展。

有一組字首為 SVCS 的系統檢視可提供來自系統日誌資料表的詳細資訊，內容是有關主要叢集與並行擴展叢集上的查詢。

以下檢視提供與對應的 STL 檢視或 SVL 檢視類似的資訊：
+ [SVCS\$1ALERT\$1EVENT\$1LOG](r_SVCS_ALERT_EVENT_LOG.md) 
+ [SVCS\$1COMPILE](r_SVCS_COMPILE.md) 
+ [SVCS\$1EXPLAIN](r_SVCS_EXPLAIN.md) 
+ [SVCS\$1PLAN\$1INFO](r_SVCS_PLAN_INFO.md) 
+ [SVCS\$1QUERY\$1SUMMARY](r_SVCS_QUERY_SUMMARY.md) 
+ [SVCS\$1STREAM\$1SEGS](r_SVCS_STREAM_SEGS.md) 

以下檢視專屬於並行擴展。
+ [SVCS\$1CONCURRENCY\$1SCALING\$1USAGE](r_SVCS_CONCURRENCY_SCALING_USAGE.md) 

如需並行擴展的相關資訊，請參閱《Amazon Redshift 管理指南》**中的下列主題。
+ [檢視並行擴展資料](https://docs.aws.amazon.com/redshift/latest/mgmt/performance-metrics-concurrency-scaling.html) 
+ [檢視查詢執行期間的叢集效能](https://docs.aws.amazon.com/redshift/latest/mgmt/performance-metrics-query-cluster.html) 
+ [檢視查詢詳細資訊](https://docs.aws.amazon.com/redshift/latest/mgmt/performance-metrics-query-execution-details.html) 