?

基于Kettle的鐵路數據接入的設計與實現

2023-06-26 13:11王天舉許丹亞尹文志齊晨虹
無線互聯科技 2023年8期
關鍵詞:集成轉換解析

王天舉 許丹亞 尹文志 齊晨虹

摘要:為解決實際業務中的數據接入解析處理等問題,使數據的接入、轉換、解析、同步等工作更加高效便捷,文章通過對業務需求的分析和數據接入整合技術的調研,開展對開源ETL工具Kettle的研究?;趯ettle應用場景和業務數據特點的分析,構建了基于Kettle的業務數據轉換同步流程。經實際項目案例驗證,該流程與傳統方法相比,基于Kettle的數據轉換接入流程降低了開發的復雜度提升了工作效率,不僅解決了在實際業務系統中的數據接入轉化問題,同時也為其他數據集成工作提供了更多思路。

關鍵詞:接入;轉換;解析;集成;流程

中圖分類號:TP39? 文獻標志碼:A

0 引言

隨著數字時代的到來,數據科學技術不斷發展,社會各行各業都越來越重視數據,數據使得行業間的聯系更加密切,企業對數據需求即時性的要求也相應提高,基礎數據點對點傳輸、數據更新同步變得尤為重要。數據傳輸和同步的方法多種多樣[1],目前,數據轉換、同步的任務一般有兩種方式可以選擇[2-5]。一種是比較傳統的方式,即通過SQL編程或者Java編碼來實現,但是編碼難度較大,難以快速構建ETL工作環境,具有一定的局限性。另外一種方式是通過數據庫軟件自帶的抽取工具來實現數據轉換和同步,但是這種方式靈活性不高,要求數據庫必須是指定的類型[6]。

針對上述問題,結合在實際構建數據接入流程所積累的經驗,以及數據源多樣、數據結構多樣、數據量大等特點,本文基于開源工具Kettle構建數據接入轉換流程。在實際應用中發現,該方法能夠很好地解決傳統方式數據接入局限性的問題,能夠很好地提高開發速度和工作效率,通過接入流程的設計,提供一種新的數據處理流程的思路與方法。

1 Kettle簡介

Kettle 是一個數據抽取、轉換、裝載(Extract-Transform-Load, ETL)工具[7-10],主要用來對不同數據庫的數據、不同來源的數據進行處理,提供圖形化的用戶界面,使用戶使用時描述想做什么,而不是想要怎么做。Kettle 有兩種腳本文件:Transformation和Job。Transformation是轉換,Job是對多個轉換構建的整個工作流的抽象和控制[11-14]。Kettle概念模型如圖1所示。

2 業務需求介紹

某鐵路業務系統需要的業務數據會由業務部門定時放到單位內網FTP服務器上,開發人員定時從FTP服務器上獲取數據到本地,并對業務數據進行備份。數據以非標準的XML文件存儲,傳統開發人員在獲取數據之后需要編寫大量代碼對XML文件進行解碼、標準化、解析、入庫等操作,實現過程復雜、耗時,且后期維護困難、維護成本較高。

上述問題在系統開發過程中普遍存在。對于不同數據類型的業務數據,開發人員需要開發指定的代碼,處理復雜數據類型的需求。這對開發人員的要求比較高。如果有一種可以供不同類型的數據源接入數據,并且操作簡單、流程存在一定復用性的方案,那么就可以極大降低開發人員的工作難度和工作量。

3 數據接入流程

結合業務需求分析,本次數據接入主要實現定時數據獲取、數據轉碼、數據標準化、數據解析、數據篩選、數據去重、數據入庫等功能。

本文設計了數據定時接入的全部流程,在啟動定時任務后,首先從FTP服務器上獲取數據文件,完成數據文件的轉碼工作。轉碼完成之后,會對XML文件標準化,為后續文件做解析準備。解析完之后,對于不符合要求的字段需要進行數據篩選,完成數據篩選到數據入庫之前,需要對解析完的數據同數據庫中已經存在的歷史數據進行對比,判斷庫中是否已經存在,從而完成數據篩選操作。數據接入流程如圖2所示。

3.1 數據獲取

業務部門會定時向開發部門內網FTP服務器上傳XML文件。開發人員在獲取數據之后,在本地完成業務數據備份,然后清空開發FTP文件夾,為下次數據同步做準備。

3.2 數據轉碼

