【實驗目的】
1.利用Kettle的“表輸入”,“表輸入出”,”JavaScript代碼”組件,實現數據全量更新。
2.熟練掌握“JavaScript代碼”,“表輸入”,“表輸入出”組件的使用,實現數據全量更新。
【實驗原理】
通過“表輸入”對MySQL表格的數據讀入,然后通過“JavaScript代碼”更新抽取數據的時間,再通過“表輸入出”保存表格到MySQL數據庫。
【實驗環境】
操作系統:Windows10?
Kettle版本:7.1.0.0
jdk版本:1.8.0及以上版本
【實驗步驟】
一、建立轉換
雙擊spoon.bat打開kettle。(1)點擊新建按鈕,在下拉菜單中點擊選擇"轉換"即可創建;(2)然后點擊"保存"重命名該轉換文件,保存在某個指定的路徑;(3)選擇輸入步驟、輸出步驟和跳。
二、數據導入數據庫的準備工作
1.數據庫mysql
導入數據表:‘課程信息表’,
建立轉換,需要組件如圖所示:
2.“Excel的輸入”的配置
Step1:雙擊‘Excel輸入’組件,配置‘文件’選項卡,設置輸入數據的輸入流和路徑
Step2:配置‘工作表’選項卡,設置輸入數據的起始行和起始列
Step3:配置‘字段’選項卡,獲取字段名稱,并設置字段的數據類型(重點,以防報錯)
3.“表輸出”的配置
Step1:連接數據庫
創建數據庫代碼
create database testbase;
use testbase;
CREATE TABLE courses1 (編號 DOUBLE,課程名稱 VARCHAR(255), 課程大類 VARCHAR(255), 學分 DOUBLE,講師 VARCHAR(255), 開課時間 DATETIME,課時數 INT, ETL_TIMESTAMP DATETIME
);
Step2:選擇數據庫和表名
?Step3:確定
?
Step4:獲取字段
4.運行結果
三、各組件的配置
1.“表輸入”的配置:
Step1:雙擊‘表輸入’組件,新建數據庫的連接并進行測試,
Step2:連接成功后,獲取表的字段名稱

2.“JavaScript代碼”的配置:
雙擊“HTTP client”組件,編寫Script1的代碼,并獲取其相應字段名稱和類型。

3.“表輸出”的配置:
雙擊‘表輸出’組件,選擇目標表的名稱,并使用SQL語句進行創建:
還要進行目標表courses2的創建
create database testbase;
use testbase;
CREATE TABLE courses2 (編號 DOUBLE,課程名稱 VARCHAR(255), 課程大類 VARCHAR(255), 學分 DOUBLE,講師 VARCHAR(255), 開課時間 DATETIME,課時數 INT, ETL_TIMESTAMP DATETIME
);

4.“表輸出2”的配置:
雙擊‘表輸出2’組件,選擇目標表的名稱,并使用SQL語句進行創建:
進行目標表courses3的創建
create database testbase;
use testbase;
CREATE TABLE courses3 (編號 DOUBLE,課程名稱 VARCHAR(255), 課程大類 VARCHAR(255), 學分 DOUBLE,講師 VARCHAR(255), 開課時間 DATETIME,課時數 INT, ETL_TIMESTAMP DATETIME
);
四、執行轉換
點擊按鈕,執行轉換,結果如下:
五、實驗結果:
輸入文件‘課程信息表.xlsx’:
table output
table output2?