国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于ETL技術的數(shù)字化校園共享數(shù)據(jù)中心設計

2015-03-02 11:58:17趙健
軟件導刊 2015年1期
關鍵詞:同步

摘要:數(shù)據(jù)的抽取、轉換與加載(ETL)是數(shù)據(jù)整合的核心過程。在分析高校信息化建設現(xiàn)狀基礎上,以建立數(shù)字化校園、整合數(shù)據(jù)資源、實現(xiàn)數(shù)據(jù)共享為目標,提出以ETL為基礎建立共享數(shù)據(jù)中心實現(xiàn)數(shù)據(jù)整合的方案。介紹了共享數(shù)據(jù)中心的結構,并研究了從業(yè)務系統(tǒng)到共享數(shù)據(jù)中心的ETL過程設計方法。

關鍵詞:ETL;共享數(shù)據(jù)中心;DTS;同步

DOIDOI:10.11907/rjdk.143623

中圖分類號:TP3-05

文獻標識碼:A 文章編號文章編號:16727800(2015)001001603

基金項目基金項目:

作者簡介作者簡介:趙?。?982-),女,浙江湖州人,碩士,嘉興職業(yè)技術學院教務處講師,研究方向為計算機科學與技術、教學管理。

0 引言

隨著辦學規(guī)模的擴大,高校對信息化建設的要求越來越高,各種管理系統(tǒng)先后建成并投入使用。在工作效率提高的同時,問題也逐漸顯現(xiàn):由于受系統(tǒng)使用或開發(fā)時間、經(jīng)費、目的等限制,各部門之間的業(yè)務系統(tǒng)處于相互獨立的狀態(tài),彼此之間不能實現(xiàn)數(shù)據(jù)交換,從而導致部門間形成“信息孤島”,造成數(shù)據(jù)無法有效共享、應用缺乏有效集成以及冗余數(shù)據(jù)無法處理的現(xiàn)象。因此,構建數(shù)字化校園,將全校范圍內(nèi)的各個業(yè)務系統(tǒng)進行高效整合,以實現(xiàn)管理的一體化和資源共享,已成為高校信息化的建設重點。

1 ETL概述

ETL(ExtractionTransformationLoading),即數(shù)據(jù)的抽取、轉換與加載,是將分散、零亂、標準不統(tǒng)一、碼制不一致的數(shù)據(jù)整合到目標數(shù)據(jù)庫中的技術[1]。它從各種原始的業(yè)務系統(tǒng)中提取數(shù)據(jù),按照一定規(guī)則進行數(shù)據(jù)轉換,最后將轉換的數(shù)據(jù)按計劃導入目標數(shù)據(jù)庫中[2]。

1.1 數(shù)據(jù)抽取

數(shù)據(jù)抽取指業(yè)務系統(tǒng)將源數(shù)據(jù)抽取至目標數(shù)據(jù)庫。對于不同數(shù)據(jù)平臺、不同源數(shù)據(jù)形式及數(shù)據(jù)量、不同性能要求和業(yè)務量的業(yè)務系統(tǒng),應采取不同的數(shù)據(jù)抽取接口。典型的數(shù)據(jù)抽取接口包括數(shù)據(jù)庫接口和文件接口。在數(shù)據(jù)抽取時,數(shù)據(jù)抽取效率應放在考慮的首要位置,同時也不能忽視抽取過程對現(xiàn)有業(yè)務系統(tǒng)性能及安全的影響。

1.2 數(shù)據(jù)轉換和數(shù)據(jù)清洗

從業(yè)務系統(tǒng)中抽取的數(shù)據(jù)因為有些來自不同系統(tǒng),具有不同格式,導致了數(shù)據(jù)不一致的情況。因此在加載到目標數(shù)據(jù)庫之前,必須對數(shù)據(jù)進行轉換和清洗,將從不同業(yè)務系統(tǒng)中抽取出來的數(shù)據(jù)進行轉換、清洗、拆分、合并等處理,以保證數(shù)據(jù)的完整性和一致性。

