大數(shù)據(jù) ETL 處理工具 Kettle 入門實踐

Kettle 簡介

ETL(Extract-Transform-Load 的縮寫,即數(shù)據(jù)抽取、轉換、裝載的過程),對于數(shù)據(jù)開發(fā)人員來說,我們經常會遇到各種數(shù)據(jù)的處理,轉換,遷移,所以了解并掌握一種 ETL 工具的使用,必不可少,這里我們要學習的 ETL 工具就是 Kettle。

Kettle 是什么

Kettle 是一款國外開源的 ETL 工具,對商業(yè)用戶也沒有限制,純 Java 編寫,可以在 Window、Linux、Unix 上運行,綠色無需安裝,數(shù)據(jù)抽取高效穩(wěn)定。Kettle 中文名稱叫水壺,它允許管理來自不同數(shù)據(jù)庫的數(shù)據(jù),把各種數(shù)據(jù)放到一個壺里,然后以一種指定的格式流出。Kettle 中有兩種腳本文件,TransformationJob, Transformation 完成針對數(shù)據(jù)的基礎轉換,Job 則完成整個工作流的控制。通過圖形界面設計實現(xiàn)做什么業(yè)務,并在 Job 下的 start 模塊,有一個定時功能,可以每日,每周等方式進行定時。

Kettle 的核心組件

名稱 功能
Spoon 通過圖形接口,允許你通過圖形界面來設計 ETL 轉換過程(Transformation)
Pan 運行轉換的命令行工具
Kitchen 運行作業(yè)的命令行工具
Carte Carte 是一個輕量級別的 Web 容器,用于建立專用、遠程的 ETL Server
  • 作業(yè)和轉換可以在圖形界面里執(zhí)行,但這只適合在開發(fā)、測試和調試階段。在開發(fā)完成后,需要部署到生產環(huán)境中 Spoon 就很少用到了,Kitchen 和 Pan 命令行工具用于實際的生產環(huán)境。
  • 部署生產階段一般需要通過命令行執(zhí)行,需要把命令行放到 Shell 腳本中,并定時調度這個腳本。
  • Kitchen 和 Pan 工具是 Kettle 的命令行執(zhí)行程序,只是在 Kettle 執(zhí)行引擎上的封裝,它們只是解釋命令行參數(shù),調用并把這些參數(shù)傳遞給 Kettle 引擎。
  • Kitchen 和 Pan 在概念和用法上都非常相近,這兩個命令的參數(shù)也基本是一樣的。唯一不同的是 Kitchen 用于執(zhí)行作業(yè),Pan 用于執(zhí)行轉換。

Kettle 概念模型

Kettle 的執(zhí)行分為兩個層次:Job(作業(yè),.kjb 后綴)和 Transformation(轉換,.ktr 后綴)

img

簡單地說,一個轉換就是一個 ETL 的過程,而作業(yè)則是多個轉換、作業(yè)的集合,在作業(yè)中可以對轉換或作業(yè)進行調度、定時任務等。

在實際過程中,寫的流程不能很復雜,當數(shù)據(jù)抽取需要多步驟時,需要分成多個轉換,在集成到一個作業(yè)里順序擺放,然后執(zhí)行即可。

目錄文件功能說明

img
img
img

下載及安裝

官網(wǎng)各個版本下載地址:https://sourceforge.net/projects/pentaho/files/Data%20Integration/
國內 Kettle 論壇網(wǎng):https://www.kettle.net.cn/

Kettle 是純 Java 編程的開源軟件,需要安裝 JDK,并配置環(huán)境變量,解壓后直接使用無需安裝。

需準備的其他東西:數(shù)據(jù)庫驅動,如將驅動放在 Kettle 根目錄的 bin 文件夾下面即可。

打開 Kettle 只需要運行 Spoon.bat (win)/ spoon.sh (Linux / macOS),即可打開 Spoon 圖形工具。

啟動 Kettle

如下圖,執(zhí)行 ./spoon.sh 命令

image-20210705214148018

歡迎頁面

首頁

HelloWorld

把數(shù)據(jù)從 CSV 文件復制到 Excel 文件

CSV 文件到 Excel 文件

CSV 文件輸入

CSV 輸入控件

將 「CSV 文件輸入」拖拽到右側的工作區(qū),雙擊進行編輯,瀏覽選擇準備好的測試文件,點擊「獲取字段」自動獲取 CSV 文件中表頭信息,輸入配置完成,下一步進行輸出配置。

編輯 CSV 文件輸入

Excel 輸出

Excel 輸出

將 「Excel 輸出」拖拽到右側的工作區(qū),雙擊進行編輯,這步比較簡單,瀏覽選擇輸出目錄和設置文件名,完成配置。

輸出配置

轉換文件

按住 shift + 鼠標左鍵可以建立連接,保存轉換配置

image-20210705223800432

運行轉換

image-20210705223644738

查看結果

運行結果

總結

初步了解 Kettle 核心組件及其使用

  • 作業(yè)和轉換可以在圖形界面里執(zhí)行,但這只適合在開發(fā)、測試和調試階段。在開發(fā)完成后,需要部署到生產環(huán)境中 Spoon 就很少用到了,Kitchen 和 Pan 命令行工具用于實際的生產環(huán)境。
  • 部署生產階段一般需要通過命令行執(zhí)行,需要把命令行放到 Shell 腳本中,并定時調度這個腳本。
  • Kitchen 和 Pan 工具是 Kettle 的命令行執(zhí)行程序,只是在 Kettle 執(zhí)行引擎上的封裝,它們只是解釋命令行參數(shù),調用并把這些參數(shù)傳遞給 Kettle 引擎。
  • Kitchen 和 Pan 在概念和用法上都非常相近,這兩個命令的參數(shù)也基本是一樣的。唯一不同的是 Kitchen 用于執(zhí)行作業(yè),Pan 用于執(zhí)行轉換。

分步操作一個 HelloWrold 過程

helloworld_compress.gif

歡迎關注公眾號:HelloTech,獲取更多內容

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容