本文實驗的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 運行轉換
運行該轉換即可。