1.3 數(shù)據(jù)加載

數(shù)據(jù)加載是將從數(shù)據(jù)源系統(tǒng)中抽取出來的數(shù)據(jù)經(jīng)過轉換與清洗后裝載到目標數(shù)據(jù)庫中。數(shù)據(jù)加載工具通常要求具有高效的性能,否則會影響整個ETL的效率[3]。

2 共享數(shù)據(jù)中心架構

共享數(shù)據(jù)中心是收集、存儲和處理全校各類共享數(shù)據(jù),同時為全校提供信息共享服務的平臺。共享數(shù)據(jù)中心是基于數(shù)據(jù)管理與利用的綜合性技術方案,它的建立可以在存放大量數(shù)據(jù)的同時有效地管理數(shù)據(jù),以實現(xiàn)系統(tǒng)集成和各個系統(tǒng)之間的數(shù)據(jù)共享,同時提供數(shù)據(jù)訪問手段,以保證數(shù)據(jù)的及時性、完整性和一致性[4]。

采用共享數(shù)據(jù)中心進行數(shù)據(jù)整合的好處是:原有各個部門比較成熟的系統(tǒng)仍然保持獨立運行,各業(yè)務數(shù)據(jù)庫與共享數(shù)據(jù)庫通過XML接口相互通信。需共享的數(shù)據(jù)如學生信息、教師信息等被抽取到共享數(shù)據(jù)庫中,各個業(yè)務部門之間的數(shù)據(jù)共享都要通過對共享數(shù)據(jù)庫的數(shù)據(jù)訂閱來完成,而不需要通過手工或映射方式從其它部門獲取。共享數(shù)據(jù)中心的數(shù)據(jù)來自權威的數(shù)據(jù)提供部門,所有數(shù)據(jù)都有唯一維護者,從而保證了數(shù)據(jù)的準確性和權威性。因此,采用共享數(shù)據(jù)中心是一種比較好的數(shù)據(jù)整合方案[5]。共享數(shù)據(jù)中心結構如圖1所示。

圖1 共享數(shù)據(jù)中心結構

3 數(shù)字化校園共享數(shù)據(jù)中心ETL設計

3.1 歷史數(shù)據(jù)的ETL過程

在共享數(shù)據(jù)中心建立之初,需抽取各業(yè)務系統(tǒng)的公共數(shù)據(jù)作為其歷史數(shù)據(jù)。該ETL過程需要選擇合適的ETL工具,若自行開發(fā),可滿足項目的特殊需要,但周期長、通用性差、效率低;若選擇通用的ETL工具,能夠對不同領域及需求的業(yè)務給予很好的支持,用戶不必過多關心數(shù)據(jù)庫的各種內(nèi)部細節(jié),只需專注于功能,且無須花費額外的開發(fā)時間,但往往價格不菲。綜合比較各種ETL工具,最后選擇了MicroSoft SQL Server 2000自帶的ETL工具DTS(Data Transformation Services數(shù)據(jù)傳輸服務)實現(xiàn)從業(yè)務系統(tǒng)數(shù)據(jù)庫到共享數(shù)據(jù)庫的ETL過程[6]。

DTS作為SQL Server的一個工具,能支持ODBC或JDBC的數(shù)據(jù)接口,主要用于實現(xiàn)各種不同數(shù)據(jù)源之間的數(shù)據(jù)轉移。其具有圖形化的界面,也是一個可編程對象。DTS所支持的源數(shù)據(jù)庫和目標數(shù)據(jù)庫包括SQL Server、Oracle、DB2、Sybase、Access、Excel等所有使用OLE DB的數(shù)據(jù)庫,轉移形式包括數(shù)據(jù)導入、導出以及數(shù)據(jù)轉換。在進行數(shù)據(jù)轉移時,可以通過指定不同的轉換規(guī)則在具有不同名稱、大小、數(shù)據(jù)類型、精度等數(shù)據(jù)之間進行數(shù)據(jù)復制[7]。

