介紹:
Kettle簡介:
Kettle 是 PDI 以前的名稱,PDI 的全稱是Pentaho Data Integeration
,Kettle 本意是水壺的意思,表達了資料流的含義。Kettle是一款國外開源的ETL工具,純java編寫,可以在Window、Linux、Unix上運作,綠色無需安裝,資料抽取高效穩定。Kettle這個ETL工具集,它允許你管理來自不同資料庫的資料,通過提供一個圖形化的使用者環境來描述你想做什麼,而不是你想怎麼做。Kettle中有兩種腳本檔案,transformation和job,transformation完成針對資料的基礎轉換,job則完成整個工作流的控制。作為Pentaho的一個重要組成部分,現在在國内項目應用上逐漸增多。
ETL(Extract-Transform-Load的縮寫),即資料抽取、轉換、裝載的過程。對于企業或行業應用來說,我們經常會遇到各種資料的處理,轉換,遷移,是以了解并掌握一種etl工具的使用,必不可少,這裡我介紹一個我在工作中使用了很久的ETL工具Kettle,本着好東西不獨享的想法,跟大家分享碰撞交流一下!在使用中我感覺這個工具真的很強大,支援圖形化的GUI設計界面,然後可以以工作流的形式流轉,在做一些簡單或複雜的資料抽取、品質檢測、資料清洗、資料轉換、資料過濾等方面有着比較穩定的表現,其中最主要的我們通過熟練的應用它,減少了非常多的工作量,提高了我們的工作效率。
特點
免費開源
基于java的免費開源的軟體,對商業使用者也沒有限制。
易配置
可以在Window、Linux、Unix上運作,綠色無需安裝,資料抽取高效穩定。
不同資料庫
ETL工具集,它允許你管理來自不同資料庫的資料。
兩種腳本檔案
transformation
和
job
,
transformation
完成針對資料的基礎轉換,
job
則完成整個工作流的控制。
圖形界面設計
通過圖形界面設計實作做什麼業務,無需寫代碼去實作。
定時功能
在Job下的start子產品,有一個定時功能,可以每日,每周等方式進行定時。

環境
Windows 10
Java 8
(運作Kettle 7.0 以上版本需要Java8及以上)
Kettle 7.1
mysql-connector-java-8.0.21
(連接配接Mysql驅動包,根據資料庫版本下載下傳)
一鍵安裝,急速使用
第一步. 下載下傳程式包并解壓
從官方網站下載下傳spoon壓縮包。
第二步. 一鍵啟動
在windows下,解壓後,輕按兩下
spoon.bat
檔案運作。
開始使用
開始可視化資料操作吧。
1.下載下傳Kettle程式包并解壓
Kettle 7.1版本下載下傳位址:https://udomain.dl.sourceforge.net/project/pentaho/Data%20Integration/7.1/pdi-ce-7.1.0.0-12.zip
Kettle各個版本下載下傳位址:https://sourceforge.net/projects/pentaho/files/
注意:
下載下傳時進入相應版本後,選擇client-tools,選擇
pdi-ce
開頭的程式包下載下傳。
2.下載下傳連接配接驅動包:
Java 連接配接 MySQL 需要驅動包,MySQL驅動包官網下載下傳位址:https://dev.mysql.com/downloads/connector/j/
3.解壓Java連接配接Mysql 8.0驅動包
解壓後取出mysql-connector-java.jar包(這裡驅動包有版本号)。放到kettle的lib目錄下面。
4.運作spoon.bat,打開spoon圖形工具
注意:
紅圈處沒有connect按鈕,原因為資源庫配置檔案亂碼造成。
解決方法: 打開系統盤使用者目錄下的
repositories.xml
配置檔案,将亂碼内容删除,并删除
.spoonrc
檔案,再重新開機kettle。
5.建立或連接配接資源庫
選擇建立資料庫資源庫
輸入資源庫名稱(自定義) 點選Database Connection建立資料庫連接配接。
選擇Create New Connection。
6.建立資料庫連接配接
輸入連接配接名稱、選擇類型(根據自身所需選擇,這裡連接配接的是mysql資料庫,如連接配接其他資料庫,需将資料庫驅動放在kettle根目錄中的lib下面,然後啟動資料庫重新開機kettle)确認輸入無誤後點選測試,測試是否連接配接成功,失敗多為lib下找不到資料庫驅動
在這裡選擇剛才我們建立的資料庫名稱。
建立成功,選擇Connect Now連接配接到資料庫。
登陸時,預設是admin使用者,密碼也是admin,啟動後可以修改使用者密碼或添加其他使用者。
7.登入資料庫檢視Kettle自動建立的表結構
[root@localhost ~]# docker exec -it mysql /bin/bash
root@2a12523bd803:/# mysql -uroot -p123qqq...A
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 8.0.21 MySQL Community Server - GPL
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| test |
+--------------------+
mysql> use test;
mysql> show tables;
+--------------------------+
| Tables_in_test |
+--------------------------+
| R_CLUSTER |
| R_CLUSTER_SLAVE |
| R_CONDITION |
| R_DATABASE |
| R_DATABASE_ATTRIBUTE |
| R_DATABASE_CONTYPE |
| R_DATABASE_TYPE |
| R_DEPENDENCY |
| R_DIRECTORY |
| R_ELEMENT |
| R_ELEMENT_ATTRIBUTE |
| R_ELEMENT_TYPE |
| R_JOB |
| R_JOBENTRY |
| R_JOBENTRY_ATTRIBUTE |
| R_JOBENTRY_COPY |
| R_JOBENTRY_DATABASE |
| R_JOBENTRY_TYPE |
| R_JOB_ATTRIBUTE |
| R_JOB_HOP |
| R_JOB_LOCK |
| R_JOB_NOTE |
| R_LOG |
| R_LOGLEVEL |
| R_NAMESPACE |
| R_NOTE |
| R_PARTITION |
| R_PARTITION_SCHEMA |
| R_REPOSITORY_LOG |
| R_SLAVE |
| R_STEP |
| R_STEP_ATTRIBUTE |
| R_STEP_DATABASE |
| R_STEP_TYPE |
| R_TRANSFORMATION |
| R_TRANS_ATTRIBUTE |
| R_TRANS_CLUSTER |
| R_TRANS_HOP |
| R_TRANS_LOCK |
| R_TRANS_NOTE |
| R_TRANS_PARTITION_SCHEMA |
| R_TRANS_SLAVE |
| R_TRANS_STEP_CONDITION |
| R_USER |
| R_VALUE |
| R_VERSION |
| mysqltest |
+--------------------------+
mysql> select * from R_USER;
+---------+-------+-----------------------------------+---------------+-------------------------+---------+
| ID_USER | LOGIN | PASSWORD | NAME | DESCRIPTION | ENABLED |
+---------+-------+-----------------------------------+---------------+-------------------------+---------+
| 1 | admin | 2be98afc86aa79ce71da9fa6d4 | Administrator | User manager | 1 |
| 2 | guest | 2be98afc86aace77cb97bcce | Guest account | Read-only guest account | 1 |
+---------+-------+-----------------------------------+---------------+-------------------------+---------+
複制
8.添加新使用者
點選工具 --> 資源庫 --> 探索資源選擇【安全】--> 添加使用者 -->填寫賬号密碼儲存即可。