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

2024-05-07 760

在運(yùn)營商(shāng)數據(jù)處(chù)理領域,Oracle存儲過程一直(zhí)是數據處理的核心工具,但隨著技術的發展,尋找替代(dài)方案變得迫切。Kettle,作為Oracle存儲過程的替代品,以其(qí)強大(dà)的(de)功能和易(yì)用性,正逐(zhú)漸受到運營(yíng)商的青睞。本文(wén)將介紹Kettle的主要特性、實戰應(yīng)用,並提供案例分析,以幫助技術決策者(zhě)了解Kettle的潛力,在麵臨類似問題提供(gòng)寶貴的參考和借鑒。


PART.1

Kettle


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


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

圖片關鍵詞


對於那些習(xí)慣於使用存儲(chǔ)過程的(de)開發(fā)者來說,Kettle工具是一個非(fēi)常合適的替代方案,總結起來有以下幾點:



多平台支持Kettle可在Windows、Linux、Mac OS X等操作(zuò)係統上運行,便於跨平台(tái)開發。



界麵(miàn)化配置易上手(shǒu):圖形界(jiè)麵設計讓(ràng)操作直觀(guān),通過拖放組件構建(jiàn)ETL流程,無需編寫(xiě)複雜代碼。



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



組件豐富(fù)功能強提供大量預定義組件(jiàn),覆蓋數據處理的各個方(fāng)麵,減(jiǎn)少編碼複雜性。

圖(tú)片關(guān)鍵詞(cí)

圖片關鍵詞組件庫



調試功能強大Kettle擁有一個(gè)綜合日誌係統(tǒng),可以在執行過程中記錄詳細的(de)信息。綜合日誌係統(tǒng)記錄執行細節,可快速定(dìng)位問題。


圖片關鍵詞

日誌功能

圖片關鍵詞

PART.2

Kettle實戰步驟


本章將詳細介紹如何在(zài)實(shí)際應用中利用Kettle作為Oracle存儲過(guò)程的替代方案,進行數據(jù)處(chù)理與轉換。


圖片關鍵詞

實戰步驟


01

應用安裝


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


由於(yú)是綠(lǜ)色版,下載後直接解壓即可使用。文件目錄結構如下。

圖片關鍵詞(cí)

圖片關鍵詞文件目錄示意


由(yóu)於軟件(jiàn)是基於JAVA語言開發的(de),需(xū)要在運行環境中安裝JDK,JDK建議是1.8以上。


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


界(jiè)麵效果如下:

圖片(piàn)關鍵(jiàn)詞


02

轉換/作業開發調試


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


圖片關鍵詞

圖片關鍵詞轉換和作業


(1)   轉換(huàn)開發調試


首先,打開Kettle軟件,並(bìng)點擊(jī)菜單中(zhōng)的“File -> New ->Transformation”來創(chuàng)建一個新的數據轉換。


接著需要配(pèi)置數據源,不同數據源的配置參數會稍有不同。配置(zhì)完成後,可以點擊“測試”按鈕進行驗證。


圖(tú)片關鍵詞

數據源配(pèi)置


數(shù)據源配(pèi)置完成(chéng)後,就可以開始依照業務邏輯開始轉換的開發工作(zuò)了。首(shǒu)先(xiān)先選擇輸入組件,如表(biǎo)輸入。在彈出(chū)對話框中將所需要獲取數據的語句寫入(rù)。可通過“預覽”按鈕驗證配(pèi)置的是否(fǒu)正確。


圖片關鍵詞

數據庫表獲取範例(lì)


接著,可以利(lì)用Kettle提供的各種轉換組件,如數據(jù)過濾、字段映射、計算(suàn)字(zì)段、連接表(biǎo)等(děng),對數據進行清洗(xǐ)和轉換(huàn)操作。


圖(tú)片關鍵詞

表關聯查詢範(fàn)例


然後,將加工處(chù)理好的數據,通過輸出(chū)組件沉澱到(dào)表或者文件中。


圖片關鍵詞

文(wén)件輸(shū)出範例


這樣就完成一個業務邏輯的開發工作(zuò)了。最後,可以點擊運行按鈕,進行試運行。Kettle的日誌係統會將每個步(bù)驟的(de)運行情(qíng)況以及耗時數(shù)據進行展示,方便使用人員進行核查和調試。


圖片關鍵詞


(2)   作業開發調試


如果有多個轉換,而且轉換之(zhī)間(jiān)有關(guān)聯,則可以使用Kettle作業進行管理(lǐ)。