利用DTS實現(xiàn)ETL,首先必須創(chuàng)建數(shù)據(jù)轉換服務(DTS)包,選擇需要連接的源數(shù)據(jù)庫與目標數(shù)據(jù)庫,當業(yè)務系統(tǒng)與共享數(shù)據(jù)中心連接后,需要創(chuàng)建“轉換數(shù)據(jù)任務”,并對其進行設置,抽取業(yè)務系統(tǒng)中的數(shù)據(jù),導入到數(shù)據(jù)準備區(qū)。

“轉換數(shù)據(jù)任務”主要用于實現(xiàn)源數(shù)據(jù)庫與目的數(shù)據(jù)庫之間的數(shù)據(jù)復制,可實現(xiàn)任何支持OLE DB數(shù)據(jù)連接之間的復制和轉換。并且該任務能選擇性地將列級轉換應用于數(shù)據(jù),可以實現(xiàn)DTS中最基本的數(shù)據(jù)抽取。

進行“轉換數(shù)據(jù)任務”的配置步驟如下:①建立連接;②設置源數(shù)據(jù)和目的數(shù)據(jù)屬性;③設置轉換屬性。默認的轉換映射為直接進行數(shù)據(jù)復制。如果源數(shù)據(jù)與目的數(shù)據(jù)之間存在異構,則需要設置轉換屬性,如將源列與目的列重新匹配,或者選擇其它轉換類型。

對于不能直接進行匹配的字段,則可以通過編寫腳本語言的方式解決數(shù)據(jù)轉換問題。如教務管理系統(tǒng)的學生基本信息表中“xb”字段表示學生性別,而共享數(shù)據(jù)中心學生基本信息表中學生的“XB”字段則是用性別代碼表示。

可以在代碼框中輸入如下代碼:

Function Main()

if DTSSource("xb")="男"then

DTSDestination("XB")="1"

Else DTSDestination("XB")="0"

end if

Main=DTSTransformStat_OK

End Function

通過該方式可以將學生性別由“男”、“女”轉換成性別代碼“1”和“0”,再加載入共享數(shù)據(jù)庫。

又例如學生的出生日期格式極不統(tǒng)一,同樣是1990年5月10日出生,有些為90-05-10,有些則是19900510、900510或10-may-90。對于這些多樣化的日期格式,若不在導入共享數(shù)據(jù)庫的過程中進行統(tǒng)一,則必然會影響日后如學生年齡的統(tǒng)計與分析,因此也可以利用“ActiveX腳本轉換屬性”通過編寫代碼進行學生出生日期格式的統(tǒng)一。因為在學生的身份證號中體現(xiàn)了出生日期,所以可以利用mid函數(shù)截取身份證號中表示出生日期的部分,將出生日期統(tǒng)一以19900510的格式顯示。具體代碼如下:

Function Main()

Dim csrqstr as char,sfzhstr as char

