• 
    

    
    

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

      基于開源代碼的ETL工具的實現(xiàn)

      2017-01-09 06:19:02洋,韓
      關(guān)鍵詞:數(shù)據(jù)包路由調(diào)度

      汪 洋,韓 寧

      (中國軟件與技術(shù)服務(wù)股份有限公司,北京 100081)

      基于開源代碼的ETL工具的實現(xiàn)

      汪 洋,韓 寧

      (中國軟件與技術(shù)服務(wù)股份有限公司,北京 100081)

      在企業(yè)數(shù)據(jù)愈加龐大的今天,大批量數(shù)據(jù)交換也越加頻繁,ETL是數(shù)據(jù)處理的主要技術(shù)手段,但極少有ETL工具能夠兼顧自動調(diào)度及跨網(wǎng)段交換。在開源ETL工具Kettle的基礎(chǔ)上,設(shè)計實現(xiàn)能夠定制觸發(fā)規(guī)則、根據(jù)調(diào)度周期自主運行交換作業(yè)的數(shù)據(jù)交換工具GoData,該工具支持跨節(jié)點跨網(wǎng)段的數(shù)據(jù)交換作業(yè),同時具有節(jié)點監(jiān)控及錯誤作業(yè)預警和消息推送功能,支持集群和分布式部署。該工具極大地滿足了企業(yè)對數(shù)據(jù)交換業(yè)務(wù)的需求,在企業(yè)合理和充分利用現(xiàn)有數(shù)據(jù)資源方面發(fā)揮作用。

      ETL;Kettle;GoData;跨網(wǎng)段數(shù)據(jù)交換;自動觸發(fā)

      0 引言

      隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,企業(yè)內(nèi)業(yè)務(wù)應用數(shù)量猛增,業(yè)務(wù)數(shù)據(jù)更是與日俱增,越來越多的企業(yè)在面對眾多業(yè)務(wù)系統(tǒng)產(chǎn)生的日益龐大的業(yè)務(wù)數(shù)據(jù)時,顯得束手無策,疲于應對。其原因大多在于企業(yè)內(nèi)部信息化建設(shè)并沒有形成統(tǒng)一的標準,各廠商、各系統(tǒng)、各層級間數(shù)據(jù)形態(tài)各異,無法實現(xiàn)互聯(lián)互通數(shù)據(jù)共享,從而形成“信息孤島”。而信息是現(xiàn)代企業(yè)的重要資源,是企業(yè)科學管理、決策分析的基礎(chǔ)。因此,打破“信息孤島”,實現(xiàn)數(shù)據(jù)高效集成和共享是企業(yè)數(shù)字信息化建設(shè)的關(guān)鍵問題。企業(yè)需要通過各種技術(shù)手段,把數(shù)據(jù)轉(zhuǎn)換為信息、知識,最大程度地發(fā)揮數(shù)據(jù)的作用,而ETL便是主要的技術(shù)手段。

      當前企業(yè)信息建設(shè)普遍存在以下問題:

      (1)數(shù)據(jù)源眾多

      企業(yè)內(nèi)層級部門眾多,業(yè)務(wù)種類多樣,數(shù)據(jù)來源更為廣泛。

      (2)數(shù)據(jù)差異性大

      數(shù)據(jù)源眾多的前提下,企業(yè)沒有統(tǒng)一的數(shù)據(jù)標準造成業(yè)務(wù)數(shù)據(jù)差異性大,在擁有結(jié)構(gòu)化數(shù)據(jù)的同時可能還存在大量半結(jié)構(gòu)以及無結(jié)構(gòu)數(shù)據(jù)。

      (3)業(yè)務(wù)數(shù)據(jù)增長迅猛,數(shù)據(jù)利用率低下

      據(jù)統(tǒng)計,大多數(shù)企業(yè)數(shù)據(jù)量每2~3年時間就會成倍增長,業(yè)務(wù)數(shù)據(jù)增長迅猛,而企業(yè)所關(guān)注的數(shù)據(jù)通常只占總數(shù)據(jù)量的2%~4%左右,并沒有充分利用已存在的數(shù)據(jù)資源。

      因此,設(shè)計和實現(xiàn)一個穩(wěn)定、高效、符合企業(yè)形態(tài)、可以靈活部署的ETL工具勢在必行。其在使企業(yè)實現(xiàn)信息和數(shù)據(jù)共享的同時,還能夠幫助企業(yè)最大化地利用已存在的數(shù)據(jù)資源,完善企業(yè)數(shù)字化、信息化建設(shè)。

      1 Kettle介紹

      ETL(Extraction, Tansformation, Loading)即是將數(shù)據(jù)從來源端經(jīng)過抽取和轉(zhuǎn)換后加載到目的端的過程。在ETL過程中,數(shù)據(jù)抽取即是從數(shù)據(jù)源中抽取數(shù)據(jù)的過程,也可從多個數(shù)據(jù)源中進行數(shù)據(jù)抽取;數(shù)據(jù)轉(zhuǎn)換即是對抽取數(shù)據(jù)進行清洗,通過清洗策略和合并、轉(zhuǎn)換以及數(shù)學運算等操作,去除數(shù)據(jù)中存在的錯誤和冗余,也可根據(jù)要求變換數(shù)據(jù)格式,保證數(shù)據(jù)質(zhì)量;數(shù)據(jù)裝載即是將轉(zhuǎn)換好的數(shù)據(jù)保存到數(shù)據(jù)庫或文件中。目前,越來越多的廠商致力于ETL工具的研發(fā),而較常用的開源工具有Kettle、 Talend、 Octopus等,其中以開源Java工具Kettle應用最廣,表現(xiàn)最為突出。

      Kettle是一款用Java編寫的開源ETL工具,其主要由轉(zhuǎn)換(Transformation)和作業(yè)(Job)兩部分組成。其中“轉(zhuǎn)換”是由一系列步驟組成的,每一個步驟表示對一個或多個數(shù)據(jù)流進行特定的轉(zhuǎn)換操作。而“作業(yè)”基于工作流模型,協(xié)調(diào)數(shù)據(jù)源、執(zhí)行過程和相關(guān)依賴性的ETL活動,其將功能性和實體過程聚合起來,完成對整個工作流的控制。Kettle的概念模型如圖1所示[1]。

      圖1 Kettle概念模型

      圖2 GoData架構(gòu)圖

      Kettle優(yōu)點很多:具有可視化的流程設(shè)計工具,具備眾多數(shù)據(jù)處理控件,擁有良好的插件擴展功能,支持集群操作等??梢哉fKettle是當前ETL開源世界中功能最全面的一款工具[2]。但是每個產(chǎn)品都有其自身的局限性,Kettle也不能例外,比如缺少多頻度自動觸發(fā)調(diào)度機制,不能實現(xiàn)跨網(wǎng)段數(shù)據(jù)交換功能等。而這恰巧是多數(shù)企事業(yè)單位對數(shù)據(jù)交換業(yè)務(wù)的共性需求。

      2 GoData設(shè)計與實現(xiàn)

      2.1 設(shè)計初衷

      GoData的設(shè)計初衷即是打造一款符合大多數(shù)企事業(yè)單位數(shù)據(jù)交換需求的ETL工具,其在Kettle的基礎(chǔ)上,取長補短,調(diào)整作業(yè)運行機制,完善作業(yè)調(diào)度機制,加入作業(yè)觸發(fā)機制,并在保證數(shù)據(jù)正確安全的基礎(chǔ)上,實現(xiàn)跨網(wǎng)段的數(shù)據(jù)交換,加入作業(yè)監(jiān)控,實現(xiàn)錯誤告警,整理日志記錄機制,完善作業(yè)調(diào)度及授權(quán)等功能。

      2.2 設(shè)計實現(xiàn)

      GoData產(chǎn)品架構(gòu)圖如圖2所示,最底層為數(shù)據(jù)來源層,GoData可適配的數(shù)據(jù)來源眾多,包括結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)以及非機構(gòu)化數(shù)據(jù);協(xié)議適配層是GoData的網(wǎng)絡(luò)適配協(xié)議,既包括RDBMS、HTTP等,也能對WebService、FTP等進行適配;功能組件層包含了管理組件、監(jiān)控組件、安全組件、輔助組件以及核心組件;展示層則包含了產(chǎn)品對外的展示形式,包括圖形、文本和表格等。

      圖3展示的是GoData的核心模塊,主要包含:作業(yè)設(shè)計器、作業(yè)調(diào)度器、作業(yè)監(jiān)控器三個模塊。其中觸發(fā)機制在流程設(shè)計時進行定制,然后在作業(yè)運行態(tài)時由調(diào)度器根據(jù)該作業(yè)的觸發(fā)機制完成調(diào)度。各模塊之間通過共享數(shù)據(jù)庫進行通信。

      圖3 GoData核心模塊展示圖

      GoData作業(yè)編輯器可以配置觸發(fā)器的觸發(fā)規(guī)則、作業(yè)的處理流程、節(jié)點配置、路由配置和集群配置等,同時可以對配置完成的作業(yè)進行調(diào)試。控制臺執(zhí)行器負責在后臺調(diào)度執(zhí)行所有的作業(yè),并且根據(jù)作業(yè)來配置調(diào)用節(jié)點、路由和集群功能。節(jié)點管理模塊負責配置管理多節(jié)點的數(shù)據(jù)信息。路由管理模塊負責配置管理多節(jié)點路由信息。集群調(diào)度器負責在集群間進行數(shù)據(jù)分發(fā)和同步。接收適配器和發(fā)送適配器負責在多節(jié)點之間接收和發(fā)送業(yè)務(wù)數(shù)據(jù)。

      GoData在Kettle的基礎(chǔ)上加入了傳輸模塊,該模塊依托于作業(yè)編輯器對傳輸節(jié)點及路由的配置信息,將所交換數(shù)據(jù)正確安全地傳輸?shù)侥繕斯?jié)點。節(jié)點通信使用Netty作為底層支撐,使用“客戶端/服務(wù)器”模式進行節(jié)點之間通信。通信的每個數(shù)據(jù)包會根據(jù)節(jié)點路由表的配置選擇正確的鏈路,并且具有斷點續(xù)傳功能。發(fā)送數(shù)據(jù)的一方為數(shù)據(jù)源節(jié)點,接收數(shù)據(jù)的一方稱為目標節(jié)點,傳輸過程經(jīng)過的節(jié)點為路由節(jié)點。三種節(jié)點的角色在傳輸過程中可能會互換(例如,當下一個路由節(jié)點為目標節(jié)點的時候,路由節(jié)點和目標節(jié)點是同等的)。當源節(jié)點是路由節(jié)點的時候源節(jié)點和路由節(jié)點是等同的。數(shù)據(jù)包從源節(jié)點出發(fā),到達第一個路由節(jié)點后,此路由節(jié)點從配置中讀取它的下一個路由節(jié)點的配置信息,如果此節(jié)點就是目標節(jié)點,則不需要再傳遞數(shù)據(jù)包,如果還有下一個路由節(jié)點,那么使用客戶端服務(wù)器模式連接路由節(jié)點,然后將這次路由信息保存到數(shù)據(jù)包中,最后發(fā)送數(shù)據(jù)包到下一個路由節(jié)點。這樣重復以上所述步驟,最終到達目標節(jié)點。在傳輸過程中用戶可以選擇是否對傳輸信息進行二次加密,GoData在Kettle加密的基礎(chǔ)上,使用DES加密協(xié)議,對每個數(shù)據(jù)包的數(shù)據(jù)區(qū)又進行二次加密,為了保證傳輸?shù)臄?shù)據(jù)量不變和傳輸過程中數(shù)據(jù)包協(xié)議的合理性,加密后數(shù)據(jù)包的大小保持不變。為了安全性的考慮,密鑰不會包含在數(shù)據(jù)包中,而是使用雙方協(xié)商的加密方式,在部署配置的時候設(shè)定密碼。

      此外,GoData具有Web監(jiān)控及管理功能,業(yè)務(wù)人員能夠遠程對數(shù)據(jù)交換的各節(jié)點狀態(tài)進行監(jiān)控并對節(jié)點上運行的交換作業(yè)進行管理。因此,GoData系統(tǒng)分成兩種主要節(jié)點,業(yè)務(wù)數(shù)據(jù)交換節(jié)點和Web監(jiān)控管理節(jié)點。業(yè)務(wù)數(shù)據(jù)交換節(jié)點主要負責業(yè)務(wù)數(shù)據(jù)的讀取、傳輸、轉(zhuǎn)換和裝載。系統(tǒng)的Web監(jiān)控管理節(jié)點則負責監(jiān)控所有交換節(jié)點的運行情況和遠程控制交換作業(yè)的啟停,并能在發(fā)生異常時進行告警消息推送。

      在企業(yè)中,可以根據(jù)企業(yè)網(wǎng)絡(luò)形態(tài)及具體業(yè)務(wù)需求部署多個GoData來完成數(shù)據(jù)交換任務(wù),每一個GoData被認為是一個節(jié)點,在企業(yè)內(nèi)網(wǎng)中,GoData根據(jù)配置的交換作業(yè)自主運行,并把日志信息同步到Web監(jiān)控節(jié)點,相關(guān)人員可以登錄Web監(jiān)控節(jié)點對各節(jié)點運行情況進行監(jiān)控。

      2.3 技術(shù)特點

      GoData在保留Kettle原有優(yōu)點的基礎(chǔ)上,通過變更調(diào)度機制,加入觸發(fā)、監(jiān)控等機制后,具有了更多的優(yōu)勢。

      (1)定制化調(diào)度機制

      企業(yè)可以根據(jù)自身數(shù)據(jù)交換業(yè)務(wù)的需求,定制數(shù)據(jù)交換作業(yè)觸發(fā)機制,支持單次運行和多次重復運行兩種調(diào)度

      機制,設(shè)置完成后,由GoData根據(jù)觸發(fā)規(guī)則自主調(diào)度作業(yè)運行,收集作業(yè)日志信息,提交作業(yè)運行數(shù)據(jù)。

      (2)安全高效的傳輸機制

      在文件傳輸時,將文件劃分為多個數(shù)據(jù)包,支持傳輸加密和斷點續(xù)傳。不但實現(xiàn)了跨網(wǎng)段的數(shù)據(jù)交換作業(yè),而且能有效節(jié)省傳輸時間,保證數(shù)據(jù)安全。解決了實際業(yè)務(wù)中數(shù)據(jù)跨層級交換的難題,簡化數(shù)據(jù)交換流程和步驟,提高了數(shù)據(jù)交換效率,保證了交換數(shù)據(jù)的質(zhì)量。

      (3)運行監(jiān)控

      加入了監(jiān)控組件,可以對各數(shù)據(jù)交換節(jié)點進行遠程監(jiān)控,啟停數(shù)據(jù)交換作業(yè),并在作業(yè)異常時發(fā)出錯誤預警,推送預警信息到微信端,增強數(shù)據(jù)交換響應機制。

      (4)分布式架構(gòu)

      GoData支持分布式部署,多個GoData之間可以相互通信,同時GoData支持集群,一個作業(yè)可以使用集群方式來執(zhí)行和運算。因此企業(yè)可以根據(jù)具體數(shù)據(jù)業(yè)務(wù)調(diào)配GoData的使用,并且根據(jù)數(shù)據(jù)量來選擇是否使用集群。這種可伸縮的分布式架構(gòu)可實現(xiàn)批量作業(yè)在多臺機器、多個節(jié)點上同時進行,能夠極大地提升數(shù)據(jù)交換作業(yè)的處理效率。

      (5)先進的容錯機制

      經(jīng)過多番測試及完善,在意外斷網(wǎng)或斷電情況發(fā)生時,GoData能夠在異常發(fā)生后快速恢復作業(yè),提高了數(shù)據(jù)交換的健壯性。

      (6)大吞吐量,運行穩(wěn)定

      目前,GoData已經(jīng)在多個項目中得到運用,每小時吞吐量超過1 000萬條數(shù)據(jù),運行穩(wěn)定。

      3 結(jié)論

      GoData在開源軟件Kettle的基礎(chǔ)上加入了觸發(fā)機制,完善調(diào)度機制,增加了跨網(wǎng)交換傳輸、遠程監(jiān)控管理以及容錯機制等,能夠很好地為企業(yè)數(shù)據(jù)信息建設(shè)服務(wù),滿足企業(yè)進行大批量高頻次數(shù)據(jù)交換的需求,使企業(yè)能夠更深入地利用數(shù)據(jù)資源,實現(xiàn)數(shù)據(jù)的價值最大化,幫助企業(yè)制訂計劃,運營決策。

      [1] 劉充.基于KETTLE的高校多源異構(gòu)數(shù)據(jù)集成研究及實踐[J].電子設(shè)計工程,2015,23(10):24-26.

      [2] 閆小爽,李忠華,李璐,等.開源ETL軟件在智能化集成系統(tǒng)中的應用[J].工程應用,2009(4):46-48.

      The realization of ETL tool based on open-source

      Wang Yang,Han Ning

      (China National Software & Service Co.,Ltd., Beijing 100081, China)

      Today, the enterprise data increases rapidly, and large quantities of data exchange also becomes frequent. The ETL is the main technical means in this area, but very few of the them can both automaticly schedule and exchange across inter network. Based on an open-source ETL tool named Kettle, we design the data exdange tool called GoData, which can set the trigger rules, and can run the ETL jobs on time all by itself according to the quartz period the tool. This tool can also support the inter network data exchange. At the same time, the tool has the functions of node monitoring and operation warning. It also can push the error message to client. This tool can support cluster and distributed deployment. It greatly satisfy the demand for data exchange business, and plays a role in making full use of the existing data resources.

      ETL; Kettle; GoData; inter network data exchange; automatic trigger

      TN919

      A

      10.19358/j.issn.1674- 7720.2016.24.006

      汪洋,韓寧. 基于開源代碼的ETL工具的實現(xiàn)[J].微型機與應用,2016,35(24):19-21.

      2016-08-29)

      汪洋(1981-),男,碩士,軟件工程師,主要研究方向:政府、企業(yè)信息化管理。

      韓寧(1984-),女,本科,軟件工程師,主要研究方向:數(shù)據(jù)交換、數(shù)據(jù)治理。

      猜你喜歡
      數(shù)據(jù)包路由調(diào)度
      《調(diào)度集中系統(tǒng)(CTC)/列車調(diào)度指揮系統(tǒng)(TDCS)維護手冊》正式出版
      一種基于負載均衡的Kubernetes調(diào)度改進算法
      虛擬機實時遷移調(diào)度算法
      SmartSniff
      探究路由與環(huán)路的問題
      基于Libpcap的網(wǎng)絡(luò)數(shù)據(jù)包捕獲器的設(shè)計與實現(xiàn)
      PRIME和G3-PLC路由機制對比
      WSN中基于等高度路由的源位置隱私保護
      計算機工程(2014年6期)2014-02-28 01:25:54
      eNSP在路由交換課程教學改革中的應用
      河南科技(2014年5期)2014-02-27 14:08:56
      SVC的RTP封裝及其在NS2包調(diào)度中的應用研究
      广昌县| 涟水县| 天全县| 达日县| 郓城县| 武川县| 大同市| 叶城县| 东莞市| 巨鹿县| 马鞍山市| 德保县| 丽水市| 垦利县| 新泰市| 枝江市| 赤壁市| 凤凰县| 茂名市| 宣汉县| 苍溪县| 江永县| 安溪县| 扎兰屯市| 甘德县| 石台县| 明星| 鹤峰县| 惠安县| 肥乡县| 兴仁县| 恩施市| 九龙县| 安图县| 察雅县| 上饶市| 砚山县| 五大连池市| 富平县| 土默特左旗| 梧州市|