社會是一個信息爆炸的時代,信息豐富而知識貧乏的現象非常普遍。“啤酒搭著尿布賣”的故事曾經觸動了多少人的神經。信息作為現代企業的寶貴資源,占據著越來越重要的地位,已經成為現代企業科學管理的基礎,正確決策的前提,有效調控的手段。
目前,面對激烈的市場競爭,許多大型企業紛紛實施“以客戶為中心,以服務求發展”的經營策略。 如何優化客戶關系,增強企業的競爭優勢已經成為現代企業關注的焦點。現有的應用系統往往以“產品”為中心,以“單據(票證)”處理為基礎,是面向聯機事務處理(Online Transaction Processing,簡稱OLTP)的系統,而以客戶為中心的經營管理模式要求對現有業務系統的數據進行有效的集成并加以重組,建立面向聯機分析處理(Online Analysis Processing,簡稱OLAP)的系統。通過分析客戶的行為,掌握不同類型客戶的特征,進而為客戶提供更加優質的服務,尤其是個性化的服務,同時全面掌握并理解、分析企業業務的發生情況,充分發揮企業現已積累的數據,為各級管理人員提供科學化管理和決策的有力依據,以提高企業的經營業績,保證利潤的持續增長。
同時,隨著企業信息化程度的不斷提高,各類應用系統同時并存并支撐著企業的業務應用。越來越多企業的信息化主管在開發企業應用時已經考慮到數據集成和將來對數據的整體有效利用,因此,在實施了ERP解決方案之后,很多企業選擇實施數據倉庫產品來避免信息孤島,實現應用的內部聯系和信息的共享。
什么是數據倉庫呢?一般認為,數據倉庫(Data Warehouse)是一個面向主題的(Subject Oriented)、集成的(Integrated)、相對穩定的(Non-Volatile)、反映歷史變化(Time Variant)的數據集合,用于支持管理決策(Decision Making Support)。
面向主題:操作型數據庫的數據組織面向事務處理任務,各個業務系統之間各自分離,而數據倉庫中的數據是按照一定的主題域進行組織的。
集成的:數據倉庫中的數據是在對原有分散的數據庫數據抽取、清理的基礎上經過系統加工、匯總和整理得到的,必須消除源數據中的不一致性,以保證數據倉庫內的信息是關于整個企業的一致的全局信息。
相對穩定的:數據倉庫的數據主要供企業決策分析之用,所涉及的數據操作主要是數據查詢,一旦某個數據進入數據倉庫以后,一般情況下將被長期保留,也就是數據倉庫中一般有大量的查詢操作,但修改和刪除操作很少,通常只需要定期的加載、刷新。
反映歷史變化:數據倉庫中的數據通常包含歷史信息,系統記錄了企業從過去某一時點(如開始應用數據倉庫的時點)到目前的各個階段的信息,通過這些信息,可以對企業的發展歷程和未來趨勢做出定量分析和預測。
一個典型的企業數據倉庫系統通常包含數據源、數據存儲與管理、OLAP服務器以及前端工具與應用四個部分。
數據源:是數據倉庫系統的基礎,是整個系統的數據源泉。通常包括企業內部信息和外部信息。
數據的存儲與管理:是整個數據倉庫系統的核心。在現有各業務系統的基礎上,對數據進行抽取、清理,并有效集成,按照主題進行重新組織,最終確定數據倉庫的物理存儲結構,同時組織存儲數據倉庫元數據(具體包括數據倉庫的數據字典、記錄系統定義、數據轉換規則、數據加載頻率以及業務規則等信息)。
OLAP服務器:對分析需要的數據按照多維數據模型進行再次重組,以支持用戶多角度、多層次的分析,發現數據趨勢。其具體實現可以分為:ROLAP、MOLAP和HOLAP。
前端工具與應用:前端工具主要包括各種數據分析工具、報表工具、查詢工具、數據挖掘工具以及各種基于數據倉庫或數據集市開發的應用。其中數據分析工具主要針對OLAP服務器,報表工具、數據挖掘工具既針對數據倉庫,同時也針對OLAP服務器。
在傳統的ERP系統中,一般的核心應用都是進銷存管理和賬務管理,數據庫中的數據也是緊緊圍繞產品信息、票據和賬目明細進行的。這樣的數據層可以很好地實現OLTP,但如果要為企業高層提供決策數據的話,就有必要對這樣原始的、松散的、孤立的數據進行抽取、清洗、加上時間標記并進行合理的分類,以使之能夠進入數據倉庫并支持OLAP。
下面通過一個小型汽修行業進銷存系統(以下簡稱A系統)數據倉庫的建立,來說明ERP系統數據倉庫建立的步驟及應注意的一些問題。
A系統原有的數據層是典型的數據庫系統,核心表為產品信息表、客戶信息表、供應商信息表、庫存表、銷售表、客戶明細表和供應商明細表等。這些表格在運行中很好地解決了OLTP,同時可對企業高層提供基本的一些OLAP,如庫存查詢、銷售查詢等,但這些功能相對高層決策的需求是遠遠不夠的,因此有必要對原系統的數據庫進行改造,建立合理有效的數據集市或數據倉庫,以適應企業遠期的戰略目標。
數據倉庫的建立是一個復雜的過程,首先要進行規劃和分析,我們對原系統的數據進行分析,將原來孤立分散的數據元素進行抽取和清洗分類,把數據劃分成了以下幾個類:客戶類(包含原有系統中的客戶信息、客戶賬目明細等相關客戶信息)、供應商類(包含相關供應商所有信息)、賬目類(包含進銷存的帳目往來及明細數據)、票據類(包含相關帳目票據)等。數據類的劃分將原來松散孤立的數據根據使用特征有機地結合到了一起,可以有效地支持OLAP,同時為以后系統的擴展及升級也打下了良好的基礎。不致于因一發而動全身。
將原有的數據庫數據進行清洗分類后,下一步即開始數據倉庫物理結構及存儲的實施。目前,IBM、Oracle、Sybase、CA、NCR、Informix、Microsoft、和SAS等有實力的公司相繼(通過收購或研發的途徑)推出了自己的數據倉庫解決方案,BO和Brio等專業軟件公司也在前端在線分析處理工具市場上占有一席之地。在A項目數據倉庫解決方案的選擇上,我們選擇了Microsoft的SQL Server 2005作為數據倉庫實現工具。做為微軟新一代的數據庫產品,SQL Server 2005提供了很多新的功能,性能更加強大,同時,A系統原來的數據層是采用SQL Server 2000,因此采用SQL Server 2005可以很好地實現數據的提取和轉換。同時,由于都是微軟的產品,我們今后擴充A系統時,前臺的查詢和報表工具就可以采用dot net平臺實現,無論采用C#還是VB.NET語言都可以實現強大的OLAP分析功能。
最終,由于經過了詳細的設計和建模,A系統數據倉庫的實施取得了良好的效果,系統的轉換較為成功,新系統在數據倉庫的支持下為高層決策提供了極好的支持。同時,由于采用了數據倉庫,A系統的功能和擴展性也有了很大提高。為以后進一步進行操作數據存儲(ODS)和數據挖掘(DATA MINEING)打下了堅實的基礎。