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

?

基于Kettle的鐵路客運(yùn)營銷數(shù)據(jù)交換平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)

2019-11-29 01:37武晉飛
鐵路計(jì)算機(jī)應(yīng)用 2019年11期
關(guān)鍵詞:界面傳輸數(shù)據(jù)庫

武晉飛

(中國鐵道科學(xué)研究院集團(tuán)有限公司 電子計(jì)算技術(shù)研究所, 北京 100081)

隨著鐵路客票發(fā)售和預(yù)訂系統(tǒng)(簡稱:客票系統(tǒng))的不斷發(fā)展,業(yè)務(wù)需求的不斷增加,數(shù)據(jù)節(jié)點(diǎn)、數(shù)據(jù)種類以及數(shù)據(jù)量呈不斷增加的趨勢(shì)。營銷系統(tǒng)是以客票系統(tǒng)業(yè)務(wù)數(shù)據(jù)為基礎(chǔ),利用先進(jìn)信息技術(shù)和決策分析方法構(gòu)建的系統(tǒng),具有歷史數(shù)據(jù)查詢和趨勢(shì)分析、實(shí)時(shí)預(yù)售分析預(yù)警、輔助決策等功能[1-2]。這些功能的實(shí)現(xiàn)依賴于歷史數(shù)據(jù)和實(shí)時(shí)數(shù)據(jù)的準(zhǔn)確、及時(shí)傳輸。目前主要采用開發(fā)收數(shù)程序、工作流程序調(diào)用、dbcs 數(shù)據(jù)傳輸中間件的方式進(jìn)行[3]。

目前市場(chǎng)用各種各樣的ETL[4]工具,Information Powercenter 可以訪問各種主流業(yè)務(wù)系統(tǒng)、主流數(shù)據(jù)格式,并可按任意速度交付數(shù)據(jù),具有高可擴(kuò)展性、高可用性、高性能的優(yōu)點(diǎn)[5];文獻(xiàn)[6]以開源分布式軟件Kettle 為基礎(chǔ),設(shè)計(jì)了具備可移植性的ETL 系統(tǒng),通過開發(fā)插件實(shí)現(xiàn)了用戶交互和任務(wù)調(diào)度,進(jìn)行自動(dòng)化增量數(shù)據(jù)抽?。晃墨I(xiàn)[7]利用開源工具Kettle 建立模型,實(shí)現(xiàn)了高校多源異構(gòu)數(shù)據(jù)集成,形成了可分析性數(shù)據(jù);文獻(xiàn)[8]提出了基于Pentaho 的鐵路客運(yùn)營銷輔助決策解決方案,解決了商用軟件不能完全自定義個(gè)性化需求的問題,但系統(tǒng)安全性和并發(fā)性需進(jìn)一步優(yōu)化;文獻(xiàn)[9]對(duì)數(shù)據(jù)交換過程中的一致性和完整性提出了應(yīng)對(duì)方案,應(yīng)對(duì)傳輸過程中的不穩(wěn)定因素。

本文基于鐵路客票系統(tǒng)現(xiàn)有架構(gòu),結(jié)合當(dāng)前營銷數(shù)據(jù)收集、交換中遇到的問題,以開源ETL 工具Kettle 為核心,提出了鐵路客運(yùn)營銷數(shù)據(jù)交換平臺(tái),確保各類營銷數(shù)據(jù)的及時(shí)收集與實(shí)時(shí)交換。通過平臺(tái)可以更好地打通信息壁壘、消除信息孤島,兼容多種數(shù)據(jù)庫產(chǎn)品和多種數(shù)據(jù)格式,通過靈活可配置的數(shù)據(jù)處理流程,對(duì)不同的運(yùn)行環(huán)境和業(yè)務(wù)需求自動(dòng)完成各種數(shù)據(jù)處理和傳輸工作,能夠有效地提高數(shù)據(jù)的及時(shí)性、準(zhǔn)確性,提高工作效率。

1 ETL Kettle簡介