首先,點擊菜單中(zhōng)的“File -> New -> Job”來創建(jiàn)一個新的作業(yè)。

接(jiē)著,在“通用(yòng)”中選擇一個開始節點,開始節點作為起點(diǎn)。


圖片關鍵詞圖片關鍵詞

通用組件


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


圖片關鍵詞

轉換配置(zhì)


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

圖片關鍵詞圖片關鍵(jiàn)詞

作(zuò)業中的組件庫


配置作業參(cān)數後,可以(yǐ)運行(háng)作業並監控執行過程,確保數據處理順利(lì)進行。


圖片關鍵詞

作業運行效果

03

保存資源庫


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


為了讓每個人都(dōu)能根據自己的需求(qiú)選擇適合自己的方(fāng)式,Kettle提供了兩種保存模式:文件模式和數據庫模式


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

  • 數據庫模式則是將這些信息存儲在(zài)數據庫中,具(jù)體來說,就(jiù)是存放在R_TRANSFORMATION、R_JOB等數據庫表中。這種方法適合於那些希望在數據庫環境中管理(lǐ)作業和轉換的用戶,因為(wéi)它可以提供更好的數據管理和訪問控製。


無論選擇哪種模(mó)式,Kettle的資源庫都提供了一個便捷高效的方式來(lái)組(zǔ)織和管理數據處理任務,確保了工作的連貫性和可(kě)重(chóng)複性。


04

Linux環境運行


在(zài)前麵的章節中(zhōng),已經介紹了如何在Windows平台上(shàng)進行(háng)開(kāi)發。現在,將介紹如何使用開發出的資源在Linux上運行的步驟。


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


Kettle提供轉換、工作兩種命令啟動(dòng)方式。


☑️轉換的命令啟(qǐ)動(dòng)格式

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


參數說明:

-rep 資源庫名稱(chēng)

-user 資源庫用戶名

-pass 資源庫密碼

-trans 要啟動的轉換名稱

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


☑️作業的命令(lìng)啟動格式

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


參(cān)數說明:

-rep - 資源庫名

-user - 資源庫用戶名

-pass – 資源庫密碼

-job – job名

-dir – job路徑

-logfile – 日(rì)誌目錄


PART.3

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


渠道酬金係(xì)統(tǒng)是第三方(fāng)渠道為客戶辦(bàn)理各(gè)類運營商產品和服務時,獲得的報酬、獎勵和補貼費用的結算係統。


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


圖片關鍵詞



01

數據源分析與整合


此階段的(de)目標是(shì)為了整合各個業務場景的關鍵數據,並整合最終酬金係統所需要的(de)匯(huì)聚數據結構(gòu)。這一步驟關鍵在(zài)於識(shí)別出(chū)數據的(de)共通點和差異,以及各個數據的冗餘和缺失情況。


首先,從CRM側(cè)的https接口協議獲取實時受理信息,分析出係統(tǒng)需(xū)求的關鍵(jiàn)信(xìn)息包括訂單標識、受理人工號(hào)、受(shòu)理(lǐ)時間、受理業(yè)務。從計費側梳理以(yǐ)表形式同步的數據為產品實例,其中包含了產品(pǐn)實例標識、用戶號碼、用戶狀態。渠道係統的數(shù)據以(yǐ)月度形式同步,同步形式為文件格(gé)式,包括渠(qú)道信息和渠道員工關係信息(xī)。


接著,分析渠道酬金業務結算所需要的關鍵字為,訂單標(biāo)識、產商品標識、受理號碼、用戶狀態、受(shòu)理(lǐ)人員(yuán)工號、受理員工狀態、受理渠道標識、受(shòu)理渠道(dào)名稱、歸屬本地網。將這些字段和各(gè)個係統數據源進行(háng)字段映射,判斷是否滿足(zú)要求。


最後,依照業(yè)務場景對數據進行檢查,核對沒有需要擴充的字段後,把基礎業務數據表數據依照業務場景進行整合(hé),形成(chéng)匯聚數據設計圖。


圖片關鍵詞(cí)

用戶受理匯聚表設計圖(tú)


02

設計ETL流程


基於數據匯聚設計圖,設計(jì)ETL流(liú)程來處理數(shù)據抽取、轉換和加(jiā)載邏輯,並輸出設(shè)計方案(àn)文(wén)檔。方(fāng)案文檔包含需求分析內(nèi)容、數據流設計、係統改造三個部分。需求分析章節(jiē)將業務部門的原始(shǐ)需求進行寫入,並進行分析(xī)。數據流設計則是將數(shù)據(jù)匯聚設計圖寫入,補充表模型以及建表語句。這裏著(zhe)重介紹係統改造部分。


