企業商業智慧

Power BI
Azure Synapse Analytics
Azure Data Factory
Microsoft Entra ID
Azure Blob 儲存體

此範例案例示範如何將數據從內部部署數據倉儲擷取到雲端環境,然後使用商業智慧 (BI) 模型提供服務。 這種方法可能是最終目標,或是使用雲端式元件進行完整現代化的第一步。

下列步驟以 Azure Synapse Analytics 端對端案例為基礎。 它會使用 Azure Pipelines 將數據從 SQL 資料庫內嵌至 Azure Synapse SQL 集區,然後轉換數據以供分析。

架構

Diagram of enterprise BI architecture with Azure Synapse.

下載此架構的 Visio 檔案

工作流程

資料來源

  • 源數據位於 Azure 中的 SQL Server 資料庫中。 若要模擬內部部署環境,此案例的部署腳本會布建 Azure SQL 資料庫。 AdventureWorks 範例資料庫會當做源數據架構和範例數據使用。 如需如何從內部部署資料庫複製數據的資訊,請參閱 從 SQL Server 複製和轉換數據。

擷取和數據記憶體

  1. Azure Data Lake Gen2 會在數據擷取期間作為暫存區域。 然後 ,您可以使用 PolyBase 將資料複製到 Azure Synapse 專用 SQL 集區

  2. Azure Synapse Analytics 是一種分散式系統,其設計目的是要對大型數據執行分析。 其支援大量平行處理 (MPP),因此適用於執行高效能分析。 Azure Synapse 專用 SQL 集區是持續從內部部署擷取的目標。 它可用於進一步處理,以及透過 DirectQuery 為 Power BI 提供數據。

  3. Azure Pipelines 可用來協調 Azure Synapse 工作區內的數據擷取和轉換。

分析和報告

元件

此案例使用下列元件:

簡化的架構

Diagram of the enterprise BI simplified architecture.

案例詳細資料

組織有儲存在 SQL 資料庫中的大型內部部署數據倉儲。 組織想要使用 Azure Synapse 來執行分析,然後使用 Power BI 提供這些見解。

驗證

Microsoft Entra 會驗證連線到 Power BI 儀錶板和應用程式的使用者。 單一登錄可用來連線到 Azure Synapse 布建集區中的數據源。 授權會在來源上發生。

累加式載入

當您執行自動化擷取-轉換載入 (ETL) 或擷取載入轉換 (ELT) 程式時,只載入自上一次執行後變更的數據最有效率。 它稱為 累加式載入,而不是載入所有數據的完整負載。 若要執行累加式載入,您需要一種方式來識別哪些數據已變更。 最常見的方法是使用 高水位標記 值,其會追蹤源數據表中某些數據行的最新值,也就是 datetime 數據行或唯一的整數數據行。

從 SQL Server 2016 開始,您可以使用 時態表,這是系統版本設定的數據表,可保留數據變更的完整歷程記錄。 資料庫引擎會自動記錄個別記錄數據表中每項變更的歷程記錄。 您可以將 子句新增 FOR SYSTEM_TIME 至查詢,以查詢歷程記錄數據。 在內部,資料庫引擎會查詢記錄數據表,但對應用程式而言是透明的。

注意

針對舊版 SQL Server,您可以使用 異動數據擷取 (CDC)。 這種方法比時態表更方便,因為您必須查詢個別的變更數據表,而且記錄序號會追蹤變更,而不是時間戳。

時態表對於維度數據很有用,可能會隨著時間而變更。 事實數據表通常代表不可變的交易,例如銷售,在此情況下,保留系統版本歷程記錄並不合理。 相反地,交易通常會有一個代表交易日期的數據行,這可以用來做為浮浮水印值。 例如,在 AdventureWorks 數據倉儲中, SalesLT.* 數據表具有 LastModified 字段。