ETL(Extraction-Tansformation-Loading)即將數(shù)據(jù)從來源端經(jīng)過抽取、轉(zhuǎn)換、加載到目的端的過程。在ETL 過程中,數(shù)據(jù)抽取即是從數(shù)據(jù)源中抽取數(shù)據(jù)的過程,也可從多個(gè)數(shù)據(jù)源中進(jìn)行數(shù)據(jù)抽??;數(shù)據(jù)轉(zhuǎn)換即是對(duì)抽取數(shù)據(jù)進(jìn)行清洗,通過清洗策略和合并、轉(zhuǎn)換以及數(shù)學(xué)運(yùn)算等操作,去除數(shù)據(jù)中存在的錯(cuò)誤和冗余,也可根據(jù)要求變換數(shù)據(jù)格式,保證數(shù)據(jù)質(zhì)量; 數(shù)據(jù)裝載即是將轉(zhuǎn)換好的數(shù)據(jù)保存到數(shù)據(jù)庫或文件中。目前,越來越多的廠商致力于ETL 工具的研發(fā),而較常用的開源工具有 Kettle、Talend、Octopus 等,其中以開源 Java 工具 Kettle 應(yīng)用最廣,表現(xiàn)最為突出。Kettle 是一款用 Java 編寫的開源 ETL 工具,其主要由轉(zhuǎn)換(Transformation)和作業(yè)(Job)兩部分組成。其中,“轉(zhuǎn)換” 是由一系列步驟組成的,每一個(gè)步驟表示對(duì)一個(gè)或多個(gè)數(shù)據(jù)流進(jìn)行特定的轉(zhuǎn)換操作。 “作業(yè)” 基于工作流模型,協(xié)調(diào)數(shù)據(jù)源、執(zhí)行過程和相關(guān)依賴性的 ETL 活動(dòng),其將功能性和實(shí)體過程聚合起來,完成對(duì)整個(gè)工作流的控制。

2 需求分析

2.1 功能性需求

(1)數(shù)據(jù)傳輸功能。數(shù)據(jù)傳輸功能是數(shù)據(jù)交換平臺(tái)的核心功能,客運(yùn)相關(guān)數(shù)據(jù)存放在不同的數(shù)據(jù)庫平臺(tái)、不同節(jié)點(diǎn)甚至是不同網(wǎng)絡(luò)中;數(shù)據(jù)交換平臺(tái)需要能夠支持多種網(wǎng)絡(luò)協(xié)議,支持多種數(shù)據(jù)庫,進(jìn)而實(shí)現(xiàn)數(shù)據(jù)的傳輸,達(dá)到數(shù)據(jù)收集和交換功能;并且在數(shù)據(jù)傳輸過程中要確保數(shù)據(jù)的安全性和準(zhǔn)確性。

(2)人機(jī)交互功能。用戶可以通過數(shù)據(jù)交換平臺(tái)管理、配置當(dāng)前數(shù)據(jù)傳輸任務(wù),隨著業(yè)務(wù)需求的擴(kuò)展,用戶可以通過在平臺(tái)配置實(shí)現(xiàn)新數(shù)據(jù)任務(wù)的傳輸或交換,避免大量的代碼工作,同時(shí),在傳輸任務(wù)過程中,用戶可以清晰掌握所關(guān)注任務(wù)的傳輸狀態(tài)。

(3)數(shù)據(jù)監(jiān)控功能。數(shù)據(jù)的完整性和準(zhǔn)確性是數(shù)據(jù)交換平臺(tái)的基本要求,通過數(shù)據(jù)監(jiān)控功能,自動(dòng)對(duì)比數(shù)據(jù)源和數(shù)據(jù)目標(biāo)的一致性;通過分析任務(wù)執(zhí)行日志,自動(dòng)匯總?cè)蝿?wù)執(zhí)行狀態(tài)并展現(xiàn)給用戶,對(duì)異常情況,平臺(tái)給予多種形式的報(bào)警提醒,從而保證數(shù)據(jù)的完整性和一致性。

(4)定時(shí)任務(wù)功能。用戶可定義任務(wù)執(zhí)行方式,平臺(tái)按照約定定規(guī)則自動(dòng)啟動(dòng)執(zhí)行任務(wù)。

2.2 非功能性需求

