【Kettle從零開始】第五彈之Kettle轉換中常用元件介紹
Kettle版本:3.2GA
JDK版本:1.6.0_41
OS:NT
由於元件涉及非常多,我這就只舉例幾個常用的元件來進行介紹。需要了解全部元件下載
本彈給大家詳細說明的元件:表輸入、獲取系統資訊、表輸出、字元選擇、過濾記錄、執行SQL語句、設定變數、獲取變數
表輸入(Table Input)
螢幕截圖
圖示
功能說明
常用來利用連線和 SQL,從資料庫中讀取資訊。自動生成基本的 SQL語句。
元件說明
選項 |
描述 |
步驟名稱 |
步驟的名稱,在單一的步驟中,名稱必需唯一 |
資料庫連線 |
讀取資料的資料庫連線 |
SQL |
SQL 語句用來從資料庫連線中讀取資料 |
允許延遲載入 |
無 |
替換SQL語句裡的變數 |
替換SQL語句中的變數名 |
從步驟插入資料 |
指定我們期待讀取資料的步驟名稱。這些資訊能被插入到 SQL語句 |
記錄數限制 |
設定從資料庫中讀取的行數。0 所有行 |
獲取系統資訊(GetSystem Info)
螢幕截圖
圖示
功能說明
這個步驟從 Kettle環境中獲取資訊。
元件說明
選項 |
描述 |
步驟名稱 |
步驟的名稱,在單一的步驟中,名稱必需唯一 |
名稱 |
引數名稱 |
型別 |
獲取日期、轉換資訊、命令列引數等。 |
表輸出(Table Output)
螢幕截圖
圖示
功能說明
這個步驟可以儲存資訊到資料庫表中。
元件說明
選項 |
描述 |
步驟名稱 |
步驟的名稱,在單一的步驟中,名稱必需唯一 |
資料庫連線 |
用來寫資料的資料庫連線 |
目標模式 |
要寫資料的表的 Schema的名稱。允許表名中包含“.”對資料來源來說是很重要的。 |
目標表 |
要寫資料的表名 |
提交記錄數量 |
在資料表中用事務插入行。如果 N比 0大,每 N行提交一次連線。否則,不使用事務,速度會慢一些。 |
裁剪表 |
在插入資料之前清除目標表資料 |
忽略插入錯誤 |
使 Kettle忽略比喻違反主鍵約束之類的插入錯誤,18個警告將被日誌記錄。在批量插入的時候這個功能不可用。 |
使用批量插入 |
如果你想批量插入的話,就使用這個選項。這個選項的速度最快,預設被選上。 |
表分割槽資料 |
使用這個選項可以在多個表之間拆分資料。例如用把資料放到表 SALES_200510, SALES_200511,SALES_200512,…中來代替直接插入資料到表 SALES 中。 |
表名定義在一個欄位裡 |
使用這些選項可以拆分資料到一個或者多個表裡,目標表名可以用你指定的欄位來定義。例如如果你想儲存顧客性別資料,這些資料可能會儲存到表 M和表 F裡面(female女性和 male男性表)。這個選項可以阻止這些欄位插入到對應的表裡。 |
返回一個自動產生的關鍵字 |
往表中插入行時,是否產生一個關鍵字 |
自動產生關鍵字的欄位名稱 |
指定包含關鍵字的輸出欄位的欄位名稱 |
SQL |
根據源表表結構生成自動建立輸出表的 SQL指令碼 |
欄位選擇(Select values)
螢幕截圖
圖示
功能說明
這個步驟常常用來:
選擇欄位、重新命名欄位、指定欄位的長度或者精度
下面是三個不同標籤的功能:
選擇和修改:指定需要流到輸出流中的欄位的精確順序和名稱
刪除:指定必須從輸出流中刪除的欄位
元資料:修改元資料欄位的名稱、型別、長度和精度
元件說明
選項 |
描述 |
步驟名稱 |
步驟的名稱,在單一的步驟中,名稱必需唯一 |
改名:如果不想改名,就使用空白 |
|
長度:輸入數字指定長度(-1:代表沒有長度指定) |
|
精度:輸入數字指定精度(-1:代表沒有精度指定) |
過濾記錄(Filterrows)
螢幕截圖
圖示
功能說明
這個步驟允許你根據條件和比較符來過濾記錄。一旦這個步驟連線到先前的步驟中,你可以簡單的單擊“<field>”“=”和“<value>”,區域來構建條件
元件說明
選項 |
描述 |
步驟名稱 |
步驟的名稱,在單一的步驟中,名稱必需唯一 |
傳送“true”資料給步驟:指定條件返回 true的資料將傳送到此步驟。 |
|
傳送“false”資料給步驟:指定條件返回 false的資料將傳送到此步驟。 |
執行SQL語句(ExecuteSQL script)
螢幕截圖
圖示
功能說明
在這個步驟中你可以執行 SQL指令碼
元件說明
選項 |
描述 |
步驟名稱 |
步驟的名稱,在單一的步驟中,名稱必需唯一 |
執行每一行 |
步驟的每一個輸入行執行 |
變數替換 |
可以在 SQL指令碼中使用引數 |
設定變數(SetVariable)
螢幕截圖
圖示
功能說明
這個步驟允許你在一個任務中或者虛擬機器中設定變數。它僅僅可以用一行資料來設定變數值。
下面是可以用的範圍設定:
Valid in the virtual machine:整個虛擬機器將知道那個變數,僅可以在單機模式下執行。
Valid in the parent job:變數僅在父任務中合法的。
Valid in the grand-parent job:變數僅在祖父任務中合法的。
Valid in the root job: 變數僅在根任務中合法的。
獲取變數(GetVariable)
螢幕截圖
圖示
功能說明
這個步驟允許你獲取一個變數,它可以返回行或者附加值到輸入行。
備註:你需要指定完整的變數格式${variable}或者%%variable%%。
如須瞭解更多元件使用方法