以下是 ELT 管線的一般流程:

  1. 針對源資料庫中的每個數據表,追蹤上次執行 ELT 作業的截止時間。 將此資訊儲存在數據倉儲中。 在初始設定時,所有時間都會設定為 1-1-1900

  2. 在數據匯出步驟期間,截斷時間會當做參數傳遞至源資料庫中的一組預存程式。 這些預存程式會查詢在截止時間之後變更或建立的任何記錄。 針對範例中的所有數據表,您可以使用 數據 ModifiedDate 行。

  3. 當數據遷移完成時,請更新儲存截止時間的數據表。

資料管線

此案例使用 AdventureWorks 範例資料庫 作為數據源。 實作累加式數據載入模式,以確保我們只會載入最近一次管線執行之後修改或新增的數據。

元數據驅動複製工具

Azure Pipelines 內的內 建元數據驅動複製工具 會以累加方式載入關係資料庫中所包含的所有數據表。 透過巡覽精靈式體驗,您可以將複製資料工具聯機至源資料庫,並設定每個數據表的累加式或完整載入。 複製數據工具接著會建立管線和 SQL 腳本,以產生儲存累加式載入程式數據所需的控制數據表,例如,每個數據表的高水位線值/資料行。 執行這些腳本之後,管線即可將源數據倉儲中的所有數據表載入 Synapse 專用集區。

Screenshot of metadata-driven copy data tool in Synapse Analytics.

此工具會建立三個管線,以在載入數據之前逐一查看資料庫中的所有數據表。

此工具所產生的管線:

  • 計算管線執行中要複製的物件數目,例如數據表。
  • 逐一查看要載入/複製的每個物件,然後:
    • 檢查是否需要差異負載;否則,請完成一般完整載入。
    • 從控制數據表擷取高水位線值。
    • 將數據從源數據表複製到ADLS Gen2中的預備帳戶。
    • 透過選取的複製方法將數據載入專用 SQL 集區,例如 Polybase、Copy 命令。
    • 更新控制元件數據表中的高水位線值。

將數據載入 Azure Synapse SQL 集區

複製活動會將數據從 SQL 資料庫複製到 Azure Synapse SQL 集區。 在此範例中,因為我們的 SQL 資料庫位於 Azure 中,所以我們使用 Azure 整合運行時間從 SQL 資料庫讀取數據,並將數據寫入指定的預備環境。

複製語句接著會用來將數據從預備環境載入 Synapse 專用集區。

使用 Azure Pipelines

Azure Synapse 中的管線可用來定義已排序的活動集,以完成累加式載入模式。 觸發程式可用來啟動管線,可手動或指定時間觸發。

轉換資料

由於參考架構中的範例資料庫並不大,因此我們建立了沒有分割區的復寫數據表。 針對生產工作負載,使用分散式數據表可能會改善查詢效能。 請參閱 在 Azure Synapse 中設計分散式數據表的指引。 範例腳本會使用靜態 資源類別來執行查詢。

在生產環境中,請考慮使用迴圈配置資源散發來建立臨時表。 然後將數據轉換成具有叢集數據行存放區索引的生產數據表,以提供最佳的整體查詢效能。 數據行存放區索引已針對掃描許多記錄的查詢進行優化。 數據行存放區索引對於單一查閱執行效能不佳,也就是查閱單一數據列。 如果您需要執行頻繁的單一查閱,您可以將非叢集索引新增至數據表。 使用非叢集索引,單一查閱的執行速度可能會更快。 不過,在數據倉儲案例中,單一查閱通常較 OLTP 工作負載少。 如需詳細資訊,請參閱 在 Azure Synapse 中編製數據表的索引。

注意

叢集資料行存放區數據表不支援 varchar(max)nvarchar(max)varbinary(max) 資料類型。 在此情況下,請考慮堆積或叢集索引。 您可以將這些資料列放入個別的數據表中。

使用 Power BI 進階版 來存取、模型化及可視化數據