(1)當(dāng)前營銷數(shù)據(jù)主要為客票系統(tǒng)歷史生產(chǎn)數(shù)據(jù)和實(shí)時(shí)數(shù)據(jù),數(shù)據(jù)的完整性和一致性是搭建數(shù)據(jù)交換平臺(tái)的基礎(chǔ),也是鐵路客運(yùn)營銷輔助決策系統(tǒng)的基本要求。在數(shù)據(jù)傳輸過程中必須實(shí)時(shí)監(jiān)控?cái)?shù)據(jù)狀態(tài),保證數(shù)據(jù)的完整性和一致性,提供異常數(shù)據(jù)快速處理解決辦法。

(2)鐵路實(shí)行實(shí)名制購票之后,系統(tǒng)中包含了旅客的隱私信息,保護(hù)用戶隱私信息不被泄漏是數(shù)據(jù)交換平臺(tái)的另一個(gè)重要功能。對(duì)于分析不需要的隱私信息,在傳輸過程中進(jìn)行脫敏處理;對(duì)于歷史生產(chǎn)數(shù)據(jù)的備份傳輸,則采用加密傳輸解密入庫,防止在數(shù)據(jù)傳輸過程中信息泄漏,保證數(shù)據(jù)安全性。

(3)當(dāng)前售票系統(tǒng)生產(chǎn)環(huán)境主要采用Sybase數(shù)據(jù)庫,隨著業(yè)務(wù)不斷發(fā)展深入,增加了Mysql、Oracle、Gbase、PostGresSQL 等數(shù)據(jù)庫,對(duì)于營銷分析,還可能會(huì)用到文本數(shù)據(jù),如Excel、txt 等文件,要求數(shù)據(jù)交換平臺(tái)有有良好的適應(yīng)性,能夠適配多種數(shù)據(jù)庫和多種數(shù)據(jù)格式。

(4)鐵路售票數(shù)據(jù)具有數(shù)據(jù)量大、多源性等特點(diǎn),精準(zhǔn)營銷分析依賴于數(shù)據(jù)的實(shí)時(shí)性和準(zhǔn)確性,對(duì)數(shù)據(jù)交換平臺(tái)的工作效率提出了更高的要求。

(5)隨著業(yè)務(wù)需求不斷發(fā)展,客票生產(chǎn)數(shù)據(jù)節(jié)點(diǎn)呈增加趨勢(shì),客運(yùn)營銷分析需求也呈不斷增加趨勢(shì),要求數(shù)據(jù)交換平臺(tái)的數(shù)據(jù)庫、數(shù)據(jù)結(jié)構(gòu)的適配和后端并發(fā)處理方便,都有良好的可擴(kuò)展性。

3 平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)

3.1 架構(gòu)設(shè)計(jì)

數(shù)據(jù)傳輸平臺(tái)總體框架設(shè)計(jì)為3 層:Web 前端展示層,Web 后端處理層和執(zhí)行層,如圖1 所示。

圖1 數(shù)據(jù)交換平臺(tái)總體架構(gòu)

3.1.1 Web前端展示層

前端展示層為整個(gè)平臺(tái)的入口,為整個(gè)平臺(tái)提供顯示的界面,除此之外,前端展示層將用戶的配置進(jìn)行收集和整理,將這些配置信息以rest 的形式傳遞給Web 后端。整個(gè)前端展示層需要實(shí)現(xiàn)4 個(gè)方面的界面。

(1)數(shù)據(jù)連接管理界面:包括單個(gè)數(shù)據(jù)連接的配置和修改界面,全部數(shù)據(jù)連接的顯示界面。

(2)轉(zhuǎn)換管理界面:包括轉(zhuǎn)換任務(wù)的配置和修改界面,轉(zhuǎn)換運(yùn)行信息的顯示界面。

(3)作業(yè)管理界面:包括作業(yè)的配置和修改頁面,作業(yè)運(yùn)行的運(yùn)維信息展示界面。

(4)用戶管理界面:包括登陸界面,新增和修改用戶信息界面。

3.1.2 Web后端處理層

