Azure Synapse Analytics 中的專用 SQL 集區 (先前稱為 SQL DW) 架構

Tip

Microsoft Fabric Data Warehouse 是一個企業規模的關聯式倉庫,建立在資料湖基礎上,具備未來準備架構、內建 AI 及新功能。 如果你是資料倉儲新手,建議先從Fabric Data Warehouse開始。 現有的 專用 SQL 工作負載可升級至 Fabric,以取得資料科學、即時分析與報告等多項新功能。

Azure Synapse Analytics 是一種分析服務,可將企業資料倉儲和巨量資料分析整合在一起。 其可讓您自由依據需求來查詢資料。

注意

如需 Azure Synapse Analytics 的詳細資訊,請觀看這段說明資料移動增強功能的影片。

Synapse SQL 架構元件

專用 SQL 集區 (先前稱為 SQL DW) 會利用擴增架構,將資料的計算處理散發到多個節點。 縮放單位是計算能力的抽象概念,稱為資料倉儲單位。 計算會與儲存體分開,讓您可以獨立擴展系統中的計算能力,而不依賴於資料。

專用 SQL 集區 (先前稱為 SQL DW) 架構

專用 SQL 集區 (先前稱為 SQL DW) 使用以節點為基礎的架構。 應用程式會連接控制節點,並對其發出 T-SQL 命令。 控制節點會裝載分散式查詢引擎,將查詢最佳化以進行平行處理,然後將作業傳遞到計算節點,以平行方式執行其工作。

計算節點會在 Azure 儲存體中儲存所有使用者資料,並執行平行查詢。 資料移動服務 (DMS) 是系統層級的內部服務,其會視需要在節點之間移動資料,以平行方式執行查詢並傳回精確的結果。

在儲存體和計算分離的情況下,使用專用的 SQL 集區 (先前稱為 SQL DW) 時,可以:

  • 獨立規劃計算能力,不依賴於您的儲存需求。
  • 在專用 SQL 集區 (先前稱為 SQL DW) 內增加或縮小計算能力,而不用移動資料。
  • 暫停計算容量,同時讓資料保持不變,因此您只需支付儲存體的費用。
  • 在營運時間內恢復計算容量。

Azure 儲存體

專用 SQL 集區 (先前稱為 SQL DW) 可利用 Azure 儲存體來保障使用者資料的安全。 因為您的資料是由 Azure 儲存體儲存及管理的,所以您的儲存體耗用量會分開計費。 資料會分片為分配,以最佳化系統效能。 當您定義資料表時,可以選擇要用來散發資料的分區化模式。 支援以下分區化模式:

  • 雜湊
  • 循環配置資源
  • 複製

控制節點

控制節點是架構的大腦。 它是與所有應用程式與連線互動的前端。 控制節點上會執行分散式查詢引擎,以最佳化和協調平行查詢。 當您提交 T-SQL 查詢時,控制節點會將其轉換為對每個分佈平行執行的查詢。

計算節點

計算節點可提供計算能力。 配置會映射到計算節點以進行處理。 當您購買更多計算資源時,分配會重新映射到可用的計算節點。 計算節點數目範圍是從 1 到 60,取決於 Synapse SQL 的服務等級。

每個計算節點都有會在系統檢視中顯示的節點識別碼。 您可以在名稱開頭為 sys.pdw_nodes 的系統檢視中尋找 node_id 資料行,以查看計算節點識別碼。 如需這些系統檢視的清單,請參閱 Synapse SQL 系統檢視

資料移動服務

資料移動服務 (DMS) 是資料傳輸技術,可協調計算節點之間的資料移動。 某些查詢需要資料移動,以確保平行查詢會傳回精確的結果。 若資料移動是必要的,DMS 確保正確的資料會到達正確的位置。

分佈

分佈是用於分散式資料上執行平行查詢的儲存和處理的基本單位。 當 Synapse SQL 執行查詢時,會將工作分成 60 個平行執行的較小查詢。

這 60 個較小查詢中的每一個都會在其中一個資料分配中執行。 每個計算節點都會管理 60 個發行版中的一個或多個。 若專用 SQL 集區(先前稱為 SQL DW)具有最大計算資源,則每個計算節點上會有一個分散。 當專用 SQL 集區(先前稱為 SQL DW)只有最低計算資源時,所有的分佈將會集中在一個計算節點上。

注意

如需根據工作負載採用最佳資料表散發策略的相關建議,請參閱 Azure Synapse SQL Distribution Advisor

雜湊分散式資料表

雜湊分散式資料表可以針對大型資料表上的聯結和彙總提供最高查詢效能。

為了將資料分割到雜湊分散式資料表中,系統會使用雜湊函式,已決定性地將每個資料列指派給一個分散區。 在資料表定義中,其中一個資料行會指定為散發資料行。 雜湊函數使用散發資料欄中的值,將每個資料列分配至一個分配。

下圖說明非分散式資料表如何儲存為哈希分散式資料表。

分散式資料表

  • 每個資料列屬於一個分配。
  • 決定性雜湊演算法會將每個資料列指派給一個分佈。
  • 每個分布的資料表的資料列數目會隨著不同大小的資料表顯示出變化。

選取分配欄位時具有績效考量,例如資料的相異性、資料偏斜,以及各種在系統上執行的查詢類型。

循環分配分散式資料表

循環分配資料表是最簡單的建立資料表方式,當用作載入資料的暫存資料表時,可以提供快速的效能。

輪詢分散式資料表會在表格中均勻分佈資料,但不進行任何進一步的最佳化。 會先隨機選擇一個分佈,然後將資料列緩衝區逐步指派給分佈。 將資料快速載入循環分配資料表,但相較之下,使用雜湊分布式資料表通常會有較佳的查詢效能。 在循環分配資料庫表上的聯接操作需要重新分配資料,而這需要額外的時間。

複製的資料表

複寫資料表可為小型資料表提供最快速的查詢效能。

複寫的資料表會在每個計算節點上快取一份完整的資料表複本。 因此,複寫資料表就不需在進行聯結或彙總之前,於計算節點之間傳輸資料。 複寫的資料表最適合與小型資料表搭配使用。 所需的額外儲存空間和寫入資料時產生的額外負擔,使得大型資料表變得不切實際。

下圖顯示快取在每個計算節點的第一個分佈上的複製的資料表。

複製資料表

現在您已稍微認識 Azure Synapse,即可了解如何快速建立專用 SQL 集區 (先前稱為 SQL DW)載入範例資料。 如果您不熟悉 Azure,當您遇到新的術語時,可能會發現 Azure 基本概念 很有説明。 或者,您也可以看看以下其他 Azure Synapse 資源。