
前不久給用戶培訓BI。有一個學員問我,BI系統的設計思路是什么?這個問題可是說來話長。后來筆者回去總結了一下,認為BI系統的設計原理就是三個倉庫二個通道和一個規則。在此筆者將此共享出來,與大家共勉。
三個倉庫:數據源、臨時存儲區域和目標倉庫
BI系統是一個數據分析的工具。巧婦難為無米之炊。如果沒有合適的基本數據,那么BI系統就什么都不是。數據當然是存放在倉庫中。為此這里首先需要強調的就是三個倉庫的問題。
數據源指的是BI系統的原始數據。如BI系統可以從ERP系統中獲取數據,也可以從Excel等表格文件中獲取數據。這些存放數據的地方就是數據源。對于BI系統來說,能夠支持的數據源越多,其靈活性就會越大。因為在實際工作中,不同的企業往往會有不同的數據源。如上了ERP系統或者進銷存系統的企業,其數據源就是數據庫。而現在企業中使用的數據庫也是非常的多,如Oracle或者MySQL等等。而沒有上這些信息化管理系統的企業,其日常交易的數據往往都是存放在Excel表格中。
可見企業存放數據的方式比較多樣。如果企業所選擇的BI系統不能夠支持很多種類的數據源,如只能夠支持微軟的產品(包括表格或者數據庫)。那么對于使用Oracle數據庫的企業來說,就會比較麻煩。此時他們可能需要根據固定的格式,將數據先轉換為Excel表格,然后再使用。簡單的說,如果BI系統能夠支持多種數據源,那么BI系統所使用的數據源倉庫就可能與其他應用軟件所采用的數據源倉庫相同,即公用。而可以免于相互導入導出的麻煩。反之,如果不兼容的話,那么就需要采用多個數據源。這無疑會增加后續維護管理的工作量。所以對于數據源來說,兼容性是一個不容忽視的問題。
臨時存儲區域主要用來存放BI系統所關系的數據。如現在BI系統從一個ERP數據庫中獲取數據。眾所周知,ERP系統后臺數據庫的表格數以千計。而針對某個特定的BI業務,其所需要用到的表格一般不會超過二十張。為此出于效率與成本的考慮,BI系統從數據源中讀取數據時,往往讀取的是其比較關心的內容。如對于交貨及時率分析,產品的價格表、生產成本表等等,BI系統并不需要知道。其只需要知道銷售訂單、訂單出貨情況的等等一部分內容。
為此在使用BI系統時,BI 系統一般會先將數據從數據源中截取部分(按需讀取)然后存放在這個臨時存儲區域。對于這個臨時存儲區域,筆者認為應該從兩個部分來把握。首先,這個存儲區域,截取的是數據源中部分的數據。注意,筆者這里采用的是截取這個關鍵詞。這就表示,臨時存儲區域中的數據是數據源的一個子集。在這里存儲的數據,只是范圍上比較窄而已。從數據本身的內容來看,兩者并沒有明顯的不同。為什么要這么設計,在后續談到規則時筆者還會做說明。第二個關鍵點是臨時。數據源中的數據作為基礎數據,當然需要一直保存。而這個臨時存儲區域的數據,一般不會永久保存。至于為什么要這么設計,可能要結合下面一個倉庫“目標倉庫”來進行說明了。
目標倉庫,簡單的說,就是用戶所需要的數據。這個數據與數據源或者臨時存儲區域中的數據會有明顯的不同。因為此時目標倉庫的數據,是一個經過過濾、四則運算、邏輯判斷等等處理后的數據。或者說是用戶最后想要看到的數據。從臨時存儲區域中的數據,根據用戶的要求,進行一定的處理后,就變為了目標倉庫。
在實際工作中,我們對數據進行備份時,是對目標倉庫中的數據進行備份,即只是針對最終的數據進行備份。在這種情況下,中間臨時存儲區域的數據就沒有用途了。此時應用程序往往會對其進行刪除。如果永遠保存的話,就有兩份基礎數據(臨時存儲區域和數據源),反而容易混淆。為此對于臨時存儲區域中的數據,系統會定時的進行清除。同時根據用戶的需要,定時的對目標倉庫中的數據進行備份。
以上就是在BI系統設置中需要用到的三個倉庫。筆者在這里做一個總結。數據源就是BI系統所需要用到的原始數據。如何保障其數據的準確性以及數據源的兼容性,這是項目管理員需要考慮的一個問題。臨時存儲區域是數據源的一個子集,其作用是承上啟下,便于目標倉庫對數據的運算。目標倉庫中存儲的數據是用戶最終希望看到的結果,是對數據抽樣、統計、分析后的一個結果。
CIO頻道人物視窗
CIO頻道方案案例庫
大數據建設方案案例庫
電子政務建設方案案例庫
互聯集成系統構建方案案例庫
商務智能建設方案案例庫
系統集成類軟件信息研發企業名錄