后端處理層是后臺(tái)的入口,與前臺(tái)進(jìn)行交互,將前臺(tái)傳遞過來的配置存儲(chǔ)到數(shù)據(jù)庫中,并實(shí)現(xiàn)將數(shù)據(jù)庫中的轉(zhuǎn)換配置和作業(yè)配置下發(fā)給執(zhí)行層,觸發(fā)執(zhí)行層的執(zhí)行。

后端處理層從數(shù)據(jù)流上主要實(shí)現(xiàn)4 個(gè)功能:

(1)為前端提供接口,實(shí)現(xiàn)將數(shù)據(jù)庫中的需要的信息傳遞給前端;

(2)接受前端傳入的信息,將其寫入數(shù)據(jù)庫;

(3)將數(shù)據(jù)庫中的信息傳遞給執(zhí)行層,觸發(fā)執(zhí)行層的執(zhí)行;

(4)接收?qǐng)?zhí)行層的執(zhí)行結(jié)果,更新數(shù)據(jù)庫中對(duì)應(yīng)項(xiàng)。

3.1.3 執(zhí)行層

執(zhí)行層負(fù)責(zé)ETL 工作,接收Web 后端傳遞過來的執(zhí)行信息進(jìn)行執(zhí)行。數(shù)據(jù)傳輸平臺(tái)的ETL 操作部分采用了Kettle 的內(nèi)核,故而執(zhí)行層主要進(jìn)行以下工作:接收Web 后端發(fā)送過來的處理信息并進(jìn)行分發(fā)和處理;將Kettle 內(nèi)核按照功能需求進(jìn)行修改和分布式部署;在分布式基礎(chǔ)上實(shí)現(xiàn)性能優(yōu)化。

3.2 功能模塊設(shè)計(jì)

根據(jù)業(yè)務(wù)需求,平臺(tái)主要6 個(gè)功能模塊:用戶管理模塊、傳輸任務(wù)配置模塊、轉(zhuǎn)換管理模塊、作業(yè)調(diào)度管理模塊、傳輸監(jiān)控模塊和日志報(bào)警模塊。各功能模塊間簡要數(shù)據(jù)流圖,如圖2 所示。

(1)用戶管理模塊主要實(shí)現(xiàn)用戶管理和訪問權(quán)限管理;

(2)傳輸任務(wù)配置模塊用于定義傳輸任務(wù),包括傳輸任務(wù)的數(shù)據(jù)庫類型、數(shù)據(jù)表、數(shù)據(jù)庫連接信息、定時(shí)執(zhí)行配置等信息;

(3)轉(zhuǎn)換管理模塊主要實(shí)現(xiàn)Kettle 轉(zhuǎn)換配置、轉(zhuǎn)換調(diào)用情況、轉(zhuǎn)換運(yùn)行測(cè)試等功能;

圖2 功能模塊簡要流程圖

(4)調(diào)度管理模塊實(shí)現(xiàn)定時(shí)任務(wù)的自動(dòng)執(zhí)行和手工執(zhí)行任務(wù),包括數(shù)據(jù)傳輸前處理、后處理等流程;

(5)傳輸監(jiān)控模塊實(shí)現(xiàn)整個(gè)數(shù)據(jù)傳輸平臺(tái)所有任務(wù)執(zhí)行狀態(tài)監(jiān)控,執(zhí)行日志記錄、對(duì)比,錯(cuò)誤信息顏色預(yù)警等功能;

(6)日志報(bào)警模塊主要功能為將任務(wù)執(zhí)行情況發(fā)送給第三方接收平臺(tái),如短信、微信和釘釘?shù)?,目前,平臺(tái)采用釘釘發(fā)送信息的方式實(shí)現(xiàn)報(bào)警。

3.3 接口設(shè)計(jì)

3.3.1 用戶管理相關(guān)接口

包含用戶管理類和用戶權(quán)限類。用戶管理類用于實(shí)現(xiàn)用戶創(chuàng)建、信息維護(hù)、獲取用戶信息等功能;用戶權(quán)限類用于管理用戶對(duì)不同功能模塊的訪問權(quán)限。

3.3.2 數(shù)據(jù)庫訪問信息配置接口

