日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Kettle實(shí)戰(zhàn)100篇 第1篇 介紹與安裝

 小雪初晴i 2022-12-13 發(fā)布于河北

簡(jiǎn)介

Kettle是一款由純Java語(yǔ)言開發(fā)的免費(fèi)開源的ETL工具,ETL即是Extract-Transform-Load的縮寫,用來(lái)描述將數(shù)據(jù)從來(lái)源端通過(guò)萃取(Extract)、轉(zhuǎn)換(Transform)、加載(Load)到目標(biāo)端的過(guò)程,通常用于數(shù)據(jù)清洗、數(shù)據(jù)遷移等.

下載地址:https:///projects/pentaho/files/

GitHub地址:https://github.com/pentaho/pentaho-kettle

Java doc地址:https://javadoc./

文檔地址:https://help./

轉(zhuǎn)換組件文檔:https://help./Documentation/8.2/Products/Data_Integration/Transformation_Step_Reference

作業(yè)組件文檔:https://help./Documentation/8.2/Products/Data_Integration/Job_Entry_Reference

安裝

JDK安裝

由于Kettle是由Java語(yǔ)言開發(fā),因此,我們?cè)诎惭bKettle之前需要安裝Java運(yùn)行所需環(huán)境JDK

window環(huán)境中的安裝這里不再多做說(shuō)明,只需要下載JDK的exe可運(yùn)行文件,一直點(diǎn)擊下一步即可安裝,安裝成功后再設(shè)置JAVA_HOME環(huán)境變量即可,非常簡(jiǎn)單

在Linux環(huán)境中,我們首先需要下載JDK的安裝文件,本篇博客中安裝的版本為JDK1.8

解壓文件

tar -xvf jdk-8u144-linux-x64.tar.gz -C /usr/local/java

配置環(huán)境變量vim /etc/profile,編輯加入JDK路徑

  1. export JAVA_HOME=/usr/local/java/jdk1.8.0_144
  2. export PATH=$JAVA_HOME/bin:$PATH

編譯

source /etc/profile

查看是否安裝成功

  1. [root@izbp1ad1jbc6ftdure2mpnz ~]# java -version
  2. java version "1.8.0_144"
  3. Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
  4. Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

Kettle安裝

Kettle實(shí)戰(zhàn)100篇系列博客下載的版本是當(dāng)前最新版本Pentaho 8.3

下載目錄地址:https:///projects/pentaho/files/Pentaho%208.3/client-tools/下的pdi-ce-8.3.0.0-371.zip

目前我們都是在Windows環(huán)境中使用KettleSpoon圖形化界面程序進(jìn)行ETL的開發(fā),

Kettle是用Java開發(fā)的純綠色版程序,因此我們只需要將下載的文件解壓到指定目錄即可,

我本機(jī)解壓目錄D:\Users\xiaoymin\Bin\data-integration\data-integration 8.3

解壓完成后,我們需要關(guān)注Kettle的幾個(gè)關(guān)鍵目錄和文件

  • Spoon:這是Kettle為我們提供的Spoon圖形化界面啟動(dòng)程序,bat是在Windows環(huán)境下運(yùn)行,sh則是在 類似Unix環(huán)境中運(yùn)行,用于創(chuàng)建/編輯作業(yè)或者轉(zhuǎn)換
  • Pan:我們通過(guò)Spoon創(chuàng)建了轉(zhuǎn)換或者作業(yè)后,如果是保存在本地磁盤的話,會(huì)生成響應(yīng)的文件,轉(zhuǎn)換文件是以.ktr結(jié)尾,而Pan是轉(zhuǎn)換的命令行執(zhí)行程序,
  • Kitchen:作業(yè)文件以.kjb結(jié)尾,而Kitchen是作業(yè)的命令行執(zhí)行程序
  • Carte:輕量級(jí)的HTTP服務(wù)器(依托于Jetty實(shí)現(xiàn)),后臺(tái)的方式運(yùn)行,監(jiān)聽HTTP請(qǐng)求來(lái)運(yùn)行一個(gè)作業(yè).Carte也可用于分布式和協(xié)調(diào)跨機(jī)器執(zhí)行作業(yè),即Kettle集群方式.
  • lib:該目錄是Kettle依賴的第三方Jar包目錄,如果我們?cè)谑褂肒ettle進(jìn)行數(shù)據(jù)庫(kù)導(dǎo)入的話,此時(shí)如果Kettle中沒有該數(shù)據(jù)庫(kù)的驅(qū)動(dòng)Jar包時(shí),我們需要將從網(wǎng)站上下載的驅(qū)動(dòng)Jar放到該lib目錄下,然后重啟程序進(jìn)行調(diào)試,否則會(huì)報(bào)錯(cuò)(驅(qū)動(dòng)類不存在)
  • Encr:上面我們所說(shuō)的創(chuàng)建數(shù)據(jù)庫(kù)連接時(shí),我們需要輸入密碼,但是我們的密碼不能是明文,Encr工具為我們提供加密服務(wù)

核心

我們通過(guò)上面的步驟即可安裝成功Kettle,此時(shí)我們可以運(yùn)行Spoon程序創(chuàng)建轉(zhuǎn)換或者作業(yè),初始化界面如下:

Kettle中兩個(gè)核心的組件服務(wù):轉(zhuǎn)換作業(yè)

  • 轉(zhuǎn)換:轉(zhuǎn)換(transformation)是ETL解決方案中最主要的部分,它負(fù)責(zé)抽取、轉(zhuǎn)換、加載各個(gè)階段的數(shù)據(jù)操作處理,轉(zhuǎn)換包括一個(gè)或多個(gè)步驟,如讀取文件、請(qǐng)求REST接口、插入數(shù)據(jù)、過(guò)濾數(shù)據(jù)等等,各個(gè)步驟之間通過(guò)Hop連接,Hop代表的是一個(gè)單向的數(shù)據(jù)流通道.例如在上一個(gè)步驟中我們定義了變量user,那么我們?cè)诤竺娴牟襟E中則可以通過(guò)${user}的方式來(lái)獲取變量的值,通過(guò):文件 -> 新建 -> 轉(zhuǎn)換用以創(chuàng)建轉(zhuǎn)換
  • 作業(yè):作業(yè)(job)通常是一組轉(zhuǎn)換的集合,比如一個(gè)條件的判斷,參數(shù)的輪訓(xùn)執(zhí)行轉(zhuǎn)換,因?yàn)檗D(zhuǎn)換的執(zhí)行只能執(zhí)行一次,遇上分頁(yè)接口的轉(zhuǎn)換我們需要借助于作業(yè)的方式輪訓(xùn)執(zhí)行轉(zhuǎn)換以階級(jí)數(shù)據(jù)的抽取工作,在作業(yè)中可以對(duì)轉(zhuǎn)換的執(zhí)行成功發(fā)送郵件服務(wù)等,通過(guò):文件 -> 新建 -> 作業(yè)用以創(chuàng)建作業(yè).

牛刀小試

由于本系列博客是以實(shí)戰(zhàn)為主,因此很多Kettle的概念會(huì)以實(shí)戰(zhàn)中的篇幅中介紹,不單獨(dú)說(shuō)明,當(dāng)然,對(duì)于某些核心的組件會(huì)單獨(dú)再博客中說(shuō)明

需求

我們?cè)L問(wèn)CSDN的博客RSS地址:https://blog.csdn.net/u010192145/rss/list,響應(yīng)內(nèi)容如下:

目前我們需要通過(guò)網(wǎng)絡(luò)訪問(wèn)該RSS地址,然后解析XML最終輸出到Excel文件中,從XML中剝離出來(lái)id、標(biāo)題、發(fā)布時(shí)間、作者、簡(jiǎn)介等字段

這個(gè)過(guò)程涉及到了請(qǐng)求RESTful地址,數(shù)據(jù)解析,數(shù)據(jù)轉(zhuǎn)換(輸出到Excel),因此我們通過(guò)Kettle中的轉(zhuǎn)換來(lái)實(shí)現(xiàn)此過(guò)程

實(shí)戰(zhàn)

生成記錄

從Kettle的轉(zhuǎn)換核心對(duì)象樹中拖拽生成記錄組件,定義url地址,如下圖:

REST client組件

第二步是需要用到REST client組件,幫助我們發(fā)送地址請(qǐng)求獲取得到XML的內(nèi)容,如下圖:

GET data from XML

我們通過(guò)REST組件請(qǐng)求得到了XML內(nèi)容,因此我們需要使用GET data from XML組件來(lái)接收,接收后定義輸出映射字段

Excel 輸出

通過(guò)上一個(gè)組件的字段映射定義,接下來(lái)我們就可以將請(qǐng)求得到的XML結(jié)果循環(huán)輸出到Excel中了,選擇對(duì)象樹中的Excel 輸出組件,設(shè)置相關(guān)屬性,如下圖:

運(yùn)行

整個(gè)轉(zhuǎn)換過(guò)程創(chuàng)建完后如下圖:

此時(shí),我們點(diǎn)擊Spoon界面的運(yùn)行按鈕,運(yùn)行我們的轉(zhuǎn)換,輸出日志:

此時(shí),我們打開已經(jīng)下載好的本地Excel文件,看是否將Xml的結(jié)果已經(jīng)導(dǎo)入到本地

至此,整個(gè)過(guò)程已經(jīng)完成了,如果你是開發(fā)人員的話,通過(guò)Kettle來(lái)完成此操作會(huì)大大提升你的工作效率

因?yàn)?假設(shè)您是一名Java開發(fā)人員,你需要用到的技術(shù)棧如下:

  • HTTP客戶端請(qǐng)求技術(shù),例如:httpClient或者OKHttp或者JDK原生的HttpConnection組件
  • Excel操作的相關(guān)技術(shù),例如POI
  • XML操作的相關(guān)技術(shù),例如Dom4j

但是通過(guò)Kettle來(lái)操作的話,上面的技術(shù)棧我們就可以省略了(雖然我都會(huì):),無(wú)奈~~~)

看到這里,您是否想躍躍欲試呢?

?mid=&wid=51824&sid=&tid=8555&rid=LOADED&custom1=mp.csdn.net&custom2=%2Fpostedit&t=1570154955975

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多