新數據倉庫的 SSAS 表格模型或 SQL 關係數據庫?SSAS仍然是學習技術的好方法嗎?
我正在為我的公司使用 SQL Server 創建數據倉庫。我用一個簡單的 SQL 關係數據庫創建了一個 POC,其中有幾個(大約 10 個)儲存的用於 ETL 過程的 Procs。現在我已經獲得業務支持,將其升級到生產狀態,我將在該狀態下將數據增加三倍,現在是確保我使用的技術最適合我們的需求並與一般最佳實踐保持一致的正確時機。
我們每天將處理大約 50 萬條記錄,每天最多猜測大約 100 萬條記錄。然後,POC 將所有這些數據匯總為過去 4 年中每個客戶每天 5 分鐘的數據塊。每個客戶的每個事實(POC 有 4 個事實表)(讓我們計劃 25 個)總共有超過 50 萬個時隙。因此,對於 POC,我們正在按客戶和時間查看所有事實的大約 5000 萬行。鑑於過去 6 個月滿足所有問題的 85%,這意味著對數據的最終視圖很少,這意味著我們應該在 85% 的時間(如果不是更少)的時間里處理大約 250k 行的結果集。鑑於我希望將數據增加三倍,我們稱之為最多 100 萬行來滿足 85% 的查詢,分為大約 8 到 10 個具有大約 4 或 5 個維度表的事實表。
綜上所述,如上所述,我處於一個非常幸運的位置,我現在可以選擇用於倉庫後端的技術。我從來沒有真正有機會真正陷入 SSAS 並覺得它是我缺乏的一項技術。SSAS 是否仍然是數據倉庫的熱門選擇,還是在過去幾年中其受歡迎程度有所下降?它仍然像5年前一樣使用嗎?
簡短版本:SSAS 是否仍然值得學習/投入時間和精力?
我們目前在 SQL 2016 上,這將在 SQL Server 2017 上建構
感謝您的所有意見。
在我看來,是的——它仍然是一項完全有效的技術。如果我們討論的是表格而不是多維 SSAS 實現,則更是如此。例如,VertiPaq(執行表格模型的數據庫引擎)與 PowerBI 中的引擎相同,如果您決定學習這些技能,您使用 SSAS/TOM/DAX 學習的任何技能都會對您有所幫助。還需要注意的是,PowerBI、Excel、SSRS 和許多其他工具可以連接到 SSAS/Tabular 以獲取數據以建構儀表板和報告。
自 2014 年初以來,我個人一直在使用 SSAS/Tabular,並且我已經推出了 3 個大規模實現(我目前正在進行第 4 個)。我目前的公司使用 SSAS/Tabular 作為其核心產品的分析引擎。通過使用 PowerQuery 從其他來源獲取數據,它可以與除 SQL Server 之外的許多其他產品集成。
如果您計劃做的只是擁有一個星型模式(甚至雪花模式)的數據倉庫,那麼 Tabular 是一個不錯的選擇,因為它提供了出色的性能(取決於硬體)和驚人的壓縮。你應該知道它是一個純粹的記憶體分析引擎,所以如果你選擇走這條路,請準備好購買大量的 RAM。要估計您需要多少 RAM,典型的表格安裝將是原始數據大小的 1/10(取決於良好的建模原則)。
我有一個表格模型,它在主事實表中包含大約 8 億行數據,在每個維度表中包含大約 1600 萬行數據。它佔用大約 48GB 的 RAM,但在應用過濾器時對它的查詢是亞秒級的,而在轉儲整個表時不到 30 秒。與 SQL Server 不同,表格模型中的分區不會加速查詢,因為數據不在磁碟上,但它會加速 ETL 過程,因為您可以載入單個分區。
話雖如此,我仍然有一個 SQL Server 數據倉庫,用於儲存我在表格模型中不需要的數據。與任何技術一樣,為工作選擇合適的工具。如果您想要一些可以為您提供高性能分析的東西,Tabular 是一個不錯的選擇,但確實需要您學習更多技術(我認為 C# 和 PowerShell 是必須的,因為它們有助於部署、管理和建構)。但是,如果您沒有預算、資源或需要表格安裝提供的功能,那麼傳統數據倉庫或多維 SSAS 安裝可能是更好的選擇。