kettle入门教程
目錄
1.kettle敘述
1.1什么是kettle
1.2kettle工程存儲方式
1.3kettle兩種設計
1.4kettle的組成
1.5kettle的下載安裝
2.kettle教程
2.1轉換
2.1.1普通轉換
2.1.2執行sql腳本
2.1.3條件判斷Switch Case
2.1.4自定義java代碼
2.2作業
1.kettle敘述
1.1什么是kettle
Kettle是一款開源的ETL(Extract-Transform-Load)工具,純java編寫,可以在Window、Linux、Unix上運行,綠色無需安裝,數據抽取高效穩定。
1.2kettle工程存儲方式
(1)以XML形式存儲
(2)以資源庫方式存儲(數據庫資源庫和文件資源庫)
1.3kettle兩種設計
Transformation(轉換):完成對數據的基本轉換
Job(工作):完成整個工作流的控制
區別:
(1)作業是步驟流,轉換是數據流。
(2)作業的每一個步驟必須要等到前面的步驟都跑完了,后面的步驟才會執行,而轉換會一次性把所有控件全部先啟動(一個控件對應啟動一個線程),然后數據流會從第一個控件開始,一條記錄一條記錄的流向最后控件。
1.4kettle的組成
1.勺子(Spoon.bat/spoon.sh) :是-個圖形化的界面,可以讓我們用圖形化的方式開發轉換和作業。windows選擇.bat; Linux選擇.sh。
2.煎鍋(Pan.bat/pan.sh) : 利用Pan可以用命令行的形式調用Trans。
3.廚房(Kitchen batkitchen.sh) : 利用Kitchen可以使用命令行調用]ob
4.菜單(Carte.bat/ Carte.sh): Carte是一 個輕量級的Web容器,用于建立專用、遠程的ETL Server。
1.5kettle的下載安裝
kettle中文官網
將mysql驅動和oracle驅動放在kettle包下面的lib包下面即可。
2.kettle教程
2.1轉換
2.1.1普通轉換
-- oracle腳本 create tablespace kettle datafile 'Z:\oracle\oracle_data\tablespace\kettle.dbf' size 10m autoextend on next 10mcreate user kettle identified by kettle default tablespace kettlegrant dba to kettle;create table flower(id varchar2(32) default sys_guid() primary key,flower_name varchar2(200),color varchar2(100),origin varchar2(200),moral varchar2(200),create_time timestamp default sysdate,update_time timestamp );-- 數據 insert all into flower(flower_name,color, moral, update_time) values('紅玫瑰', 'red', '熱戀與濃烈的愛', sysdate)into flower(flower_name,color, moral, update_time) values('紫玫瑰', 'purple', '深沉守護的愛情', sysdate)into flower(flower_name,color, moral, update_time) values('白玫瑰', 'white', '純潔、純真的愛', sysdate)into flower(flower_name,color, moral, update_time) values('粉玫瑰', 'pink', '初戀、寵愛', sysdate)into flower(flower_name,color, moral, update_time) values('黃玫瑰', 'yellow', '已逝的愛、為愛道歉', sysdate)into flower(flower_name,color, moral, update_time) values('香檳玫瑰', 'Milky yellow', '愛上你是我今生最幸福的', sysdate)into flower(flower_name,color, moral, update_time) values('白色郁金香', 'white', '純潔無暇', sysdate) into flower(flower_name,color, moral, update_time) values('紅色色郁金香', 'red', '熱情與喜愛', sysdate) into flower(flower_name,color, moral, update_time) values('粉色郁金香', 'pink', '幸福與憐愛', sysdate) into flower(flower_name,color, moral, update_time) values('紫色郁金香', 'purple', '神秘與高貴', sysdate)into flower(flower_name,color, moral, update_time) values('向日葵', 'yellow', '沉默的愛', sysdate)into flower(flower_name,color, moral, update_time) values('滿天星', 'write、blue、purple、pink、', '甘愿做配角,默默愛著一個人', sysdate)into flower(flower_name,color, moral, update_time) values('百合', 'write、purple、pink、yellow、black、golden', '百年好合、美好家庭、深深祝福', sysdate)into flower(flower_name,color, moral, update_time) values('康乃馨', 'write、yellow、purple、pink、', '愛、美麗、尊敬之情', sysdate)into flower(flower_name,color, moral, update_time) values('洋桔梗', 'write、purple、pink、', '純潔、感激和真誠的愛', sysdate)into flower(flower_name,color, moral, update_time) values('洋牡丹', 'write、yellow、purple、pink、', '愛、美麗、尊敬之情', sysdate)into flower(flower_name,color, moral, update_time) values('白色紫羅蘭', 'write、', '想和愛人更近一步', sysdate)into flower(flower_name,color, moral, update_time) values('紫色紫羅蘭', 'purple', '永恒的美', sysdate)into flower(flower_name,color, moral, update_time) values('藍色紫羅蘭', 'blue', '永恒的美', sysdate) into flower(flower_name,color, moral, update_time) values('勿忘我', 'write、yellow、purple、pink、blue', '愛、美麗、尊敬之情', sysdate) select * from dual;?a.在主對象樹->DB連接,創建兩個DB連接,這里用oracle和mysql數據庫進行轉換
?b.核心對象->輸入,選擇表輸入
?
?
c.核心對象->輸出,選擇插入/更新,并且按住Shift將輸入和輸出連接起來
?
2.1.2執行sql腳本
a.建兩個DB連接和上面步驟一樣
b.選擇核心對象->表輸入,選擇表輸出,并雙擊配置sql查詢語句
?
?c.選擇核心對象->腳本,選擇sql腳本,按鈕Shift將輸入和腳本連接起來
?
?d.執行即可
2.1.3條件判斷Switch Case
a.還是建兩個DB數據庫連接
b.核心對象->表輸入,雙擊對表輸入進行sql配置
?
?b.核心對象->流程,選擇Switch/Case,按住Shift將表輸入和Sitch/Case連接起來
?ORIGIN值為空執行sql腳本,否則執行插入/更新操作。
?d.一個分支選擇插入/更新,一個分支選擇sql腳本
2.1.4自定義java代碼
a.創建兩個DB連接
b.核心對象->表輸入,進行sql配置
?
c.核心對象->腳本,選擇Java代碼,按住Shift將表輸入和Java代碼連接起來,配置Java代碼
?選擇Main,再進行自定義java代碼
?
?Java沒有寫好確定,測試類->確定前是沒有數據的,會提示異常信息,打不開dialog框,屬于正常。
?啟動執行,可以查看預覽數據,但是不會改變源數據表里面的內容。
?如果產生了新的字段需要進行配置,上面用到還是表中的字段,下面是產生了新的表字段,不會改變原表數據。
2.2作業
a.文件->新建->作業
?開始表里沒有數據的,執行以后將數據進行插入,再次執行會進行字段更新,根據轉換設置的那些需要更新的字段進行更新
總結
以上是生活随笔為你收集整理的kettle入门教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 工业交换机芯片选择需要注意什么事项呢?
- 下一篇: KETTLE使用教程(包含几个小示例)