快速上手kettle(三)壺中可以放些啥?

来源:https://www.cnblogs.com/xiezhr/archive/2023/06/04/17455831.html
-Advertisement-
Play Games

[TOC](快速上手kettle(三)壺中可以放些啥?) ### 序言 快速上手kettle開篇中,我們將kettle比作壺,並對這個壺做了簡單介紹。 而上一期中我們實現了①將csv文件通過kettle轉換成excel文件; ②將excel文件通過kettle寫入到MySQL資料庫表中 這兩個案例。 ...


目錄

序言

快速上手kettle開篇中,我們將kettle比作壺,並對這個壺做了簡單介紹。

而上一期中我們實現了①將csv文件通過kettle轉換成excel文件;

②將excel文件通過kettle寫入到MySQL資料庫表中 這兩個案例。

相信大家跟我一樣,對kettle已經有了初步認識,並且對這強大的工具產生了興趣。

今天這小節,我們來看看kettle 這“壺”裡面到底能放些啥東西?

一 、kettle這壺能裝些啥

啟動kettle,在轉換-->輸入下麵有很多東西,如下截圖。有圖可以看出這kettle“真能裝”。

可以把各種五花八門的數據丟到這壺裡,kettle也是來者不拒。我們日常能用到的數據基本都能往裡面塞。

--kettle能裝的東西 --kettle能裝的東西
輸入1 輸入2

一眼望去,能看到不少“大熟人”,Access輸入CSV文件輸入Excel輸入JSON輸入XML輸入文本文件輸入YAML輸入表輸入等等

不知道你對上面提到的“大熟人”了不瞭解,其實不瞭解也沒關係。

在後面的模塊中,會把這些“大熟人”分別介紹給你。並且保證你過目不忘,再次遇到就能“稱兄道弟”

二、Access輸入

Access是微軟公司開發的一個資料庫管理軟體.它像個保險柜,可以幫你存儲和管理各種各樣的數據。

Access是我們平常會用到資料庫,接下來我們就新建一個Access資料庫為例,來簡單說一說怎麼使用Access這個輸入控制項

2.1 準備Acess資料庫和表

新建一個access資料庫,並建一個雲襄傳的表,然後往裡面添加一些數據
雲襄傳

2.2 新建一個轉換並設置

--①將Access輸入控制項拖入工作區 --②選擇2.1新建的雲襄傳.accdb
image-20230529231939231 image-20230529232115886
--③添加文件 --④ 選擇資料庫中數據表
image-20230529232332208 image-20230529232521630
--④ 獲取欄位 --⑤ 預覽數據
image-20230529232645861 image-20230529232754443

2.3 啟動轉換預覽數據

--①啟動轉換 --②預覽數據
image-20230529232957930 image-20230529233131829

註: 啟動執行轉換後,Preview date tab頁面如果載入出數據說明輸入控制項配置是成功的

三、CSV文件輸入

CSV文件是一個用逗號分隔的固定格式的文本文件,這種文件尾碼名為.csv,可以用Excel或者文本編輯器打開。

在日常工作中,我們經常會需要將CSV文件轉換為其他格式的數據

3.1 準備csv文件,並將csv輸入控制項拖入工作區

csv輸入控制項

3.2 csv輸入控制項設置

csv文件輸入設置

3.3 預覽csv文件內容

可以在設置界面點擊【預覽】 按鈕查看csv數據,也可以啟動步驟預覽數據、

-- 預覽按鈕預覽數據 --啟動步驟預覽csv文件
預覽文件 image-20230531074028281

四、文本文件輸入

我們經常需要將伺服器上的日誌文件(文本文件)數據或者其他文本數據提取出來,然後放到excel,這樣查看起來就很方便

4.1 準備txt格式文本文件,並將控制項拖入工作區

拖入工作區

4.2 文本輸入控制項設置

--①選擇txt文本文件 --②預覽文件內容
選擇文本文件 預覽內容
--③設置分割符 --④ 獲取欄位
設置分隔符 獲取欄位

4.3 啟動步驟,瀏覽數據

啟動步驟

五、Excel輸入

excel 對於我們來說並不陌生,時我們平常接觸到最多的文件格式

5.1 準備excel文件,並將控制項拖入工作區

拖入控制項

5.2 Excel控制項設置

--① 選擇excel文件 --② 獲取工作表名稱
image-20230531222321178 image-20230531222514990
-- ③ 獲取欄位,並設置數據格式 --④ 預覽數據
image-20230531223004644 image-20230531223338937

5.3 啟動轉換,預覽數據

上一步【預覽記錄】 如果有數據顯示出來,基本上excel設置時成功的了

當然我們可以啟動轉換,然後預覽excel文件中的數據

image-20230531223637622

六 、json文件輸入

json 可以算是現在市面上用的比較多的數據結構了,是JavaScript對象,是一種輕量級的數據交換格式。

可以很方便的在不同語言之間傳遞

6.1 json基本組成

  • 對象:{ }
  • 數組:[ ]
  • 屬性:key:value