Kettle 支持多種數(shù)據(jù)庫的連接訪問,通過數(shù)據(jù)庫訪問信息配置接口管理不同任務(wù)的信息配置,并將信息存儲(chǔ)在數(shù)據(jù)庫中供Kettle 轉(zhuǎn)換和作業(yè)調(diào)用訪問。多個(gè)服務(wù)器與多個(gè)數(shù)據(jù)庫的組合配置轉(zhuǎn)化,如圖3 所示。

圖3 Kettle 數(shù)據(jù)訪問配置示例

3.3.3 Kettle轉(zhuǎn)換接口

轉(zhuǎn)換接口主要包含轉(zhuǎn)換配置類和執(zhí)行類。轉(zhuǎn)換配置類提供對(duì)轉(zhuǎn)換的新增、修改、刪除等操作;轉(zhuǎn)換執(zhí)行類主要實(shí)現(xiàn)轉(zhuǎn)換提交、更新、移除和停止轉(zhuǎn)換關(guān)系。圖4 為包含數(shù)據(jù)導(dǎo)出和獲取過程日志的一個(gè)轉(zhuǎn)換流程。

圖4 Kettle 轉(zhuǎn)換流程示例

3.3.4 Kettle作業(yè)管理接口

作業(yè)管理模塊主要實(shí)現(xiàn)作業(yè)管理和作業(yè)運(yùn)行,在整個(gè)數(shù)據(jù)傳輸平臺(tái)中作業(yè)是對(duì)轉(zhuǎn)換的一個(gè)調(diào)度,當(dāng)需要不同的轉(zhuǎn)換相互協(xié)調(diào)來完成數(shù)據(jù)傳輸過程時(shí)就需要對(duì)作業(yè)進(jìn)行配置。作業(yè)管理接口主要提供了兩個(gè)接口類,作業(yè)管理類和作業(yè)執(zhí)行類。作業(yè)管理接口提供作業(yè)添加、修改、刪除、查詢功能。作業(yè)執(zhí)行接口類則提供提交作業(yè)和停止作業(yè)兩個(gè)接口,一個(gè)Kettle 作業(yè)流程,如圖5 所示。

圖5 Kettle 作業(yè)流程示例

3.3.5 日志報(bào)警接口

日志報(bào)警接口主要提供日志查詢功能,包括歷史任務(wù)的執(zhí)行日志和當(dāng)前執(zhí)行任務(wù)的實(shí)時(shí)日志信息,用于執(zhí)行任務(wù)檢查和異常信息報(bào)警。

3.4 平臺(tái)實(shí)現(xiàn)

營銷數(shù)據(jù)交換平臺(tái)前端基于B/S 架構(gòu)實(shí)現(xiàn),采用Spring MVC 和JQuery 框架進(jìn)行開發(fā),平臺(tái)各應(yīng)用間通信和方法調(diào)用通過高速服務(wù)框架實(shí)現(xiàn),數(shù)據(jù)庫采用PostGresSQL數(shù)據(jù)庫,創(chuàng)建Kettle 資料庫和交換平臺(tái)數(shù)據(jù)庫用于數(shù)據(jù)管理。數(shù)據(jù)交換平臺(tái)主要功能可分為兩大類:

(1)以開源ETL 工具Kettle 為核心的數(shù)據(jù)層開發(fā),結(jié)合Spring 和Quartz 任務(wù)調(diào)度框架,實(shí)現(xiàn)營銷數(shù)據(jù)的多數(shù)據(jù)源分布式采集,并提供簡潔高效的頁面供使用者進(jìn)行操作管理;

(2)以Solr 搜索引擎為基礎(chǔ)的資源索引建立和平臺(tái)搜索功能,用戶可通過配置文件或API 接口進(jìn)行索引配置和生成,還提供Web 管理頁面,方便用戶操作。

在任務(wù)執(zhí)行過程中全程記錄執(zhí)行狀態(tài),執(zhí)行完成后自動(dòng)生成匯總信息,并對(duì)異常已經(jīng)預(yù)警。

對(duì)于平臺(tái)報(bào)警顯示的異常數(shù)據(jù),為用戶提供帶有參數(shù)的處理界面,方便用戶處理異常。

通過向第三方辦公軟件發(fā)送post 請(qǐng)求,實(shí)現(xiàn)辦公軟件實(shí)時(shí)報(bào)警。

