999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Kettle的Web數(shù)據(jù)集成平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)

2024-02-15 00:00:00趙吉王澤豪
無線互聯(lián)科技 2024年24期
關(guān)鍵詞:二次開發(fā)

摘要:在信息化背景下,數(shù)據(jù)集成可以有效減少數(shù)據(jù)冗余,提高數(shù)據(jù)利用率,實(shí)現(xiàn)數(shù)據(jù)的互聯(lián)共通。文章基于開源Kettle工具,采用Quartz設(shè)計(jì)并實(shí)現(xiàn)了一套B/S模式下具有用戶管理、數(shù)據(jù)集成轉(zhuǎn)換、圖形化“拖拉拽”的在線數(shù)據(jù)集成平臺(tái)。該平臺(tái)實(shí)現(xiàn)了對(duì)ETL作業(yè)的統(tǒng)籌調(diào)度、監(jiān)督和控制,從而提高應(yīng)用程序開發(fā)的效率,有效降低開發(fā)和運(yùn)維成本。

關(guān)鍵詞:數(shù)據(jù)集成平臺(tái);數(shù)據(jù)抽取清洗載入;二次開發(fā);Kettle;Quartz

中圖分類號(hào):TP311" 文獻(xiàn)標(biāo)志碼:A

0 引言

