乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

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

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

      簡介

      Kettle是一款由純Java語言開發(fā)的免費(fèi)開源的ETL工具,ETL即是Extract-Transform-Load的縮寫,用來描述將數(shù)據(jù)從來源端通過萃取(Extract)、轉(zhuǎn)換(Transform)、加載(Load)到目標(biāo)端的過程,通常用于數(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語言開發(fā),因此,我們在安裝Kettle之前需要安裝Java運(yùn)行所需環(huán)境JDK

      window環(huán)境中的安裝這里不再多做說明,只需要下載JDK的exe可運(yùn)行文件,一直點(diǎn)擊下一步即可安裝,安裝成功后再設(shè)置JAVA_HOME環(huá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:我們通過Spoon創(chuàng)建了轉(zhuǎn)換或者作業(yè)后,如果是保存在本地磁盤的話,會生成響應(yīng)的文件,轉(zhuǎn)換文件是以.ktr結(jié)尾,而Pan是轉(zhuǎn)換的命令行執(zhí)行程序,
      • Kitchen:作業(yè)文件以.kjb結(jié)尾,而Kitchen是作業(yè)的命令行執(zhí)行程序
      • Carte:輕量級的HTTP服務(wù)器(依托于Jetty實(shí)現(xiàn)),后臺的方式運(yùn)行,監(jiān)聽HTTP請求來運(yùn)行一個(gè)作業(yè).Carte也可用于分布式和協(xié)調(diào)跨機(jī)器執(zhí)行作業(yè),即Kettle集群方式.
      • lib:該目錄是Kettle依賴的第三方Jar包目錄,如果我們在使用Kettle進(jìn)行數(shù)據(jù)庫導(dǎo)入的話,此時(shí)如果Kettle中沒有該數(shù)據(jù)庫的驅(qū)動(dòng)Jar包時(shí),我們需要將從網(wǎng)站上下載的驅(qū)動(dòng)Jar放到該lib目錄下,然后重啟程序進(jìn)行調(diào)試,否則會報(bào)錯(cuò)(驅(qū)動(dòng)類不存在)
      • Encr:上面我們所說的創(chuàng)建數(shù)據(jù)庫連接時(shí),我們需要輸入密碼,但是我們的密碼不能是明文,Encr工具為我們提供加密服務(wù)

      核心

      我們通過上面的步驟即可安裝成功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è)步驟,如讀取文件、請求REST接口、插入數(shù)據(jù)、過濾數(shù)據(jù)等等,各個(gè)步驟之間通過Hop連接,Hop代表的是一個(gè)單向的數(shù)據(jù)流通道.例如在上一個(gè)步驟中我們定義了變量user,那么我們在后面的步驟中則可以通過${user}的方式來獲取變量的值,通過:文件 -> 新建 -> 轉(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í)行一次,遇上分頁接口的轉(zhuǎn)換我們需要借助于作業(yè)的方式輪訓(xùn)執(zhí)行轉(zhuǎn)換以階級數(shù)據(jù)的抽取工作,在作業(yè)中可以對轉(zhuǎn)換的執(zhí)行成功發(fā)送郵件服務(wù)等,通過:文件 -> 新建 -> 作業(yè)用以創(chuàng)建作業(yè).

      牛刀小試

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

      需求

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

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

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

      實(shí)戰(zhàn)

      生成記錄

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

      REST client組件

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

      GET data from XML

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

      Excel 輸出

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

      運(yùn)行

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

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

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

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

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

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

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

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

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

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

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多