Azure Synapse Analytics 中專用 SQL 集區的數據倉儲單位(先前稱為 SQL DW)

本檔包含針對專用 SQL 集區(先前稱為 SQL DW)選擇理想數目的數據倉儲單位(DWU)來優化價格和效能的建議,以及如何變更單位數目。

什麼是數據倉儲單位

專用 SQL 集區 (先前稱為 SQL DW) 代表正在布建的分析資源集合。 分析資源會定義為 CPU、記憶體和 IO 的組合。

這三個資源會組合成稱為「數據倉儲單位」(DWU)的計算規模單位。 DWU 能以抽象而標準化的量值來呈現計算資源與效能。

對服務等級的變更會改變系統可用的 DWU 數目,進而調整系統的效能和成本。

為了提高效能,您可以增加數據倉儲單位的數目。 為了降低效能,請減少數據倉儲單位。 儲存體與計算成本會分別計費,因此,變更資料倉儲單位不會影響儲存體成本。

數據倉儲單位的效能是以這些數據倉儲工作負載計量為基礎:

  • 標準專用 SQL 集區(先前稱為 SQL DW)查詢掃描大量數據列的速度,然後執行複雜的匯總。 此作業需要大量 I/O 和 CPU。
  • 專用 SQL 集區(先前稱為 SQL DW)從 Azure 儲存體 Blob 或 Azure Data Lake 擷取數據的速度。 此作業需要大量網路和CPU。
  • T-SQL 命令可以複製資料表的速度 CREATE TABLE AS SELECT 。 這項作業牽涉到從記憶體讀取數據、將其分散到設備節點,然後再次寫入記憶體。 此作業需要大量 CPU、IO 和網路。

增加 DWU:

  • 線性變更系統掃描、匯總和 CTAS 語句的效能
  • 增加 PolyBase 載入作業的讀取器和寫入器數目
  • 增加並行查詢和並行位置的數目上限

服務等級目標

服務等級目標 (SLO) 是可擴縮性設定,可決定專用 SQL 集區的成本和效能等級(先前稱為 SQL DW)。 Gen2 專用 SQL 集區(先前稱為 SQL DW)的服務等級會以數據倉儲單位 (DWU) 來測量,例如 DW2000c。

注意

專用 SQL 集區 (先前稱為 SQL DW) Gen2 最近新增了額外的調整功能,以支援最低 DW100c 的計算層。 目前在 Gen1 上需要較低計算層的現有數據倉儲現在可以升級至目前沒有額外費用的區域中的 Gen2。 如果尚未支援您的區域,您仍然可以升級至支持的區域。 如需詳細資訊,請參閱 升級至 Gen2

在 T-SQL 中,SERVICE_OBJECTIVE設定會決定專用 SQL 集區的服務等級和效能層級(先前稱為 SQL DW)。

CREATE DATABASE mySQLDW
(Edition = 'Datawarehouse'
 ,SERVICE_OBJECTIVE = 'DW1000c'
)
;

效能層級和數據倉儲單位

每個效能層級會針對數據倉儲單位使用稍微不同的量值單位。 當縮放單位直接轉譯為計費時,此差異會反映在發票上。

  • Gen1 數據倉儲會以數據倉儲單位 (DWU) 來測量。
  • Gen2 數據倉儲會以計算數據倉儲單位 (cDWU) 來測量。

DWU 和 cDWU 都支援在不需要使用數據倉儲時相應增加或減少計算,以及暫停計算。 這些作業都是隨選作業。 Gen2 會在計算節點上使用本機磁碟型快取來改善效能。 當您調整或暫停系統時,快取會失效,因此需要一段時間的快取變暖,才能達到最佳效能。

容量限制

每個 SQL Server (例如,myserver.database.windows.net) 都有資料庫 交易單位 (DTU) 配額,允許特定數目的數據倉儲單位。 如需詳細資訊,請參閱 工作負載管理容量限制

我需要多少個數據倉儲單位

理想的數據倉儲單位數目取決於您的工作負載,以及您載入系統的數據量。

尋找工作負載最佳 DWU 的步驟:

  1. 從選取較小的 DWU 開始。

  2. 當您測試數據載入系統時,監視應用程式效能,並觀察相較於您觀察到的效能所選取的 DWU 數目。 藉由監視資源使用率來確認

  3. 識別尖峰活動週期的任何額外需求。 顯示活動尖峰和低谷的工作負載可能需要經常調整。

專用 SQL 集區(先前稱為 SQL DW)是一種向外延展系統,可布建大量的計算和查詢大量數據。

若要查看其調整的真正功能,特別是在較大的 DWU 上,建議您在調整數據集時調整數據集,以確保您有足夠的數據可饋送 CPU。 針對調整測試,建議您至少使用 1 TB。

注意