大數(shù)據(jù)時(shí)代下,數(shù)據(jù)信息和錯(cuò)綜復(fù)雜的數(shù)據(jù)邏輯爆炸式增長(zhǎng),數(shù)據(jù)將成為未來發(fā)展的新能源與動(dòng)力[1。但在實(shí)際應(yīng)用中,各系統(tǒng)之間因數(shù)據(jù)格式和訪問方法不同無法傳輸共享數(shù)據(jù)從而導(dǎo)致“數(shù)據(jù)孤島”的難題。同時(shí),許多數(shù)據(jù)抽取清洗載入(Extract Transform Load, ETL)軟件大多為傳統(tǒng)型軟件,對(duì)客戶端計(jì)算機(jī)軟硬件配置要求較高,需要下載、安裝和升級(jí),開發(fā)維護(hù)成本高。因此,提供一個(gè)便捷高效的在線數(shù)據(jù)集成平臺(tái)成為迫在眉睫的需求[2。基于此,本文設(shè)計(jì)并實(shí)現(xiàn)了一套基于開源Kettle和Quartz的在線Web數(shù)據(jù)集成平臺(tái)。

1 系統(tǒng)分析

1.1 系統(tǒng)可行性分析

1.1.1 經(jīng)濟(jì)可行性

本平臺(tái)開發(fā)使用開源組件與框架,采用Tomcat一鍵部署,開發(fā)和部署經(jīng)濟(jì)成本低;同時(shí),使用前后端分離程序結(jié)構(gòu),維護(hù)成本低。

1.1.2 技術(shù)可行性

本平臺(tái)采用Kettle7.0作為ETL功能引擎、Spring Framework 3.2.9作為Web框架。Kettle是一款開源的ETL工具,對(duì)外提供許多應(yīng)用程序編程接口(Application Programming Interface, API),適合二次開發(fā)擴(kuò)展[3-4。Spring Framework解決了Java代碼和Servlet之間的耦合,優(yōu)化了controller層[5-6。作為本數(shù)據(jù)集成平臺(tái)的表示層框架,Spring部署靈活、功能強(qiáng)大,為Web層開發(fā)提供了更加方便快速的支持,能夠滿足系統(tǒng)開發(fā)需要。

1.1.3 應(yīng)用可行性

平臺(tái)設(shè)計(jì)目的是提高數(shù)據(jù)利用效率,解決“數(shù)據(jù)孤島”的問題以及緩解傳統(tǒng)ETL工具多為C/S架構(gòu)的困局,B/S架構(gòu)對(duì)客戶端計(jì)算機(jī)硬件配置要求較低且沒有操作系統(tǒng)限制,具有廣泛的應(yīng)用實(shí)踐價(jià)值。

1.2 系統(tǒng)功能分析

平臺(tái)的總體目標(biāo)是實(shí)現(xiàn)一款基于Web的數(shù)據(jù)集成平臺(tái),即設(shè)計(jì)一個(gè)基于B/S的ETL數(shù)據(jù)集成工具。主要實(shí)現(xiàn)以下幾個(gè)功能:①實(shí)現(xiàn)不同關(guān)系型數(shù)據(jù)庫(kù)、文件之間的數(shù)據(jù)集中、清洗、轉(zhuǎn)換和傳輸。②實(shí)現(xiàn)在Web端通過“拖拉拽”方式實(shí)現(xiàn)對(duì)數(shù)據(jù)流程的配置與傳輸功能的控制。③實(shí)現(xiàn)對(duì)ETL任務(wù)進(jìn)行綜合性管理與監(jiān)控。④實(shí)現(xiàn)對(duì)任務(wù)的定時(shí)調(diào)度。

2 系統(tǒng)設(shè)計(jì)

2.1 平臺(tái)架構(gòu)設(shè)計(jì)

本文提出的Web數(shù)據(jù)集成平臺(tái)具備能在多種數(shù)據(jù)源、各種不同數(shù)據(jù)庫(kù)或文件中抽取數(shù)據(jù)并進(jìn)行轉(zhuǎn)換、加載的功能。Web數(shù)據(jù)集成平臺(tái)系統(tǒng)設(shè)計(jì)使用ExtJS、MXGraph、Spring MVC、Mybatis框架搭建B/S結(jié)構(gòu),重塑原生Kettle的架構(gòu)結(jié)構(gòu),進(jìn)行二次開發(fā)。Web平臺(tái)界面采用ExtJS、MXGraph搭建圖形化界面,擁有C/S結(jié)構(gòu)的強(qiáng)交互性與轉(zhuǎn)換各流程中數(shù)據(jù)連線和拖拽功能,同時(shí)采用Quartz和Spring作為任務(wù)調(diào)度方式,將元數(shù)據(jù)模式的ETL任務(wù)存放于系統(tǒng)資源庫(kù)中,讀取資源庫(kù)ETL元數(shù)據(jù),解析后將ETL任務(wù)通過MXGraph展現(xiàn),實(shí)現(xiàn)了基于B/S架構(gòu)開發(fā)ETL任務(wù)的功能。本平臺(tái)通過Quartz定時(shí)框架可以對(duì)ETL任務(wù)進(jìn)行管理及監(jiān)控,對(duì)平臺(tái)中運(yùn)行的作業(yè)進(jìn)行檢測(cè),實(shí)時(shí)監(jiān)測(cè)任務(wù)執(zhí)行進(jìn)度。

數(shù)據(jù)集成平臺(tái)總體框架使用3層架構(gòu),分別為Web前端展示層、Web后端處理層與底層基于Kettle內(nèi)核的執(zhí)行層,使用Quartz替換原生Kettle的調(diào)度監(jiān)控模塊,總體設(shè)計(jì)架構(gòu)如圖1所示。

2.2 平臺(tái)模塊設(shè)計(jì)

平臺(tái)按功能劃分為7個(gè)主要模塊:模型管理模塊、平臺(tái)管理模塊、任務(wù)管理模塊、定時(shí)調(diào)度模塊、日志管理模塊、節(jié)點(diǎn)管理模塊以及用戶管理模塊,如圖2所示。

3 系統(tǒng)實(shí)現(xiàn)

3.1 前端頁(yè)面實(shí)現(xiàn)

3.1.1 頁(yè)面組件拖拽功能實(shí)現(xiàn)

本平臺(tái)的重要功能是將Web框架Spring與MXGraph引擎進(jìn)行整合實(shí)現(xiàn)拖拽功能,極大地方便用戶進(jìn)行數(shù)據(jù)轉(zhuǎn)換和作業(yè)配置,完成數(shù)據(jù)操作。頁(yè)面組件拖拽功能主要使用MXGraph框架核心類實(shí)現(xiàn)。核心類中createGraph方法用于生成MXGraph對(duì)象,通過MXGraph對(duì)象的insertEdge方法和insertVertex方法在轉(zhuǎn)換模塊背景區(qū)插入頂點(diǎn)和邊框,同時(shí)使用setConnectable設(shè)置連線。實(shí)現(xiàn)拖拽功能重點(diǎn)是新建初始化Toolbar方法,遍歷獲取所有的dom組件項(xiàng)對(duì)象,將dom對(duì)應(yīng)的組件項(xiàng)對(duì)象的寬高與JavaScript結(jié)合作為容器展現(xiàn)圖形。平臺(tái)調(diào)用makeDraggable方法,配置給定的dom元素充當(dāng)指定圖形的拖動(dòng)源,隨后給dom節(jié)點(diǎn)元素返回一個(gè)新的充當(dāng)指定圖形的mxDragSource。判斷組件拖拽先使用動(dòng)作監(jiān)聽器監(jiān)聽鼠標(biāo)按下動(dòng)作和鼠標(biāo)所點(diǎn)擊的圖形坐標(biāo),然后監(jiān)聽鼠標(biāo)按下的移動(dòng),啟動(dòng)startDrag函數(shù)。如果鼠標(biāo)被監(jiān)聽為彈起,所選目標(biāo)將被放置在鼠標(biāo)下,最后啟動(dòng)stopDrag函數(shù)結(jié)束拖動(dòng),實(shí)現(xiàn)頁(yè)面組件的拖拽功能。

3.1.2 任務(wù)模塊

任務(wù)模塊主要包含轉(zhuǎn)換管理、作業(yè)管理、任務(wù)組管理和任務(wù)監(jiān)控等功能,是集成平臺(tái)的核心功能模塊。轉(zhuǎn)換管理模塊可以使用拖拽方式對(duì)轉(zhuǎn)換邏輯進(jìn)行設(shè)計(jì),同時(shí)還提供保存轉(zhuǎn)換、運(yùn)行轉(zhuǎn)換、預(yù)覽轉(zhuǎn)換、調(diào)試轉(zhuǎn)換、校驗(yàn)轉(zhuǎn)換等功能按鍵。用戶雙擊圖形化組件,可以對(duì)組件進(jìn)行配置;數(shù)據(jù)源數(shù)據(jù)表輸入組件配置頁(yè)面擁有編輯、新建、向?qū)У裙δ埽蛔鳂I(yè)管理頁(yè)面具有作業(yè)屬性查看、編輯和作業(yè)定時(shí)等功能。

3.1.3 用戶模塊

用戶模塊用于平臺(tái)用戶管理,管理員用戶登錄平臺(tái)時(shí)會(huì)提供添加用戶的功能按鈕,可選擇創(chuàng)建管理員或普通用戶。

3.1.4 平臺(tái)模塊

在平臺(tái)模塊中,儀表板組件顯示了運(yùn)行中的作業(yè)數(shù)、運(yùn)行中的轉(zhuǎn)換數(shù)、節(jié)點(diǎn)數(shù)量和定時(shí)作業(yè)的數(shù)量,用戶可以隨時(shí)查看平臺(tái)操作中的作業(yè)。

3.1.5 模型模塊

模型模塊中轉(zhuǎn)換管理配置數(shù)據(jù)源和目標(biāo)后,用戶可以執(zhí)行其他配置,如轉(zhuǎn)儲(chǔ)任務(wù)的名稱等。相關(guān)配置完成后,系統(tǒng)會(huì)顯示當(dāng)前配置的信息;用戶確認(rèn)配置后可以保存當(dāng)前配置。平臺(tái)檢查配置有效性,主要是測(cè)試輸入的信息是否標(biāo)準(zhǔn),保存配置前是否填寫了所需的項(xiàng)。有效性測(cè)試成功后,系統(tǒng)提示任務(wù)保存成功,任務(wù)創(chuàng)建結(jié)束,反之則提示錯(cuò)誤,返回前一配置界面進(jìn)行修改。模型模塊可以對(duì)作業(yè)和轉(zhuǎn)換進(jìn)行新建操作。

3.2 后端處理層實(shí)現(xiàn)

后端處理層接收前端展示層的請(qǐng)求進(jìn)行處理后,發(fā)放到執(zhí)行層執(zhí)行,起到承上啟下的作用,也是3層架構(gòu)中的核心部分。任務(wù)管理模塊主要功能是負(fù)責(zé)任務(wù)的管理和作業(yè)的運(yùn)行,對(duì)轉(zhuǎn)換的過程進(jìn)行調(diào)度。本平臺(tái)轉(zhuǎn)換模塊采取低耦合、高擴(kuò)展性的組件化開發(fā)。以CSV輸入模塊為例,如圖3所示,CsvInput類繼承AbstractStep并重寫AbstractStep類的decode和encode方法;在encode方法中使用encode.setAttribute對(duì)Kettle中相應(yīng)的CsvInputMeta進(jìn)行參數(shù)設(shè)置,在decode方法中通過mxCell cell.getAttribute(String)進(jìn)行配置,實(shí)現(xiàn)模塊化開發(fā)。

3.3 執(zhí)行層實(shí)現(xiàn)

Kettle的作業(yè)運(yùn)行分為圖形化運(yùn)行和命令行運(yùn)行。本平臺(tái)采用Kettle內(nèi)核作為ETL操作引擎,同時(shí)修改了Kettle的調(diào)度機(jī)制,由Quartz管理調(diào)度信息。將調(diào)度系統(tǒng)與Kettle分開,利用了Quartz調(diào)度框架[7強(qiáng)大的可用性和可伸縮性,實(shí)現(xiàn)對(duì)任務(wù)的定時(shí)調(diào)度。Quartz定時(shí)作業(yè)使用與carte服務(wù)器交互的方式或調(diào)用Kettle API方式執(zhí)行定時(shí)作業(yè)。

4 系統(tǒng)測(cè)試

4.1 平臺(tái)環(huán)境

在線數(shù)據(jù)集成平臺(tái)在Windows環(huán)境下開發(fā),使用B/S架構(gòu),運(yùn)行在服務(wù)器端,支持不同的運(yùn)行環(huán)境。本平臺(tái)上線運(yùn)行可部署在Windows或Linux環(huán)境下,用戶登錄后可進(jìn)行各項(xiàng)數(shù)據(jù)轉(zhuǎn)換操作并查看平臺(tái)各項(xiàng)操作情況,運(yùn)行效果如圖4所示。

4.2 平臺(tái)轉(zhuǎn)換模塊測(cè)試

利用本平臺(tái)對(duì)航空大數(shù)據(jù)集進(jìn)行數(shù)據(jù)預(yù)處理作業(yè),通過JDBC連接MySQL數(shù)據(jù)庫(kù)測(cè)試成功,如圖5(a)所示。用戶可以在平臺(tái)轉(zhuǎn)換頁(yè)面拖拉組件建立ETL數(shù)據(jù)處理流程對(duì)數(shù)據(jù)集進(jìn)行去重操作,數(shù)據(jù)從Excel輸入經(jīng)過過濾記錄組件、去除重復(fù)記錄組件再輸出到數(shù)據(jù)庫(kù)表中,如圖5(b)所示。通過使用航空公司數(shù)據(jù)集對(duì)轉(zhuǎn)換模塊進(jìn)行測(cè)試,平臺(tái)實(shí)際結(jié)果與預(yù)期結(jié)果一致,驗(yàn)證數(shù)據(jù)操作與轉(zhuǎn)換模塊ETL功能正常工作。

5 結(jié)語(yǔ)

本文設(shè)計(jì)并實(shí)現(xiàn)了Web數(shù)據(jù)集成平臺(tái)底層引擎調(diào)用ETL工具Kettle的API,能在多種關(guān)系型數(shù)據(jù)庫(kù)、非關(guān)系型數(shù)據(jù)庫(kù)中進(jìn)行數(shù)據(jù)集成操作,解決數(shù)據(jù)轉(zhuǎn)換傳輸問題,提高應(yīng)用程序開發(fā)的效率。數(shù)據(jù)集成平臺(tái)使用B/S架構(gòu)代替了傳統(tǒng)軟件的C/S架構(gòu),利用B/S架構(gòu)高度自由化的特性,解決了傳統(tǒng)ETL工具需要下載安裝、占用用戶時(shí)間與空間的問題。下一步研究工作是繼續(xù)優(yōu)化本平臺(tái)數(shù)據(jù)轉(zhuǎn)換的配置、支持傳輸?shù)臄?shù)據(jù)庫(kù)和數(shù)據(jù)類型,完善數(shù)據(jù)集成平臺(tái)的完整性以及可使用性。

參考文獻(xiàn)

[1]顧勝勤.“數(shù)據(jù)化”將成為民航企業(yè)未來發(fā)展的強(qiáng)大動(dòng)力[J].空運(yùn)商務(wù),2017(7):14-16.

[2]張春亮.基于ETL的企業(yè)數(shù)據(jù)交換平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2016.

[3]趙建勛.基于Kettle的數(shù)據(jù)整合研究與實(shí)踐[J].西安文理學(xué)院學(xué)報(bào)(自然科學(xué)版),2020(3):28-31,36.

[4]武晉飛.基于Kettle的鐵路客運(yùn)營(yíng)銷數(shù)據(jù)交換平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].鐵路計(jì)算機(jī)應(yīng)用,2019(11):27-31.

[5]張浩.SSM框架在Web應(yīng)用開發(fā)中的設(shè)計(jì)與實(shí)現(xiàn)研究[J].電腦知識(shí)與技術(shù),2023(8):52-54.

[6]張傳國(guó),王伶俐.基于MEAN+SpringMVC的服務(wù)管理平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)科學(xué),2017(增刊2):538-541.

