上篇文章主要介紹了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群,在頁面的左上角。我們共同探討。謝謝。