上篇文章主要介紹了BI的一些概念,主要是原始庫、資料倉儲資料庫、維度資料表、事實表和相關的匯入工作。資料匯入之後,就是分析、統計和挖掘,這是這些底層的工作全部是由微軟的Analysis Service幫我們做好了,我們學會如何使用,便能做到“看起來很厲害的樣子”了。
開啟SQLSERVER Data Tools,就可以建立Analysis項目。1:
主要分為Data Sources,Data Source Views,Cubes,Dimensions,Mining Structures等。
Data Sources 主要是資料庫源,也就是我使用了哪些資料庫作為倉庫資料庫。我串連的事DemoDB。
Data Source Views 是從資料來源裡,使用了哪些表。我這個庫中也沒什麼表,把三個表全部匯入。2:
Cubes:是資料立方體。何為資料立方體?這主要是和維度概念一起理解,我們現實是分三維,x,y,z三個座標決定的空間。而資料庫,可能會包含很多維度,只是在我們的認知中無法想像超越三維的事物,這隻是個概念。可見,Cube是依賴於維度。所以在我們建立Cube的時候,需要理解下面的Dimension是什麼。
Dimensions:Cube的維度,每個Cube依賴哪些維度來做統計,就需要在這裡建。雖然在建立立方的時候會自動幫我們建立維度,但是有時候他建立的維度並不能達到我們的目的。所以,我們先建Dimension,再建Cube。
Mining structures:資料採礦用的東西,咱這裡就不說了,因為我還沒用過,只是看了下Webcast的視頻,裡面介紹了整合了大量的現有挖掘演算法,很方便的可以做出相應的分析趨勢。 還是看似厲啊。
建立Dimension
那現在就建立一個時間維度,為我們的UserActionCube做準備工作。
右鍵點擊Dimensions->New Dimension -> Use an existing table ->Main table(DimDate)->Available attributes(全選,因為我們年月日都作為統計條件),結束。這個維度是初步建好了。
現在可以看到DimDate的編輯介面,
左側為屬性,中間是階層,右側是表。
因為我們的統計需求可能會對 月份、年份做統計,所以如果統計某個月,則需要把所有當月的天數的事實做統計,這如果寫程式來統計會很慢很複雜,而維度卻有層級的概念,所以我們可以在中間一欄建立一個層次關係,這樣系統就可以幫我們做好層次的統計。
建立層次結果
但是上面有驚嘆號,滑鼠移上去發現說是屬性之間並不存在這種關係。所以我們還要修改Attribute的Relationships(在上面一幅圖的紅色圈中的選項卡介面裡)。
現在預設的關係是平級的,他們沒有層級關係,所以我們要按照年月日建立好關係。
調整為這樣黃色的驚嘆號就不存在了。ID屬性Day,Day屬於Month,Month屬於Year。操作方法:先刪除現有的線條,然後右鍵點擊一個項,建立新關係。
現在你可以Processing DimDate (處理維度),然後點擊browser看看最終得到的資料,我的如:
現在維度已經建立好了,那麼我就建立一個Cube。
只需要選擇事實表即可,相關的維度是藍色的。在建立過程中,我們可以選擇已經建立好的DimDate維度,也可以讓系統幫我們自動建立DimAction維度,因為這個維度不需要我們特熟處理。
在Processing FactUserAction Cube之前,別忘了先處Processing DimAction,假如你也有的話。然後就可以Browser這個Cube的具體報表了。我這邊出現了異常,所以就不貼圖了,貼一個其他機器上Cube的圖讓大家看看。
可以看到左側的提示都是直接拖拽事實表的欄位為統計,維度資料表的欄位為屬性。產生一個報表,還算不錯,呵呵。不過這種拖拽也只能我們自己看,要想讓營運和產品人員看,就不能讓他們拖拽了,而是我們要開發一套報表展現系統,把Cube裡的資料查詢出來。這個下一節再說吧。
【PS】如果有動手做的朋友碰到問題或者有疑惑可以在評論裡給我留言,或加QQ群,在頁面的左上方。我們共同探討。謝謝。