張軍 王芬芬
摘 要:為更好地支持各業(yè)務系統(tǒng)數(shù)據(jù)的整合集成以及對多維數(shù)據(jù)的交叉分析和數(shù)據(jù)的挖掘分析等需求,有效支撐高校管理與決策對數(shù)據(jù)的需求,需搭建規(guī)范、有效的數(shù)據(jù)倉庫平臺,并部署實施數(shù)據(jù)統(tǒng)計與分析系統(tǒng)?;诖?,文章闡述了數(shù)據(jù)倉庫的基本理論及一般構(gòu)建方法,給出了符合高校需求的數(shù)據(jù)倉庫主題劃分,設計了5層數(shù)據(jù)倉庫結(jié)構(gòu)體系。并將其應用于湖南鐵道職業(yè)技術(shù)學院數(shù)據(jù)分析系統(tǒng),取得了較好的效果,對其它高校數(shù)據(jù)倉庫的構(gòu)建具有示范和借鑒意義。
關(guān)鍵詞: 數(shù)據(jù)倉庫;數(shù)據(jù)分析;ETL
文章編號: 2095-2163(2019)03-0122-04 中圖分類號: TP315 文獻標志碼: A
0 引 言
隨著信息技術(shù)的迅猛發(fā)展,教育信息化的建設在大多數(shù)的高校里已經(jīng)開展多年,用于支持高校管理及教育教學的多個信息系統(tǒng)已經(jīng)完成建設,大量的業(yè)務數(shù)據(jù)已經(jīng)產(chǎn)生,如何有效地組織管理這些數(shù)據(jù),使其能為學校的管理決策和教育教學提供支持已成為當前高校教育信息化研究的重要課題。教育部于2018年4月印發(fā)的《教育信息化2.0行動計劃》中就明確指出:深化教育大數(shù)據(jù)應用,全面提升教育管理信息化支撐教育業(yè)務管理、政務服務、教學管理等工作的能力。充分利用云計算、大數(shù)據(jù)、人工智能等新技術(shù),構(gòu)建全方位、全過程、全天候的支撐體系,助力教育教學、管理和服務的改革發(fā)展[1]。
數(shù)據(jù)倉庫技術(shù)能夠從數(shù)據(jù)采集、清洗、存儲、統(tǒng)計分析、展現(xiàn)等多個方面為高校數(shù)據(jù)資源的積累、管理和利用提供技術(shù)方案。數(shù)據(jù)倉庫中的數(shù)據(jù)為分析型數(shù)據(jù),以相同主題的方式組織聚集的,而業(yè)務系統(tǒng)數(shù)據(jù)庫中的數(shù)據(jù)為操作型數(shù)據(jù),是圍繞著一個或幾個業(yè)務處理流程來組織。所以,利用數(shù)據(jù)倉庫技術(shù)來建設高校數(shù)據(jù)統(tǒng)計與分析系統(tǒng)是必要且有效的。本文根據(jù)高校數(shù)據(jù)統(tǒng)計與分析的實際業(yè)務需求及教育數(shù)據(jù)的特點,結(jié)合現(xiàn)有數(shù)據(jù)倉庫的相關(guān)技術(shù)和建設經(jīng)驗,設計符合高校數(shù)據(jù)統(tǒng)計與分析的數(shù)據(jù)倉庫架構(gòu),給出建設過程,最后實現(xiàn)基于數(shù)據(jù)倉庫的高校數(shù)據(jù)統(tǒng)計與分析系統(tǒng)。其系統(tǒng)架構(gòu)及建設過程可為其它類似數(shù)據(jù)分析或決策支持系統(tǒng)的建設提供有益參考和借鑒。
1 數(shù)據(jù)倉庫基本理論
數(shù)據(jù)倉庫之父Bill Inmon給出的定義是:數(shù)據(jù)倉庫是一個面向主題的(Subject Oriented)、集成的(Integrate)、相對穩(wěn)定的(Non-Volatile)、反映歷史變化(Time Variant)的數(shù)據(jù)集合,用于支持管理決策[2]。其中的主題是指用戶使用數(shù)據(jù)倉庫進行數(shù)據(jù)分析時所關(guān)心的重點方面。每一個主題對應一個宏觀的分析領(lǐng)域。數(shù)據(jù)倉庫排除對于決策無用的數(shù)據(jù),提供特定主題的簡明視圖。集成就是對原有分散的數(shù)據(jù)進行抽取、清洗,然后進行加工、匯總、整理得到的規(guī)范、統(tǒng)一的全局信息。同時數(shù)據(jù)倉庫中的數(shù)據(jù)是很少有修改或是刪除操作的,數(shù)據(jù)將會長期保留,包含有大量的歷史數(shù)據(jù),能夠存儲不同時間范圍的數(shù)據(jù)快照,所以這就既是相對穩(wěn)定的,也是能夠反映歷史變化的數(shù)據(jù)集合。
因為數(shù)據(jù)倉庫的目的就是數(shù)據(jù)統(tǒng)計分析,為決策支持服務,這就注定數(shù)據(jù)倉庫不會“生產(chǎn)”數(shù)據(jù),其內(nèi)部數(shù)據(jù)主要來源于其它業(yè)務系統(tǒng)或是外部數(shù)據(jù),這些數(shù)據(jù)經(jīng)過清洗、轉(zhuǎn)換流入至倉庫層中。在倉庫層中,有用于對倉庫中數(shù)據(jù)進行描述管理的元數(shù)據(jù);有為應用層提供在線分析處理服務的Web服務器;有面向各類的主題的聚集數(shù)據(jù);有面向特定應用或單個主題的數(shù)據(jù)集市等。最后,由具體的應用為用戶提供各類數(shù)據(jù)統(tǒng)計分析等相關(guān)服務。由此,研究可以將數(shù)據(jù)倉庫分為3層:源數(shù)據(jù)、倉庫層、應用層,如圖1所示。
2 系統(tǒng)構(gòu)建
2.1 源數(shù)據(jù)分析及主題確定
建立數(shù)據(jù)倉庫的首要環(huán)節(jié)就是對業(yè)務源數(shù)據(jù)進行分析,是否能夠充分理解和透徹分析業(yè)務源數(shù)據(jù)將直接影響到后面數(shù)據(jù)模型的設計是否合理、有效。通常,研究將源數(shù)據(jù)的分析分為表級分析和字段級分析。而源數(shù)據(jù)分析的主要工作則包括有:整理所有業(yè)務系統(tǒng)數(shù)據(jù)庫的清單表,統(tǒng)計每一張數(shù)據(jù)表的記錄數(shù),對業(yè)務系統(tǒng)數(shù)據(jù)庫的數(shù)據(jù)量以及使用情況有一個全面的了解;統(tǒng)計每一張表的主要字段,包括數(shù)據(jù)類型以及數(shù)據(jù)長度;了解表的主鍵和外鍵,明確表之間的相互依賴關(guān)系;明確最后需要進入數(shù)據(jù)倉庫的數(shù)據(jù)表及具體數(shù)據(jù)項。
主題是在較高層次上將業(yè)務系統(tǒng)中的數(shù)據(jù)進行整合、歸類和分析利用的一個抽象概念,每個宏觀的分析領(lǐng)域與一個主題相對應。在邏輯意義上 主題是對應業(yè)務中具體宏觀分析領(lǐng)域所涉及的分析對象。主題一般是采用逐級細分的思路進行設計劃分,結(jié)合高校的具體業(yè)務數(shù)據(jù)特點以及數(shù)據(jù)統(tǒng)計與分析系統(tǒng)的建設需求,本次研究可以開發(fā)確定的數(shù)據(jù)倉庫主題域即如圖2所示。
2.2 分層架構(gòu)設計
數(shù)據(jù)統(tǒng)計與分析系統(tǒng)的核心部分就是數(shù)據(jù)倉庫,數(shù)據(jù)倉庫的關(guān)鍵任務就是對分散、繁雜的數(shù)據(jù)進行規(guī)范、統(tǒng)一的清洗處理,然后建立清晰的業(yè)務邏輯關(guān)系,實現(xiàn)數(shù)據(jù)的匯總聚合,分層的架構(gòu)設計能夠有效地完成上述工作。結(jié)合高校對數(shù)據(jù)倉庫的實際業(yè)務需求,將數(shù)據(jù)倉庫按照相關(guān)功能分為臨時層、近源層、主題層、匯總層和集市層等5層,其層次架構(gòu)設計如圖3所示。對其中各層的功能設計可做闡釋解析如下。
(1)臨時層:該層位于最下層,最接近業(yè)務系統(tǒng)數(shù)據(jù)庫,并直接與各個業(yè)務系統(tǒng)數(shù)據(jù)源對接,盡量保持業(yè)務數(shù)據(jù)的原貌,在抽取策略上可選擇增量和全量抽取,同時在抽取時加上時間戳,形成多個版本的歷史數(shù)據(jù)信息。
(2)近源層:該層以偏源系統(tǒng)建模,對臨時層數(shù)據(jù)進行初步的篩選和加工,不進行數(shù)據(jù)的整合處理,能夠提供基于業(yè)務數(shù)據(jù)的訪問需求。
(3)主題層:該層數(shù)據(jù)模型要求符合數(shù)據(jù)庫3NF范式規(guī)則,是數(shù)據(jù)倉庫的核心數(shù)據(jù)層,每個主題對應一個宏觀分析領(lǐng)域。主題層數(shù)據(jù)強調(diào)數(shù)據(jù)整合和歷史信息,能夠支持較長時間周期的分析需求,模型設計應具備足夠的靈活性,以滿足進一步的升級和更新。
(4)匯總層:該層是面向數(shù)據(jù)分析而建模,由于主題層是大量高度規(guī)范化的數(shù)據(jù),因此要完成一個查詢或是一項統(tǒng)計往往需要大量的關(guān)聯(lián)工作[3],而數(shù)據(jù)統(tǒng)計分析又需要針對主題層數(shù)據(jù)進行大量的匯總工作(如:累加、平均值、記錄數(shù)、最大最小值等等),設計匯總層能有效提高數(shù)據(jù)倉庫的查詢效率。
(5)集市層:該層數(shù)據(jù)面向具體應用,可以理解為供用戶直接訪問。具有面向用戶、相互獨立、形式各異等特點。同時,該層數(shù)據(jù)的生命期是依具體應用的需求而定。
2.3 數(shù)據(jù)ETL設計與實施
ETL(Extract-Transform-Load)是數(shù)據(jù)源端不同數(shù)據(jù)庫或異構(gòu)數(shù)據(jù)源的數(shù)據(jù)經(jīng)過抽取、轉(zhuǎn)換和加載到目的端的過程[4],ETL是實施數(shù)據(jù)倉庫的核心和靈魂。ETL根據(jù)不同的抽取策略進行參數(shù)、執(zhí)行時間的初始化,之后進入后臺守護模塊實時監(jiān)控。后臺主要完成將業(yè)務數(shù)據(jù)按照抽取策略定時導入數(shù)據(jù)到臨時數(shù)據(jù)庫,處理后定時調(diào)用后臺存儲過程保存到數(shù)據(jù)倉庫中。ETL數(shù)據(jù)處理整體上可分為數(shù)個階段。對此可做設計分述如下。
(1)數(shù)據(jù)抽取階段。主要根據(jù)業(yè)務調(diào)研制定的規(guī)范,把分布在各業(yè)務系統(tǒng)的數(shù)據(jù)抽取到數(shù)據(jù)倉庫的臨時層,在抽取時要遵守業(yè)務調(diào)研階段制定的數(shù)據(jù)標準。
(2)數(shù)據(jù)清洗階段。是解決從各數(shù)據(jù)源抽取數(shù)據(jù)所出現(xiàn)的數(shù)據(jù)重復、數(shù)據(jù)不一致、空值數(shù)據(jù)等問題,包括標準化處理、空值處理和不一致數(shù)據(jù)處理等。數(shù)據(jù)清洗工作主要在近源層完成,清洗時結(jié)合一定的業(yè)務規(guī)則將數(shù)據(jù)值進行標準化。
(3)數(shù)據(jù)轉(zhuǎn)換階段。也是在近源層完成,即將源系統(tǒng)抽取的數(shù)據(jù),經(jīng)過不同的算法處理,并將數(shù)據(jù)處理成數(shù)據(jù)倉庫特定的存儲模式。數(shù)據(jù)轉(zhuǎn)換的任務主要是進行不一致的數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)粒度轉(zhuǎn)換和一些業(yè)務規(guī)則的計算。
(4)數(shù)據(jù)加載階段。就是在數(shù)據(jù)倉庫中經(jīng)過數(shù)據(jù)轉(zhuǎn)換、清洗后,按一定的方式把數(shù)據(jù)存儲到數(shù)據(jù)倉庫的主題層、匯總層和集市層中。
常見的ETL工具有Informatica、Datastage、ODI、OWB、kettle等,本文所選取的是ORACLE公司的ODI系統(tǒng)。ODI提出了知識模塊的概念,用戶既可以直接使用ODI的知識模塊完成數(shù)據(jù)的獲取工作,也可以直接在知識模塊上面做各種定制,比如某一個業(yè)務場景可能并不需要知識模塊里的某一個特定的步驟,那就可以直接把該步驟刪除掉從而提供更好的性能。當然用戶也可以完全自己來開發(fā)這些知識模塊[5]。
2.4 數(shù)據(jù)展示
通過對各類數(shù)據(jù)的分類匯總,形成各個主題的事實數(shù)據(jù)表,利用數(shù)據(jù)展示工具集中提供統(tǒng)計數(shù)據(jù)的圖表展示、查詢下載等相關(guān)服務。常見的用于數(shù)據(jù)前端展示的工具有IBM的Cognos和SAP的BO、Oracle的BIEE、微軟的SSRS等,這些工具都是專業(yè)的報表工具,屬于商業(yè)BI產(chǎn)品,具有強大的報表設計能力和豐富的數(shù)據(jù)展示功能,但是卻也價值不菲、且使用較為復雜。ExtJS是一款基于JavaScript的前端用戶界面開發(fā)平臺。作為一款前端AJAX框架,ExtJS具有編程簡單、與后臺技術(shù)無關(guān)、功能強大等特點,可以便捷地將ExtJS用在dot NET、Java、PHP等各種設計語言開發(fā)的項目中。基于數(shù)據(jù)倉庫的高校數(shù)據(jù)統(tǒng)計與分析系統(tǒng)就是基于ExtJS開發(fā)。圖4展示科研數(shù)據(jù)統(tǒng)計分析報表的詳細界面,這是系統(tǒng)的典型展示界面,上面是按相關(guān)維度生產(chǎn)的數(shù)據(jù)統(tǒng)計圖和數(shù)據(jù)匯總表、當點擊圖表中某個具體統(tǒng)計數(shù)字時,則在頁面下方顯示劃分至更細粒度的詳細數(shù)據(jù),同時提供查詢和導出功能。
3 系統(tǒng)實現(xiàn)
數(shù)據(jù)倉庫平臺的物理結(jié)構(gòu)主要包括數(shù)據(jù)交換中心服務器、數(shù)據(jù)倉庫服務器、數(shù)據(jù)管控中心服務器、數(shù)據(jù)備份服務器。平臺系統(tǒng)的部署設計如圖5所示。其中,數(shù)據(jù)交換中心主要負責各業(yè)務數(shù)據(jù)庫與數(shù)據(jù)倉庫之間的數(shù)據(jù)抽取、清洗和推送,部署ODI系統(tǒng)。數(shù)據(jù)管控中心負責對各類數(shù)據(jù)標準、數(shù)據(jù)接口的維護和管理;數(shù)據(jù)備份服務器主要負責對倉庫數(shù)據(jù)的容災備份。數(shù)據(jù)統(tǒng)計與分析系統(tǒng)服務器可同時擔任Web應用服務器和數(shù)據(jù)庫服務器。在此部署方案中,充分考慮了平臺系統(tǒng)的整體穩(wěn)定性和可用性。平臺的各功能服務器盡量獨立,保證了系統(tǒng)的運行效率和數(shù)據(jù)安全。
4 結(jié)束語
數(shù)據(jù)倉庫平臺的構(gòu)建是基于高校對數(shù)據(jù)分析業(yè)務的實際需求建立的,完全依賴于高校各應用系統(tǒng)的業(yè)務運行情況,各個高校的業(yè)務需求及定義都不完全一樣,同時還有動態(tài)調(diào)整的潛在需求。所以,構(gòu)建出來的數(shù)據(jù)倉庫系統(tǒng)也都各具特色。本文以湖南鐵道職業(yè)技術(shù)學院數(shù)據(jù)分析系統(tǒng)的構(gòu)建為例,簡要介紹了數(shù)據(jù)倉庫的一般構(gòu)建過程,研究剖析了一種數(shù)據(jù)倉庫平臺的架構(gòu)設計機理,同時一并給出了該設計平臺的部署方案。該系統(tǒng)達到了既定需求,能夠靈活地對各類業(yè)務數(shù)據(jù)進行整合分析,形成各類數(shù)據(jù)報表,為學校的相關(guān)的管理決策提供數(shù)據(jù)支撐。
參考文獻
[1]中華人民共和國教育部. 教育部關(guān)于印發(fā)《教育信息化2.0行動計劃》的通知[EB/OL]. [2018-04-18]. http://www.moe.edu.cn/srcsite/A16/s3342/201804/t20180425_334188.html.
[2] 吳振濤. 基于數(shù)據(jù)倉庫技術(shù)的數(shù)據(jù)集成在數(shù)字化校園中的應用[J] . 電子設計工程, 2016, 24(9):28-31.
[3] 龍新征,李麗,彭一明,等. 基于數(shù)據(jù)倉庫的高校數(shù)據(jù)統(tǒng)計服務平臺研究[J]. 通信學報,2013,34(Z2):163-169.
[4] 張孟春. 面向數(shù)據(jù)集成的分布式ETL研究與設計[J]. 軟件導刊, 2017,16(11):197-199.
[5] 李欣. 高校信息門戶內(nèi)外網(wǎng)信息流轉(zhuǎn)系統(tǒng)的設計與實現(xiàn)[D]. 成都:電子科技大學,2012.