在前兩篇文章(第一篇、第二篇)提到過去微軟為了解決BI分析,採用OLAP的架構來實作Analysis Server,以加速Server的回應速度。在2012年發表了新的技術—Tabular Model(Table)和VertiPaq,這是相較於舊世代的Multidimentional Model(Cube)和OLAP的技術升級。由於硬體的突破(RAM越來越大),讓運算可以更快速。以往取資料都要讀取硬碟,現在可以直接從RAM中做計算、查詢。本篇先簡單介紹Tabular Model和Multidimentional Model的差異。
1. 儲存形式
Picture Reference From:Here
由上圖可以看出,Multidimentional Model是以Cube的概念儲存資料,Tabular Model顧名思義是以Table的方式。兩者儲存的地方不同,前者存在硬碟,後者存在RAM(in-memory)。這也是新的分析架構能夠速度大提升的重要原因之一。在實務上,當Power BI報表載入時,用到的資料全部載入到RAM,而不是需要用到時再去硬碟讀取。
2. 量值 - Measures
這是BI分析的一個很重要的資料儲存形式。前幾篇提到BI分析是靠「預先算好的資料」(pre-aggregate data)來提升回應速度,而量值就是這些「預先算好的資料」的統稱。Cube中每一個小方塊算出的量值是由設定的維度來決定的,而Tabular Model的量值則是用DAX語法(SUM、COUNT、AVG...etc)算出來。前者若要改變分析維度、改變Aggregation函式,只能透過IT人員修改Cube或是MDX語法;後者只需要User修改DAX語法即可輕易達成。
3. 讀取資料方式
OLAP有分MOLAP和ROLAP,兩者的差別在於資料是不是即時的。同樣的概念在Tabular Model也分為Import和DirectQuery。Import是指從資料源(DB、Excel、Web...etc)載入資料時,就將資料載入到RAM,且在Power BI檔案(.pbix)儲存時將資料保留在硬碟。DirectQuery是指在需要用到資料時,送出一個Request到某個資料源取得資料。
這裡有Import和DirectQuery詳盡的比較。
下一篇會說明微軟的VertiPaq技術。