• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

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

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

      DOIDOI:10.11907/rjdk.143623

      中圖分類號:TP3-05

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

      基金項目基金項目:

      作者簡介作者簡介:趙健(1982-),女,浙江湖州人,碩士,嘉興職業(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)象。因此,構(gòu)建數(shù)字化校園,將全校范圍內(nèi)的各個業(yè)務系統(tǒng)進行高效整合,以實現(xiàn)管理的一體化和資源共享,已成為高校信息化的建設重點。

      1 ETL概述

      ETL(ExtractionTransformationLoading),即數(shù)據(jù)的抽取、轉(zhuǎn)換與加載,是將分散、零亂、標準不統(tǒng)一、碼制不一致的數(shù)據(jù)整合到目標數(shù)據(jù)庫中的技術[1]。它從各種原始的業(yè)務系統(tǒng)中提取數(shù)據(jù),按照一定規(guī)則進行數(shù)據(jù)轉(zhuǎn)換,最后將轉(zhuǎn)換的數(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ù)轉(zhuǎn)換和數(shù)據(jù)清洗

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

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

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

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

      共享數(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ù)來自權(quán)威的數(shù)據(jù)提供部門,所有數(shù)據(jù)都有唯一維護者,從而保證了數(shù)據(jù)的準確性和權(quán)威性。因此,采用共享數(shù)據(jù)中心是一種比較好的數(shù)據(jù)整合方案[5]。共享數(shù)據(jù)中心結(jié)構(gòu)如圖1所示。

      圖1 共享數(shù)據(jù)中心結(jié)構(gòu)

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

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

      在共享數(shù)據(jù)中心建立之初,需抽取各業(yè)務系統(tǒng)的公共數(shù)據(jù)作為其歷史數(shù)據(jù)。該ETL過程需要選擇合適的ETL工具,若自行開發(fā),可滿足項目的特殊需要,但周期長、通用性差、效率低;若選擇通用的ETL工具,能夠?qū)Σ煌I域及需求的業(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ù)轉(zhuǎn)移。其具有圖形化的界面,也是一個可編程對象。DTS所支持的源數(shù)據(jù)庫和目標數(shù)據(jù)庫包括SQL Server、Oracle、DB2、Sybase、Access、Excel等所有使用OLE DB的數(shù)據(jù)庫,轉(zhuǎn)移形式包括數(shù)據(jù)導入、導出以及數(shù)據(jù)轉(zhuǎn)換。在進行數(shù)據(jù)轉(zhuǎn)移時,可以通過指定不同的轉(zhuǎn)換規(guī)則在具有不同名稱、大小、數(shù)據(jù)類型、精度等數(shù)據(jù)之間進行數(shù)據(jù)復制[7]。

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

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

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

      對于不能直接進行匹配的字段,則可以通過編寫腳本語言的方式解決數(shù)據(jù)轉(zhuǎn)換問題。如教務管理系統(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

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

      又例如學生的出生日期格式極不統(tǒng)一,同樣是1990年5月10日出生,有些為90-05-10,有些則是19900510、900510或10-may-90。對于這些多樣化的日期格式,若不在導入共享數(shù)據(jù)庫的過程中進行統(tǒng)一,則必然會影響日后如學生年齡的統(tǒng)計與分析,因此也可以利用“ActiveX腳本轉(zhuǎn)換屬性”通過編寫代碼進行學生出生日期格式的統(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的轉(zhuǎn)換任務屬性中編寫SQL查詢語句,將抽取條件限定為年級字段值等于錄取年份,實現(xiàn)起來非常簡便,抽取效率也非常高。

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

      對于歷史數(shù)據(jù)而言,使用DTS可以方便地實現(xiàn)ETL過程,但在實時性要求較高的情況下,則顯得不太合適。例如教務管理系統(tǒng)的學生基本信息發(fā)生了變化,共享數(shù)據(jù)中心只有在數(shù)據(jù)轉(zhuǎn)換服務包執(zhí)行了以后數(shù)據(jù)才會更新,而這往往在某一個特定時間才會發(fā)生。如果在此之前有業(yè)務系統(tǒng)向共享數(shù)據(jù)中心提取了學生基本信息,則會造成數(shù)據(jù)不準確,因此還要考慮數(shù)據(jù)的實時同步問題。當提供共享數(shù)據(jù)的權(quán)威部門數(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ù)類型轉(zhuǎn)換以及數(shù)據(jù)清洗;②將這些增量更新的數(shù)據(jù)存放到更新數(shù)據(jù)記錄表中并記錄下操作序列和操作類型(Insert、Modify、Delete);③由共享數(shù)據(jù)中心的數(shù)據(jù)同步服務通過調(diào)用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)端,其結(jié)構(gòu)是共享數(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 結(jié)語

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

      參考文獻:

      [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.

      猜你喜歡
      同步
      中波同步廣播單頻覆蓋干擾分析與解決方案
      素質(zhì)教育理念下藝術教育改革的思路
      政府職能的轉(zhuǎn)變與中國經(jīng)濟結(jié)構(gòu)調(diào)整的同步
      商情(2016年42期)2016-12-23 14:26:58
      公共藝術與城市設計的協(xié)調(diào)與同步
      有源應答器DBPL解碼算法研究及FPGA實現(xiàn)
      一種新型雙軌同步焊接的焊接裝置
      讓思維訓練與口才訓練同時進行
      汽車空調(diào)產(chǎn)品的協(xié)同開發(fā)探討
      “四化”同步發(fā)展的實證檢驗及實現(xiàn)路徑研究
      軟科學(2015年10期)2015-10-28 02:28:08
      冠修復與根管同步治療隱裂牙牙髓病的臨床研究
      九龙城区| 西藏| 石泉县| 浦东新区| 青州市| 南郑县| 三江| 临澧县| 博白县| 同仁县| 庆阳市| 葵青区| 区。| 图木舒克市| 达孜县| 遂宁市| 双牌县| 广饶县| 翁牛特旗| 桐梓县| 荆门市| 三河市| 麻栗坡县| 威远县| 上栗县| 富蕴县| 崇州市| 潍坊市| 南丹县| 集安市| 自贡市| 勃利县| 尼木县| 中卫市| 平利县| 富锦市| 繁昌县| 凤山市| 山阳县| 商城县| 马龙县|