比較表格式和多維度解決方案
適用於: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
SQL Server Analysis Services (SSAS) 提供數種方法或模式來建立商業智慧語意模型:表格式和多維度。
多維度模式 只有 SQL Server Analysis Services 可用。 如果您想要將模型部署到 Azure Analysis Services 或 Power BI,您可以立即停止閱讀。 Azure Analysis Services 或 Power BI Premium 語意模型不支援
由於 SQL Server Analysis Services 僅支援多維度模型,因此本文並非要比較 Analysis Services 平臺 (SQL Server、Azure、Power BI)。 其旨在提供完全在 SQL Server Analysis Services 內容中建構多維度和表格式模型的高階比較。
SQL Server Analysis Services 也包含 Power Pivot for SharePoint 模式,其仍支援 SharePoint 2016 和 SharePoint 2013,不過,Microsoft的 BI 策略已從 Excel 與 SharePoint 的 Power Pivot 整合移開。 Power BI 和 Power BI 報表伺服器現在是使用 Power Pivot 模型裝載 Excel 活頁簿的建議平臺。 因此,本文現在會排除 Power Pivot for SharePoint 比較。
在 SQL Server Analysis Services 中,有一個以上的方法可針對不同的商務和使用者需求量身打造模型化體驗。 多維度是以開放標準為基礎的成熟技術,受到許多 BI 軟體廠商的歡迎,但實作可能具有挑戰性。 表格式提供一種關係型模型化方法,讓許多開發人員發現更直覺。 從長遠來看,表格式模型更容易開發和管理。 雖然多維度模型在許多 BI 解決方案中仍然很普遍,但表格式模型現在已更廣泛地接受為Microsoft平臺上的標準企業級 BI 語意模型解決方案。
所有模型都會部署為在 Analysis Services 實例上執行的資料庫,或使用表格式模型部署為 語意模型, 至 Power BI Premium 容量。 模型是由用戶端應用程式或服務存取,例如 Power BI。 模型數據會透過 Excel、Reporting Services、Power BI 和來自其他廠商的 BI 工具,在互動式和靜態報表中可視化。
使用 Visual Studio 建立的表格式和多維度解決方案,適用於在內部部署 SQL Server Analysis Services 實例上執行的公司 BI 解決方案,以及針對表格式模型、Azure Analysis Services 伺服器資源,或作為 Power BI Premium 容量中的語意模型。 每個解決方案都會產生高效能的分析資料庫,可輕鬆地與用戶端應用程式和數據視覺效果服務整合。 然而,每個解決方案在建立、使用和部署的方式上都有所不同。 本文的大部分內容會比較這兩種類型,以便識別適合您的正確方法。
模型化類型概觀
下表列舉不同的模型、摘要說明方法、初始版本和支援的相容性層級。
類型 | 模型化描述 | 最初發行 | 相容性層級 |
---|---|---|---|
多面的 | OLAP 模型建構 (Cube、維度、量值)。 | SQL Server 2000 SQL Server 2012 和更新版本 |
1050 1100 |
Power Pivot | 原本是載入宏,但現在已完全整合到Excel中。 表格式模型基礎結構。 不支援 API 和腳本。 | SQL Server 2008 R2 | N\A |
表格式的 | 關係模型建構(模型、數據表、數據行)。 在內部,元數據會繼承自 OLAP 模型建構(Cube、維度、量值)。 程式代碼和腳本使用 OLAP 元數據。 | SQL Server 2012 SQL Server 2014 |
1050 1103 |
SQL Server 2016 和更新版本中的表格式 | 關係型模型建構(模型、數據表、數據行),在表格式元數據物件定義中清楚說明,表格式模型腳本語言 (TMSL) 和 表格式物件模型 (TOM) 程式代碼。 | SQL Server 2016 SQL Server 2014 SQL Server 2019 SQL Server 2022 |
1200 1400 1500 1600 |
Azure Analysis Services 1 中的表格式 | 關係型模型建構(模型、數據表、數據行),在表格式元數據物件定義中清楚說明,表格式模型腳本語言 (TMSL) 和 表格式物件模型 (TOM) 程式代碼。 | 2016 | 1200 和更新版本 |
Power BI Premium 中的表格式 2 | 關係型模型建構(模型、數據表、數據行),在表格式元數據物件定義中清楚說明,表格式模型腳本語言 (TMSL) 和 表格式物件模型 (TOM) 程式代碼。 | 2020 | 1500 和更新版本 |
[1] Azure Analysis Services 支援 1200 和更高相容性層級的表格式模型。 不過,不支援本文所述的所有表格式模型化功能。 雖然建立和部署表格式模型至 Azure Analysis Services 與內部部署模型大致相同,但請務必了解差異。 若要深入瞭解,請參閱 什麼是 Azure Analysis Services?
[2] Power BI Premium 容量支援 1500 和更高相容性層級的表格式模型。 不過,不支援本文所述的所有表格式模型化功能。 在建立和部署表格式模型至 Power BI Premium 時,與內部部署或 Azure 的模型大致相同,但請務必了解差異。 若要深入瞭解,請參閱 Power BI Premium Analysis Services
相容性層級很重要。 它是指 Analysis Services 引擎中的發行特定行為。 若要深入瞭解,請參閱 表格式模型相容性層級 和 多維度模型相容性層級
模型功能
下表摘要說明模型層級的功能可用性。 檢閱此清單,以確保您想要使用的功能可在您計劃建置的模型類型中使用。
特徵 | 多面的 | 表格式的 |
---|---|---|
行動 | 是的 | 不 |
聚合 | 是的 | 不 |
計算結果列 | 不 | 是的 |
匯出量值 | 是的 | 是的 |
匯出數據表 | 不 | 是3 |
自訂元件 | 是的 | 不 |
自定義匯總 | 是的 | 不 |
默認成員 | 是的 | 不 |
顯示資料夾 | 是的 | 是3 |
相異計數 | 是的 | 是(透過 DAX) |
鑽研 | 是的 | 是 (取決於用戶端應用程式) |
層次結構 | 是的 | 是的 |
KPI | 是的 | 是的 |
連結的物件 | 是的 | 是 (鏈接的數據表) |
M 運算式 | 不 | 是3 |
多對多關聯性 | 是的 | 否(但有 雙向交叉篩選 在 1200 和更高的相容性層級) |
命名集 | 是的 | 不 |
不完全的階層 | 是的 | 是3 |
父子式階層 | 是的 | 是(透過 DAX) |
分區 | 是的 | 是的 |
觀點 | 是的 | 是的 |
查詢交錯 | 不 | 是4 |
數據列層級安全性 | 是的 | 是的 |
物件層級安全性 | 是的 | 是3 |
半加法量值 | 是的 | 是的 |
翻譯 | 是 | 是的 |
用戶定義的階層 | 是的 | 是的 |
回寫 | 是的 | 不 |
[4] - SQL Server 2019 和更新版本的 Analysis Services、Azure Analysis Services。
數據考慮
表格式和多維度模型使用從外部來源匯入的數據。 決定哪一種模型類型最符合您的數據時,您需要匯入的數據量和類型可以是主要考慮。
壓縮
表格式和多維度解決方案都會使用數據壓縮,可減少 Analysis Services 資料庫相對於您要匯入數據的數據倉儲大小。 因為實際壓縮會根據基礎數據的特性而有所不同,因此在查詢中處理和使用數據之後,解決方案無法確切知道需要多少磁碟和記憶體。
許多 Analysis Services 開發人員所使用的估計是,多維度資料庫的主要記憶體大約是原始數據的三分之一大小。 表格式資料庫有時可能會得到更大的壓縮量,大約十分之一的大小,特別是如果大部分的數據是從事實數據表匯入。
模型和資源偏差的大小(記憶體內部或磁碟)
Analysis Services 資料庫的大小只會受限於可供執行它的資源。 模型類型和儲存模式也會在資料庫成長程度方面扮演一個角色。
表格式資料庫會以記憶體內部或 DirectQuery 模式執行,以將查詢執行卸載至外部資料庫。 針對表格式記憶體內部分析,資料庫會完全儲存在記憶體中,這表示您不僅必須有足夠的記憶體來載入所有數據,而且必須有額外的數據結構,才能支持查詢。
在 SQL Server 2016 中修改的 DirectQuery 限制比之前少,而且效能更好。 利用後端關係資料庫進行記憶體和查詢執行,可讓建置規模較大的表格式模型比先前可行。
在過去,生產環境中最大的資料庫是多維度的,處理和查詢工作負載會在專用硬體上獨立執行,每個工作負載都針對各自的用途優化。 表格式資料庫快速趕上,DirectQuery 中的新進展將有助於進一步縮小差距。
對於多維度卸除數據記憶體和查詢執行,可透過 ROLAP 取得。 在查詢伺服器上,可以快取數據列集,並分頁過時。有效率且平衡地使用記憶體和磁碟資源,通常會引導客戶使用多維度解決方案。
在負載下,任一解決方案類型的磁碟和記憶體需求都可能會隨著 Analysis Services 快取、儲存、掃描和查詢數據而增加。 如需記憶體分頁選項的詳細資訊,請參閱 記憶體屬性。 若要深入瞭解調整,請參閱 Analysis Services 中的高可用性和延展性。
支持的數據源
表格式模型可以從關係型數據源、數據摘要和某些檔案格式匯入數據。 您也可以搭配表格式模型使用 OLE DB for ODBC 提供者。 1400 和更高相容性層級的表格式模型,可讓您從中匯入的各種數據源大幅增加。 這是因為使用 M 公式查詢語言,在 Visual Studio 中引進新式 Get Data 數據查詢和匯入功能。
多維度解決方案可以使用 OLE DB 原生和受控提供者,從關係型數據源匯入數據。
若要檢視您可以匯入至每個模型的外部資料來源清單,請參閱下列主題:
支援的數據源 (表格式)
查詢和文稿語言支援
Analysis Services 包含 MDX、DMX、DAX、XML/A、ASSL 和 TMSL。 這些語言的支援可能會因模型類型而異。 如果查詢和文稿語言需求是考慮的,請檢閱下列清單。
表格式模型資料庫支援 DAX 計算、DAX 查詢和 MDX 查詢。 在所有相容性層級上都是如此。 腳本語言是 ASSL(透過 XMLA),適用於相容性層級 1050-1103,以及適用於相容性層級 1200 和更高層級的 TMSL (over XMLA)。
多維度模型資料庫支援 MDX 計算、MDX 查詢、DAX 查詢和 ASSL。
表格式和多維度模型和資料庫支援 Analysis Services PowerShell。
所有資料庫都支援 XMLA。
安全性功能
所有 Analysis Services 解決方案都可以在資料庫層級受到保護。 更細微的安全性選項會因模式而異。 如果解決方案需要細微的安全性設定,請檢閱下列清單,以確保您想要建置的解決方案類型支援所需的安全性層級:
設計工具
Visual Studio 具有 Analysis Services 專案延伸模組,也稱為 SQL Server Data Tools (SSDT),是用來建立多維度和表格式解決方案的主要工具。 此撰寫環境會使用 Visual Studio 殼層來提供設計工具工作區、屬性窗格和物件流覽。 表格式模型也支持開放原始碼和第三方工具的模型撰寫。 若要深入瞭解,請參閱
用戶端應用程式支援
一般情況下,表格式和多維度解決方案支援使用一或多個 Analysis Services 用戶端連結庫的用戶端應用程式(MSOLAP、AMOMD、ADOMD)。 例如,Excel、Power BI Desktop 和自定義應用程式。 Power BI 等數據視覺效果和分析服務完全支援表格式和多維度解決方案。
如果您使用 Reporting Services,報表功能可用性會因版本和伺服器模式而異。 基於這個理由,您想要建置的報表類型可能會影響您選擇要安裝的伺服器模式。
Power View 是 SharePoint 中執行的 Reporting Services 撰寫工具,可在部署在 SharePoint 2010 伺服器數位的報表伺服器上取得。 唯一可以搭配此報表使用的數據源類型是 Analysis Services 表格式模型資料庫或 Power Pivot 活頁簿。 這表示您必須有表格式模式伺服器或Power Pivot for SharePoint 伺服器,才能裝載這種類型的報表所使用的數據源。 您無法使用多維度模型做為 Power View 報表的數據源。 您必須建立 Power Pivot BI 語意模型連接或 Reporting Services 共用數據源,才能作為 Power View 報表的數據源。
報表產生器及報表設計師可以使用任何 Analysis Services 資料庫,包括 Power Pivot for SharePoint 上裝載的 Power Pivot 活頁簿。
所有 Analysis Services 資料庫都支援 Excel 數據透視表報表。 不論您使用表格式 .database、多維度資料庫或Power Pivot活頁簿,Excel功能都相同,不過多維度資料庫僅支援回寫。