[7]崔記東.基于Kettle和Quartz的數(shù)據(jù)集成平臺(tái)的研究與實(shí)現(xiàn)[D].鄭州:鄭州大學(xué),2019.

(編輯 王永超編輯)

Design and implementation of a Web data integration platform based on Kettle

ZHAO" Ji1, 2, WANG" Zehao1

(1.Wuxi City College of Vocational Technology, Wuxi 214000, China; 2. Big Data Intelligent Application

Engineering Technology Research and Development Center, Wuxi 214000, China)

Abstract: Under the background of informatization and Internet, data integration can effectively reduce data redundancy, improve data utilization, and achieve data interconnection. Based on open-source Kettle using Quartz, an online data integration platform in B/S mode with user management, data integration transformation, and graphical drag and drop is designed and implemented in this article. This platform realizes the overall scheduling, supervision, and control of ETL jobs, thus greatly improving the efficiency of application development and effectively reducing development and operation costs.

Key words: data integration platform; extract-transform-load; secondary development; Kettle; Quartz

猜你喜歡
二次開發(fā)
淺談基于Revit平臺(tái)的二次開發(fā)
甘肅科技(2020年20期)2020-04-13 00:30:02
西門子Operate高級(jí)編程的旋轉(zhuǎn)坐標(biāo)系二次開發(fā)
淺談Mastercam后處理器的二次開發(fā)
模具制造(2019年3期)2019-06-06 02:11:02
基于C#的AutoCAD建筑構(gòu)件庫(kù)二次開發(fā)
江西建材(2018年2期)2018-04-14 08:01:14
西門子Easy Screen對(duì)倒棱機(jī)床界面二次開發(fā)
基于全站儀二次開發(fā)的覆冰厚度測(cè)量與實(shí)現(xiàn)
Micaps3.2 版本二次開發(fā)入門淺析
西藏科技(2015年12期)2015-09-26 12:13:51
基于VB的ANSYS二次開發(fā)在變壓器抗短路性能分析中的應(yīng)用
基于CATIA的橡皮囊成形毛料展開的二次開發(fā)
ANSYS Workbench二次開發(fā)在汽車穩(wěn)定桿CAE分析中的應(yīng)用
汽車零部件(2014年5期)2014-11-11 12:24:32
主站蜘蛛池模板: 蜜桃视频一区二区三区| 91网址在线播放| 成人自拍视频在线观看| 不卡无码网| 丁香婷婷久久| 亚洲日韩精品无码专区| 中文字幕在线观看日本| 91精品啪在线观看国产| 国产成人精品2021欧美日韩| 99ri精品视频在线观看播放| 国产成人免费| 激情视频综合网| 精品国产美女福到在线直播| 亚洲天堂免费| 国产精品jizz在线观看软件| 亚洲成A人V欧美综合天堂| 九九免费观看全部免费视频| 日韩欧美高清视频| 国产麻豆永久视频| 日韩欧美国产另类| 日韩毛片基地| 亚洲综合天堂网| 欧美人在线一区二区三区| 日本欧美视频在线观看| 亚洲嫩模喷白浆| av一区二区三区在线观看| 色综合天天娱乐综合网| 在线人成精品免费视频| 正在播放久久| 国产精品专区第1页| 亚洲免费福利视频| 波多野结衣中文字幕一区| 免费无码又爽又黄又刺激网站 | 婷婷在线网站| 国产91丝袜在线播放动漫| 理论片一区| 国产成人综合在线观看| 99热亚洲精品6码| 精品一区二区三区自慰喷水| 亚洲欧美综合精品久久成人网| 国产91在线|中文| 福利姬国产精品一区在线| 国产H片无码不卡在线视频| 国产精品欧美在线观看| 欧美亚洲第一页| 国产资源免费观看| 在线播放91| 一边摸一边做爽的视频17国产| 久久一级电影| 夜夜操国产| 乱人伦99久久| 亚洲欧洲自拍拍偷午夜色| 青草视频免费在线观看| 日韩久草视频| a毛片免费看| 99久久国产自偷自偷免费一区| 亚洲国产综合自在线另类| 国产免费怡红院视频| 国内精自视频品线一二区| 日韩国产一区二区三区无码| 99成人在线观看| 欧美激情,国产精品| 久久99热这里只有精品免费看| 高清不卡一区二区三区香蕉| 国产成人综合网| 亚洲综合香蕉| 国产精品密蕾丝视频| 欧美在线视频a| 91精品啪在线观看国产| 青青草国产免费国产| 国产欧美又粗又猛又爽老| 日本一区中文字幕最新在线| 精品福利视频导航| 国产成人精品一区二区三在线观看| 亚洲天堂网2014| 久久精品人妻中文系列| 三级国产在线观看| 在线无码私拍| 三级国产在线观看| 精品国产成人a在线观看| 精品国产黑色丝袜高跟鞋| 91麻豆久久久|