快速上手kettle(二)小試牛刀

来源:https://www.cnblogs.com/xiezhr/archive/2023/05/29/17439369.html
-Advertisement-
Play Games

[TOC](快速上手kettle二 小試牛刀) ### 一 、前言 上一期中大概介紹了下kettle,並已經把kettle下載安裝完了。 這一期我們就來簡單體驗下kettle怎麼進行數據轉換的。 ### 二 、兩個小目標 我們這裡呢就以兩個小案例來體驗下kettle - 將csv文件通過kettle ...


目錄

一 、前言

上一期中大概介紹了下kettle,並已經把kettle下載安裝完了。

這一期我們就來簡單體驗下kettle怎麼進行數據轉換的。

二 、兩個小目標

我們這裡呢就以兩個小案例來體驗下kettle

  • 將csv文件通過kettle轉換成excel文件
  • 將excel文件通過kettle寫入到資料庫表中

三、 kettle核心概念介紹

kettle 被稱為可視化編程語言,可以完成複雜的etl工作流。kettle里的代碼就是轉換和作業。

所以呢,我們首先就來說說轉換和作業。

3.1 轉換

從下麵截圖中,我們看到轉換包含了很多核心對象,說明其包含了很多功能。後面有得我們學的了(開個玩笑)

--轉換包含元素 --轉換核心對象
轉換核心元素 轉換核心對象 轉換核心對象
  • 轉換(transaformation)負責數據的輸入、轉換、校驗和輸出等,kettle中轉換完成了ETL的全部工作

  • 轉換由多個步驟 (Step) 組成。包含各種文件格式的數據輸入/輸出 (如csv文件輸入、sql文件輸出、sql腳本執行、各種查詢等等)

  • 如果各個步驟之間需要資料庫操作,我們就需要建立DB連接

  • 各個步驟之間使用跳(Hops)來連接。我們可以將跳理解為一條道路,數據有一個步驟(驛站)通過(道路)流向下一步驟(驛站)

  • kettle中最小的數據單元是

轉換

3.1.1 步驟(Step)

步驟是轉換里的基本組成部分,上面截圖中包含了兩個步驟
CSV文件輸入
Excel輸出

  • 每個步驟都會涉及到數據行

  • 步驟將數據寫到與之相連的一個或多個輸出跳(hop),再傳送到跳的另一端的步驟

  • 大多數的步驟都可以有多個輸出跳。一個步驟的數據發送可以被設置為分發複製

    image-20230527212552068

3.1.2 跳(Hop)

是兩個步驟(驛站)之間的道路(帶箭頭的連線)

  • 是兩個步驟之間的數據行緩存

  • 當行集滿了,向行集寫數據的步驟將停止寫入,直到行集里又有了空間

  • 當行集了,從行集讀取數據的步驟停止讀取,直到行集里又有可讀的數據行

image-20230527212925992

可以通過如下方式查看和修改行緩存大小

①右鍵轉換-->設置 ② 選擇"雜項"tab頁
image-20230527213910795 image-20230527213956315
3.1.3 元素據

每個步驟在輸出數據行時都有對欄位的描述,這種描述就是數據行的元數據

通常包含下麵一些信息。

名稱:數據行里的欄位名是唯一的。

數據類型:欄位的數據類型。

格式:數據顯示的方式,如Integer的#、0.00。

長度:字元串的長度或者BigNumber類型的長度。

精度:BigNumber數據類型的十進位精度。

貨幣符號:¥

小數點符號:十進位數據的小數點格式。不同文化背景下小數點符號是不同的,一般是點(.)或逗號(,)。

分組符號:數值類型數據的分組符號,不同文化背景下數字里的分組符號也是不同的,一般是點(.)或逗號(,)或單引號(’)

這裡的輸入文件十csv格式數據,所以分組符號是逗號","

image-20230527221440326

3.1.4 數據類型

數據以數據行(可以理解為一個表格中的一行) 的形式沿著步驟移動,每個數據行又有多個欄位元素(可以理解為一個單元格)構成

