kettle使用数据库来生成序列_Kettle的安装和使用
Kettle簡介
Kettle是一款國外開源的ETL工具,純java編寫,可以在Window、Linux、Unix上運行,數據抽取高效穩定。
Kettle是“Kettle E.T.T.L. Envirnonment“只取首字母的縮寫,這意味著它被設計用來幫助你實現你的 ETTL 需要:抽取、轉換、裝入和加載數據;翻譯成中文名稱應該叫水壺,名字的起源是開發者希望把各種數據放到一個壺里然后以一種指定的格式流出。
Spoon 是一個圖形用戶界面,它允許你運行轉換或者任務,其中轉換是用 Pan 工具來運行,任務是用 Kitchen 來運行。Pan 是一個數據轉換引擎,它可以執行很多功能,例如:從不同的數據源讀取、操作和寫入數據。Kitchen 是一個可以運行利用 XML 或數據資源庫描述的任務。通常任務是在規定的時間間隔內用批處理的模式自動運行。
注:在正式進入本教程前,請確保你的計算機已經配置好java環境。
下載并安裝Kettle
1.下載Kettle安裝包
登陸ubuntu系統,用ubuntu系統的瀏覽器打開Kettle官網下載最新穩定版kettle壓縮包,這里我們下載7.1版本。點擊下圖中的鏈接開始下載(壓縮包有接近900M),下載完成后文件默認保存在路徑~/Downloads或~/下載。
2.新建文件夾/usr/local/kettle
為了把kettle安裝在目錄/usr/local/kettle,這里我們先新建文件夾,并修改屬主權限,以便當前用戶可以操作該文件夾。
sudo mkdir -p /usr/local/kettle #遞歸方式新建文件夾
sudo chown -R dblab /usr/local/kettle #修改文件夾屬主,使得dblab用戶可以操作該文件夾
3.解壓zip包
利用下列命令解壓下載好的zip包,同時指定解壓后的文件保存路徑為/usr/local/kettle。
unzip ~/Downloads/pdi-ce-7.1.0.0-12.zip -d /usr/local/kettle #解壓zip包,并將解壓后的文件保存到/usr/local/kettle
4.復制MySQL驅動JAR包
后續需要連接MySQL數據庫,因此需要相關的驅動JAR包。首先從官網下載MySQL驅動JAR包(兩種壓縮格式均可,筆者下載的是zip壓縮格式),下載完成默認保存在目錄~/Downloads或~/下載,利用下列命令將其解壓,并將jar包復制到/usr/local/kettle/data-integration/lib
cd ~/Downloads
unzip mysql-connector-java-5.1.40.zip #解壓到當前文件夾
cp mysql-connector-java-5.1.40/mysql-connector-java-5.1.40-bin.jar /usr/local/kettle/data-integration/lib #復制mysql驅動包到/usr/local/kettle/data-integration/lib
5.啟動kettle
kettle的安裝目錄/usr/local/kettle下的文件夾data-integration里包含兩個kettle工具啟動的腳本命令,spoon.bat和spoon.sh,其中spoon.bat適用于windows系統,通過雙擊.bat文件來啟動圖形化界面,而spoon.sh適用于Linux系統,通過在終端執行下列命令來啟動圖形化界面。
cd /usr/local/kettle/data-integration
./spoon.sh #執行腳本
截圖如下:
如果上述命令無法執行,提示無執行權限,請先執行下列命令為spoon.sh賦予執行權限。
chmod +x spoon.sh
啟動之后,可能會彈框提示:用戶缺少某某包,可能會導致程序無法正常使用。如果出現該提示,先關閉圖形化界面,輸入下列命令逐一安裝這些包。
#示例:缺少libwebkitgtk-1.0包
sudo apt-get install libwebkitgtk-1.0
安裝完成后,再次啟動kettle工具即可。
使用Kettle
這里我們通過一個案例來了解kettle的使用,選取MySQL作為數據源。
案例背景
找出不同性別,不同年齡,不同職業的用戶對于哪類產品比較感興趣,為建立數據倉庫,進行數據挖掘和OLAP分析做準備。根據客戶user,訂單orders,產品表product中的數據,利用kettle處理生成對應的數據文件,并且可以用job來調用整個流程。
數據準備
1.啟動MySQL
service mysql start #啟動mysql服務,默認mysql服務是隨開機啟動的,此步可省
mysql -u root -p
2.創建數據庫kettle
mysql> create database kettle;
3.創建user,product,orders表,并插入測試數據
注:下列命令是在mysql shell中執行,每段sql語句(除#號注釋行以外)都可以整段復制粘貼執行,無須逐句復制。
use kettle;
#------------創建表user
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`userid` int(10) DEFAULT NULL COMMENT '用戶ID',
`username` varchar(10) DEFAULT NULL COMMENT '用戶姓名',
`usersex` varchar(1) DEFAULT NULL COMMENT '性別',
`userposition` varchar(20) DEFAULT NULL COMMENT '職業',
`userage` int(3) DEFAULT NULL COMMENT '年齡'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
#------------插入數據
INSERT INTO `user` VALUES ('1', '陳XX', '女', '學生', '20');
INSERT INTO `user` VALUES ('2', '王XX', '男', '工程師', '30');
INSERT INTO `user` VALUES ('3', '李XX', '女', '醫生', '40');
#------------創建表product
DROP TABLE IF EXISTS `product`;
CREATE TABLE `product` (
`productid` int(10) DEFAULT NULL COMMENT '產品ID',
`productname` varchar(20) DEFAULT NULL COMMENT '產品名稱'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
#------------插入數據
INSERT INTO `product` VALUES ('1', '手機');
INSERT INTO `product` VALUES ('2', '電腦');
INSERT INTO `product` VALUES ('3', '水杯');
#------------創建表orders
DROP TABLE IF EXISTS `orders`;
CREATE TABLE `orders` (
`orderid` int(10) DEFAULT NULL COMMENT '訂單ID',
`userid` int(10) DEFAULT NULL COMMENT '用戶ID',
`productid` int(10) DEFAULT NULL COMMENT '產品ID',
`buytime` datetime DEFAULT NULL COMMENT '購買時間'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
#------------插入數據
INSERT INTO `orders` VALUES ('1', '1', '1', '2017-06-01 15:02:02');
INSERT INTO `orders` VALUES ('2', '1', '2', '2017-06-02 15:02:22');
INSERT INTO `orders` VALUES ('3', '1', '3', '2017-06-02 15:02:36');
INSERT INTO `orders` VALUES ('4', '2', '1', '2017-06-06 15:02:52');
INSERT INTO `orders` VALUES ('5', '3', '2', '2017-06-09 16:55:24');
INSERT INTO `orders` VALUES ('6', '2', '2', '2017-07-14 14:01:36');
建立并執行作業
首先利用下列命令啟動kettle
cd /usr/local/kettle/data-integration
./spoon.sh
接下來,開始使用kettle完成案例內容:將MySQL數據源里的三張表用戶指定的信息輸入到kettle,通過JOB執行轉換,并輸出一個文本文件。
1.建立作業JOB
1.1 新建轉換并保存轉換文件
右鍵-新建轉換。
保存新建的轉換文件,指定名稱和保存路徑。
1.2 連接數據庫
選擇MySQL作為數據源,雙擊“DB連接”,輸入相關的認證信息,如數據庫名、用戶名和密碼等。
點擊測試按鈕,測試是否連接數據庫成功,如果連接成功,會彈出如下信息。
如果彈出如下信息,說明缺少mysql驅動包,請按照上一節的第4小節下載mysql驅動包,并復制到目錄/usr/local/kettle/data-integration/lib,重新啟動kettle即可。
1.3 切換到核心對象,拖動3個表輸入控件到設計區域
表輸入控件位于:核心對象-輸入-表輸入
1.4 雙擊表輸入控件,設置表輸入控件的屬性信息
1.5 拖動2個流查詢到設計區域,并設置流查詢的屬性信息
流查詢控件位于:核心對象-查詢-流查詢
1.6 拖動1個文本文件輸出到設計區域,并設置輸出的屬性信息
文本文件輸出控件位于:核心對象-輸出-文件文件輸出
1.7 連接控件
按住shift鍵,長按鼠標左鍵移動鼠標,可以連接兩個控件,按如下圖所示關聯個控件。
2.執行JOB
2.1 點擊啟動按鈕執行JOB
點擊設計區域上方的小三角形按鈕,啟動作業。
執行完成后出現下列界面表示執行成功。
如果出現下列界面表示作業建立出錯,可以從日志欄獲取相關錯誤信息。
2.2 查看執行結果
如果運行成功,目錄/usr/local/kettle/data-integration下生成一個txt文件resultfile.txt,查看resultfile.txt其內容如下,表示執行成功,已經成功將MySQL數據庫的這三張表的數據導出為指定格式的文件。
至此我們就完成了將MySQL的數據轉化為kettle指定的文件格式,實驗成功!
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的kettle使用数据库来生成序列_Kettle的安装和使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 变频器输出功率_变频器的输出功率该如何选
- 下一篇: 微众银行蛋壳贷款怎么取消