kettle教程,簡單插入與更新

本文要點:Kettle的建立數據庫連接、使用kettle進行簡單的全量對比插入更新:kettle會自動對比用戶設置的對比字段,若目標表不存在該字段,則新插入該條記錄。若存在,則更新。

 

Kettle簡介:Kettle是一款國外開源的ETL工具,純java編寫,可以在Window、Linux、Unix上運行,數據抽取高效穩定。Kettle 中文名稱叫水壺,該項目的主程序員MATT 希望把各種數據放到一個壺裏,然後以一種指定的格式流出。Kettle這個ETL工具集,它允許你管理來自不同數據庫的數據,通過提供一個圖形化的用戶環境來描述你想做什麼,而不是你想怎麼做。Kettle中有兩種腳本文件,transformation和job,transformation完成針對數據的基礎轉換,job則完成整個工作流的控制。(引用百度百科)

1、Kettle的下載與安裝(在本文中使用的kettle版本爲6.1.0.1-196)

  kettle的最新下載地址:http://community.pentaho.com/projects/data-integration/

2、打開kettle。

  首先解壓下載下來的壓縮包如:pdi-ce-6.1.0.1-196.zip

  然後打開Spoon.bat,如圖所示:

  

  打開後請耐心等待一會兒時間。

3、建立轉換。

  在文件->新建裝換。

  新建轉換後在左邊的主對象樹中建立DB連接用以連接數據庫。如圖所示:

  

  建立數據庫連接的過程與其他數據庫管理軟件連接數據庫類似。

  注意:在數據庫鏈接的過程中,可能會報某個數據庫連接找不到的異常。那是因爲你沒有對應的數據庫鏈接驅動,請下載對應驅動後,放入kettle的lib文件夾。

4、簡單的數據表插入\更新

  (1)新建表插入

  在左邊的面板中選擇“核心對象”,在覈心對象裏面選擇“輸入->表輸入”,用鼠標拖動到右邊面板。如圖所示:

 

 

 

  雙擊拖過來的表,可以編輯表輸入。

  選擇數據庫連接和編輯sql語句,在這一步可以點擊預覽,查看自己是否連接正確。

 

  (2)通過插入\更新輸出到表。

  在左邊面板中選擇核心對象、選擇“輸出->插入\更新”如圖所示:

 

  編輯插入更新:

  首先:表輸入連接插入更新。

    選中表輸入,按住shift鍵,拖向插入更新。

  然後:雙擊插入更新,編輯它。

 

  到這裏基本上,這個轉換就要做完了,可以點擊運行查看效果,看是否有誤,這個要先保存了才能運行,可以隨意保存到任何一個地方。

5、使用作業控制上面裝換執行。

  使用作業可以定時或週期性的執行轉換,新建一個作業。並從左邊面板拖入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;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章