快速上手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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...