介紹
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中,數據的單位是行,數據流就是數據行從一個步驟到另一個步驟的移動。
打開 kettle,點擊 文件->新建->轉換。
在左邊 DB 連接處點擊新建。
根據提示配置數據庫,配置完成后可以點擊測試進行驗證,這邊以 MySQL 為例。
在左側找到表輸入(核心對象->輸入->表輸入),拖到右方。
雙擊右側表輸入,進行配置,選擇數據源,並輸入 SQL。可以點擊預覽進行預覽數據。
在左側找到插入/更新(核心對象->輸出->插入/更新),拖到右方。
按住 Shift 鍵,把表輸入和插入/更新用線連接起來。
雙擊插入/更新進行配置。
點擊運行,就可以運行這一個轉換。
運行結束后,我們可以在下方看到運行結果,其中有日志,數據預覽等,我們可以看到一共讀取了多少條數據,插入更新了多少數據等等。
這樣就完成了一個最簡單的轉換,從一個表取數據,插入更新到另一個表。
作業
如果想要定時運行這個轉換,那么就要用到作業。
新建一個作業。
從左側依次拖動 START 、轉換、成功到右側,並用線連接起來。
雙擊 START,可以配置作業的運行間隔,這邊配置了每小時運行一次。
雙擊轉換,選擇之前新建的那個轉換。
點擊運行,就能運行這次作業,點擊停止就能停止。在下方執行結果,可以看到運行的日志。
這樣就完成了一個最簡單的作業,每隔1小時,將源表的數據遷移到目標表。
總結
kettle 是一個非常強大的 ETL 工具,通過圖形化界面的配置,可以實現數據遷移,並不用開發代碼。
通過它的作業,kettle 能自動地運行轉換。
————————————————
版權聲明:本文為CSDN博主「yujunyi_」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qqfo24/article/details/82190535