6.2 JSON Path

JSON Path 用來定位json節點數據

Json Path 包含兩種寫法

  • 點記法:$.store.book[0].title

  • 括弧記法:$ [ ‘ store ’ ] [ ‘ book ’ ] [ 0 ] [ ‘title’ ]

使用過程中一些常用符號 含義

--符號 --描述
$ 查詢根節點對象,用於表示一個json數據,可以數組或對象
@ 表示當前節點對象,類似於Java中的this對象
* 可以表示一個數字或字元
'' 類似於遞歸搜索
.<name> 表示一個子節點
['<name>'(,'<name>')] 表示一個或多個子節點
[<number>(,<number>)] 表示一個或多個數組下標
[start:end] 數組片段,區間為(start,end) 不包含end
[?(<expression>)] 過濾器表達式,結果為Boolean類型

上面說了一些常用符號的使用,我們就以實際的json為例,來看看json里的節點怎麼取

{
    "data":{
        "longSeason":[
            {   "actor":"範偉",
                "role":"王響",
                "sex":"男",
                "age":56
            },
            {   "actor":"秦昊",
                "role":"龔彪",
                "sex":"男",
                "age":40
            },
            {   "actor":"李庚希",
                "role":"沈默",
                "sex":"女",
                "age":18
            },
            {   "actor":"陳明昊",
                "role":"馬德勝",
                "sex":"男",
                "age":55
            }
        ],
        "surname":[
            {   "actor":"陳曉",
                "role":"雲襄",
                "sex":"男",
                "age":28
            },
            {   "actor":"毛曉彤",
                "role":"舒亞男",
                "sex":"女",
                "age":18
            },
            {   "actor":"許齡月",
                "role":"柯夢蘭",
                "sex":"女",
                "age":18
            },
            {
               "actor":"劉冠麟",
               "role":"金十兩",
               "sex":"男",
               "age":35

            },
            {   "actor":"唐曉天",
                "role":"蘇鳴玉",
                "sex":"男",
                "age":25
            }

        ]
    }

}
--取出漫長季節中所有演員 --結果
$.data.longSeason[*].actor ["範偉","秦昊","李庚希","陳明昊"]
$..longSeason..actor ["範偉","秦昊","李庚希","陳明昊"]

6.3 實踐操作

6.3.1 準備json文件,並將json input控制項拖入工作區

拖入工作區

6.3.2 JSON 控制項設置
--① 選擇json文件並添加 --② 選擇欄位
選擇並添加 image-20230601224550176
-- ③ 查看表達式 -- ④ 預覽節點數據
image-20230601224803349 image-20230601224938534
6.3.3 啟動轉換,預覽數據

啟動轉換預覽數據

七、xml 輸入

xml是一種可擴展標記語言,XML 和上面說的json一樣用來傳輸和存儲數據

7.1 準備xml文件

我們後面的演示都用下麵的xml為例子

<data>
    <longSeason>
        <actor>範偉</actor>
        <role>王響</role>
        <sex>男</sex>
        <age>56</age>
    </longSeason>
    <longSeason>
        <actor>秦昊</actor>
        <role>龔彪</role>
        <sex>男</sex>
        <age>40</age>
    </longSeason>
    <longSeason>
        <actor>李庚希</actor>
        <role>沈默</role>
        <sex>女</sex>
        <age>18</age>
    </longSeason>
    <longSeason>
        <actor>陳明昊</actor>
        <role>馬德勝</role>
        <sex>男</sex>
        <age>55</age>
    </longSeason>
    <surname>
        <actor>陳曉</actor>
        <role>雲襄</role>
        <sex>男</sex>
        <age>28</age>
    </surname>
    <surname>
        <actor>毛曉彤</actor>
        <role>舒亞男</role>
        <sex>女</sex>
        <age>18</age>
    </surname>
    <surname>
        <actor>許齡月</actor>
        <role>柯夢蘭</role>
        <sex>女</sex>
        <age>18</age>
    </surname>
    <surname>
        <actor>劉冠麟</actor>
        <role>金十兩</role>
        <sex>男</sex>
        <age>35</age>
    </surname>
    <surname>
        <actor>唐曉天</actor>
        <role>蘇鳴玉</role>
        <sex>男</sex>
        <age>25</age>
    </surname>
</data>

7.2 XPath

在說json輸入控制項中,我麽介紹了JSON Path, 這裡是xml輸入控制項,也有類似XPath 來定位xml中節點的位置

--表達式 --描述
nodename 選取此節點的所有節點
/ 從根節點選取
// 從匹配選擇的當前節點選擇文檔中的節點,而不考慮他們的位置
. 選取當前節點
.. 選取當前節點的父節點
@ 屬性
--取出漫長季節中所有演員 --結果
/data/longSeason/actor ["範偉","秦昊","李庚希","陳明昊"]

7.3 實踐操作

7.3.1 將xml輸入控制項拖入工作區

image-20230601232215755

