鯨品堂|高效工作之:開源工具kettle實戰

2024-05-07 727

在運營商數據處理領域,Oracle存儲過程一直是數據處理的核心工具,但隨著技術的發展,尋找替代方案變得迫切。Kettle,作為Oracle存儲過程的替代品,以其強大的功能和易用性,正逐漸受到運營商的青睞。本文將介紹Kettle的主要特性、實戰應用,并提供案例分析,以幫助技術決策者了解Kettle的潛力,在面臨類似問題提供寶貴的參考和借鑒。


PART.1

Kettle


Kettle,又稱為Pentaho Data Integration,是一款強大的開源ETL(Extract, Transform, Load)工具,旨在幫助用戶高效地處理和轉換數據。


以下是kettle工具的六大特性:

圖片關鍵詞


對于那些習慣于使用存儲過程的開發者來說,Kettle工具是一個非常合適的替代方案,總結起來有以下幾點:



多平臺支持Kettle可在Windows、Linux、Mac OS X等操作系統上運行,便于跨平臺開發。



界面化配置易上手:圖形界面設計讓操作直觀,通過拖放組件構建ETL流程,無需編寫復雜代碼。



適配多種數據源:支持Oracle、MySQL、SQL Server、PostgreSQL等數據庫,以及NoSQL數據庫。 



組件豐富功能強提供大量預定義組件,覆蓋數據處理的各個方面,減少編碼復雜性。

圖片關鍵詞

圖片關鍵詞組件庫



調試功能強大Kettle擁有一個綜合日志系統,可以在執行過程中記錄詳細的信息。綜合日志系統記錄執行細節,可快速定位問題。


圖片關鍵詞

日志功能

圖片關鍵詞

PART.2

Kettle實戰步驟


本章將詳細介紹如何在實際應用中利用Kettle作為Oracle存儲過程的替代方案,進行數據處理與轉換。


圖片關鍵詞

實戰步驟


01

應用安裝


到官網下載對應的安裝包,官網下載地址https://sourceforge.net/projects/pentaho/files/Data%20Integration。


由于是綠色版,下載后直接解壓即可使用。文件目錄結構如下。

圖片關鍵詞

圖片關鍵詞文件目錄示意


由于軟件是基于JAVA語言開發的,需要在運行環境中安裝JDK,JDK建議是1.8以上。


最后,點擊運行Spoon.bat運行即可(linux系統下需要運行Spoon.sh)。


界面效果如下:

圖片關鍵詞


02

轉換/作業開發調試


在Kettle中,數據處理主要通過作業(Job)和轉換(Transformation)來完成,此章節將著重介紹作業和轉換如何進行開發,怎么開展調試工作。


圖片關鍵詞

圖片關鍵詞轉換和作業


(1)   轉換開發調試


首先,打開Kettle軟件,并點擊菜單中的“File -> New ->Transformation”來創建一個新的數據轉換。


接著需要配置數據源,不同數據源的配置參數會稍有不同。配置完成后,可以點擊“測試”按鈕進行驗證。


圖片關鍵詞

數據源配置


數據源配置完成后,就可以開始依照業務邏輯開始轉換的開發工作了。首先先選擇輸入組件,如表輸入。在彈出對話框中將所需要獲取數據的語句寫入??赏ㄟ^“預覽”按鈕驗證配置的是否正確。


圖片關鍵詞

數據庫表獲取范例


接著,可以利用Kettle提供的各種轉換組件,如數據過濾、字段映射、計算字段、連接表等,對數據進行清洗和轉換操作。


圖片關鍵詞

表關聯查詢范例


然后,將加工處理好的數據,通過輸出組件沉淀到表或者文件中。


圖片關鍵詞

文件輸出范例


這樣就完成一個業務邏輯的開發工作了。最后,可以點擊運行按鈕,進行試運行。Kettle的日志系統會將每個步驟的運行情況以及耗時數據進行展示,方便使用人員進行核查和調試。


圖片關鍵詞


(2)   作業開發調試


如果有多個轉換,而且轉換之間有關聯,則可以使用Kettle作業進行管理。


首先,點擊菜單中的“File -> New -> Job”來創建一個新的作業。

