kettle


kettle

概述

什么是kettle

Kettle是一款開源的ETL工具,純java編寫。用於數據庫間的數據遷移 。

可以在 Linux、windows、unix 中運行。

推薦學習網站

kettle中文網:https://www.kettle.net.cn/2794.html

參考博客:https://juejin.cn/post/6986507517022961695

安裝

由於 kettle 是基於 java 的,因此需要安裝 java 環境,並配置 JAVA_HOME 環境變量。

建議安裝 JDK1.8 及以上,7.0以后版本的 kettle 不支持低版本 JDK。

8.2版下載地址:http://mirror.bit.edu.cn/pentaho/Pentaho%208.2/client-tools/

解壓即用

目錄說明

img

img

下載相應的數據庫驅動

由於 kettle 需要連接數據庫,因此需要下載對應的數據庫驅動。

例如 MySQL 數據庫需要下載 mysql-connector-java.jar,oracle 數據庫需要下載 ojdbc.jar。下載完成后,將 jar 放入 kettle 解壓后路徑的 lib 文件夾中即可。

啟動

雙擊 Spoon.bat 就能啟動 kettle 。

轉換

轉換包括一個或多個步驟,步驟之間通過hop來連接。

hop定義了一個單向通道,允許數據從一個步驟流向另一個步驟。

在Kettle中,數據的單位是行,數據流就是數據行從一個步驟到另一個步驟的移動

新建轉換

  1. 打開 kettle,點擊 文件->新建->轉換。

在這里插入圖片描述

數據庫連接

  1. 在左邊 DB 連接處點擊新建。

在這里插入圖片描述

  1. 根據提示配置數據庫,配置完成后可以點擊測試進行驗證,這邊以 MySQL 為例。

mysql5的話需要導入mysql-connector-java.jar對應的jar包

在這里插入圖片描述

如果是mysql8則不需要導入jar包。

kettle默認使用的是org.gjt.mm.mysql.Driver,而mysql 8.0以上connector已經不再支持這個包名;

即使將mysql-connector-java-8.0.xx.jar包拷貝到data-integration/lib目錄下,還是報錯找不到驅動;

所以我們需要手動配置使用com.mysql.cj.jdbc.Driver作為驅動。

com.mysql.cj.jdbc.Driver兼容JDK8環境,不兼容JDK7環境,JDK版本不匹配時連接也會出錯,如果服務器上JDK版本較低 要升級下

更新jdbc.properties文件,在simple-jndi目錄下,新增新增jndi配置:

Myslq8_DB/type=javax.sql.DataSource
Myslq8_DB/driver=com.mysql.cj.jdbc.Driver
Myslq8_DB/url=jdbc:mysql://db_ip:3306/db_name?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=Asia/Shanghai
Myslq8_DB/user=db_user
Myslq8_DB/password=db_password

新建數據庫連接,選擇mysql數據庫,選擇JNDI,在JNDI名稱中填入Myslq8_DB.

img

表輸入

在左側找到表輸入(核心對象->輸入->表輸入),拖到右方。

在這里插入圖片描述

  1. 雙擊右側表輸入,進行配置,選擇數據源,並輸入 SQL。可以點擊預覽進行預覽數據。

在這里插入圖片描述

在這里插入圖片描述

插入更新

  1. 在左側找到插入/更新(核心對象->輸出->插入/更新),拖到右方。

在這里插入圖片描述

  1. 按住 Shift 鍵,把表輸入和插入/更新用線連接起來。

在這里插入圖片描述

  1. 雙擊插入/更新進行配置。

在這里插入圖片描述

  1. 點擊運行,就可以運行這一個轉換

在這里插入圖片描述

這樣就完成了一個最簡單的轉換,從一個表取數據,插入更新到另一個表。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM