在線分析處理 (OLAP) 是一種技術,可組織大型商務資料庫並支援複雜的分析。 它可以用來執行複雜的分析查詢,而不會對交易系統造成負面影響。
企業用來儲存其所有交易和記錄的資料庫稱為 在線事務處理 (OLTP) 資料庫。 這些資料庫通常會有一次一個輸入的記錄。 通常,它們包含大量對組織有價值的資訊。 不過,用於 OLTP 的資料庫並非針對分析而設計。 因此,從這些資料庫尋求答案不但耗時而且需動用許多人力。 OLAP 系統的設計目的是要協助以高效能的方式從數據中擷取此商業智能資訊。 這是因為 OLAP 資料庫已針對大量讀取、低寫入工作負載進行優化。
語意模型化
語意數據模型是一種概念模型,描述其包含之數據元素的意義。 組織通常會有自己的字詞,有時是同義字,甚至相同詞彙的不同意義。 例如,庫存資料庫可能會追蹤具有資產標識碼和序號的設備片段,但銷售資料庫可能會將序號稱為資產標識符。 在沒有描述關聯性的模型的情況下,沒有簡單的方法可以關聯這些值。
語意模型化提供資料庫架構的抽象層級,讓使用者不需要知道基礎數據結構。 這可讓使用者更輕鬆地查詢數據,而不需透過基礎架構執行匯總和聯結。 此外,數據行通常會重新命名為更方便使用的名稱,讓數據的內容和意義更為明顯。
語意模型化通常用於大量讀取案例,例如分析和商業智慧 (OLAP),而不是更大量寫入的事務數據處理 (OLTP)。 這主要是因為一般語意層的本質:
- 匯總行為已設定,以便報告工具正確顯示它們。
- 定義商業規則和計算。
- 包含時間導向的計算。
- 數據通常會從多個來源整合。
傳統上,語意層會基於這些原因而放在數據倉儲上。
語意模型有兩種主要類型:
- 表格式。 使用關係模型建構(模型、數據表、數據行)。 在內部,元數據會繼承自 OLAP 模型建構(Cube、維度、量值)。 程式代碼和腳本使用 OLAP 元數據。
- 多維度。 使用傳統的 OLAP 模型建構(Cube、維度、量值)。
相關的 Azure 服務:
使用案例範例
組織有儲存在大型資料庫中的數據。 它想要讓商務使用者和客戶使用此數據來建立自己的報表並執行一些分析。 其中一個選項是授與這些使用者直接存取資料庫。 不過,這樣做有幾個缺點,包括管理安全性和控制存取權。 此外,資料庫的設計,包括數據表和數據行的名稱,可能很難讓用戶瞭解。 用戶必須知道要查詢哪些數據表、應該如何聯結這些數據表,以及其他必須套用才能取得正確結果的商業規則。 使用者也需要知道查詢語言,例如 SQL,即使是開始使用也一樣。 這通常會導致多個用戶報告相同的計量,但結果不同。
另一個選項是將使用者所需的所有資訊封裝成語意模型。 使用者可以使用其選擇的報告工具,更輕鬆地查詢語意模型。 語意模型所提供的數據會從數據倉儲提取,以確保所有使用者都能看到單一版本的事實。 語意模型也提供易記的數據表和數據行名稱、數據表之間的關聯性、描述、計算和數據列層級安全性。
語意模型化的典型特性
語意模型化和分析處理往往具有下列特性:
需求 | 描述 |
---|---|
結構描述 | 寫入上的架構,強式強制執行 |
使用交易 | No |
鎖定策略 | 無 |
可更新 | 否 (通常需要重新計算 Cube) |
可附加 | 否 (通常需要重新計算 Cube) |
工作負載 | 大量讀取、唯讀 |
編製索引 | 多維度索引編製 |
Datum 大小 | 中小型 |
Model | 多維度 |
資料圖形: | Cube 或星形/雪花式架構 |
查詢彈性 | 高度彈性 |
Scale \(規模\): | 大型 (10s-100s GB) |
使用此解決方案的時機
在下列案例中,請考慮 OLAP:
- 您需要快速執行複雜的分析和臨機操作查詢,而不會對 OLTP 系統造成負面影響。
- 您想要提供商務使用者從數據產生報表的簡單方式
- 您想要提供一些匯總,讓用戶能夠快速且一致的結果。
OLAP 特別適用於對大量數據套用匯總計算。 OLAP 系統已針對大量讀取案例進行優化,例如分析和商業智慧。 OLAP 可讓使用者將多維度數據分割成可在兩個維度中檢視的配量(例如數據透視表),或依特定值篩選數據。 此程式有時稱為「切割和分割」數據,不論數據是否分割在數個數據源之間,都可以完成。 這可協助使用者尋找趨勢、找出模式,以及探索數據,而不需要知道傳統數據分析的詳細數據。
語意模型可協助商務使用者抽象化關聯性複雜度,並讓您更輕鬆地快速分析數據。
挑戰
針對 OLAP 系統提供的所有優點,它們確實會產生一些挑戰:
- 雖然 OLTP 系統中的數據會透過從各種來源流入的交易不斷更新,但根據業務需求,OLAP 資料存放區通常會以較慢的間隔重新整理。 這表示 OLAP 系統更適合策略性商務決策,而不是立即回應變更。 此外,需要規劃某種層級的數據清理和協調流程,才能讓 OLAP 數據存放區保持在最新狀態。
- 不同於在 OLTP 系統中找到的傳統正規化關係型數據表,OLAP 數據模型通常為多維度。 這會使無法直接對應至實體關聯性或面向物件模型,其中每個屬性都會對應至一個數據行。 相反地,OLAP 系統通常會使用星形或雪花式架構來取代傳統的正規化。
Azure 中的 OLAP
在 Azure 中,Azure SQL 資料庫 等 OLTP 系統中保留的數據會複製到 OLAP 系統中,例如 Azure Analysis Services。 Power BI、Excel 和第三方選項等數據探索和視覺效果工具會連線到 Analysis Services 伺服器,並提供使用者對模型化數據具有高度互動和可視化的豐富見解。 從 OLTP 數據流向 OLAP 的數據流程通常會使用 SQL Server Integration Services 進行協調,而 SQL Server Integration Services 可以使用 Azure Data Factory 來執行。
在 Azure 中,下列所有資料存放區都會符合 OLAP 的核心需求:
SQL Server Analysis Services (SSAS) 為商業智慧應用程式提供 OLAP 和數據採礦功能。 您可以在本機伺服器上安裝 SSAS,或在 Azure 中的虛擬機內裝載 SSAS。 Azure Analysis Services 是完全受控的服務,可提供與 SSAS 相同的主要功能。 Azure Analysis Services 支援連線到 您組織中雲端和內部部署的各種數據源 。
叢集數據行存放區索引適用於 SQL Server 2014 和更新版本,以及 Azure SQL 資料庫,非常適合 OLAP 工作負載。 不過,從 SQL Server 2016 開始(包括 Azure SQL 資料庫),您可以使用可更新的非叢集數據行存放區索引,利用混合式交易/分析處理 (HTAP)。 HTAP 可讓您在同一個平臺上執行 OLTP 和 OLAP 處理,而不需要儲存資料的多個復本,並不需要不同的 OLTP 和 OLAP 系統。 如需詳細資訊,請參閱 開始使用數據行存放區進行即時作業分析。
索引鍵選取準則
若要縮小選擇範圍,請從回答下列問題開始:
您要受控服務,而不是管理自己的伺服器嗎?
您是否需要使用 Microsoft Entra ID 進行安全驗證?
您要進行即時分析嗎? 如果是,請將選項縮小到支援即時分析的選項。
此內容中的即時分析 適用於單一數據源,例如企業資源規劃 (ERP) 應用程式,其會同時執行作業和分析工作負載。 如果您需要整合來自多個來源的數據,或使用 Cube 等預先匯總的數據來要求極端的分析效能,您可能仍然需要個別的數據倉儲。
您是否需要使用預先匯總的數據,例如提供語意模型,讓分析更方便商務使用者? 如果是,請選擇支援多維度 Cube 或表格式語意模型的選項。
提供匯總可協助使用者一致計算數據匯總。 預先匯總的數據也可以在處理多個數據列的數個數據行時,提供較大的效能提升。 數據可以在多維度 Cube 或表格式語意模型中預先匯總。
您需要在 OLTP 資料存放區之外整合來自數個來源的數據嗎? 若是如此,請考慮輕鬆整合多個數據源的選項。
功能對照表
下表摘要列出功能的主要差異。
一般功能
功能 | Azure Analysis Services | SQL Server Analysis Services | 具有數據行存放區索引的 SQL Server | 具有數據行存放區索引的 Azure SQL 資料庫 |
---|---|---|---|---|
是受控服務 | 是 | 無 | 無 | Yes |
支援多維度 Cube | No | .是 | 無 | No |
支援表格式語意模型 | Yes | 是 | 無 | No |
輕鬆整合多個數據源 | Yes | 是 | 否 1 | 否 1 |
支援即時分析 | No | 無 | .是 | Yes |
需要程式從來源複製數據 | Yes | 是 | 無 | No |
Microsoft Entra 整合 | 是 | No | 否 2 | Yes |
[1] 雖然 SQL Server 和 Azure SQL 資料庫 無法用來查詢和整合多個外部數據源,但您仍然可以使用 SSIS 或 Azure Data Factory 來建置管線。 裝載在 Azure VM 中的 SQL Server 有其他選項,例如鏈接的伺服器和 PolyBase。 如需詳細資訊,請參閱 管線協調流程、控制流程和數據移動。
[2] 不支援使用 Microsoft Entra 帳戶連線到在 Azure 虛擬機上執行的 SQL Server。 請改用網域 Active Directory 帳戶。
延展性功能
功能 | Azure Analysis Services | SQL Server Analysis Services | 具有數據行存放區索引的 SQL Server | 具有數據行存放區索引的 Azure SQL 資料庫 |
---|---|---|---|---|
備援區域伺服器以提供高可用性 | 是 | 無 | .是 | Yes |
支持查詢相應放大 | 是 | 無 | .是 | Yes |
動態延展性 (相應增加) | 是 | 無 | .是 | 是 |