接著,在“通用”中選擇一個開始節點,開始節點作為起點。


圖片關鍵詞圖片關鍵詞

通用組件


然后,就可以通過“轉換”添加前面開發好的轉換了。


圖片關鍵詞

轉換配置


和轉換類似,作業也提供了豐富的組件,可以滿足大部分業務場景。

圖片關鍵詞圖片關鍵詞

作業中的組件庫


配置作業參數后,可以運行作業并監控執行過程,確保數據處理順利進行。


圖片關鍵詞

作業運行效果

03

保存資源庫


kettle以資源庫的形式存儲所有重要數據指令和規則。它就像是一個信息中心,匯集了所有的作業(jobs)和轉換(transformations)相關的細節。當需要執行某個任務時,Kettle的核心引擎會從這個資源庫中讀取所需的信息,然后按照指令進行操作,這個過程實現了在不同平臺之間的無縫使用。


為了讓每個人都能根據自己的需求選擇適合自己的方式,Kettle提供了兩種保存模式:文件模式和數據庫模式。


  • 文件模式就像是將作業和轉換保存在電腦上的文件里。作業被保存在擴展名為.kjb的文件中,而轉換則被保存在.ktr的文件中。這就像是給數據處理流程建立了一個文檔化的檔案。

  • 數據庫模式則是將這些信息存儲在數據庫中,具體來說,就是存放在R_TRANSFORMATION、R_JOB等數據庫表中。這種方法適合于那些希望在數據庫環境中管理作業和轉換的用戶,因為它可以提供更好的數據管理和訪問控制。


無論選擇哪種模式,Kettle的資源庫都提供了一個便捷高效的方式來組織和管理數據處理任務,確保了工作的連貫性和可重復性。


04

Linux環境運行


在前面的章節中,已經介紹了如何在Windows平臺上進行開發?,F在,將介紹如何使用開發出的資源在Linux上運行的步驟。


首先,確保Linux環境上有安裝JDK。接著將壓縮包上傳至Linux對應目錄上,進行解壓。


Kettle提供轉換、工作兩種命令啟動方式。


??轉換的命令啟動格式

[opt@zte data-integration]$./pan.sh -rep=my_repo -user=admin -pass=admin -trans=stu1tostu2 -dir=/


參數說明:

-rep 資源庫名稱

-user 資源庫用戶名

-pass 資源庫密碼

-trans 要啟動的轉換名稱

-dir 目錄(不要忘了前綴 /)


??作業的命令啟動格式

[opt@zte data-integration]$./kitchen.sh -rep=my_repo -user=admin -pass=admin -job=jobDemo1 -logfile=./logs/log.txt -dir=/


參數說明:

-rep - 資源庫名

-user - 資源庫用戶名

-pass – 資源庫密碼

-job – job名

-dir – job路徑

-logfile – 日志目錄


PART.3

商用案例分享:酬金系統跨系統跨數據源匯聚


渠道酬金系統是第三方渠道為客戶辦理各類運營商產品和服務時,獲得的報酬、獎勵和補貼費用的結算系統。


隨著運營商數據庫國產化的推動,各省面臨了替換Oracle存儲過程的挑戰,因此運維人員急需一種性能高、兼容性強的替代工具。通過研究和分析移動、電信運營商在相關省份的渠道酬金業務,總結出了一些關于Kettle開發流程的思路和方法,這些方法能夠加快各省份在替換存儲過程方面的進展。


圖片關鍵詞



01

數據源分析與整合


此階段的目標是為了整合各個業務場景的關鍵數據,并整合最終酬金系統所需要的匯聚數據結構。這一步驟關鍵在于識別出數據的共通點和差異,以及各個數據的冗余和缺失情況。


首先,從CRM側的https接口協議獲取實時受理信息,分析出系統需求的關鍵信息包括訂單標識、受理人工號、受理時間、受理業務。從計費側梳理以表形式同步的數據為產品實例,其中包含了產品實例標識、用戶號碼、用戶狀態。渠道系統的數據以月度形式同步,同步形式為文件格式,包括渠道信息和渠道員工關系信息。