sfzhstr= Trim(DTSSourse(“sfzh”)

Csrqstr=Mid(sfzhstr,7,8)

DTSDestination(“sfzh”)=csrqstr

Main=DTSTransformStat_OK

End Function

利用DTS工具不但能實現(xiàn)在共享數(shù)據(jù)中心創(chuàng)建之初進行歷史數(shù)據(jù)的全量抽取,還可以將一些符合特定條件的數(shù)據(jù)ETL至共享數(shù)據(jù)庫。如每年開學初有大量新生信息進入教務管理系統(tǒng),共享數(shù)據(jù)庫中的學生基本信息表也必須更新。這些數(shù)據(jù)在從教務管理數(shù)據(jù)庫到共享數(shù)據(jù)庫的ETL過程中如果采用全表刪除方式會大大加重系統(tǒng)負擔,因此可以通過在DTS的轉換任務屬性中編寫SQL查詢語句,將抽取條件限定為年級字段值等于錄取年份,實現(xiàn)起來非常簡便,抽取效率也非常高。

3.2 實時同步數(shù)據(jù)的ETL過程

對于歷史數(shù)據(jù)而言,使用DTS可以方便地實現(xiàn)ETL過程,但在實時性要求較高的情況下,則顯得不太合適。例如教務管理系統(tǒng)的學生基本信息發(fā)生了變化,共享數(shù)據(jù)中心只有在數(shù)據(jù)轉換服務包執(zhí)行了以后數(shù)據(jù)才會更新,而這往往在某一個特定時間才會發(fā)生。如果在此之前有業(yè)務系統(tǒng)向共享數(shù)據(jù)中心提取了學生基本信息,則會造成數(shù)據(jù)不準確,因此還要考慮數(shù)據(jù)的實時同步問題。當提供共享數(shù)據(jù)的權威部門數(shù)據(jù)發(fā)生變化時,應及時將這些變化提交到共享數(shù)據(jù)庫,以保證共享數(shù)據(jù)庫中數(shù)據(jù)的準確性與完整性,同時也要將這些變化及時更新到訂閱這些數(shù)據(jù)的業(yè)務部門[8]。

實時同步數(shù)據(jù)的ETL過程可分為3個步驟:①建立Insert、Modify、Delete觸發(fā)器以獲取實時的增量更新數(shù)據(jù)并進行數(shù)據(jù)類型轉換以及數(shù)據(jù)清洗;②將這些增量更新的數(shù)據(jù)存放到更新數(shù)據(jù)記錄表中并記錄下操作序列和操作類型(Insert、Modify、Delete);③由共享數(shù)據(jù)中心的數(shù)據(jù)同步服務通過調用Web服務連接該更新數(shù)據(jù)記錄表,進行業(yè)務數(shù)據(jù)庫與共享數(shù)據(jù)庫的同步。其過程如圖2所示。

圖2 實時同步數(shù)據(jù)的ETL過程

更新數(shù)據(jù)記錄表負責記錄業(yè)務系統(tǒng)中數(shù)據(jù)的所有更新操作,包括數(shù)據(jù)的增加、刪除、修改等。不管是何種更新操作,在更新數(shù)據(jù)記錄表中都會有一條記錄,以表示業(yè)務系統(tǒng)中數(shù)據(jù)的修改,包括記錄操作的類型是增加、刪除或修改,修改數(shù)據(jù)的具體內(nèi)容等。

更新數(shù)據(jù)記錄表建立在業(yè)務系統(tǒng)端,其結構是共享數(shù)據(jù)庫中業(yè)務數(shù)據(jù)表的字段加上控制字段,包括變化發(fā)生的時間、變化類型以及改變記錄的主鍵。

控制字段如下:

字段名:CREATE_TIME

類型:DATETIME

說明:記錄這條變化數(shù)據(jù)發(fā)生的時間

字段名:CHG_TYPE

類型:CHAR(6)

說明:記錄該變化數(shù)據(jù)的變化類型(INSERT、DELETE、MODIFY)

字段名:SDC_ID

類型:INT

說明:該字段自動生成,作為記錄的流水號,用于作為更新數(shù)據(jù)記錄表的主鍵。

下面以教務管理系統(tǒng)到共享數(shù)據(jù)中心的實時同步為例,介紹實時同步數(shù)據(jù)的ETL過程。

在業(yè)務系統(tǒng)上創(chuàng)建觸發(fā)器(包括插入、刪除和修改3種類型),當業(yè)務系統(tǒng)的數(shù)據(jù)發(fā)生變化時,則觸發(fā)了觸發(fā)器,通過觸發(fā)器在更新數(shù)據(jù)記錄表上添加記錄。為教務管理系統(tǒng)學生基本信息表創(chuàng)建觸發(fā)器的部分代碼如下:

create trigger trg_xsjbxxb

on xsjbxxb

for insert as

declare @xh char(10) declare@xm char(10)

……

declare@ksh char(20)declare@bz char(20)

select

@xh=xh,@xm=xm,

……

@ksh=ksh,@bz=bz

from inserted Inst

insert

into tb_xsjbxxb values (@xh,@xm……@ksh,@bz, 'insert')

為教務管理系統(tǒng)創(chuàng)建發(fā)布更新數(shù)據(jù)的Web服務部分代碼如下:

string sql="select * from tb_xsjbxxb";

SqlDataAdapter da = new SqlDataAdapter(sql,con);

DataSet ds = new DataSet();

da.Fill(ds," tb_xsjbxxb");

con.Close();

return ds;

為教務管理系統(tǒng)創(chuàng)建清除更新數(shù)據(jù)記錄表的Web服務部分代碼如下:

string sql="delete from tb_xsjbxxb";

SqlCommand com=new SqlCommand(sql,con);

com.ExecuteNonQuery();

string a;

a="共享數(shù)據(jù)中心數(shù)據(jù)更新成功!更新數(shù)據(jù)記錄表數(shù)據(jù)已清除!";

return a;

4 結語

數(shù)字化校園是一個長期的系統(tǒng)工程,共享數(shù)據(jù)中心是其重要的基礎設施。本文提出的基于ETL技術的共享數(shù)據(jù)中心建設方案使各部門業(yè)務系統(tǒng)之間可以實現(xiàn)公共數(shù)據(jù)的安全共享,消除了原先存在的“信息孤島”,整個高校各部門之間的協(xié)調性和靈活性大大增強,極大地提高了高校各部門的工作效率。

參考文獻:

[1] [美]W H INMON.Buildding the data warehouse=數(shù)據(jù)倉庫[M].王志海,譯.北京:人民郵電出版社,2004:6870.

[2] 劉映輝,晏妮.基于ETL技術的商業(yè)銀行自動對賬系統(tǒng)[J].中國金融電腦,2009(4):7477.

[3] 張瑞.ETL數(shù)據(jù)抽取研究綜述[J].軟件導刊,2010(10):164165.

[4] 黨中華,趙健,肖文紅.校園網(wǎng)數(shù)據(jù)整合方案研究[J].科技資訊,2010(12):249252.

[5] 羅妙云.高校共享數(shù)據(jù)中心平臺設計與部分實現(xiàn)[D].廣州:華南理工大學,2010.

[6] 李雅莉.決策支持系統(tǒng)中數(shù)據(jù)倉庫的設計[J].中國管理信息化,2009(17):8487.

[7] 黃光明.教學管理數(shù)據(jù)倉庫ETL過程的設計與實現(xiàn)[J].電腦知識與技術,2007(19):3738.

[8] 孔存金.數(shù)字化校園共享數(shù)據(jù)中心建設研究——以新疆師范大學為例[D]. 烏魯木齊:新疆師范大學,2009.

猜你喜歡
同步
中波同步廣播單頻覆蓋干擾分析與解決方案
素質教育理念下藝術教育改革的思路
政府職能的轉變與中國經(jīng)濟結構調整的同步
商情(2016年42期)2016-12-23 14:26:58
公共藝術與城市設計的協(xié)調與同步
有源應答器DBPL解碼算法研究及FPGA實現(xiàn)
一種新型雙軌同步焊接的焊接裝置
讓思維訓練與口才訓練同時進行
汽車空調產(chǎn)品的協(xié)同開發(fā)探討
“四化”同步發(fā)展的實證檢驗及實現(xiàn)路徑研究
軟科學(2015年10期)2015-10-28 02:28:08
冠修復與根管同步治療隱裂牙牙髓病的臨床研究
玉树县| 铜梁县| 南昌县| 佛坪县| 靖边县| 开平市| 方城县| 朝阳市| 长寿区| 池州市| 巴林左旗| 连南| 赤水市| 汾西县| 宜川县| 衡南县| 上林县| 类乌齐县| 万载县| 浏阳市| 芦山县| 故城县| 清河县| 共和县| 汉中市| 南丹县| 临朐县| 营口市| 德钦县| 尤溪县| 浮山县| 洞口县| 卢龙县| 荔波县| 平谷区| 建瓯市| 隆德县| 大宁县| 江都市| 鄂州市| 衡南县|