本文要點:Kettle的創建數據庫鏈接、使用kettle進行簡單的全量對比插入更新:kettle會自動對比用戶設置的對比字段,若目標表不存在該字段,則新插入該條記錄。若存在,則更新。
Kettle簡介:Kettle是一款國外開源的ETL工具,純java編寫,能夠在Window、Linux、Unix上運行,數據抽取高效穩定。Kettle 中文名稱叫水壺,該項目的主程序員MATT 但願把各類數據放到一個壺裏,而後以一種指定的格式流出。Kettle這個ETL工具集,它容許你管理來自不一樣數據庫的數據,經過提供一個圖形化的用戶環境來描述你想作什麼,而不是你想怎麼作。Kettle中有兩種腳本文件,transformation和job,transformation完成針對數據的基礎轉換,job則完成整個工做流的控制。(引用百度百科)
一、Kettle的下載與安裝(在本文中使用的kettle版本爲6.1.0.1-196)
kettle的最新下載地址:http://community.pentaho.com/projects/data-integration/
二、打開kettle。
首先解壓下載下來的壓縮包如:pdi-ce-6.1.0.1-196.zip
而後打開Spoon.bat,如圖所示:
打開後請耐心等待一下子時間。
三、創建轉換。
在文件->新建裝換。
新建轉換後在左邊的主對象樹中創建DB鏈接用以鏈接數據庫。如圖所示:
創建數據庫鏈接的過程與其餘數據庫管理軟件鏈接數據庫相似。
注意:在數據庫連接的過程當中,可能會報某個數據庫鏈接找不到的異常。那是由於你沒有對應的數據庫連接驅動,請下載對應驅動後,放入kettle的lib文件夾。
四、簡單的數據表插入\更新
(1)新建表插入
在左邊的面板中選擇「核心對象」,在覈心對象裏面選擇「輸入->表輸入」,用鼠標拖動到右邊面板。如圖所示:
雙擊拖過來的表,能夠編輯表輸入。
選擇數據庫鏈接和編輯sql語句,在這一步能夠點擊預覽,查看本身是否鏈接正確。
(2)經過插入\更新輸出到表。
在左邊面板中選擇核心對象、選擇「輸出->插入\更新」如圖所示:
編輯插入更新:
首先:表輸入鏈接插入更新。
選中表輸入,按住shift鍵,拖向插入更新。
而後:雙擊插入更新,編輯它。
到這裏基本上,這個轉換就要作完了,能夠點擊運行查看效果,看是否有誤,這個要先保存了才能運行,能夠隨意保存到任何一個地方。
五、使用做業控制上面裝換執行。
使用做業能夠定時或週期性的執行轉換,新建一個做業。並從左邊面板拖入start 和轉換。
雙擊start能夠編輯,能夠設置執行時間等等
點開裝換,能夠設置須要執行的轉換任務,好比能夠執行上面咱們作的轉換,XXX.ktr
最後點擊運行便可。
到這裏,一個簡單的經過做業調度的kettle就算作完了。
附錄:測試數據表
1 -- ---------------------------- 2 DROP TABLE IF EXISTS `student`; 3 CREATE TABLE `student` ( 4 `userId` int(11) NOT NULL AUTO_INCREMENT, 5 `userName` varchar(20) DEFAULT NULL, 6 `userage` int(11) DEFAULT NULL, 7 `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 8 PRIMARY KEY (`userId`) 9 ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; 10 11 -- ---------------------------- 12 -- Table structure for student2 13 -- ---------------------------- 14 DROP TABLE IF EXISTS `student2`; 15 CREATE TABLE `student2` ( 16 `userId` int(11) NOT NULL AUTO_INCREMENT, 17 `userName` varchar(20) DEFAULT NULL, 18 `userage` int(11) DEFAULT NULL, 19 `timestamp` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP, 20 PRIMARY KEY (`userId`) 21 ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;