Power BI 進階版 支持數個選項來連線到 Azure 上的數據源,特別是 Azure Synapse 布建集區:

  • 匯入:數據會匯入 Power BI 模型。
  • DirectQuery:數據會直接從關係型記憶體提取。
  • 複合模型:結合 某些數據表的匯 入,以及 其他數據表的 DirectQuery

此案例是透過 DirectQuery 儀錶板傳遞,因為使用的數據量和模型複雜度並不高,因此我們可以提供良好的用戶體驗。 DirectQuery 會將查詢委派給下方功能強大的計算引擎,並在來源上使用廣泛的安全性功能。 此外,使用 DirectQuery 可確保結果一律與最新的源數據一致。

匯入模式提供最快的查詢回應時間,而且當模型完全符合 Power BI 記憶體時,可以容許重新整理之間的數據延遲,而且來源系統與最終模型之間可能會有一些複雜的轉換。 在此情況下,終端使用者想要完整存取最新數據,且 Power BI 重新整理時不會延遲,而且所有歷程記錄數據都大於 Power BI 數據集可處理的數據,視容量大小而定,介於 25-400 GB 之間。 由於專用 SQL 集區中的數據模型已經在星型架構中,而且不需要轉換,因此 DirectQuery 是適當的選擇。

Screenshot of dashboard in Power BI.

Power BI 進階版 Gen2 可讓您處理大型模型、編頁報表、部署管線和內建 Analysis Services 端點。 您也可以擁有具有獨特價值主張的專用 容量

當 BI 模型成長或儀錶板複雜度增加時,您可以切換至複合模型,然後透過 混合式數據表,以及一些預先匯總的數據,開始匯入查閱數據表的元件。 在 Power BI 中啟用匯入資料集的查詢快 取是一個選項,以及針對儲存模式屬性使用 雙數據表

在複合模型中,數據集會作為虛擬傳遞層。 當使用者與視覺效果互動時,Power BI 會將 SQL 查詢產生至 Synapse SQL 集區雙重記憶體:根據哪一個記憶體更有效率,在記憶體或直接查詢中。 引擎會決定何時從記憶體內部切換到直接查詢,並將邏輯推送至 Synapse SQL 集區。 根據查詢數據表的內容,它們可以做為快取的(匯入)或不快取的複合模型。 挑選並選擇要快取到記憶體中的數據表、結合一或多個 DirectQuery 來源的數據,以及/或結合混合 DirectQuery 來源和匯入數據的數據。

建議:透過 Azure Synapse Analytics 布建的集區使用 DirectQuery 時:

  • 使用 Azure Synapse 結果集快 取來快取使用者資料庫中的查詢結果以供重複使用、將查詢效能降低到毫秒,並減少計算資源使用量。 使用快取結果集的查詢不會在 Azure Synapse Analytics 中使用任何並行位置,因此不會計入現有的並行限制。
  • 使用 Azure Synapse 具體化檢視 來預先計算、儲存和維護數據,就像數據表一樣。 在具體化檢視中使用所有數據或子集的查詢可以取得更快的效能,而且不需要直接參考定義的具體化檢視來使用它。

考量

這些考慮會實作 Azure Well-Architected Framework 的支柱,這是一組指導原則,可用來改善工作負載的品質。 如需詳細資訊,請參閱 Microsoft Azure Well-Architected Framework

安全性

安全性可提供針對蓄意攻擊和濫用寶貴數據和系統的保證。 如需詳細資訊,請參閱 安全性要素概觀。

針對想要進行雲端現代化的公司,詳盡的安全性考量清單中經常包含資料缺口、惡意程式碼感染及惡意程式碼插入等頭條。 企業客戶需要雲端提供者或服務解決方案,以因無法解決問題而無法解決問題。

此案例使用分層式安全性控制的組合來解決最苛刻的安全性考慮:網路、身分識別、隱私權和授權。 大量數據會儲存在 Azure Synapse 布建集區中,Power BI 會透過單一登錄使用 DirectQuery。 您可以使用 Microsoft Entra ID 進行驗證。 布建集區的數據授權也有廣泛的安全性控制。

