ETL之kettle使用總結:(批量、含常量)csv入庫

本文實驗的ktr文件:ktr文件


1.概述

18年開工第一天,做下Kettle的使用總結。
Kettle是一款國外開源的ETL工具,純java編寫,可以在Window、Linux、Unix上運行,數據抽取高效穩定。
關於kettle的下載及安裝這裏不贅述,此處僅介紹工作過程中最常見的三種使用場景:

  • 單個csv文件入庫;
  • 增加一個常量字段的csv文件入庫;
  • 批量csv文件入庫。

2.具體操作

2.1單個csv文件入庫

這個是最簡單的操作,下面我們通過實例進行說明:

2.1.1首先我們在數據庫中建立需要入庫的表ljb_test_kettle

create table ljb_test_kettle
(
    session_id      varchar2(50),
    line_num        varchar(4),
    extension_id    varchar2(10),
    similar_grade   number
);

這裏一定要注意字段的類型,多數情況下的報錯都是由字段類型不匹配或長度不夠等引起的。

2.1.2打開spoon

雙擊kettle解壓文件中的spoon.bat(windows是spoon.bat,Linux和Mac是spoon.sh)。
在主對象樹右擊轉換->新建,建立新的轉換。並保存Ctrl+S,命名,這裏隨便寫個。如下圖:
這裏寫圖片描述
這裏寫圖片描述

2.1.3 創建數據庫連接DB連接

右鍵圖中DB連接-新建連接,填上相應的參數,除了數據表空間和索引表空間之外,其餘均要填寫。如下圖:
這裏寫圖片描述
填寫完成,我們可以點擊測試,如果沒問題則表示成功,如果錯誤請根據具體信息解決(網絡問題、jar包缺少、配置錯誤等)。

2.1.4 創建輸入輸出對象

點擊核心對象樹,分別找到輸入-CSV文件輸入輸出-表輸出,並直接拖動到轉換的圖形視圖(下圖中的2視圖)中。
這裏寫圖片描述

2.1.5創建連接

按住Shift鍵,依次單擊輸入對象和輸出對象,會在兩者之間生成一個箭頭,並選擇主輸出步驟。如下:
這裏寫圖片描述

2.1.6 輸入輸出對象參數設置

通過雙擊兩個對象,可以進行相關參數設置。

2.1.6.1 輸入對象參數配置

步驟名稱:可以使用默認,建議根據工作要求進行規範命名。
文件名:通過瀏覽選擇對應需要導入的文件。
列分隔符:因爲是CSV文件,所以採用默認的英文逗號。

對於字段這一列,我們可以自動獲取字段,操作方式:
獲取字段-取消,注意彈出框的時候一定選取消,不然相應的格式之類的會自動幫你填寫,但這些往往我們並不需要。如下圖:
這裏寫圖片描述
我們可以通過預覽查看是否是我們想要的結果。
這裏寫圖片描述

2.1.6.2 輸出對象參數配置

步驟名稱:可以採用默認,推薦採用結果表名稱。
數據庫連接:採用之前創建的連接,如果沒有創建,可在這裏點擊新建按鈕進行創建。
目標表:數據庫中的表名。
勾選指定數據庫字段
這裏寫圖片描述

如果我們不勾選該選項的話,在我們選擇數據庫字段的時候,如下兩個按鈕就是灰色的,無法點擊,如下圖:
這裏寫圖片描述

點擊獲取字段。然後觀察順序是否無誤,確定。

2.1.7 運行轉換

點擊三角符號,運行這個轉換。
並查看日誌。
這裏寫圖片描述

去數據庫中查看數據,至此已完成。

2.2 增加新的常量字段的csv文件入庫

我們有如下需求,三個csv文件入庫,並添加一個flag字段,對於第一個csv文件,flag爲0,第二個flag爲1,第三個flag爲2。

我們可以通過添加自定義常量的方式實現。
我們把剛纔的對象複製一份,並點擊連接箭頭,可以看到,會變成灰色,這樣,當我們運行的時候,灰色的轉換就會被跳過。

2.2.1 增加常量

轉換-增加常量
這裏寫圖片描述
建立如下圖的轉換。
這裏寫圖片描述

同樣的我們建立測試表:

create table ljb_test_kettle_final
(
    session_id      varchar2(50),
    line_num        varchar(4),
    extension_id    varchar2(10),
    similar_grade   number,
    flag            number
);

2.2.2 配置常量

雙加增加常量,並進行下圖所示配置。
這裏寫圖片描述

2.2.3 配置輸出對象

雙擊輸出對象,更新配置,重新獲取字段:
這裏寫圖片描述

2.2.1 運行轉換

運行轉換,第二個第三個同理,只需要更改對象的flag值即可。
這裏寫圖片描述

2.3 批量入庫csv文件

有如下需求,我們需要把下圖中的所有csv文件入庫,這些csv文件字段類型完全一樣。
這裏寫圖片描述

這時,我們需要採用通配符進行批量入庫。

2.3.1 首先把之前的轉換全部點擊爲灰色。

2.3.2 修改輸入對象

批量輸入與單個輸入不同點在於輸入對象變爲了文本文件輸入。

輸入-文本文件輸入
如下圖:
這裏寫圖片描述

2.3.3 配置輸入對象

2.3.3.1 配置文件項

瀏覽到目錄,然後增加。
這裏寫圖片描述

填寫通配符:採用如下寫法可以成功。

.*\.csv$

如下圖:
這裏寫圖片描述

2.3.3.2 配置內容項

分隔符,英文逗號。
格式:Unix。
這裏寫圖片描述

2.3.3.3 配置字段項

獲取字段-取消
這裏寫圖片描述

2.3.3.4 預覽記錄

預覽記錄沒問題則表示配置成功。

2.3.4 運行轉換

運行該轉換即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章