張勃
摘 要:在當今的大數據時代,數據處理越來越被重視,隨著互聯網技術的快速發(fā)展,越來越多的數據處理工具出現在大家的視野中,如國外的datastage、informatica、kettle(水壺)、ODI、國內的beeload等。經過對以上工具的了解,kettle工具在開源、實用、易用等方面比較突出,特決定使用kettle工具進行研究應用,實現我院數據交換規(guī)則的建立與應用。
對于一個信息化系統,由于不同部門根據自己部門的實際情況,建設了不同的系統,隨著時間的發(fā)展,在這些不同的系統之間的數據共享與交換的需求越來越多。公共數據交換平臺旨在為這樣的綜合性的信息化系統中的各類應用系統提供信息共享和數據整合手段,解決因數據庫類型各異、開發(fā)運行環(huán)境各異、網絡環(huán)境各異而導致的“信息孤島”問題。
1我院信息化建設現狀
經過多年的信息化建設,我院的信息化有了長足的進步。但在系統建設時期不同、業(yè)務模式不同、建設初期缺乏統一的設計標準的情況下,大多數系統都是不同的廠家在不同的平臺上,使用不同的語言進行開發(fā)的,信息交互共享困難,存在大量的“信息孤島”。為了繼續(xù)提高信息化水平,就要實現各個系統中數據的交換與共享,開展數據整合。
2數據交換系統的結構與交換過程
2.1交換系統的總體結構
數據交換系統的總體結構,如圖1,依托學院網絡支持,交換系統總體上是一個樹型結構,最高一級是中心數據庫,負責存儲學院所有數據,即將所有應用系統生產的數據進行統一存儲,方便共享和交換。同時向下連接交換平臺。交換平臺負責進行數據交換、自動交換設置、交換監(jiān)控、故障分析、日志記錄等。其中有兩個最主要的功能,第一是按照信息標準,將各業(yè)務系統生產的數據按照交換規(guī)則寫入中心數據庫;第二個功能就是對各應用系統提出的交換和共享數據需求,按照信息標準和數據交換規(guī)則,從中心數據庫中讀取,交予應用系統使用。
在我院信息化系統中,交換系統為各類應用系統提供數據交換服務。所有應用系統之間的數據交換都必須經過交換系統,而交換的方式則遵循“寫、讀”的規(guī)則,即由數據管理員確定數據的唯一生產者,寫入中心數據庫,其他的業(yè)務系統均為該數據的使用者,需要向交換平臺提出申請,讀取中心數據庫中的該數據。
2.2數據交換的過程
交換平臺運行在中心數據庫與各業(yè)務系統之間,交換平臺為各應用系統提供一個接入平臺,一個應用系統要實現和其它應用系統的數據交換,必須首先在交換平臺注冊,實現和其他應用系統數據的交換與共享。
3“kettle”工具在我院的應用
“kettle”是開源工具,如果要應用在我院,必須進行應用的研究與建設?!発ettle”相當于是一張白紙,需要按照我校的實際情況,在這張白紙上進行繪圖。通過在“kettle”中進行適合我校的本土性改造,對已有系統中的數據進行處理、過濾、轉換,制定出適合我校的數據交換流程和合理的自動交換規(guī)則,實現我校信息系統之間的數據交換和共享,打通重要系統之間的“信息孤島”。
3.1制作簡單交換流程
進行相關配置后,在“核心對象”下,選擇對應的元件進行交換流程配置。最簡單的交換流程為“表輸入-表輸出”。點擊對應的組件,進行相關數據庫和對應字段的設置,即可實現。
3.2制作復雜交換流程
上面介紹的交換流程只是最簡單的一個交換規(guī)則,直接將數據源表中的數據,覆蓋寫人目標表中。這類規(guī)則適合數據量較少,交換頻率小的數據表。但實際上,我院涉及最重要、最頻繁的交換是學生和教職工的相關數據,數據量大,交換頻繁,如:我院教職工數據記錄數為800多條,涉及表字段59個;學生數據20000多條記錄;學生成績數據甚至達到77.11萬條數據。如果用這種簡單交換,由于數據量巨大,會造成服務器壓力大,速度慢等弊端。對此,我們項目組經過討論研究,做了大量測試,設計出一個占用資源較小的交換來進行交換這些數據量大的數據表。如圖2:
下面,將針對以上交換流程為例,詳細介紹這條交換流程的實現。
⑴首先應確定數據的提供者和使用者,即數據源表和目標表。結合我院實際情況,從教務系統中提取教職工基本信息數據,目標表為中心數據庫中的T_JZG_JBXX。
⑵數據表中的字段處理。通過字段選擇、排序、合并等組件,將源頭表與目標表進行字段篩選與排序,保持內容、順序完全一致,形成為一張共享表,將工號作為主鍵,以標志字段flag值進行數據動作決策,進行數據比對。
⑶值映射:對共享表中的每一個字段進行flag標志,并對flag標志規(guī)則進行設定,如插入、更新、刪除、不執(zhí)行任何操作等。
⑷過濾記錄。將共享表和目標表按照主鍵進行對比,依據flag值,進行字段規(guī)則執(zhí)行。
當flag值為no,不執(zhí)行任何操作,用于測試規(guī)則連通性;
當flag值為add時,根據主鍵值,將數據源表數據插入到目標表數據,實現數據新增;
當flag值為mod時,進行判斷。如字段不同,發(fā)送true數據,執(zhí)行數據更新;如所有字段相同,發(fā)送false數據,刪除flag當前值。
以上過程就是“教職工基本數據”的交換規(guī)則過程,通過對字段的分塊匹配對比,從而使數據更快、更明了執(zhí)行操作,降低服務器壓力,縮短更新時間。
3.3配置自動交換
新建“作業(yè)”,進行作業(yè)執(zhí)行相關設置,即可實現自動交換。
4結語
通過項目組成員的共同努力,“kettle”工具已應用我院數據交換平臺中,且運行正常,滿足我院數據交換的正常使用。我們還將在今后的工作中,逐步完善我院數據交換平臺,“kettle”工具和相關交換規(guī)則會發(fā)揮重要作用。
參考文獻:
[1]李品新,熊桂喜,數據交換系統中交換引擎的設計與實現,計算機與現代化(總第124期),2005(12).