3.5 平臺(tái)應(yīng)用

執(zhí)行層是數(shù)據(jù)交換平臺(tái)的核心層,運(yùn)行初期執(zhí)行層部署在由4 個(gè)節(jié)點(diǎn)組成的Kettle 集群上,集群主節(jié)點(diǎn)負(fù)責(zé)完成轉(zhuǎn)換運(yùn)行和任務(wù)切分,為集群指定TCP 端口,把任務(wù)分發(fā)到指定的負(fù)載節(jié)點(diǎn), 負(fù)載節(jié)點(diǎn)收到任務(wù)后打開TCP 端口,并連接主節(jié)點(diǎn),處理集群任務(wù)。考慮到現(xiàn)有IT 基礎(chǔ)設(shè)施資源利用率低,應(yīng)用在物理機(jī)或者虛擬機(jī)中部署周期長,系統(tǒng)擴(kuò)容不便,因此采用容器技術(shù)部署平臺(tái)前端Web 應(yīng)用,實(shí)現(xiàn)應(yīng)用的可持續(xù)集成和可擴(kuò)展部署。

當(dāng)前數(shù)據(jù)交換平臺(tái)主要配置了存根、運(yùn)能、運(yùn)量和實(shí)名制等60 余項(xiàng)數(shù)據(jù)的作業(yè)任務(wù)。針對(duì)不同數(shù)據(jù)設(shè)定了相應(yīng)的任務(wù)執(zhí)行計(jì)劃以及預(yù)警規(guī)則,在與原系統(tǒng)平行運(yùn)行期間,運(yùn)行效率較之前系統(tǒng)有很大提升,完成所有數(shù)據(jù)交換任務(wù)總耗時(shí)減少2 h 左右。在整個(gè)數(shù)據(jù)作業(yè)過程中,系統(tǒng)自動(dòng)完成完整性、一致性檢驗(yàn),數(shù)據(jù)準(zhǔn)確性得到了很大保證,釘釘辦公軟件及時(shí)獲取信息并進(jìn)行預(yù)警通知,極大地方便了數(shù)據(jù)維護(hù)工作。在發(fā)生異常時(shí),維護(hù)人員可通過日志快速、準(zhǔn)確地定位到異常環(huán)節(jié),并通過界面操作進(jìn)行處理,提高了工作效率。

4 結(jié)束語

本文基于KETTLE 構(gòu)建了鐵路客運(yùn)營銷數(shù)據(jù)交換平臺(tái),用于鐵路客運(yùn)營銷歷史數(shù)據(jù)收集和實(shí)時(shí)數(shù)據(jù)交換,有效保證了營銷系統(tǒng)的數(shù)據(jù)及時(shí)性、準(zhǔn)確性和完整性,提高了營銷數(shù)據(jù)交換與傳輸?shù)男剩涣己玫倪m配性和可擴(kuò)展性有效減少了業(yè)務(wù)需求增加帶來的重復(fù)開發(fā)工作;嚴(yán)格的日志記錄與展現(xiàn)結(jié)合第三方辦公軟件及時(shí)報(bào)警,以及界面異常處理功能,提高了數(shù)據(jù)維護(hù)的效率。為提高鐵路客運(yùn)營銷系統(tǒng)數(shù)據(jù)效率、實(shí)現(xiàn)精準(zhǔn)營銷提供了數(shù)據(jù)支撐。

猜你喜歡
界面傳輸數(shù)據(jù)庫
微重力下兩相控溫型儲(chǔ)液器內(nèi)氣液界面仿真分析
牽引8K超高清傳輸時(shí)代 FIBBR Pure38K
國企黨委前置研究的“四個(gè)界面”
一種可用于潮濕界面碳纖維加固配套用底膠的研究
扁平化設(shè)計(jì)在手機(jī)界面中的發(fā)展趨勢(shì)
基于同軸傳輸?shù)木W(wǎng)絡(luò)傳輸設(shè)備及應(yīng)用
電子制作(2018年18期)2018-11-14
數(shù)據(jù)庫
支持長距離4K HDR傳輸 AudioQuest Pearl、 Forest、 Cinnamon HDMI線
數(shù)據(jù)庫