資料倉儲系統架構 - Amazon Redshift

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

資料倉儲系統架構

本節說明組成 Amazon Redshift 資料倉儲架構的元件,如下圖所示。

用戶端應用程式

Amazon Redshift 整合了各種資料載入和 ETL (擷取、轉換和載入) 工具,以及商業智慧 (BI) 報告、資料採礦和分析工具。Amazon Redshift 是以開放式標準 Postgre 為基礎SQL,因此大多數現有的用SQL戶端應用程式只需進行最少的變更即可運作。有關 Amazon Redshift SQL 和 Postgre 之間重要差異的信息SQL,請參閱。Amazon Redshift 和波斯格雷 SQL

叢集

Amazon Redshift 資料倉儲的核心基礎設施元件是叢集

叢集是由一或多個運算節點所組成。如果為叢集佈建了兩個或多個運算節點,則會有另外的領導節點負責統籌運算節點和處理外部通訊。您的用戶端應用程式只會直接和領導節點互動,外部應用程式不會知道運算節點的存在。

領導節點

領導節點會管理與用戶端程式的通訊,以及和運算節點的所有通訊。此節點會剖析和制定執行計畫,來執行資料庫的操作,尤其是取得複雜查詢結果所需的一系列步驟。領導節點會根據執行計畫,來編譯程式碼、將編譯過的程式碼分發到運算節點,並指派資料的各部分給每個運算節點。

只有當查詢參考儲存在計算節點上的資料表時,前置節點才會將SQL陳述式散佈至運算節點。所有其他查詢僅在領導節點上執行。Amazon Redshift 旨在僅在領導節點上實作某些SQL功能。如果查詢使用這些函式的任一個,而且參考位於運算節點上的資料表,則將會傳回錯誤。如需詳細資訊,請參閱SQL引線節點上支援的函數

運算節點

領導節點會針對執行計畫的個別元素,來編譯程式碼,並將程式碼指派給個別的運算節點。運算節點會執行編譯過的程式碼,並將中間的結果傳回領導節點,以進行最終的彙總。

每個計算節點都有自己的專用CPU和記憶體,由節點類型決定。隨著工作負載的增長,您可以藉由增加節點的數量、將節點的類型升級,或是同時實行這兩種做法,來增加叢集的運算容量。

Amazon Redshift 會針對您的運算需求,提供數種節點類型。如需每個節點類型的詳細資訊,請參閱《Amazon Redshift 管理指南》中的<Amazon Redshift 叢集>。

Redshift 受管儲存

資料倉儲資料會儲存在個別的儲存層 Redshift 受管理儲存 (RMS) 中。RMS提供使用 Amazon S3 儲存將儲存擴展到 PB 級的能力。RMS可讓您獨立擴充和支付運算和儲存體費用,因此您只能根據您的運算需求調整叢集的大小。它會自動使用高效能的SSD本機儲存做為第 1 層快取記憶體。它還會利用資料區塊溫度、資料區塊存留時間和工作負載模式等最佳化功能提供高效能,同時在需要時自動將儲存擴展到 Amazon S3,而無需採取任何動作。

節點配量

運算節點可分割為分割。每個分割會分配到節點的一部分記憶體和磁碟空間,並且用以處理指派給節點的部分工作負載。領導節點會負責將資料分發給分割,並將任何查詢或其他資料庫操作的工作負載,分派給這些分割。這些分割接著會平行運作,以完成操作。

每個節點的分割數目,取決於叢集的節點大小。如需每個節點大小有多少配量的相關資訊,請移至《Amazon Redshift 管理指南》中的<關於叢集和節點>。

建立資料表時,您可以選擇性地指定一個欄做為分佈索引鍵。當資料載入資料表時,會根據為資料表定義的分佈索引鍵,將資料列分發給節點分割。選擇理想的分佈索引鍵,可讓 Amazon Redshift 利用平行處理作業,以高效率的方式載入資料和執行查詢。如需關於選擇分佈索引鍵的詳細資訊,請參閱選擇最佳的分佈方式

內部網路

Amazon Redshift 善用了高頻寬連線、鄰近位置與自訂通訊協定,在領導節點和運算節點之間,提供私密的超高速網路通訊。運算節點會在獨立的隔離網路中執行,用戶端應用程式絕對不會直接存取此網路。

資料庫

叢集包含一個或多個資料庫。使用者資料儲存於運算節點上。您的SQL客戶端與領導節點進行通信,該節點又可以協調與計算節點運行的查詢。

Amazon Redshift 是關聯式資料庫管理系統 (RDBMS),因此與其他RDBMS應用程式相容。雖然它提供與典型相同的功能RDBMS,包括插入和刪除資料等線上交易處理 (OLTP) 函數,但 Amazon Redshift 已針對高效能分析和非常大型資料集的報告進行了最佳化。

Amazon Redshift 是基於波斯格雷。SQLAmazon Redshift 和 Postgre SQL 有許多非常重要的差異,您在設計和開發資料倉儲應用程式時需要考慮這些差異。有關 Amazon Redshift SQL 與 Postgre 有何不同之處的信息SQL,請參閱。Amazon Redshift 和波斯格雷 SQL