大數據技術之kettle
第1章 kettle概述
1.1 什么是kettle
kettle是一款開源的ETL工具,純java編寫,可以在Windows、Linux、Unix上運行,綠色無需安裝,數據抽取高效穩定。
1.2 kettle核心知識點
1.2.1 kettle工程存儲方式
1) 以XML形式存儲
2) 以資源庫方式存儲(數據庫資源庫和文件資源庫)
1.2.2 kettle的兩種設計
簡述: Transformation(轉換):完成針對數據的基礎轉換。
Job(作業):完成整個工作流的控制。
區別:(1)作業是步驟流,轉換是數據流。
(2)作業的每一個步驟必須等到前面的步驟都跑完了后面的步驟才會執行;而轉換會一次性把所有控件全部先啟動(一個控件對應啟動一個線程),然后數據流會從第一個控件開始,一條記錄、一條記錄的流向最后的控件。
1.2.3 Kettle的組成
1. 勺子(Spoon.bat/spoon.sh):是一個圖形化的界面,可以讓我們用圖形化的方式開發轉換和作業。Windows選擇.bat;Linux選擇.sh
2. 煎鍋(Pan.bat/pan.sh):利用Pan可以用命令行的形式調用Trans
3. 廚房(Ktitchen.bat/kitchen.sh):利用Kitchen可以使用命令行調用Job
4. 菜單(Carte.bat/carte.sh):Carte是一個輕量級的Web容器,用於建立專用、遠程的ETL Server。
1.3 kettle的特點
第2章 kettle安裝部署和使用
2.1 kettle安裝地址
官網地址:
https://community.hitachivantara.com/s/article/data-integration-kettle
下載地址:
https://sourceforge.net/projects/pentaho/files/
2.2 Windows下安裝使用
2.2.1 概述
在實際企業開發中,都是在本地環境下進行kettle的Job和Transformation開發,可以在本地運行,也可以連接遠程機器運行。
2.2.2 安裝
1)安裝jdk
下載地址:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
同意相關協議,再下載對應版本的jdk(windows x64)
下載軟件為,雙擊安裝
下一步繼續安裝(需要注意路徑)
下一步等待安裝完成。
2)下載kettle壓縮包,因為kettle為綠色軟件,解壓縮到任意本地路徑即可
3)雙擊Spoon.bat,啟動圖形化界面工具即可使用
案例一 把stu1的數據按id同步到stu2,stu2有相同id則更新數據
在mysql中創建兩張表
mysql>create database kettle; mysql>use kettle; mysql>create table stu1 (id int ,name varchar(20),age int); mysql>create table stu2 (id int ,name varchar(20));
mysql>insert into stu1 values(1001,’zhangsan’,20),(1002,’lisi’,18),(1003,’wangwu’,23); mysql>insert into stu2 values(1001,’wukong’); |
在kettle中新建轉換
點擊左上角文件—新建—轉換到核心對象界面,點擊輸入,找到表輸入拖拽到中間
雙擊表輸入,在數據庫連接中配置mysql數據庫連接(注意jar包mysql-connector-java-5.1.34-bin.jar要放在kettle的lib文件夾中)
sql語句中輸入select * from stu1;
點擊預覽可以看到數據
在輸出中找到插入/更新組件拖拽到中間,點住表輸入shift+鼠標左鍵連接到插入/更新組件上
雙擊插入/更新,點擊目標表瀏覽,選擇stu2
點擊獲取字段獲取到3個字段
由於stu1與stu2通過id關聯,故刪除另2個字段,然后點擊編輯映射,編輯2個表之間的映射
確定后如圖
更新處,修改id的屬性為n,確定
保存運行,到數據庫中查看結果。