係統改造包(bāo)含兩個部分,一個是數據源(yuán)采集設計,即備注清楚CRM、計費、渠道的數(shù)據(jù)接口協議,以及對應的采集實現邏輯;第二個是將kettle的數據(jù)加工邏(luó)輯進行設計,主要是表關聯,以及字段轉換設計。由於CRM係統提供(gòng)的(de)訂單(dān)通過https協議實時(shí)推(tuī)送,這(zhè)裏需要單獨設計一套(tào)客戶端進行(háng)數據沉澱到酬金庫表中。渠道接口的采集由於格式比較(jiào)簡單,可以(yǐ)直接沿用kettle的(de)文(wén)件解析模塊進行承接,如複雜一些的則可能需要單獨開發對應的接口去實現,或者是通過開發kettle的插件實現。


圖片關鍵詞

用戶受理匯(huì)聚需求設計

03

開發與測試


開發(fā)人員依照需求設計方案,在客戶端上使用kettle進行開發ETL作業,並進行測(cè)試。


先配置數據源(yuán),用於讀取CRM訂單表和計費資料表數(shù)據(jù)。接著使用“表輸(shū)入”插件,配置設計文檔中定義好的查詢SQL。利用“合(hé)並記錄”插件通過產品標識字段將CRM和計(jì)費的表數據流進行合並,然後選擇“文本文件輸入(rù)插件”,將渠道文件解析格式寫入,再用“合(hé)並記錄”插(chā)件通過渠道標(biāo)識字段將渠道(dào)數據流和前麵的數(shù)據(jù)流進行合並。將合並的結果最終利用(yòng)“表(biǎo)輸(shū)入”插件,寫入酬金匯聚表。這樣數據加工流程就(jiù)開發完成了,接著可以進行在線測(cè)試,核對並調優。


圖片關鍵詞

開發(fā)效果圖


為了方便測試,可以使用“過濾(lǜ)記錄”、“寫日(rì)誌”插件來進行在線調試。如過程中遇到流程問題可跳轉至步驟2核對並修改設計邏(luó)輯後,再(zài)開(kāi)發、測試。


04

部署與(yǔ)優(yōu)化


在測試驗證無(wú)誤後,將ETL作業部署到生產環(huán)境。部署(shǔ)過程中,監控作業的執行效率和資源消耗,根據實際運行情況進行性能(néng)調優。例如,調整內存配置、優化數據庫連接池設(shè)置(zhì)等。


圖片關(guān)鍵(jiàn)詞

作業監控表格


05

監控與維護


運行期間,持(chí)續監控ETL作業的性能和數據質量。使用Kettle的日誌記錄和監控功(gōng)能來跟蹤作業執行情況,及時發(fā)現並解決運行中的問題。


圖(tú)片關鍵詞

監(jiān)控維護表格


PART.4

結語


隨著(zhe)數據(jù)量的激增和處理需求的不斷升級,Kettle作為一款強大的開源ETL工具(jù),其在數據處理領域的重要性不(bú)言而喻。它不僅提供了一個易於使用的平台,讓技術愛好者能(néng)夠快(kuài)速入(rù)門並實踐數據操作,也為專業數據分析師(shī)和開發者提(tí)供了豐富的功能,以支持複(fù)雜的數據處理(lǐ)任務。



Kettle的(de)靈活性、成本(běn)效益和社(shè)區支持,使其成為Oracle存儲(chǔ)過程的一個強有力的替代方案。它的圖形化界麵降低了(le)編程難度,而(ér)開源性質又保證了(le)其可(kě)持續性和創新能力。



總之,Kettle不僅是一個現在(zài)的(de)解決(jué)方案,更是一個未來的數據處理(lǐ)平台。隨著技術的不斷進步,它將繼續適應並滿足不同(tóng)用戶群體的需求,推動數據(jù)處理領(lǐng)域的創新和發展。


官方微信公眾號

浩(hào)鯨雲計(jì)算科技股份有限公(gōng)司(sī) 版權所有 2003-2023

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

国产亚洲熟妇在线视频-亚洲熟妇AV乱码在线观看-亚州国产AV一区二区三区伊在-中文字幕无码人妻少妇免费视频-欧美 日韩 人妻 高清 中文-熟妇人妻中文字幕无码老熟妇-丰满熟女人妻一区二区三-亚洲精品字幕