就像在excel中,每個單元格都可以設置數據格式一樣,這裡數據行中的欄位也有自己的數據類型.

常見的數據類型有以下幾種

--數據類型 --說明
String 字元類型數據
Number 雙精度浮點數
Integer 帶符號長整型(64位)
BigNumber 任意精度數據
Date 帶毫秒精度的日期時間值
Boolean 取值為true和false的布爾值類型
Binary 二進位欄位可以包含圖像、聲音、視頻及其他類型的二進位數據

數據類型

3.1.5 併發執行

我們經常需要處理大量的數據,所以設計了這樣的行集緩存規則,使得每個步驟就是一個獨立線程.所有步驟都以併發方式執行.

當轉換啟動後,所有步驟都同時啟動,從它們的輸入跳中讀取數據,並把處理過的數據寫到輸出跳.

直到輸入跳里不再有數據,就中止步驟的運行。

當所有的步驟都中止了,整個轉換就中止了

如果想要一個任務沿著指定的順序執行,那麼就要使用下麵所講的“作業”來做流程式控制制

3.2 作業

負責定義一個完成整個工作流的控制,如將轉換的結果發送郵件給相關人員.

因為轉換(transformation)以並行方式執行,所以必須存在一個串列的調度工具來執行轉換,這就是 Kettle中的作業

四、實踐操作

4.1 案例1 將csv文件轉換成excel文件

4.1.1 在kettle中新建一個轉換

新建轉換

4.1.2選擇輸入控制項並設置

核心對象-->輸入-->CSV文件輸入 (將控制項拖入工作區)

① 選擇CSV文件輸入控制項 ②將控制項拖入工作區
選擇 拖入
③ 選擇源文件 ④ 檢查csv數據是否正常讀出
選擇源文件 讀取數據
4.1.3 選擇輸出控制項並設置
① 選擇Excel輸出控制項 ②將控制項拖入工作區
image-20230527230537467 拖入工作區
③ 設置輸出文件名
image-20230527231014203
4.1.4 按住shift 通過將輸入輸出兩步驟連接起來

image-20230527231441251

4.1.5 點擊啟動按鈕執行轉換

image-20230527231624181

4.1.6查看日誌,並檢查是否成功
①日誌沒報錯 ②文件也寫入成功了
image-20230527231913544 image-20230527232017215

4.2 案列2 將excel文件導入MySQL資料庫

4.2.1和上面步驟一樣我們需要新建一個轉換

案例2轉換

4.2.2 新建資料庫連接

由於案例2需要涉及到MySQL資料庫,所以我們需要建立DB連接

①下載MySQL驅動(需要下載對應版本的) 我用的是MySQL5.7 ,所以這裡下載5.1.37 版本驅動

官方地址:https://downloads.mysql.com/archives/c-j/

MySQL驅動下載

② 將下載的好的MySQL驅動包放入lib文件夾下

驅動包路徑

③新建DB連接

image-20230527235403720

註: 如果沒有下載驅動包或者驅動包版本與MySQL版本不一致,會包如下錯誤

驅動包不對報錯

4.2.3 拖入Excel輸入控制項並設置

① 將Excel輸入控制項拖入工作區

Excel輸入控制項拖入工作區

②設置Excel輸入控制項

設置源文件

添加文件

獲取工作表

獲取數據欄位

直到點擊預覽記錄後獲取到如下截圖所示數據,說明輸入設置成功了

預覽到數據

4.2.4 拖入表輸出控制項並設置

① 將表輸出控制項拖入工作區

表輸出控制項拖入工作區

② 通過 將輸入輸出控制項連接起來

跳連接

③設置需要導入數據的目標表

選擇目標表

④ 匹配資料庫欄位

匹配資料庫欄位

4.2.5 點擊啟動按鈕進行轉換

image-20230528095444390

4.2.6 查看日誌並檢查MySQL數據表中是否有數據

①日誌顯示轉換成功