一些常見的安全性問題包括:

  • 如何控制誰可以查看哪些資料?
    • 組織必須保護其數據,以符合聯邦、當地和公司指導方針,以降低數據外泄的風險。 Azure Synapse 提供多個 數據保護功能 ,以達到合規性。
  • 驗證使用者身分識別的選項有哪些?
    • Azure Synapse 支援各種不同的功能,可控制誰可以透過 訪問控制驗證存取哪些數據。
  • 我可以使用何種網路安全性技術來保護網路和資料的完整性、機密性及存取?
    • 若要保護 Azure Synapse,有一系列 網路安全性 選項可供考慮。
  • 有哪些工具可以偵測威脅並通知我?
    • Azure Synapse 提供許多 威脅偵測 功能,例如:SQL 稽核、SQL 威脅偵測和弱點評估,以稽核、保護和監視資料庫。
  • 我該如何保護記憶體帳戶中的數據?
    • Azure 儲存體 帳戶適用於需要快速且一致響應時間的工作負載,或每秒具有大量輸入輸出作業 (IOP) 的工作負載。 儲存體 帳戶包含您所有的 Azure 儲存體 資料物件,而且有許多記憶體帳戶安全性選項。

成本最佳化

成本優化是考慮如何減少不必要的費用,並提升營運效率。 如需詳細資訊,請參閱 成本優化要素概觀。

本節提供此解決方案中涉及之不同服務的價格資訊,並提及此案例與範例數據集所做的決策。

Azure Synapse

Azure Synapse Analytics 無伺服器架構可讓您獨立調整計算和記憶體層級。 計算資源會根據使用量收費,您可以視需要調整或暫停這些資源。 儲存體 資源是以每 TB 計費,因此當您內嵌更多數據時,您的成本將會增加。

Azure Pipelines

您可以在 Azure Synapse 定價頁面的 [資料整合]索引卷標下找到 Azure Synapse 中管線的定價詳細數據。 有三個主要元件會影響管線的價格:

  1. 數據管線活動和整合運行時間時數
  2. 數據流叢集大小和執行
  3. 作業費用

價格會因元件或活動、頻率和整合運行時間單位數目而有所不同。

針對範例數據集,標準 Azure 裝載整合運行時間、 複製管線核心的數據活動 ,會依源資料庫中所有實體(數據表)的每日排程觸發。 此案例不包含任何數據流。 沒有營運成本,因為每月管線的作業少於100萬個。

Azure Synapse 專用集區和記憶體

您可以在 Azure Synapse 定價頁面的 [資料倉儲] 索引標籤下找到 Azure Synapse 專用集區的定價詳細數據。 在專用耗用量模型中,客戶會依布建的 DWU 單位計費,每小時運作時間。 另一個促成因素是數據儲存成本:待用數據的大小 + 快照集 + 異地備援,如果有的話。

針對範例數據集,您可以布建 500DWU,這可保證分析負載的良好體驗。 您可以持續計算並執行數小時的報告。 如果進入生產環境,保留的數據倉儲容量是成本管理的有吸引力的選項。 不同的技術應該用來將成本/效能計量最大化,如上一節所述。

Blob 儲存體

請考慮使用 Azure 儲存體 保留容量功能來降低記憶體成本。 使用此模型時,如果您保留固定儲存容量一或三年,就會獲得折扣。 如需詳細資訊,請參閱 使用保留容量優化 Blob 記憶體的成本。

此案例中沒有持續性記憶體。

Power BI Premium

您可以在 Power BI 定價頁面上找到 Power BI 進階版 定價詳細數據。

此案例使用Power BI 進階版工作區,內建一系列效能增強功能,以因應需求苛刻的分析需求。

卓越營運

