『壹』 kettle中java腳本怎麼使用
完整例子如下:
Java代碼
String firstnameField;
String lastnameField;
String nameField;
public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException
{
// 獲取輸入
//
Object[] r = getRow();
// 輸入為空,直接false
//
if (r == null) {
setOutputDone();
return false;
}
// 處於性能考慮,parameter只查一次
//
if (first) {
firstnameField = getParameter("FIRSTNAME_FIELD");
lastnameField = getParameter("LASTNAME_FIELD");
nameField = getParameter("NAME_FIELD");
first=false;
}
// 用 createOutputRow() 來保證output的數組夠大,能夠裝下任何新的域
//
Object[] outputRow = createOutputRow(r, data.outputRowMeta.size());
String firstname = get(Fields.In, firstnameField).getString(r);
String lastname = get(Fields.In, lastnameField).getString(r);
// Set the value in the output field
//
String name = firstname+" "+lastname;
get(Fields.Out, nameField).setValue(outputRow, name);
// putRow will send the row on to the default output hop.
//
putRow(data.outputRowMeta, outputRow);
return true;
}
『貳』 kettle教程是什麼
kettle 是純 java 開發,開源的 ETL工具,用於資料庫間的數據遷移 。可以在 linux、windows、unix 中運行。有圖形界面,也有命令腳本還可以二次開發。
kettle 的官網是https://community.hitachivantara.com/docs/DOC-1009855,github地址是https://github.com/pentaho/pentaho-kettle。
安裝。
這邊以 windows 下的配置為例,linux 下配置類似。
jdk 安裝及配置環境變數。
由於 kettle 是基於 java 的,因此需要安裝 java 環境,並配置 JAVA_HOME 環境變數。
建議安裝 JDK1.8 及以上,7.0以後版本的 kettle 不支持低版本 JDK。
下載 kettle。
從 官網 下載 kettle ,解壓到本地即可。
下載相應的資料庫驅動。
由於 kettle 需要連接資料庫,因此需要下載對應的資料庫驅動。
例如 MySQL 資料庫需要下載 mysql-connector-java.jar,oracle 資料庫需要下載 ojdbc.jar。下載完成後,將 jar 放入 kettle 解壓後路徑的 lib 文件夾中即可。
注意:本文基於 pdi-ce-7.0.0.0-25 版本進行介紹,低版本可能有區別。
啟動。
雙擊 Spoon.bat 就能啟動 kettle 。
轉換。
轉換包括一個或多個步驟,步驟之間通過跳(hop)來連接。跳定義了一個單向通道,允許數據從一個步驟流向另一個步驟。在Kettle中,數據的單位是行,數據流就是數據行從一個步驟到另一個步驟的移動。
1、打開 kettle,點擊 文件->新建->轉換。
2、在左邊 DB 連接處點擊新建。
3、根據提示配置資料庫,配置完成後可以點擊測試進行驗證,這邊以 MySQL 為例。
4、在左側找到表輸入(核心對象->輸入->表輸入),拖到右方。
5、雙擊右側表輸入,進行配置,選擇數據源,並輸入 SQL。可以點擊預覽進行預覽數據。
6、在左側找到插入/更新(核心對象->輸出->插入/更新),拖到右方。
7、按住 Shift 鍵,把表輸入和插入/更新用線連接起來。
8、雙擊插入/更新進行配置。
9、點擊運行,就可以運行這一個轉換。
10、運行結束後,我們可以在下方看到運行結果,其中有日誌,數據預覽等,我們可以看到一共讀取了多少條數據,插入更新了多少數據等等。
這樣就完成了一個最簡單的轉換,從一個表取數據,插入更新到另一個表。
作業。
如果想要定時運行這個轉換,那麼就要用到作業。
1、新建一個作業。
2、從左側依次拖動 START 、轉換、成功到右側,並用線連接起來。
3、雙擊 START,可以配置作業的運行間隔,這邊配置了每小時運行一次。
4、雙擊轉換,選擇之前新建的那個轉換。
5、點擊運行,就能運行這次作業,點擊停止就能停止。在下方執行結果,可以看到運行的日誌。
這樣就完成了一個最簡單的作業,每隔1小時,將源表的數據遷移到目標表。
總結:kettle 是一個非常強大的 ETL 工具,通過圖形化界面的配置,可以實現數據遷移,並不用開發代碼。
通過它的作業,kettle 能自動地運行轉換。