平時總被問到一些跟商業智能相關的很多問題,有些問題也是我當初入行的時候經常問的,經過時間的積累,自己總結出了這些問題的答案。也許我個人的了解還沒有達到那種"境界",但還是更願意拿出來分享一下并且跟大家一起探讨一下。
我該如何學商業智能
問這個問題的大多數是想要接觸微軟平台商業智能的朋友。微軟SQL Server的版本經過這麼多次更新後,産品和文檔已經非常的豐富和健全,是以完全可以從它自帶的Books On Line下手,裡面的教程很不錯,涉及到繼承服務,分析服務和報表服務。雖然沒一個教程覆寫的面很小,但是足以帶你在技術上進行入門。
當然商業智能,除了智能外強調的還有商業,中文的這種譯法可能比較勉強,但提到Business可能會更好的了解一些,這裡面有更多的還是業務的意思(盡管這麼說也不是很精确)。不同于BI的其它分支,BI接收到的需求往往是類似一個名額是如何計算出來的,或者一個數字為什麼不準确了。是以這裡都跟業務有着很強的關系,是以想要學習商業智能一定要跟業務一起學,有了業務才有了資料,有了資料你才能BI。
當然,相對于DBA來說,BI更強調技術的廣泛,因為不隻SQL,你可能還要學MDX,DAX,DMX等查詢語言,有些時候甚至還要用.net比如c#寫一個app或者powershell腳本來解決資料的特定問題或者CLR的存儲過程,還需要知道怎麼在SSRS下拼一張報表,甚至還有可能要懂Sharepoint,以及asp.net, webservices, IIS還有前端的很多技術,甚至更多時候你還得是一個Excel高手。
是以,學習BI,你準備好了嗎?
BI如何做前端展現
這個問題每周都會有朋友問我,而我當初入這行的時候也有這樣的問題。商業智能項目往往都是上司層提出來的,是以大家立刻想到用漂亮的前端來滿足上司的需求倒也是很正常的邏輯。
BI的前端是一個很大的話題,但無非就是三個方案,使用現有工具,自己開發或者購買第三方産品。現有工具微軟提供了很多,比如Excel, Sharepoint等,第三方的也很多但是很雜,都以Chart或者Dashboard為主。而要是自己開發呢,以前我是用asp.net webforms架構,其實這套窗體生命周期真的有點别扭,是以我後來都是用WPF或者silverlight,配合第三方的元件,效果也都很贊。
至于如何展現資料挖掘最近也經常有朋友問,可以說微軟确實提供了幾個asp.net的server control來展現決策樹等挖掘模型的資料,不過我真的不推薦每一個提出這個問題的人對BI所了解的套路,商業智能對使用者來說最終就是一個結果,比如,你在京東去購物,京東通過挖掘算法給你做的商品推薦,你會對它後面的購物籃模型感興趣嗎?使用者關心的,隻是推薦的商品是否準确而已。而回到如何展現資料挖掘,其實提問者腦子想的往往都是把這套東西拿出來在上司或者客戶前炫耀一下,不過又回到最原始的話題,你到底要從商業智能中得到什麼,是幫你解決問題還是隻是一個你炫耀的工具。客戶關心的,隻是結果而已,是以成功的項目都會把大多數精力投入到資料的問題上去,而不是"面子"工程。
BI開發環境能嵌入到我現有的系統中嗎?
也許你覺得這個問題很弱,但确實有很多人問。很多系統都強調平台的一緻性,問這個問題的人大多數希望把這些內建自自己的系統之後,可以讓業務人員或者客戶自己去生成模型。
确實,這個圈子的很多人的很多想法就是這麼很難讓人了解。如果再回答這個問題,我覺得需要從另外幾個問題來反問下自己,首先,你業務系統中的表,是誰建立的,開發人員還是最終使用者。其次,你如何指望使用者熟悉這套IT人員的工具以及讓他們自己弄清楚資料的流程。最後,你的産品最終要給使用者帶來什麼。
商業智能在一個項目中絕對不是一個功能那麼簡單,當然也不是那麼高深和神秘,他具體是什麼取決與你對它的規劃和期望。是以,這個問題的答案,需要提出這個問題的人重新審視一下你的IT架構以及你到底想從BI中得到什麼。
這個數字為什麼不正确,這個次元層次應該怎麼建?
真的有很多朋友,一上來就問我他的數字為什麼不準确。來自各個行業的都會有,但這個問題真的很難回答,因為IT環境和業務成熟度不同,即使同一個行業的BI模型和解決方案以及對于細小問題的處理上都會存在很大的差異。BI的解決方案真的很難提出一個能适應所有場景的來,成功的項目往往都是在做各種的Balance。而數字上的問題跟自身的業務關系都很大,是以往往有人問我這個問題我都建議對方自己先去了解自身的業務,然後再來看數字的問題。當然我也曾被對方悲催的強制灌輸業務過,不是我很反感,而是對于有些對方不該透露的業務問題,我真的不願意去犯那個忌諱。
當然也有朋友還會問,我如何在有匯率變動的影響下去求我業務的增長都低應該是多少。OK,這個問題,應該是由業務人員或者财務人員來定的,是以,需要各位BI人員跟相關人員去确定,這個問題不是IT回答的,IT隻能follow決策人員的決策然後将決策展現在IT之中。
是以對于這類問題,我向來是隻給解決問題的建議和大體的方向,僅此而已。往往技術的了解是個短時間的過程,但是業務的了解真的不是那麼簡單。
微軟的産品不支援這個,不支援那個。。。。。。嗎?
我看過一個人抱怨說,Analysis Services不好,因為它不支援what if分析。還有抱怨分析服務的性能如何如何,或者抱怨前端方案不太豐富。
我跟MVP DBA沄劍聊過一個話題,他說國内的SQL Server環境确實不怎麼好,遇到一個問題解決不了,大家想到的往往都是換資料庫。這是國内在了解相關問題上的一貫思路。
當然,這個世界上沒有完美的産品。微軟的起步晚但是一直在借助自身的優勢并且進步着。而對于what if這類分析,确實本就不是SSAS的事,那是在Excel裡的功能,而分析服務的性能問題的提出者,我看了下他的設計,連産品的包裝長度,寬度和高度這種數字都會拿過來作為一個度量設計到模型中去,這樣的坑爹設計你換什麼資料庫都不好使。而前端方案微軟其實是最有優勢的,隻不過很少以插件的方式提供,目的是為了降低成本和真正适應企業的環境,而一個公司已經被微軟查了盜版不得不自己去盜版第三方的前端方案,我想說這個真的誰也幫不了你。
---------------------------------------------------------------
aspnetx的BI筆記系列索引:
使用SQL Server Analysis Services資料挖掘的關聯規則實作商品推薦功能
一起玩轉SQL Server 2012 下的分析服務
使用SQL Server分析服務定位目标使用者
來自部落格園的aspnetx宋衛東