日誌顯示成功

② 我們再來看看資料庫test的t_tv 表中也有數據了

image-20230528095831318

到此通過兩個案例小試牛刀之後都轉換成功了,是不是有點小成就感呢。

其實這隻是kettle工具的冰山一角,從kettle那麼多核心對象可以看得出來,它還有很多很多很多得玩法等著我們去開啟。

本期內容到此就結束了,希望內容對你有所幫助,我們下期再見 (●'◡'●)

上一篇:快速上手kettle(一)壺之簡介
下一篇:快速上手kettle(三):kettle常用輸入控制項使用(小編正在玩命更新中)


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 雖然之前已經有了《7千多條周公解夢斷夢秘書ACCESS資料庫》、《4千多周公解夢包含化解方法ACCESS資料庫》等相關的周公解夢的資料庫,但今天發現的周公解夢的記錄數量已經達到了上萬條,雖然分類沒有《7千多條周公解夢斷夢秘書ACCESS資料庫》多,但記錄數多出了不少。 分類情況彙總有:01自然類(6 ...
  • 《上萬條全球各國紙幣大全含圖ACCESS資料庫》是今天採集自錢幣大全網站的紙幣資料,大類包含:中國大陸、中國臺灣、中國香港、中國澳門、亞洲紙鈔、歐洲紙鈔、美洲紙鈔、非洲紙鈔 、大洋洲、其他紙鈔等,而且紙幣信息包含:國家名稱、英文名稱、目錄編號、紙鈔面額、紙鈔年版、紙鈔規格、所屬類別、詳細信息等。 收 ...
  • 我記得之前我採集、提取過兩份菜譜資料資料庫,一份是菜譜數據不上萬的帶圖片的,詳情點擊這裡,一份是2萬多條記錄但格式未整理並且沒有圖片的。而今天的這個3萬多條含圖片的菜譜資料ACCESS資料庫包含了3萬多條常菜譜做法,並且結構簡潔,最主要的是每個菜譜都包含圖片。 菜譜分50個大類和400多種小類,大類 ...
  • 一個學語文的朋友問我有沒有關於中華典故以及萬物由來的數據,我看了看手頭的資料發現還真沒有,而且網上似乎也沒有這一類的成品,因此就用程式採集了一個中華典故網的文章。 分類統計情況有:成語典故(共4198條)、典故雜聞(共702條)、國外典故(共29條)、科學典故(共29條)、歷史典故(共374條)、神 ...
  • 本系列為:MySQL資料庫詳解,為千鋒資深教學老師獨家創作,致力於為大家講解清晰MySQL資料庫相關知識點,含有豐富的代碼案例及講解。如果感覺對大家有幫助的話,可以【關註】持續追更 ...
  • 《公務員考試基礎知識題庫ACCESS資料庫》搜集了大量公務員考試試題,包括公共基礎知識試題、行政職業能力試題、法律基礎知識試題、公安基礎知識試題等。 分類記錄統計情況為:法律基礎知識試題(共1359條)、公安基礎知識試題(共1709條)、公共基礎知識試題(共2905條)、行政職業能力試題(共6613 ...
  • 《求職面試寶典大全ACCESS資料庫》包含:1-穿著打扮、2-隨身攜帶、3-場景指導、4-考官分析、5-考官問題、6-回答參考表、7-面試大全。雖然有些表的記錄數不多,但勝在信息全面以及考官問題及答案的全面。 問題類型記錄數為:待遇問題(10條)、個人素養(10條)、教育家庭(10條)、經驗問題(1 ...
  • 因為簽於網站笑話不是採用微博型(一句或兩句短篇可以採用250長度的文本型存儲),而是所以文章內容型,所以內容保存的欄位是 Microsoft Access 資料庫里的備註類型。 資料庫內容經過整理,格式比較統一,比如不會有多餘的段落或不整齊的段落;分類比較集中,只有爆笑男女(305)、兒童笑話(59 ...
一周排行
    -Advertisement-
    Play Games
  • 概述:在C#中,++i和i++都是自增運算符,其中++i先增加值再返回,而i++先返回值再增加。應用場景根據需求選擇,首碼適合先增後用,尾碼適合先用後增。詳細示例提供清晰的代碼演示這兩者的操作時機和實際應用。 在C#中,++i 和 i++ 都是自增運算符,但它們在操作上有細微的差異,主要體現在操作的 ...
  • 上次發佈了:Taurus.MVC 性能壓力測試(ap 壓測 和 linux 下wrk 壓測):.NET Core 版本,今天計劃準備壓測一下 .NET 版本,來測試並記錄一下 Taurus.MVC 框架在 .NET 版本的性能,以便後續持續優化改進。 為了方便對比,本文章的電腦環境和測試思路,儘量和... ...
  • .NET WebAPI作為一種構建RESTful服務的強大工具,為開發者提供了便捷的方式來定義、處理HTTP請求並返迴響應。在設計API介面時,正確地接收和解析客戶端發送的數據至關重要。.NET WebAPI提供了一系列特性,如[FromRoute]、[FromQuery]和[FromBody],用 ...
  • 原因:我之所以想做這個項目,是因為在之前查找關於C#/WPF相關資料時,我發現講解圖像濾鏡的資源非常稀缺。此外,我註意到許多現有的開源庫主要基於CPU進行圖像渲染。這種方式在處理大量圖像時,會導致CPU的渲染負擔過重。因此,我將在下文中介紹如何通過GPU渲染來有效實現圖像的各種濾鏡效果。 生成的效果 ...
  • 引言 上一章我們介紹了在xUnit單元測試中用xUnit.DependencyInject來使用依賴註入,上一章我們的Sample.Repository倉儲層有一個批量註入的介面沒有做單元測試,今天用這個示例來演示一下如何用Bogus創建模擬數據 ,和 EFCore 的種子數據生成 Bogus 的優 ...
  • 一、前言 在自己的項目中,涉及到實時心率曲線的繪製,項目上的曲線繪製,一般很難找到能直接用的第三方庫,而且有些還是定製化的功能,所以還是自己繪製比較方便。很多人一聽到自己畫就害怕,感覺很難,今天就分享一個完整的實時心率數據繪製心率曲線圖的例子;之前的博客也分享給DrawingVisual繪製曲線的方 ...
  • 如果你在自定義的 Main 方法中直接使用 App 類並啟動應用程式,但發現 App.xaml 中定義的資源沒有被正確載入,那麼問題可能在於如何正確配置 App.xaml 與你的 App 類的交互。 確保 App.xaml 文件中的 x:Class 屬性正確指向你的 App 類。這樣,當你創建 Ap ...
  • 一:背景 1. 講故事 上個月有個朋友在微信上找到我,說他們的軟體在客戶那邊隔幾天就要崩潰一次,一直都沒有找到原因,讓我幫忙看下怎麼回事,確實工控類的軟體環境複雜難搞,朋友手上有一個崩潰的dump,剛好丟給我來分析一下。 二:WinDbg分析 1. 程式為什麼會崩潰 windbg 有一個厲害之處在於 ...
  • 前言 .NET生態中有許多依賴註入容器。在大多數情況下,微軟提供的內置容器在易用性和性能方面都非常優秀。外加ASP.NET Core預設使用內置容器,使用很方便。 但是筆者在使用中一直有一個頭疼的問題:服務工廠無法提供請求的服務類型相關的信息。這在一般情況下並沒有影響,但是內置容器支持註冊開放泛型服 ...
  • 一、前言 在項目開發過程中,DataGrid是經常使用到的一個數據展示控制項,而通常表格的最後一列是作為操作列存在,比如會有編輯、刪除等功能按鈕。但WPF的原始DataGrid中,預設只支持固定左側列,這跟大家習慣性操作列放最後不符,今天就來介紹一種簡單的方式實現固定右側列。(這裡的實現方式參考的大佬 ...