快速上手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
  • 概述:本文代碼示例演示瞭如何在WPF中使用LiveCharts庫創建動態條形圖。通過創建數據模型、ViewModel和在XAML中使用`CartesianChart`控制項,你可以輕鬆實現圖表的數據綁定和動態更新。我將通過清晰的步驟指南包括詳細的中文註釋,幫助你快速理解並應用這一功能。 先上效果: 在 ...
  • openGauss(GaussDB ) openGauss是一款全面友好開放,攜手伙伴共同打造的企業級開源關係型資料庫。openGauss採用木蘭寬鬆許可證v2發行,提供面向多核架構的極致性能、全鏈路的業務、數據安全、基於AI的調優和高效運維的能力。openGauss深度融合華為在資料庫領域多年的研 ...
  • openGauss(GaussDB ) openGauss是一款全面友好開放,攜手伙伴共同打造的企業級開源關係型資料庫。openGauss採用木蘭寬鬆許可證v2發行,提供面向多核架構的極致性能、全鏈路的業務、數據安全、基於AI的調優和高效運維的能力。openGauss深度融合華為在資料庫領域多年的研 ...
  • 概述:本示例演示了在WPF應用程式中實現多語言支持的詳細步驟。通過資源字典和數據綁定,以及使用語言管理器類,應用程式能夠在運行時動態切換語言。這種方法使得多語言支持更加靈活,便於維護,同時提供清晰的代碼結構。 在WPF中實現多語言的一種常見方法是使用資源字典和數據綁定。以下是一個詳細的步驟和示例源代 ...
  • 描述(做一個簡單的記錄): 事件(event)的本質是一個委托;(聲明一個事件: public event TestDelegate eventTest;) 委托(delegate)可以理解為一個符合某種簽名的方法類型;比如:TestDelegate委托的返回數據類型為string,參數為 int和 ...
  • 1、AOT適合場景 Aot適合工具類型的項目使用,優點禁止反編 ,第一次啟動快,業務型項目或者反射多的項目不適合用AOT AOT更新記錄: 實實在在經過實踐的AOT ORM 5.1.4.117 +支持AOT 5.1.4.123 +支持CodeFirst和非同步方法 5.1.4.129-preview1 ...
  • 總說周知,UWP 是運行在沙盒裡面的,所有許可權都有嚴格限制,和沙盒外交互也需要特殊的通道,所以從根本杜絕了 UWP 毒瘤的存在。但是實際上 UWP 只是一個應用模型,本身是沒有什麼許可權管理的,許可權管理全靠 App Container 沙盒控制,如果我們脫離了這個沙盒,UWP 就會放飛自我了。那麼有沒... ...
  • 目錄條款17:讓介面容易被正確使用,不易被誤用(Make interfaces easy to use correctly and hard to use incorrectly)限制類型和值規定能做和不能做的事提供行為一致的介面條款19:設計class猶如設計type(Treat class de ...
  • title: 從零開始:Django項目的創建與配置指南 date: 2024/5/2 18:29:33 updated: 2024/5/2 18:29:33 categories: 後端開發 tags: Django WebDev Python ORM Security Deployment Op ...
  • 1、BOM對象 BOM:Broswer object model,即瀏覽器提供我們開發者在javascript用於操作瀏覽器的對象。 1.1、window對象 視窗方法 // BOM Browser object model 瀏覽器對象模型 // js中最大的一個對象.整個瀏覽器視窗出現的所有東西都 ...