ETL工具-Kettle Spoon教程
一 。Kettle Spoon簡介
? ? ?ETL(Extract-Transform-Load的縮寫,即數(shù)據(jù)抽取、轉換、裝載的過程),對于企業(yè)或行業(yè)應用來說,我們經(jīng)常會遇到各種數(shù)據(jù)的處理,轉換,遷移,了解并掌握一種etl工具的使用,必不可少,支持圖形化的GUI設計界面,然后可以以工作流的形式流轉,在做一些簡單或復雜的數(shù)據(jù)抽取、質量檢測、數(shù)據(jù)清洗、數(shù)據(jù)轉換、數(shù)據(jù)過濾等方面有著比較穩(wěn)定的表現(xiàn),使用它減少了非常多的研發(fā)工作量,提高了我們的工作效率。
Kettle中有兩種腳本文件,transformation(轉換ktr結尾)和job(任務kjb結尾),transformation完成針對數(shù)據(jù)的基礎轉換,job則完成整個工作流的控制(工作流程首先由個開始節(jié)點【可以設置定時執(zhí)行】 可以選擇transformation)。
官網(wǎng) :http://kettle.pentaho.org/?
下載的最新版本的kettle是:pdi-ce-7.1.0.0-12
官方入門文檔 :https://wiki.pentaho.com/display/EAI/Getting+Started
二。kettle Spoon 安裝入門
?1》 安裝kettle spoon
kettle是使用java編寫 直接是綠色版 解壓即可使用 解壓后的目錄結構
lib目錄 可以存放第三方的jar? 比如 數(shù)據(jù)庫的驅動包 將來如果要連接某個數(shù)據(jù)庫 將驅動包置入這個lib目錄即可
spoon.bat是可執(zhí)行文件 啟動之前確保 jdk安裝 環(huán)境變量(PATH和JAVA_HOME) 可以直接輸入java和javaw?
主對象樹就兩種類型腳本 轉換和作業(yè)
?2》kettle spoon操作和核心對象介紹
?》》轉換?
? ?轉換菜單點擊右鍵 新建 就創(chuàng)建了一個ktr結尾的轉換腳本?
??
? ?新建好轉換腳本后 主窗口的轉換1 打開時 就可以拖拽控件到主窗口了 如果想重新再新建一個轉換需要切換到歡迎頁簽
核心對象就是可以拖拽的控件 這里主要介紹幾個核心對象?
比如 我想轉換一個 csv文件到excel文件?
- ? 輸入 (CSV文件)
? ? ?核心對象中有各種不同的輸入源 比如表(數(shù)據(jù)庫) csv ldap access等
? ? ?比如 任意位置新建一個csv文件添加兩列數(shù)據(jù)
? ??
?在轉換腳本上拖拽一個csv輸入的核心對象? 選擇該文件 并且指定兩個列名和表格列名一致
?
- ? 輸出? (EXCEL文件)
? ? ?核心對象中 將數(shù)據(jù)轉換后寫入的目的地 比如插入和更新(目的表存在更新不存在插入) 刪除(輸入存在的記錄就刪除目標表對應記錄)
? ? 添加一個excel輸出
??
數(shù)據(jù)excel輸出 設置 選擇輸出的文件保存位置
- ? Hops節(jié)點連接 (輸入和輸出連一條線)
? ? 數(shù)據(jù)從哪里流到哪里 可以再源對象上 shift鍵 鼠標拖動 也可以在主對象樹中 Hops(節(jié)點連接) 上雙擊 手工選定
??
最后點擊 三角運行按鈕 運行 發(fā)現(xiàn)保存的excel中存在文件了
?》》作業(yè)
作業(yè)可以理解為一套流程 流程從開始節(jié)點開始執(zhí)行 直到最后
模擬一個簡單作業(yè) 就是讓上面那個轉換每5s中執(zhí)行一次?
定義一個開始節(jié)點
拖一個轉換指定到開始那個aa的轉換? shift 拉動線條
點擊運行 發(fā)現(xiàn)每5s執(zhí)行一次轉換程序 如果需要停止 點擊停止按鈕即可
?3》數(shù)據(jù)庫轉換案例
?比如要實現(xiàn)將數(shù)據(jù)庫testkettle的userinfo表的數(shù)據(jù)導入到userinfo1 同時還要導出到excel文件中
?userinfo表結構如下
userinfo1的表結構如下(注意兩張表的字段不一樣哦)
?首先雙擊轉換 新建一個轉換? 轉換中配置數(shù)據(jù)庫連接 先將驅動包 丟到kettle的lib目錄下
輸入完成后 點擊測試按鈕測試一下?
拖拽一個 輸入 (表輸入)到界面上? 選擇數(shù)據(jù)源的表 或者自己編寫sql語句
添加一個excel輸出 選擇excel輸出的位置 即可 拉上節(jié)點連接
添加一個 插入/更新 (選擇插入的目標表【字段對應】 更新是用目標表的哪個字段和輸入數(shù)據(jù)源的哪個字段比)
? ?如果userinfo1不在同一個數(shù)據(jù)庫中 數(shù)據(jù)庫連接選擇其他數(shù)據(jù)庫連接(自己新建) 即可
完成后 拖拽一根節(jié)點連接到? 會有個確認框
點擊運行發(fā)現(xiàn)excel和userinfo1都存在數(shù)據(jù)
?
?
總結
以上是生活随笔為你收集整理的ETL工具-Kettle Spoon教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Real-Time Rendering
- 下一篇: 电脑技巧:电脑卡顿的4个优化小技巧,太有