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

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

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

    ETL工具Kettle介紹和一個例子

    Posted on 2008-01-27 13:42 shenxiangl 閱讀(17480) 評論(15)  編輯  收藏 所屬分類: ETL
        因為公司近期招了幾個實習生,需要我來做一個關于Kettle的培訓,準備了一些培訓的資料,一個ppt,用于培訓的,一個數據庫備份和一個詳細的操作文檔,是一個小作業,不敢獨享,發出來給大家share,順便作為這個技術博客的頭彩,希望大家能夠多來關注。

        如果大家不愿意看網頁版,可以下載相關文檔到本地研究:)

        培訓ppt在這里
        培訓手冊在這里
        練習數據庫備份在這里
        練習的腳本文件在這里






    Kettle培訓手冊

     

    Etl介紹

     

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

    Kettle是一款國外開源的etl工具,純java編寫,綠色無需安裝,數據抽取高效穩定。Kettle中有兩種腳本文件,transformation和job,transformation完成針對數據的基礎轉換,job則完成整個工作流的控制。

     

    kettle部署運行

     

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

    雙擊運行kettle文件夾下的spoon.bat文件,出現kettle歡迎界面:

     


     

    稍等幾秒

     


     

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

     


     

    創建transformation,job

    點擊頁面左上角的創建一個新的transformation,點擊保存到本地路徑,例如保存到D:/etltest下,保存文件名為EtltestTrans,kettle默認transformation文件保存后后綴名為ktr

     

    點擊頁面左上角的創建一個新的job,點擊保存到本地路徑,例如保存到D:/etltest下,保存文件名為EtltestJob,kettle默認job文件保存后后綴名為kjb

     

    創建數據庫連接

     

    在transformation頁面下,點擊左邊的【Main Tree】,雙擊【DB連接】,進行數據庫連接配置。

     


     

    Connection name自命名連接名稱

    Connection type選擇需要連接的數據庫

    Method of access選擇連接類型

    Server host name寫入數據庫服務器的ip地址

    Database name寫入數據庫名

    Port number寫入端口號

    Username寫入用戶名

    Password寫入密碼

     

    例如如下配置:

     


     

    點擊【test】,如果出現如下提示則說明配置成功

     


     

    點擊關閉,再點擊確定保存數據庫連接。

     

    一個簡單的ktr例子

     

    目標

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

     

    操作步驟:

    在EtltestTrans頁面下,點擊左側的【Core Objects】,點擊【Input】,選中【表輸入】,拖動到主窗口釋放鼠標。


     

    雙擊【表輸入】圖標

     

    數據庫連接選擇剛剛創建好的etltest數據庫連接,在主窗口寫入對應的查詢語句

     

    Select * from trade

     


     

    點擊確定完成。

     

    點擊左側的【Lookup】,選中【數據庫查詢】,拖動到主窗口釋放鼠標。


     

    按住shift鍵,用鼠標點中剛才創建的【表輸入】,拖動到【數據庫查詢】上,則建立了兩個環節之間的連接。

     


     

    雙擊【數據庫查詢】圖標

     

    步驟名稱寫入account表查詢,數據庫連接選擇剛剛創建好的etltest數據庫連接,查詢的表寫入account,查詢所需的關鍵字中,表字段寫入acctno,比較操作符寫入”=”,字段1寫入acctno。

     

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

     


     

    同上,再創建一個數據庫查詢,命名為cust表查詢,查詢的表寫入cust,查詢所需的關鍵字寫入custno=custno,查詢表返回的值寫入custname,custid,custtype

     


     

    點擊左側的【Transform】,選中【過濾記錄】,拖動到主窗口釋放鼠標。


     

    點擊左側的【Scripting】,選中兩個【Modified Java Script Value】,拖動到主窗口釋放鼠標。分別雙擊打開,重命名為”對公類型修改”和”對私類型修改”。

     

    同時,分別創建【過濾記錄】和【對公類型修改】,【對私類型修改】的連接。

     

    雙擊【規律記錄】打開。

     

    第一個<field>里面選擇custtype,點擊<value>,在Enter value里面寫入1,確定


     

    在發送true數據給步驟里,選擇【對私類型修改】,在發送false數據給步驟里,選擇【對公類型修改】,確定保存。

     


     

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

     

    var custtype_cn=’對公客戶交易’

     

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

     


     

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

     

    var custtype_cn=’對私客戶交易’

     

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

     

    點擊左側的【Transform】,選中兩個【增加常量】,拖動到主窗口釋放鼠標。分別雙擊打開,重命名為”增加對公常量”和”增加對私常量”。

     

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

     


     

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

     


     

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

     

    點擊左側的【Output】,選中【文本文件輸出】,拖動到主窗口釋放鼠標。

     

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

     


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

     


     

    點擊內容標簽,根據情況進行修改,例如

     


     

    點擊字段標簽

    名稱依次寫入tradeid,acctno,amt,custno,custname,custid,custtype_cn,value,類型根據各個字段實際類型進行選擇

     


     

    確定保存

     

    點擊保存創建好的transformation。

     

    點擊運行這個轉換。

     


     

    點擊launch,開始運行

     

    當所有狀態都變成已完成時,則轉換完成。


     

    另一個簡單的ktr例子

     

    目的:

    將上一個ktr生成的文本導入到數據庫中。

     

    操作步驟:

    創建一個transformation,命名為EtltestTransfile2db.ktr,創建數據庫連接etltest,點擊【Input】,選中【文本文件輸入】,拖到主窗口,釋放鼠標,雙擊打開

     

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

     


     

    點擊內容標簽,分隔符寫入@@,將頭部的鉤去掉

     


     

    點擊字段標簽,名稱依次寫入tradeid,acctno,amt,custno,custname,custid,custtype_cn,value,類型根據各個字段實際類型進行選擇

     


     

    點擊【Transform】,選中【字段選擇】,拖到主窗口,釋放鼠標

     

    點擊【Output】,選中【表輸出】,拖到主窗口,釋放鼠標

     

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

     


     

    雙擊【表輸出】,目標表中寫入trade_all,提交記錄數量寫成1,確定保存。

     


     

    雙擊【字段選擇】,點擊 獲取選擇的字段,再點擊Edlt Mapping,點擊OK確定,編輯所有字段對應關系,點確定。

     


     

    點擊運行這個轉換。,則將上一個ktr中生成的文本,導入到數據庫當中。

     

    一個簡單的kjb例子

     

    目的:

    將上兩個transformation一起在同一個job里面調用執行。

     

    操作步驟:

    在EtlscriptJob頁面,點擊【Core Objects】,點擊【Job entries】,選中【START】拖動到主窗口釋放鼠標,再選中兩個【Transformation】,拖動到主窗口釋放鼠標,建立【START】和 【Transformation】與【Transformation】之間的連接。

     

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

     


     

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

     

    點擊保存創建好的job。

     

    點擊運行這個轉換。

     

    待所有任務都顯示成功,則為job調用transformation運行成功。

     


     


    Feedback

    # re: ETL工具Kettle介紹和一個例子[未登錄]  回復  更多評論   

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

    # re: ETL工具Kettle介紹和一個例子  回復  更多評論   

    2008-01-27 17:04 by shenxiangl
    @xmlspy
    簡單的說,etl就是從一個數據源獲取數據,然后進過一系列轉換,放到另外一個數據源的過程

    Kettle的好處就是綠色開源,平臺兼容性好,性能也很不錯

    缺點是我發現了一個bug,日志輸出不能超過49M多,否則會宕機

    # re: ETL工具Kettle介紹和一個例子  回復  更多評論   

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

    # re: ETL工具Kettle介紹和一個例子  回復  更多評論   

    2008-01-28 14:07 by shenxiangl
    DATA stage?
    呵呵,和數據庫關聯的ETL工具要比Kettle這種什么都不沾的工具要好啊

    但是從另外一方面考慮,跨數據庫的應用還是不是很好

    # re: ETL工具Kettle介紹和一個例子  回復  更多評論   

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

    # re: ETL工具Kettle介紹和一個例子  回復  更多評論   

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

    # re: ETL工具Kettle介紹和一個例子  回復  更多評論   

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

    # re: ETL工具Kettle介紹和一個例子  回復  更多評論   

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

    # re: ETL工具Kettle介紹和一個例子  回復  更多評論   

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

    # re: ETL工具Kettle介紹和一個例子  回復  更多評論   

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

    # re: ETL工具Kettle介紹和一個例子  回復  更多評論   

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

    # re: ETL工具Kettle介紹和一個例子  回復  更多評論   

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

    # re: ETL工具Kettle介紹和一個例子  回復  更多評論   

    2010-07-14 21:17 by upcxcf
    數據庫備份怎么導入啊

    # re: ETL工具Kettle介紹和一個例子[未登錄]  回復  更多評論   

    2010-08-10 14:24 by han
    @upcxcf
    同問,數據庫備份文件怎么導入,是什么數據庫啊?

    # re: ETL工具Kettle介紹和一個例子[未登錄]  回復  更多評論   

    2012-07-03 16:38 by lj
    請問那個數據庫備份是啥格式啊?

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 免费又黄又爽又猛的毛片| 99久久综合精品免费| 国产乱子伦精品免费女| 亚洲熟妇无码八V在线播放 | 日本免费A级毛一片| 亚洲深深色噜噜狠狠爱网站| 国产精品免费久久久久电影网| 亚洲男女内射在线播放| 成在人线av无码免费高潮水| 国产亚洲成人久久| 久久久精品免费视频| 久久久亚洲欧洲日产国码aⅴ| free哆啪啪免费永久| 亚洲精品国产日韩| 波多野结衣视频在线免费观看 | 亚洲av乱码中文一区二区三区| 国产美女无遮挡免费视频| 一级做受视频免费是看美女| 亚洲国产三级在线观看| 成人黄色免费网址| 亚洲AⅤ男人的天堂在线观看| 中文字幕亚洲第一| 亚洲毛片免费观看| 精品国产日韩亚洲一区91| 亚洲色无码一区二区三区| 蜜臀98精品国产免费观看| 亚洲爆乳大丰满无码专区| 国产亚洲一区二区三区在线不卡| 久久久久国产免费| 亚洲精品无码中文久久字幕| 国产aⅴ无码专区亚洲av麻豆| 最近中文字幕mv免费高清在线 | 精品韩国亚洲av无码不卡区 | 亚洲av无码一区二区乱子伦as| 国产大片线上免费观看| 边摸边吃奶边做爽免费视频网站 | 无码日韩人妻av一区免费| 一级毛片免费全部播放| 亚洲精品**中文毛片| 亚洲成AⅤ人影院在线观看| 最近中文字幕mv免费高清在线|