卓越營運涵蓋部署應用程式的作業程式,並讓它在生產環境中執行。 如需詳細資訊,請參閱 營運卓越支柱概觀。

DevOps 建議

  • 為生產環境、開發和測試環境建立個別的資源群組。 不同的資源群組可讓您更輕鬆地管理部署、刪除測試部署,以及指派訪問許可權。

  • 將每個工作負載放在個別的部署範本中,並將資源儲存在原始檔控制系統中。 您可以將範本一起或個別部署為持續整合 (CI) 和持續傳遞 (CD) 程式的一部分,讓自動化程式更容易。 在此架構中,有四個主要工作負載:

    • 數據倉儲伺服器和相關資源
    • Azure Synapse 管線
    • Power BI 資產:儀錶板、應用程式、數據集
    • 內部部署至雲端模擬案例

    目標是針對每個工作負載建立個別的部署範本。

  • 請考慮在實際情況下暫存工作負載。 部署至各種階段,並在每個階段執行驗證檢查,再移至下一個階段。 如此一來,您就可以以受控的方式將更新推送至生產環境,並將未預期的部署問題降到最低。 使用 藍綠部署Canary 發行 策略來更新即時生產環境。

  • 有良好的復原策略來處理失敗的部署。 例如,您可以從部署歷程記錄自動重新部署先前成功的部署。 --rollback-on-error請參閱 Azure CLI 中的旗標。

  • 建議使用 Azure 監視器 來分析數據倉儲的效能,以及整個 Azure 分析平臺,以取得整合式監視體驗。 Azure Synapse Analytics 提供 Azure 入口網站 內的監視體驗,以顯示數據倉儲工作負載的深入解析。 監視數據倉儲時,Azure 入口網站 是建議的工具,因為它提供可設定的保留期間、警示、建議,以及計量和記錄的可自定義圖表和儀錶板。

快速入門

效能效益

效能效率是工作負載調整的能力,以符合使用者以有效率的方式滿足其需求。 如需詳細資訊,請參閱 效能效率要素概觀

本節提供重設大小決策以容納此數據集的詳細數據。

Azure Synapse 布建的集區

有一系列 的數據倉儲組態 可供選擇。

數據倉儲單位 計算節點的 # 每個節點的散發數目
DW100c 1 60
-- TO --
DW30000c 60 1

若要查看相應放大的效能優點,特別是針對較大的數據倉儲單位,請使用至少 1 TB 的數據集。 若要尋找專用 SQL 集區的最佳數據倉儲單位數目,請嘗試相應增加和減少。 載入數據之後,執行一些具有不同數目數據倉儲單位的查詢。 由於調整速度很快,因此您可以在一小時內嘗試各種效能等級。

尋找數據倉儲單位的最佳數目

針對開發中的專用 SQL 集區,請從選取較少的數據倉儲單位開始。 良好的起點是 DW400cDW200c。 監視應用程式效能,觀察相較於您觀察到的效能所選取的數據倉儲單位數目。 假設線性刻度,並判斷您需要增加或減少數據倉儲單位的量。 繼續調整,直到您達到商務需求的最佳效能等級為止。

調整 Synapse SQL 集區

Azure Pipelines

如需 Azure Synapse 中管線的延展性和效能優化功能,以及所使用的複製活動,請參閱 複製活動 效能和延展性指南

Power BI Premium

本文使用 Power BI 進階版 Gen 2 來示範 BI 功能。 Power BI 的容量 SKU 進階版 範圍從 P1(8 個 v 核心)到 P5(目前為 128 個 v 核心)。 選取所需容量的最佳方式是進行容量載入評估、安裝 Gen 2 計量應用程式以進行持續監視,並考慮搭配 Power BI 進階版 使用自動調整。

參與者

本文由 Microsoft 維護。 原始投稿人如下。

主要作者:

其他投稿人:

若要查看非公用LinkedIn配置檔,請登入LinkedIn。

下一步