接著,分析渠道酬金業務結算所需要的關鍵字為,訂單標識、產商品標識、受理號碼、用戶狀態、受理人員工號、受理員工狀態、受理渠道標識、受理渠道名稱、歸屬本地網。將這些字段和各個系統數據源進行字段映射,判斷是否滿足要求。


最后,依照業務場景對數據進行檢查,核對沒有需要擴充的字段后,把基礎業務數據表數據依照業務場景進行整合,形成匯聚數據設計圖。


圖片關鍵詞

用戶受理匯聚表設計圖


02

設計ETL流程


基于數據匯聚設計圖,設計ETL流程來處理數據抽取、轉換和加載邏輯,并輸出設計方案文檔。方案文檔包含需求分析內容、數據流設計、系統改造三個部分。需求分析章節將業務部門的原始需求進行寫入,并進行分析。數據流設計則是將數據匯聚設計圖寫入,補充表模型以及建表語句。這里著重介紹系統改造部分。


系統改造包含兩個部分,一個是數據源采集設計,即備注清楚CRM、計費、渠道的數據接口協議,以及對應的采集實現邏輯;第二個是將kettle的數據加工邏輯進行設計,主要是表關聯,以及字段轉換設計。由于CRM系統提供的訂單通過https協議實時推送,這里需要單獨設計一套客戶端進行數據沉淀到酬金庫表中。渠道接口的采集由于格式比較簡單,可以直接沿用kettle的文件解析模塊進行承接,如復雜一些的則可能需要單獨開發對應的接口去實現,或者是通過開發kettle的插件實現。


圖片關鍵詞

用戶受理匯聚需求設計

03

開發與測試


開發人員依照需求設計方案,在客戶端上使用kettle進行開發ETL作業,并進行測試。


先配置數據源,用于讀取CRM訂單表和計費資料表數據。接著使用“表輸入”插件,配置設計文檔中定義好的查詢SQL。利用“合并記錄”插件通過產品標識字段將CRM和計費的表數據流進行合并,然后選擇“文本文件輸入插件”,將渠道文件解析格式寫入,再用“合并記錄”插件通過渠道標識字段將渠道數據流和前面的數據流進行合并。將合并的結果最終利用“表輸入”插件,寫入酬金匯聚表。這樣數據加工流程就開發完成了,接著可以進行在線測試,核對并調優。


圖片關鍵詞

開發效果圖


為了方便測試,可以使用“過濾記錄”、“寫日志”插件來進行在線調試。如過程中遇到流程問題可跳轉至步驟2核對并修改設計邏輯后,再開發、測試。


04

部署與優化


在測試驗證無誤后,將ETL作業部署到生產環境。部署過程中,監控作業的執行效率和資源消耗,根據實際運行情況進行性能調優。例如,調整內存配置、優化數據庫連接池設置等。


圖片關鍵詞

作業監控表格


05

監控與維護


運行期間,持續監控ETL作業的性能和數據質量。使用Kettle的日志記錄和監控功能來跟蹤作業執行情況,及時發現并解決運行中的問題。


圖片關鍵詞

監控維護表格


PART.4

結語


隨著數據量的激增和處理需求的不斷升級,Kettle作為一款強大的開源ETL工具,其在數據處理領域的重要性不言而喻。它不僅提供了一個易于使用的平臺,讓技術愛好者能夠快速入門并實踐數據操作,也為專業數據分析師和開發者提供了豐富的功能,以支持復雜的數據處理任務。



Kettle的靈活性、成本效益和社區支持,使其成為Oracle存儲過程的一個強有力的替代方案。它的圖形化界面降低了編程難度,而開源性質又保證了其可持續性和創新能力。



總之,Kettle不僅是一個現在的解決方案,更是一個未來的數據處理平臺。隨著技術的不斷進步,它將繼續適應并滿足不同用戶群體的需求,推動數據處理領域的創新和發展。


官方微信公眾號

浩鯨云計算科技股份有限公司 版權所有 2003-2023

蘇ICP備10224443號-6       蘇公網安備 32011402011374號

亚洲精品免费视频_热99re6久精品国产首页青柠_精品国产专区91在线_亚洲美洲欧洲偷拍片区