如果工作可以在計算節點之間分割,查詢效能只會隨著更多平行處理而增加。 如果您發現調整並未變更效能,您可能需要調整數據表設計和/或查詢。 如需查詢微調指引,請參閱 管理用戶查詢

權限

變更數據倉儲單位需要 ALTER DATABASE 中所述的許可權。

SQL DB 參與者和 SQL Server 參與者等 Azure 內建角色可以變更 DWU 設定。

檢視目前的 DWU 設定

若要檢視目前的 DWU 設定:

  1. 在 Visual Studio 中開啟 SQL Server 物件總管。
  2. 連線 與邏輯 SQL Server 相關聯的 master 資料庫。
  3. 從sys.database_service_objectives動態管理檢視中選取 。 以下是範例:
SELECT  db.name [Database]
,        ds.edition [Edition]
,        ds.service_objective [Service Objective]
FROM    sys.database_service_objectives   AS ds
JOIN    sys.databases                     AS db ON ds.database_id = db.database_id
;

變更數據倉儲單位

Azure 入口網站

若要變更 DWU:

  1. 開啟 Azure 入口網站,開啟您的資料庫,然後按兩下 [調整]。

  2. 在 [縮放] 底下,將滑桿向左或向右移動以變更 DWU 設定。

  3. 按一下 [檔案] 。 確認訊息隨即出現。 按一下 [是] 確認,或按一下 [否] 取消。

PowerShell

注意

建議您使用 Azure Az PowerShell 模組來與 Azure 互動。 請參閱安裝 Azure PowerShell 以開始使用。 若要了解如何移轉至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 移轉至 Az

若要變更 DWU,請使用 Set-AzSqlDatabase PowerShell Cmdlet。 下列範例會將伺服器 MyServer 上裝載的資料庫 MySQLDW 的服務等級目標設定為 DW1000。

Set-AzSqlDatabase -DatabaseName "MySQLDW" -ServerName "MyServer" -RequestedServiceObjectiveName "DW1000c"

如需詳細資訊,請參閱 專用 SQL 集區的 PowerShell Cmdlet(先前稱為 SQL DW)

T-SQL

透過 T-SQL,您可以檢視目前的 DWUsettings、變更設定,並檢查進度。

若要變更 DWU:

  1. 連線 與伺服器相關聯的 master 資料庫。
  2. 使用 ALTER DATABASE TSQL 語句。 下列範例會將資料庫 MySQLDW 的服務等級目標設定為 DW1000c。
ALTER DATABASE MySQLDW
MODIFY (SERVICE_OBJECTIVE = 'DW1000c')
;

REST API

若要變更 DWU,請使用 建立或更新資料庫 REST API。 下列範例會將伺服器 MyServer 上裝載的資料庫 MySQLDW服務等級目標設定為 DW1000c。 伺服器位於名為 ResourceGroup1 的 Azure 資源群組中。

PUT https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Sql/servers/{server-name}/databases/{database-name}?api-version=2014-04-01-preview HTTP/1.1
Content-Type: application/json; charset=UTF-8

{
    "properties": {
        "requestedServiceObjectiveName": "DW1000c"
    }
}

如需更多 REST API 範例,請參閱專用 SQL 集區的 REST API(先前稱為 SQL DW)。

檢查 DWU 變更的狀態

DWU 變更可能需要幾分鐘的時間才能完成。 如果您要自動調整,請考慮實作邏輯,以確保某些作業已完成,然後再繼續進行另一個動作。

透過各種端點檢查資料庫狀態可讓您正確實作自動化。 入口網站會在作業和資料庫目前狀態完成時提供通知,但不允許以程式設計方式檢查狀態。

您無法使用 Azure 入口網站 檢查資料庫狀態是否有向外延展作業。

若要檢查 DWU 的狀態變更:

  1. 連線 與伺服器相關聯的 master 資料庫。

  2. 提交下列查詢以檢查資料庫狀態。

    SELECT    *
    FROM      sys.dm_operation_status
    WHERE     resource_type_desc = 'Database'
    AND       major_resource_id = 'MySQLDW'
    ;
    

此 DMV 會傳回專用 SQL 集區上各種管理作業的相關信息,例如作業和作業的狀態,也就是IN_PROGRESS或 COMPLETED。

調整工作流程

當您啟動調整作業時,系統會先終止所有開啟的會話,回復任何開啟的交易,以確保狀態一致。 針對調整作業,調整只會在此交易回復完成之後發生。

  • 針對相應增加作業,系統會卸離所有計算節點、布建額外的計算節點,然後重新附加至儲存層。
  • 針對相應減少作業,系統會卸離所有計算節點,然後將所需的節點重新附加至儲存層。

下一步

若要深入瞭解管理效能,請參閱 工作負載管理和 記憶體和 並行限制的資源類別。