跳至內容

如何調整 Amazon Redshift 叢集的大小?

2 分的閱讀內容
0

我想調整 Amazon Redshift 叢集的大小,並且想知道調整大小對效能和計費有何影響。

簡短描述

若要調整叢集大小,請使用彈性調整大小或傳統調整大小。如果您的叢集符合資格,最佳實務是使用彈性調整大小。如果您的叢集不符合資格,請使用傳統調整大小。

解決方法

確定您的叢集資格

**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本

若要確認您的叢集是否符合彈性調整大小的資格,請執行 describe-node-configuration-options AWS CLI 命令:

aws redshift describe-node-configuration-options --cluster-identifier example-cluster-id --action-type resize-cluster

**注意:**將 example-cluster-id 替換為您的叢集 ID。

如果叢集符合彈性調整大小的資格,則輸出結果會類似以下內容:

{
  "NodeConfigurationOptionList": [
    {
      "NodeType": "dc2.large",
      "NumberOfNodes": 2,
      "EstimatedDiskUtilizationPercent": 0.01
    },
    {
      "NodeType": "ra3.16xlarge",
      "NumberOfNodes": 2,
      "EstimatedDiskUtilizationPercent": 0.01
    }
  ]
}

如果叢集不符合彈性調整大小的資格,則輸出結果類似以下內容:

{
  "NodeConfigurationOptionList": []
}

減少作業時間

當您對具有相同節點類型的叢集使用彈性調整大小時,該作業不會建立新叢集,並會快速完成。

使用傳統調整大小時,作業時間取決於以下因素:

  • 來源叢集上的工作負載。
  • 從來源叢集傳輸到目標叢集的資料表數量和大小。
  • 資料在計算節點和切片之間的分佈。
  • 來源叢集和目標叢集中的節點組態。

若要減少傳統調整大小的持續時間,請執行以下動作:

  • 遷移到 RA3 節點類型
  • 識別並修正分佈不均的資料表。若要識別分佈不均的資料表,請執行 AWS Labs 資料表檢查器指令碼。如需詳細資訊,請參閱 GitHub 網站上的 table_inspector。若要修正分佈不均的資料表,請選擇適當的分佈索引鍵
  • 移除未使用的資料表。若要識別未使用的資料表,請執行 AWS Labs 未掃描資料表摘要指令碼。如需詳細資訊,請參閱 GitHub 網站上的 unscanned_table_summary
    **注意:**未掃描的資料表摘要僅顯示過去 2-5 天的近期歷史記錄。若要擷取較長時期的使用資料,請使用系統物件持續性公用程式。如需詳細資訊,請參閱 GitHub 網站上的 SystemTablePersistence
  • 識別缺失的資料表資料。若要識別缺失的資料表資料,請使用 AWS Labs missing_table_stats 指令碼。如需詳細資訊,請參閱 GitHub 網站上的 missing_table_stats。然後,對這些資料表執行 ANALYZE 命令。

有關調整大小效能最佳化的詳細資訊,請參閱 Amazon Redshift 的 10 大效能調整技術。若要使用 Amazon Redshift 主控台檢查調整大小作業的狀態,請選擇叢集詳細資料頁面上的 Status (狀態) 索引標籤。Status (狀態) 索引標籤會顯示平均傳輸速率、已使用時間和剩餘時間。

調整叢集大小

使用彈性調整大小來變更叢集節點類型、節點數量,或兩者皆變更。

當彈性調整大小不支援叢集大小或節點變更時,請使用傳統調整大小

對調整大小作業問題進行疑難排解

在調整大小作業期間,資料表的大小可以增加或減少。如需詳細資訊,請參閱為什麼 Amazon Redshift 已佈建叢集中的資料表佔用的磁碟儲存空間多於或少於預期?

如果您的叢集在 AWS CLI 中狀態為 NONE,則表示 Amazon Redshift 仍在佈建目標叢集。在佈建階段完成之前,您的目標叢集不會複製。在 Amazon Redshift 佈建目標叢集後,狀態將變更為 IN_PROGRESS

如果您的 AWS CloudFormation StackSets 未調整大小,且您收到內部錯誤訊息,請檢查叢集是否符合彈性調整大小的資格。錯誤訊息類似以下內容: "An internal error has occurred.Please try your query again at a later time." (發生內部錯誤。請稍後再嘗試查詢。) 出現這種情況的原因是,CloudFormation 堆疊使用彈性調整大小,並且預設設定了 Classic:false

如果您收到錯誤訊息 "Please choose a larger target cluster," (請選擇較大的目標叢集),則表示您的資料不適合目標叢集。使用更多節點或不同的節點類型來調整 Amazon Redshift 叢集的大小。

若要在作業完成之前取消傳統調整大小作業,請從 Amazon Redshift 主控台中的叢集清單中選擇 Cancel resize (取消調整大小)。

調整大小叢集的計費

在調整大小作業期間,AWS 會針對您可用的叢集進行計費。例如,在調整大小作業期間,AWS 會向您收取來源組態的費用。調整大小完成後,AWS 將不再針對來源組態進行計費。一旦叢集狀態變成可用,就會開始對目標組態進行計費。

當您將較小的節點類型 (例如 large 或 xlarge) 調整為較大的節點類型 (例如 8xlarge) 時,您叢集的每個節點會需要更多的儲存空間。每個節點的儲存空間越大,執行 COMMIT 作業時寫入的中繼資料就越多。因此,對於較大的節點,單一 COMMIT 作業的基本成本較高。如果您同時執行多個小型 COMMIT 作業,您可能會發現效能下降。為了提高效能,請將多個變更合併成單一的 COMMIT 作業。

如果您購買了預留執行個體,您的計費將依據調整後的叢集組態、預留節點類型和預留節點數量而定。如需詳細資訊,請參閱預留節點的運作方式

相關資訊

對 Amazon Redshift 中的連線問題進行疑難排解

使用 SQLWorkbench 和 psql 為 Amazon Redshift 建立高品質的基準測試

叢集作業

AWS 官方已更新 1 年前