獲取數據后,開發人員需要對數據進行轉碼處理,建立滿足標準化的文件編碼格式,解決數據編碼不一致、標準化過程中亂碼導致失敗的問題。

3.3 數據標準化

轉碼后的數據,需要得到標準化處理,包括內容的標準化和文件名的標準化。這樣才能建立滿足解析數據要求的文件標準,解決數據規范不一致、格式不統一的問題。

3.4 數據解析

根據業務系統需求數據類型及數據格式,在對原始數據轉碼、標準化之后,開發人員還需要使用Kettle設計來解析流程。解析流程需要注意組件之間數據輸入、組件功能、各個組件之間的關系等,這也是整個流程的關鍵。

3.5 數據篩選

開發人員根據實際業務需求,從解析之后的數據中篩選出滿足業務系統需求的數據信息,剔除目標數據庫中不需要的字段和記錄,同時為篩選之后的數據添加上UUID,將其作為唯一標識。這樣操作可以解決去除多余數據、將達標數據錄入目標數據庫中的問題,整個數據篩選工作需要利用Kettle工具篩選組件來完成。

3.6 數據入庫

篩選之后的數據,經過以上數據處理邏輯進行處理,可以剔除不符合條件的數據,完成數據的處理及質量檢測。

根據以上數據策略步驟,結合實際需求分析,本文設計了如圖3所示的數據處理架構,構建了基于Kettle的業務數據同步解析流程環境,形成了由業務數據到目標數據庫的持續更新機制。

4 業務應用

基于Kettle的數據接入方法,結合業務數據信息及數據同步環境,本文設計了XML文件類型的數據接入轉換流程,通過流程中的數據獲取組件、轉換組件、標準化腳本程序、篩選組件等,對從FTP服務器上獲取的數據解析入庫,并對數據準確性和完整性進行校驗。同時,為了滿足定時增量接入數據的需求,本文設計開發了定時觸發執行腳本,以實現數據的增量接入,完成數據的持續更新。

5 基于Kettle的作業應用

從FTP服務器獲取的XML文件,其格式和內容如圖4所示。對于該文件,在正式處理之前須先預處理,包括數據轉碼(GB-2312-->UTF-8)、數據標準化(添加后綴名.XML)。如果沒有經過預處理操作,Kettle工具就識別不出它是XML文件。

XML文件的解析需求,可以簡單描述為<HPXX0000>,將標簽內的箭頭部分字段下放到<GZLDATA>標簽內的所有子標簽內;對于<GZLDATA>中的每個子標簽,開發人員需要將<HPXX0000>標簽內的數據按逗號分隔,使其作為數據表的一列。其?? 余子標簽,先按照分號分割的內容作為數據表的一行記錄,之后每一行再和<HPXX0000>標簽下方的字段構成一條記錄,作為數據表的一行數據。

從文件的內容格式來看,獲取的源文件格式并不是一個標準的XML格式文件,該文件是缺乏頂級根標簽的,故在數據預處理時需要添加根標簽,本文中對XML文件添加的根標簽是<root></root>。

基于對原始XML文件數據的分析,本文設計了如圖5所示的數據接入處理流程。

流程在Start之后,首先執行的操作是從FTP服務器上下載文件,該功能只需通過簡單配置Kettle組件即可實現。然后是復制文件,這一步主要是解決本地文件備份的問題。因為開發人員從服務器上拉取文件之后會清空服務器文件夾,所以為了完成數據的預處理,項目組開發了.bat文件。數據在完成預處理之后開始解析。轉換1操作是通過Kettle自帶組件從XML中獲取數據,并將其存放到記錄中,如圖6所示。

Kettle自帶組件可以快速從標準XML文件中獲取標簽內的數據內容。這樣不僅極大地提高了處理效率,而且在獲取標簽內容之后,還便于對后續字段的選擇。轉換2是從記錄中獲取數據進行解析。在解析過程中,開發人員首先要對從記錄中獲取的數據進行字段拆分、列拆分為多行、字段選擇等操作,然后通過手動設置的篩選條件完成數據篩選,最后為了保證數據的唯一性,生成UUID作為該記錄的主鍵。轉換流程設計如圖7所示。

6 定時觸發任務

Kettle定時任務有多種實現方式,其中之一是采用Start來定時。采用該方式須保持客戶端程序的一直開啟,若關閉,Job也會停止。開發人員也可以采用win任務計劃定時,該方式是采用.bat腳本和Kitchen結合的方式來實現的。對于Linux平臺,開發人員可以采用.sh腳本和Kitchen結合的方式來實現,本文采用的就是第三種定時方式,實現.sh腳本程序如下:

