<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ETL工具Kettle介紹和一個(gè)例子

    Posted on 2008-01-27 13:42 shenxiangl 閱讀(17480) 評(píng)論(15)  編輯  收藏 所屬分類: ETL
        因?yàn)楣窘谡辛藥讉€(gè)實(shí)習(xí)生,需要我來做一個(gè)關(guān)于Kettle的培訓(xùn),準(zhǔn)備了一些培訓(xùn)的資料,一個(gè)ppt,用于培訓(xùn)的,一個(gè)數(shù)據(jù)庫備份和一個(gè)詳細(xì)的操作文檔,是一個(gè)小作業(yè),不敢獨(dú)享,發(fā)出來給大家share,順便作為這個(gè)技術(shù)博客的頭彩,希望大家能夠多來關(guān)注。

        如果大家不愿意看網(wǎng)頁版,可以下載相關(guān)文檔到本地研究:)

        培訓(xùn)ppt在這里
        培訓(xùn)手冊(cè)在這里
        練習(xí)數(shù)據(jù)庫備份在這里
        練習(xí)的腳本文件在這里






    Kettle培訓(xùn)手冊(cè)

     

    Etl介紹

     

    ETL(Extract-Transform-Load的縮寫,即數(shù)據(jù)抽取、轉(zhuǎn)換、裝載的過程),對(duì)于金融IT來說,經(jīng)常會(huì)遇到大數(shù)據(jù)量的處理,轉(zhuǎn)換,遷移,所以了解并掌握一種etl工具的使用,必不可少。

    Kettle是一款國(guó)外開源的etl工具,純java編寫,綠色無需安裝,數(shù)據(jù)抽取高效穩(wěn)定。Kettle中有兩種腳本文件,transformation和job,transformation完成針對(duì)數(shù)據(jù)的基礎(chǔ)轉(zhuǎn)換,job則完成整個(gè)工作流的控制。

     

    kettle部署運(yùn)行

     

    將kettle2.5.1文件夾拷貝到本地路徑,例如D盤根目錄。

    雙擊運(yùn)行kettle文件夾下的spoon.bat文件,出現(xiàn)kettle歡迎界面:

     


     

    稍等幾秒

     


     

    選擇沒有資源庫,打開kettle主界面

     


     

    創(chuàng)建transformation,job

    點(diǎn)擊頁面左上角的創(chuàng)建一個(gè)新的transformation,點(diǎn)擊保存到本地路徑,例如保存到D:/etltest下,保存文件名為EtltestTrans,kettle默認(rèn)transformation文件保存后后綴名為ktr

     

    點(diǎn)擊頁面左上角的創(chuàng)建一個(gè)新的job,點(diǎn)擊保存到本地路徑,例如保存到D:/etltest下,保存文件名為EtltestJob,kettle默認(rèn)job文件保存后后綴名為kjb

     

    創(chuàng)建數(shù)據(jù)庫連接

     

    在transformation頁面下,點(diǎn)擊左邊的【Main Tree】,雙擊【DB連接】,進(jìn)行數(shù)據(jù)庫連接配置。

     


     

    Connection name自命名連接名稱

    Connection type選擇需要連接的數(shù)據(jù)庫

    Method of access選擇連接類型

    Server host name寫入數(shù)據(jù)庫服務(wù)器的ip地址

    Database name寫入數(shù)據(jù)庫名

    Port number寫入端口號(hào)

    Username寫入用戶名

    Password寫入密碼

     

    例如如下配置:

     


     

    點(diǎn)擊【test】,如果出現(xiàn)如下提示則說明配置成功

     


     

    點(diǎn)擊關(guān)閉,再點(diǎn)擊確定保存數(shù)據(jù)庫連接。

     

    一個(gè)簡(jiǎn)單的ktr例子

     

    目標(biāo)

    從交易表(trade),帳戶表(account),客戶表(cust)抽數(shù)交易相關(guān)的所有信息,并判斷對(duì)公對(duì)私分別進(jìn)行處理,輸出到文本文件中。

     

    操作步驟:

    在EtltestTrans頁面下,點(diǎn)擊左側(cè)的【Core Objects】,點(diǎn)擊【Input】,選中【表輸入】,拖動(dòng)到主窗口釋放鼠標(biāo)。


     

    雙擊【表輸入】圖標(biāo)

     

    數(shù)據(jù)庫連接選擇剛剛創(chuàng)建好的etltest數(shù)據(jù)庫連接,在主窗口寫入對(duì)應(yīng)的查詢語句

     

    Select * from trade

     


     

    點(diǎn)擊確定完成。

     

    點(diǎn)擊左側(cè)的【Lookup】,選中【數(shù)據(jù)庫查詢】,拖動(dòng)到主窗口釋放鼠標(biāo)。


     

    按住shift鍵,用鼠標(biāo)點(diǎn)中剛才創(chuàng)建的【表輸入】,拖動(dòng)到【數(shù)據(jù)庫查詢】上,則建立了兩個(gè)環(huán)節(jié)之間的連接。

     


     

    雙擊【數(shù)據(jù)庫查詢】圖標(biāo)

     

    步驟名稱寫入account表查詢,數(shù)據(jù)庫連接選擇剛剛創(chuàng)建好的etltest數(shù)據(jù)庫連接,查詢的表寫入account,查詢所需的關(guān)鍵字中,表字段寫入acctno,比較操作符寫入”=”,字段1寫入acctno。

     

    在查詢表返回的值里面寫入custno,確定完成。

     


     

    同上,再創(chuàng)建一個(gè)數(shù)據(jù)庫查詢,命名為cust表查詢,查詢的表寫入cust,查詢所需的關(guān)鍵字寫入custno=custno,查詢表返回的值寫入custname,custid,custtype

     


     

    點(diǎn)擊左側(cè)的【Transform】,選中【過濾記錄】,拖動(dòng)到主窗口釋放鼠標(biāo)。


     

    點(diǎn)擊左側(cè)的【Scripting】,選中兩個(gè)【Modified Java Script Value】,拖動(dòng)到主窗口釋放鼠標(biāo)。分別雙擊打開,重命名為”對(duì)公類型修改”和”對(duì)私類型修改”。

     

    同時(shí),分別創(chuàng)建【過濾記錄】和【對(duì)公類型修改】,【對(duì)私類型修改】的連接。

     

    雙擊【規(guī)律記錄】打開。

     

    第一個(gè)<field>里面選擇custtype,點(diǎn)擊<value>,在Enter value里面寫入1,確定


     

    在發(fā)送true數(shù)據(jù)給步驟里,選擇【對(duì)私類型修改】,在發(fā)送false數(shù)據(jù)給步驟里,選擇【對(duì)公類型修改】,確定保存。

     


     

    雙擊【對(duì)公類型修改】,在里面寫入javascript腳本語句

     

    var custtype_cn=’對(duì)公客戶交易’

     

    在字段中寫入custtype_cn,類型選為string。確定。

     


     

    同理,在【對(duì)私類型修改】中,在里面寫入javascript腳本語句

     

    var custtype_cn=’對(duì)私客戶交易’

     

    在字段中寫入custtype_cn,類型選為string。確定。

     

    點(diǎn)擊左側(cè)的【Transform】,選中兩個(gè)【增加常量】,拖動(dòng)到主窗口釋放鼠標(biāo)。分別雙擊打開,重命名為”增加對(duì)公常量”和”增加對(duì)私常量”。

     

    分別建立【對(duì)公類型修改】和【對(duì)私類型修改】與【增加對(duì)公常量】和【增加對(duì)私常量】的連接

     


     

    雙擊【增加對(duì)公常量】,名稱寫入value,類型選擇string,值寫入”這是一筆對(duì)公客戶發(fā)生的交易”,確定保存。

     


     

    同理,雙擊【增加對(duì)私常量】,名稱寫入value,類型選擇string,值寫入”這是一筆對(duì)私客戶發(fā)生的交易”,確定保存。

     

    點(diǎn)擊左側(cè)的【Output】,選中【文本文件輸出】,拖動(dòng)到主窗口釋放鼠標(biāo)。

     

    建立【增加對(duì)公常量】,【增加對(duì)私常量】和【文本文件輸出】的連接。

     


    雙擊打開【文本文件輸出】,文件名稱寫入D:\etltest\etltest.txt

     


     

    點(diǎn)擊內(nèi)容標(biāo)簽,根據(jù)情況進(jìn)行修改,例如

     


     

    點(diǎn)擊字段標(biāo)簽

    名稱依次寫入tradeid,acctno,amt,custno,custname,custid,custtype_cn,value,類型根據(jù)各個(gè)字段實(shí)際類型進(jìn)行選擇

     


     

    確定保存

     

    點(diǎn)擊保存創(chuàng)建好的transformation。

     

    點(diǎn)擊運(yùn)行這個(gè)轉(zhuǎn)換。

     


     

    點(diǎn)擊launch,開始運(yùn)行

     

    當(dāng)所有狀態(tài)都變成已完成時(shí),則轉(zhuǎn)換完成。


     

    另一個(gè)簡(jiǎn)單的ktr例子

     

    目的:

    將上一個(gè)ktr生成的文本導(dǎo)入到數(shù)據(jù)庫中。

     

    操作步驟:

    創(chuàng)建一個(gè)transformation,命名為EtltestTransfile2db.ktr,創(chuàng)建數(shù)據(jù)庫連接etltest,點(diǎn)擊【Input】,選中【文本文件輸入】,拖到主窗口,釋放鼠標(biāo),雙擊打開

     

    文件名稱里面寫入D:\etltest\etltest.txt

     


     

    點(diǎn)擊內(nèi)容標(biāo)簽,分隔符寫入@@,將頭部的鉤去掉

     


     

    點(diǎn)擊字段標(biāo)簽,名稱依次寫入tradeid,acctno,amt,custno,custname,custid,custtype_cn,value,類型根據(jù)各個(gè)字段實(shí)際類型進(jìn)行選擇

     


     

    點(diǎn)擊【Transform】,選中【字段選擇】,拖到主窗口,釋放鼠標(biāo)

     

    點(diǎn)擊【Output】,選中【表輸出】,拖到主窗口,釋放鼠標(biāo)

     

    建立【文本文件輸入】和【字段選擇】與【字段選擇】和【表輸出】的連接

     


     

    雙擊【表輸出】,目標(biāo)表中寫入trade_all,提交記錄數(shù)量寫成1,確定保存。

     


     

    雙擊【字段選擇】,點(diǎn)擊 獲取選擇的字段,再點(diǎn)擊Edlt Mapping,點(diǎn)擊OK確定,編輯所有字段對(duì)應(yīng)關(guān)系,點(diǎn)確定。

     


     

    點(diǎn)擊運(yùn)行這個(gè)轉(zhuǎn)換。,則將上一個(gè)ktr中生成的文本,導(dǎo)入到數(shù)據(jù)庫當(dāng)中。

     

    一個(gè)簡(jiǎn)單的kjb例子

     

    目的:

    將上兩個(gè)transformation一起在同一個(gè)job里面調(diào)用執(zhí)行。

     

    操作步驟:

    在EtlscriptJob頁面,點(diǎn)擊【Core Objects】,點(diǎn)擊【Job entries】,選中【START】拖動(dòng)到主窗口釋放鼠標(biāo),再選中兩個(gè)【Transformation】,拖動(dòng)到主窗口釋放鼠標(biāo),建立【START】和 【Transformation】與【Transformation】之間的連接。

     

    雙擊第一個(gè)【Transformation】,在Transformation filename中寫入D:\etltest\EtltestTrans.ktr,確定保存。

     


     

        同時(shí)將另外一個(gè)【Transformation】,路徑指向D:\etltest\EtltestTransfile2db.ktr,保存。

     

    點(diǎn)擊保存創(chuàng)建好的job。

     

    點(diǎn)擊運(yùn)行這個(gè)轉(zhuǎn)換。

     

    待所有任務(wù)都顯示成功,則為job調(diào)用transformation運(yùn)行成功。

     


     


    Feedback

    # re: ETL工具Kettle介紹和一個(gè)例子[未登錄]  回復(fù)  更多評(píng)論   

    2008-01-27 14:28 by xmlspy
    沒說這個(gè)到底是什么東西,是干什么的,有什么特色

    # re: ETL工具Kettle介紹和一個(gè)例子  回復(fù)  更多評(píng)論   

    2008-01-27 17:04 by shenxiangl
    @xmlspy
    簡(jiǎn)單的說,etl就是從一個(gè)數(shù)據(jù)源獲取數(shù)據(jù),然后進(jìn)過一系列轉(zhuǎn)換,放到另外一個(gè)數(shù)據(jù)源的過程

    Kettle的好處就是綠色開源,平臺(tái)兼容性好,性能也很不錯(cuò)

    缺點(diǎn)是我發(fā)現(xiàn)了一個(gè)bug,日志輸出不能超過49M多,否則會(huì)宕機(jī)

    # re: ETL工具Kettle介紹和一個(gè)例子  回復(fù)  更多評(píng)論   

    2008-01-28 12:58 by 羽翼漸豐
    我們用DS,不過現(xiàn)在也在了解學(xué)習(xí)kettle,觸類旁通,而且開源還可以看源碼。

    # re: ETL工具Kettle介紹和一個(gè)例子  回復(fù)  更多評(píng)論   

    2008-01-28 14:07 by shenxiangl
    DATA stage?
    呵呵,和數(shù)據(jù)庫關(guān)聯(lián)的ETL工具要比Kettle這種什么都不沾的工具要好啊

    但是從另外一方面考慮,跨數(shù)據(jù)庫的應(yīng)用還是不是很好

    # re: ETL工具Kettle介紹和一個(gè)例子  回復(fù)  更多評(píng)論   

    2008-01-28 20:32 by FastUnit
    好,文檔收了,正打算找這方面的資料...

    # re: ETL工具Kettle介紹和一個(gè)例子  回復(fù)  更多評(píng)論   

    2008-02-28 09:44 by 薔薇
    我是初學(xué)者 望版主以后多提供一些這方面的知識(shí) 謝謝

    # re: ETL工具Kettle介紹和一個(gè)例子  回復(fù)  更多評(píng)論   

    2008-06-18 10:50 by wyd
    我遇到一個(gè)麻煩了。 就是在我遷移blob字段的時(shí)候出現(xiàn)了內(nèi)存溢出的問題,解決不 了.  
     當(dāng)遷移完后內(nèi)存不自動(dòng)清空,怎么辦呢?希望幫我一下.
      謝謝

    # re: ETL工具Kettle介紹和一個(gè)例子  回復(fù)  更多評(píng)論   

    2008-06-18 10:52 by shenxiangl
    你用的什么模塊來遷移你的那個(gè)字段?kettle是將這些都當(dāng)作對(duì)象來處理,所以除非你用流查詢等來處理,否則應(yīng)該不會(huì)造成內(nèi)存溢出

    # re: ETL工具Kettle介紹和一個(gè)例子  回復(fù)  更多評(píng)論   

    2009-03-26 18:33 by 張三
    好東西,謝謝分享!!

    # re: ETL工具Kettle介紹和一個(gè)例子  回復(fù)  更多評(píng)論   

    2009-04-22 11:51 by wangqi
    謝謝分析 剛開始接觸

    # re: ETL工具Kettle介紹和一個(gè)例子  回復(fù)  更多評(píng)論   

    2009-08-06 13:09 by libraforlaw
    謝啦.......

    # re: ETL工具Kettle介紹和一個(gè)例子  回復(fù)  更多評(píng)論   

    2009-12-24 17:08 by zzz
    你好 我怎么看不到圖片啊

    # re: ETL工具Kettle介紹和一個(gè)例子  回復(fù)  更多評(píng)論   

    2010-07-14 21:17 by upcxcf
    數(shù)據(jù)庫備份怎么導(dǎo)入啊

    # re: ETL工具Kettle介紹和一個(gè)例子[未登錄]  回復(fù)  更多評(píng)論   

    2010-08-10 14:24 by han
    @upcxcf
    同問,數(shù)據(jù)庫備份文件怎么導(dǎo)入,是什么數(shù)據(jù)庫啊?

    # re: ETL工具Kettle介紹和一個(gè)例子[未登錄]  回復(fù)  更多評(píng)論   

    2012-07-03 16:38 by lj
    請(qǐng)問那個(gè)數(shù)據(jù)庫備份是啥格式啊?

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 无码A级毛片免费视频内谢| 色噜噜AV亚洲色一区二区| 日韩精品极品视频在线观看免费 | 免费大片av手机看片高清| 亚洲欧洲日产国码在线观看| 亚洲欧洲美洲无码精品VA| 国产午夜影视大全免费观看| 国产精品1024永久免费视频| 免费一级毛片在线播放视频| 成人a毛片视频免费看| 亚洲国产精品无码第一区二区三区 | 亚洲第一区精品观看| 毛片在线免费视频| 91九色老熟女免费资源站| 搡女人免费免费视频观看| 成人a毛片免费视频观看| 国产亚洲精品美女久久久久 | 日本三级2019在线观看免费| 免费观看91视频| 成人免费777777被爆出| 日韩毛片一区视频免费| 亚洲av日韩专区在线观看| 久久久久亚洲国产| 77777午夜亚洲| 亚洲一级特黄特黄的大片| 亚洲a级成人片在线观看| 亚洲剧情在线观看| 亚洲精品在线不卡| 亚洲视频在线一区二区三区| 婷婷亚洲久悠悠色悠在线播放| 亚洲码国产精品高潮在线| 亚洲色大成网站WWW久久九九| 久久精品国产精品亚洲人人| 国产午夜亚洲精品理论片不卡| 亚洲欧洲中文日韩av乱码| 一本色道久久综合亚洲精品| 中文字幕第一页亚洲| 亚洲AV综合色区无码一区爱AV| 久久精品视频亚洲| 亚洲激情电影在线| 亚洲 欧洲 视频 伦小说|