劉充
(南京中醫(yī)藥大學(xué) 信息技術(shù)學(xué)院,江蘇 南京 210023)
基于KETTLE的高校多源異構(gòu)數(shù)據(jù)集成研究及實(shí)踐
劉充
(南京中醫(yī)藥大學(xué) 信息技術(shù)學(xué)院,江蘇 南京 210023)
解決數(shù)字化校園建設(shè)中的多源異構(gòu)數(shù)據(jù)集成問題。利用開源ETL工具KETTLE,對(duì)學(xué)生考試信息與上網(wǎng)信息的抽取、轉(zhuǎn)換和加載。ETL模型自動(dòng)生成了以上網(wǎng)行為事實(shí)表為中心表,以學(xué)生信息、上網(wǎng)信息、時(shí)間3個(gè)維度表的數(shù)據(jù)倉庫。利用KETTLE能夠快速實(shí)現(xiàn)高校多源異構(gòu)數(shù)據(jù)集成,形成高質(zhì)量的分析型數(shù)據(jù),為決策支持服務(wù)。
數(shù)字化校園;異構(gòu)數(shù)據(jù);數(shù)據(jù)集成;KETTLE;ETL
數(shù)字化校園是以網(wǎng)絡(luò)技術(shù)為基礎(chǔ),利用信息技術(shù)實(shí)現(xiàn)對(duì)教學(xué)、科研、管理、生活服務(wù)等信息的收集、處理、整合、存儲(chǔ)、傳輸和應(yīng)用,使數(shù)字資源得到充分優(yōu)化利用的一種虛擬教育環(huán)境[1]。然而,由于高校信息化建設(shè)尚未形成統(tǒng)一的標(biāo)準(zhǔn),不同廠商的系統(tǒng)互不兼容,不同系統(tǒng)之間無法互聯(lián)互通和數(shù)據(jù)共享,形成一個(gè)個(gè)“信息孤島”,直接影響學(xué)校的日常管理。如何將這些“信息孤島”連通起來,實(shí)現(xiàn)高效多源異構(gòu)數(shù)據(jù)集成和共享是數(shù)字化校園建設(shè)的一個(gè)關(guān)鍵問題。
數(shù)據(jù)抽取、轉(zhuǎn)換和裝載(Extraction,Transformation, Loading,ETL)是實(shí)現(xiàn)異構(gòu)數(shù)據(jù)集成的有效方法[2]。在ETL過程中,數(shù)據(jù)抽取可看作是數(shù)據(jù)的輸入過程,即從多個(gè)數(shù)據(jù)源中將數(shù)據(jù)抽取到統(tǒng)一的數(shù)據(jù)存儲(chǔ)中;數(shù)據(jù)轉(zhuǎn)換主要解決數(shù)據(jù)質(zhì)量問題,通過數(shù)據(jù)清洗策略檢測出海量數(shù)據(jù)中存在的數(shù)據(jù)冗余、錯(cuò)誤及缺失并加以改正,然后使用用戶定義的轉(zhuǎn)換規(guī)則對(duì)數(shù)據(jù)進(jìn)行合并、轉(zhuǎn)換等操作,使得數(shù)據(jù)正確、一致和完整;數(shù)據(jù)裝載可看作是數(shù)據(jù)的輸出過程,即將處理后的數(shù)據(jù)從統(tǒng)一的數(shù)據(jù)存儲(chǔ)裝載到目標(biāo)數(shù)據(jù)倉庫中[3]。
目前,越來越多廠商致力于ETL工具的研發(fā),如Oracle的Oracle Warehouse Builder(OWB)、Microsoft的Data Transformation Services(DTS)、IBM的Data Stage等,而較常用的開源ETL工具有KETTLE、Talend、Octopus等。本文采用開源ETL工具KETTLE,在分析KETTLE ETL特點(diǎn)的基礎(chǔ)上,嘗試構(gòu)建高效多源異構(gòu)數(shù)據(jù)ETL解決方案,實(shí)現(xiàn)異構(gòu)數(shù)據(jù)共享。
KETTLE是一款用Java編寫的開源ETL工具,其數(shù)據(jù)集成主要由轉(zhuǎn)換(Transformation)和作業(yè)(Job)兩部分完成,其中“轉(zhuǎn)換”由一系列步驟所組成的邏輯工作網(wǎng)絡(luò),每一個(gè)步驟表示對(duì)一個(gè)或多個(gè)數(shù)據(jù)流進(jìn)行特定的轉(zhuǎn)換操作;而“作業(yè)”基于工作流模型,協(xié)調(diào)數(shù)據(jù)源、執(zhí)行過程和相關(guān)依賴性的ETL活動(dòng),其將功能性和實(shí)體過程聚合起來,完成對(duì)整個(gè)工作流的控制。ETL活動(dòng)是一個(gè)四元組A=(ID,I,O,S),ID是活動(dòng)標(biāo)示符,I是輸入模式的集合,O是輸出模式的集合,S是一個(gè)或多個(gè)擴(kuò)展的關(guān)系代數(shù)表達(dá)式,表示每個(gè)輸出模式的語義[4-5]。KETTLE的ETL活動(dòng)可視為一個(gè)有向無環(huán)圖(DAG圖),圖的節(jié)點(diǎn)對(duì)應(yīng)于一個(gè)個(gè)作業(yè)或轉(zhuǎn)換步驟(Step),邊代表數(shù)據(jù)供給關(guān)系對(duì)應(yīng)于數(shù)據(jù)流節(jié)點(diǎn)連接(Hop)。KETTLE ETL的概念模型如圖1所示。
圖1 KETTLE ETL的概念模型Fig.1 KETTLE ETL conceptual model
高校不同信息系統(tǒng)的數(shù)據(jù)存儲(chǔ)形式多樣,如關(guān)系型數(shù)據(jù)庫,電子表格、XML文件、文本文件等。KETTLE通過配置關(guān)系型數(shù)據(jù)庫的連接信息以及獲取半結(jié)構(gòu)化、非機(jī)構(gòu)化的文本文件、電子表格等文件的路徑實(shí)現(xiàn)對(duì)數(shù)據(jù)源的訪問。下面以教務(wù)管理系統(tǒng)中的學(xué)生考試信息和上網(wǎng)信息的ETL為例進(jìn)行說明。
2.1 數(shù)據(jù)源連接
學(xué)生考試信息存儲(chǔ)于SQL Server 2008數(shù)據(jù)庫中,上網(wǎng)信息包括上網(wǎng)賬號(hào)信息(存儲(chǔ)于MySql數(shù)據(jù)庫中)及網(wǎng)絡(luò)訪問日志存儲(chǔ)于txt文本中。KETTLE提供了JDBC標(biāo)準(zhǔn)接口訪問關(guān)系型數(shù)據(jù)庫。本案例中,通過配置數(shù)據(jù)庫訪問XML文件實(shí)現(xiàn)SQL Server 2008、MySql的連接。而在處理于文本文件時(shí),KETTLE將目錄信息轉(zhuǎn)化為結(jié)構(gòu)化的數(shù)據(jù)表示,轉(zhuǎn)換的數(shù)據(jù)包含文件名、目錄存儲(chǔ)路徑、大小、文件內(nèi)容等列信息,轉(zhuǎn)換成功的結(jié)構(gòu)化數(shù)據(jù)處理與操作關(guān)系型數(shù)據(jù)庫相似。數(shù)據(jù)庫訪問XML文件如下:
2.2 作業(yè)及轉(zhuǎn)換流程設(shè)計(jì)
利用KETTLE成功連接3個(gè)數(shù)據(jù)源后,設(shè)計(jì)作業(yè)流程及轉(zhuǎn)換流程,其中作業(yè)流程是對(duì)ETL過程的整體規(guī)劃,協(xié)調(diào)執(zhí)行過程和相關(guān)依賴性的ETL活動(dòng);轉(zhuǎn)換流程負(fù)責(zé)具體實(shí)施對(duì)源數(shù)據(jù)與目標(biāo)數(shù)據(jù)的映射關(guān)系操作,經(jīng)過排序、去除重復(fù)數(shù)據(jù)等轉(zhuǎn)換操作,最終將數(shù)據(jù)加載至相應(yīng)的維度表與事實(shí)表中。
2.2.1 定義作業(yè)流程
本例的作業(yè)流程中包括日期維度、學(xué)生信息維度、上網(wǎng)信息維度及上網(wǎng)行為事實(shí)4個(gè)部分(見圖2)。每個(gè)維度定義了具體的轉(zhuǎn)換流程,負(fù)責(zé)形成相應(yīng)的維度表,而上網(wǎng)行為事實(shí)的轉(zhuǎn)換流程負(fù)責(zé)產(chǎn)生對(duì)應(yīng)的事實(shí)表。通過作業(yè)流程與轉(zhuǎn)換流程的協(xié)同工作,最終形成星型模式的數(shù)據(jù)倉庫,即由一個(gè)大的包含大批數(shù)據(jù)并且不冗余信息的中心表(事實(shí)表)和一組小的附屬表(維度表)構(gòu)成,事實(shí)表和維度表通過各維度表的關(guān)鍵字連接在一起[6]。
圖2 作業(yè)流程Fig.2 Job process
2.2.2 定義轉(zhuǎn)換流程
1)日期維度
日期維度幾乎是每個(gè)數(shù)據(jù)倉庫都必須提供的一個(gè)維度,因?yàn)槊總€(gè)數(shù)據(jù)倉庫都是時(shí)間系列的。事實(shí)上,日期通常是數(shù)據(jù)庫進(jìn)行潛在分類排序的首選維度,這樣做的目的是,使按時(shí)間間隔連續(xù)加載的數(shù)據(jù)能夠順次存放到磁盤上的空白存儲(chǔ)區(qū)中[7]。日期維度的轉(zhuǎn)換流程如圖3所示。
圖3 日期維度的轉(zhuǎn)換流程Fig.3 The converting process of time dimension
2)學(xué)生信息維度
教務(wù)管理系統(tǒng)中學(xué)生信息存儲(chǔ)于多張二維表中,包括院系表、專業(yè)表、班級(jí)表、學(xué)生表、選課表、成績表等,通過KETTLE從多張表中選擇需要的字段,形成學(xué)生信息維度表(如圖4所示)。
圖4 學(xué)生信息維度的轉(zhuǎn)換流程Fig.4 The converting process of students’information dimension
3)上網(wǎng)信息維度
上網(wǎng)日志記錄了用戶IP、訪問地址、訪問時(shí)間、信息流量等,而上網(wǎng)信息包括學(xué)號(hào)、分配IP、網(wǎng)絡(luò)連接開始時(shí)間、結(jié)束時(shí)間和上網(wǎng)費(fèi)用等。上述異構(gòu)數(shù)據(jù)通過IP和時(shí)間進(jìn)行映射,因?yàn)樵O(shè)計(jì)一個(gè)轉(zhuǎn)換流程將上述數(shù)據(jù)合并,形成上網(wǎng)信息維度表(如圖5所示)。由于上網(wǎng)日志中存在異常記錄(數(shù)據(jù)丟失、亂碼等),因而設(shè)置專門的過濾策略對(duì)源數(shù)據(jù)進(jìn)行清洗。
4)上網(wǎng)行為事實(shí)
從時(shí)間維度表、學(xué)生信息維度表及上網(wǎng)信息維度表中抽取主鍵信息,形成上網(wǎng)行為事實(shí)表(如圖6所示)。
2.3 數(shù)據(jù)倉庫
當(dāng)運(yùn)行上述作業(yè)及轉(zhuǎn)換流程時(shí),KETTLE自動(dòng)完成對(duì)異構(gòu)數(shù)據(jù)源ETL操作,建立二維表并插入數(shù)據(jù)。本例中自動(dòng)生成了以上網(wǎng)行為事實(shí)表為中心表,以3個(gè)維度表為附屬表的數(shù)據(jù)倉庫(如圖7所示)。
隨著數(shù)字化校園建設(shè)進(jìn)程的加快,“信息煙囪”、“信息孤島”等問題越發(fā)嚴(yán)峻。為了解決數(shù)字化校園建設(shè)過程中的多源異構(gòu)數(shù)據(jù)集成問題,本文利用開源ETL工具KETTLE,建立了學(xué)生考試信息與上網(wǎng)信息的ETL模型,實(shí)現(xiàn)了異構(gòu)數(shù)據(jù)的整合,為系統(tǒng)間的數(shù)據(jù)共享,乃至后續(xù)的數(shù)據(jù)分析挖掘(如學(xué)生考試成績與上網(wǎng)行為的相關(guān)性)提供了數(shù)據(jù)準(zhǔn)備。在高校信息化建設(shè)過程中,可以嘗試應(yīng)用各類ETL工具,解決不同系統(tǒng)之間的數(shù)據(jù)共享、數(shù)據(jù)集成等問題,從而提高數(shù)字化校園的建設(shè)效率,減低建設(shè)成本。
圖5 上網(wǎng)信息維度的轉(zhuǎn)換流程Fig.5 The converting process of network access information dimension
圖6 上網(wǎng)行為事實(shí)的轉(zhuǎn)換流程Fig.6 The converting process of network access behavior
圖7 星型數(shù)據(jù)結(jié)構(gòu)圖Fig.7 Star-topology of data structure
[1]王秀娟.高校異構(gòu)數(shù)據(jù)集成模式技術(shù)研究 [J].科技信息:學(xué)術(shù)研究,2007(8):175-176.WANG Xiu-jun.Research on campus heterogeneous data integration technology[J].Technology Information:Academic Research,2007(8):175-176.
[2]徐俊剛,裴瑩.數(shù)據(jù)ETL研究綜述[J].計(jì)算機(jī)科學(xué),2011,38 (4):15-20.XU Jun-gang,PEI Ying.Overview of data extraction transformation and loading[J].Computer science,2011,38(4):15-20.
[3]郭志懋,周傲英.數(shù)據(jù)質(zhì)量和數(shù)據(jù)清洗研究綜述 [J].軟件學(xué)報(bào),2002,13(11):2076-2082.GUO Zhi-mao,ZHOU Ao-ying.Review of data quality and data cleansing[J].Journal of Software,2002,13(11):2076-2082.
[4]吳遠(yuǎn)紅.ETL執(zhí)行過程的優(yōu)化研究[J].計(jì)算機(jī)科學(xué), 2007,34(1):81-83.WU Yuan-hong.The research of optimizing ETL execution process[J].Computer Science,2007,34(1):81-83.
[5]崔有文,周金海.基于Pentaho的中藥飲片企業(yè)商業(yè)智能研究[J].電子設(shè)計(jì)工程,2014,22(7):12-15.CUI You-wen,ZHOU Jin-hai.Research on Chinese medicine enterprise business intelligence based on Pentaho[J].Electronic Design Engineering,2014,22(7):12-15.
[6]王麗珍,周麗華,陳紅梅.數(shù)據(jù)倉庫與數(shù)據(jù)挖掘原理及應(yīng)用[M].北京:科學(xué)出版社,2009.
[7]Ralph Kimball,Margy Ross.The Data Warehouse Toolkit: The Definitive Guide to Dimensional Modeling[M].John Wiley&Sons INC;3rd Revised edition,2013.
Research on integration of college multi-source heterogeneous data
LIU Chong
(Institute of Information and Technology,Nanjing University of Chinese Medicine,Nanjing 210023,China)
To solve the integration of college multi-source heterogeneous data.Using the open-source tool,KETTLE,to extract, transfer and load data from the exam system and the network management system.The data warehouse was built,which was consisted of a fact table and three dimension tables including students’information,network information and time table.In this research,we found that multi-source heterogeneous data could be integrated efficiently,and analytical data was prepared for decision support further.
digital campus;heterogeneous data;data integration;KETTLE;ETL
TN919
A
1674-6236(2015)10-0024-03
2014-11-11 稿件編號(hào):201411066
劉 充(1990—),男,江蘇南京人,碩士研究生。研究方向:數(shù)字化校園。