cd /data/kettle/data-integration

export JAVA_HOME=/data/java/jdk1.8.0_141/

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$PATH:$JAVA_HOME/bin

./kitchen.sh -file=/data/kettle/kettle_job/test01.kjb

>>/data/kettle/kettle_log/ceshi_$(date +%Y%m%d).log

7 結語

本文根據實際業務需求,基于ETL工具 Kettle 制定了數據同步流程與策略,并在此基礎上構建了基于Kettle的源數據庫轉換同步環境,設計一種新的數據同步流程,利用該流程實現對運輸統計業務數據的高效抽取、篩選、轉換和同步。同傳統編碼方式相比,該方法數據轉換不僅能在速度上有大幅度提升,而且在處理復雜度上大大降低,極大地提高了數據接入效率,完全能夠滿足業務系統對目標數據庫的查詢、分析需求。同時本項目還制定了定時觸發任務,解決了系統后臺對作業任務的定時調度問題,最終實現了從數據源庫到目標數據庫高效自動持續更新的目標。未來,開發人員還將不斷完善高數據質量,優化轉換作業流程,以便提升數據同步效率,為數據轉換、同步及遷移工作提供更多思路。

參考文獻

[1]郭德卿,徐國強,李娜.基于Kettle數據傳輸與同步方法的研究[J].汽車實用技術,2021(8):55-57.

[2]邢晨,史章君.Kettle 3.1數據同步研究[J].軟件導刊,2013(6):98-99.

[3]趙亞偉.一種基于Kettle的無損增量數據同步方法研究[J].軟件導刊,2019(10):55-58.

[4]趙建勛.基于Kettle的數據整合研究與實踐[J].西安文理學院學報,2020(3):28-31,36.

[5]武晉飛.基于Kettle的鐵路客運營銷數據交換平臺的設計與實現[J].鐵路計算機應用,2019(11):27-31.

[6]韋亞軍,張文文,李冬青.基于Kettle的數據轉換同步方法研究[J].軟件導刊,2022(8):126-131.

[7]季亞婷,劉樂群.基于KETTLE的高校多源異構數據整合實踐[J].合肥師范學院學報,2019(6):59-61.

[8]陳健,左秀然,楊國良.基于KETTLE的醫院多源異構數據集成研究及分析[J].中國數字醫學,2018(3):35-37.

[9]曾汪旺,謝穎夫,胡光闊.醫院多源異構醫療數據整合方法研究[J].中國衛生信息管理雜志,2017(2):197-200,204.

[10]王軍.基于kettle的高職學生行為數據集成研究[J].信息與電腦,2020(3):225-227.

[11]張孟春.面向數據集成的分布式ETL研究與設計[J].軟件導刊,2017(11):197-199.

[12]程子傲,董博,趙悅,等.基于Kettle的數據交換平臺研究與實踐[J].遼寧大學學報,2018(1):13-18.

[13]崔有文,周金海.基于KETTLE的數據集成研究[J].計算機技術與發展,2015(4):153-157.

[14]唐紫珺,蔣亮.基于Kettle的數據預處理應用[J].信息技術與信息化,2021(8):128-130.

(編輯 李春燕)

Design and implementation of railway data access based on Kettle

Wang? Tianju, Xu? Danya, Yin? Wenzhi, Qi Chenhong*

(Information Technology Institute, China Railway Zhengzhou Bureau Group Co., Ltd., Zhengzhou 450000, China)

Abstract: In order to solve the problem of actual business data access analysis processing, make data access, conversion, analysis, synchronization work more efficient and convenient, through the analysis of business requirements and data access integration technology research, carry out the open source ETL tool Kettle research, based on the analysis of Kettle application scenarios and business data characteristics, build the business data conversion synchronization process based on Kettle. According to the actual project case verification, compared with the traditional method, the Kettle-based data conversion access process simplifies the complexity of development and improves the work efficiency, which not only solves the data access transformation problem in the actual business system, but also provides more ideas for other data integration work.

Key words: access; transformation; analysis; integrate; technological process

猜你喜歡
集成轉換解析
大數據時代檔案管理模式的轉換與創新
論英漢語翻譯中語內翻譯向語際翻譯的轉換
淺談平面圖與立體圖的思維培養
陽臺集成式景觀設計方法初探
相機解析
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合