7.3.2 xml控制項設置
--① 選擇xml文件並添加 -- ② 獲取xml文檔讀取路徑
添加文件 讀取迴圈路徑
-- ③ 獲取欄位 -- ④ 預覽
獲取欄位 預覽
7.3.3 啟動轉換,預覽數據

image-20230601233132670

八、表輸入

由於涉及到資料庫表相關操作,所以我們新建轉換之後需要先建立DB連接。

建立DB連接的方式我們在上一小節小試牛刀中已經提過,這裡就不展開了。我們還是以MySQL為例子來說表輸入。

DB連接

8.1 將表輸入控制項拖入工作區

image-20230603080323531

8.2 表輸入控制項設置

-- ①獲取SQL查詢語句 -- ② 點擊【預覽】按鈕預覽表數據
獲取sql語句 image-20230603080755724

8.3 啟動轉換,預覽表數據

預覽表數據

九、 生成記錄

在日常工作中我們經常需要批量造一些測試數據,通過生成記錄這個輸入控制項就可以完成。

9.1 將生成記錄控制項拖入工作區

生成記錄拖入工作區

9.2 生成記錄控制項設置

-- ① 填寫需要數據的相關信息 -- ② 預覽生成的數據
image-20230603082158964 image-20230603082254603

9.3 啟動轉換,預覽數據

啟動轉換預覽數據

到此,10條測試數據就造好了

十、小結

本篇文章我們主要是說了九個kettle的常用輸入控制項(kettle壺裡能放寫啥東西進去)。

kettle的輸入控制項就代表著kettle能處理一些什麼格式的數據,其實它還有其他輸入控制項,這裡就不一一例舉了。

大家如果感興趣,可以將輸入下麵的每個控制項都去試試。

本期內容到此就結束了,希望對你有所幫助。

這一期說了輸入控制項,那下一期就到了輸出控制項

我們下一期再見 (●'◡'●)


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

-Advertisement-
Play Games
更多相關文章
  • ![線程各屬性縱覽](https://img2023.cnblogs.com/blog/1220983/202306/1220983-20230603114109107-477345835.png) 如上圖所示,線程有四個屬性: - 線程ID - 線程名稱 - 守護線程 - 線程優先順序 ### 1. ...
  • # 圖片介面JWT鑒權實現 # 前言 之前做了個返回圖片鏈接的介面,然後沒做授權,然後今天鍵盤到了,也是用JWT來做介面的許可權控制。 然後JTW網上已經有很多文章來說怎麼用了,這裡就不做多的解釋了,如果不懂的可以參考下列鏈接的 文章。 圖片介面文章:[還在愁個人博客沒有圖片放?](https://w ...
  • 以MySQL資料庫為例 # 一. 安裝 NuGet搜索Dapper.Lite並安裝最新版本。 ![](https://img2023.cnblogs.com/blog/174862/202306/174862-20230602155913303-757935399.jpg) NuGet搜索MySql ...
  • 從按鈕、文本框到下拉框、列表框,WPF提供了一系列常用控制項,每個控制項都有自己獨特的特性和用途。通過靈活的佈局容器,如網格、堆棧面板和換行面板,我們可以將這些控制項組合在一起,實現複雜的界面佈局。而通過樣式和模板,我們可以輕鬆地定製控制項的外觀和行為,以符合我們的設計需求。本篇記錄WPF入門需要瞭解的樣式... ...
  • 在一些複雜的業務表中間查詢數據,有時候操作會比較複雜一些,不過基於SqlSugar的相關操作,處理的代碼會比較簡單一些,以前我在隨筆《基於SqlSugar的開發框架循序漸進介紹(2)-- 基於中間表的查詢處理》介紹過基於主表和中間表的聯合查詢,而往往實際會比這個會複雜一些。本篇隨筆介紹聯合多個表進行... ...
  • 一、功能變數名稱解析過程 DNS功能變數名稱完整解析過程 1、查詢本地 hosts文件 解析記錄 2、查詢客戶端本地DNS緩存記錄 3、訪問DNS轉發(緩存)伺服器本地緩存記錄 4、轉發到權威伺服器查詢本地緩存記錄 5、訪問權威伺服器解析記錄 6、權威伺服器迭代查詢 6.1、訪問子域權威伺服器查詢本地緩存記錄 6. ...
  • # ulimit Linux ulimit命令用於控制shell程式的資源。 ```shell [email protected] 10:41:17 [pwd:~]# ulimit --help ulimit: ulimit [-SHabcdefiklmnpqrstuvxPT ...
  • ## 01|修改Win用戶名 打開運行,輸入cmd,回車; 輸入control userpasswords2,回車; 點擊屬性,修改用戶名,點擊確定; 打開運行,輸入regedit,回車; 定位到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Cur ...
一周排行
    -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中,預設只支持固定左側列,這跟大家習慣性操作列放最後不符,今天就來介紹一種簡單的方式實現固定右側列。(這裡的實現方式參考的大佬 ...