更新幫助文檔

更新步驟是利用查詢關鍵字在表中搜索行。如果行中設置的更新字段內容有差異,則更新行。如果設置的更新字段沒有任何改變,則不進行任何操作,步驟配置信息如圖1所示。

                           

 

                                                                                 圖1 步驟配置信息

 

下文詳細解釋各控件的含義:

1、轉換步驟名稱:步驟的名稱,在單一轉換中,名稱必須唯一。

2、數據庫連接:讀取數據的JDBC連接,右邊第一個「編輯」可以對連接信息進行編輯;第二個「新建」按鈕可以新建JDBC連接;第三個「嚮導」按鈕可以根據指引分步去建立JDBC連接。

3.目標模式:輸入的行集寫數據的表Schema的名稱。可以點擊右邊的「瀏覽」按鈕,進行選擇。

4.目標表:行集寫入數據的表名,可以點擊右邊的「瀏覽」按鈕,進行選擇。

5.提交記錄數量:批處理行集數量限制(注意必須填整數),設其值爲n。如果n<0,那麼更新後將不提交事務。如果n等於0,Kettle將自動把n設置爲最大整數(值爲2147483647);如果n>0,那麼Kettle將判斷是否可以採用批處理模式。如果可以,那麼將採用JDBC批量處理的方式,每隔n行執行一次批處理、提交事務、清空批處理;如果不支持批處理,那麼將逐行執行insert或update語句,並每隔n行提交一次事務。批處理模式性能更高,但需要多個條件同時滿足:數據庫支持批處理、不需要獲取返回的主鍵字段值、沒有在轉換屬性中激活使用唯一連接(轉換/屬性/雜項/使用唯一連接)。例如圖1中設置爲100,那麼Kettle將在100行、200行、300行......時提交事務,到底提交多少次由輸入行集行數決定。

6.批量更新:勾選此項,對流中的數據批量更新,每次更新數據量由「提交記錄數量」決定。不勾選時,會逐條更新。

7.跳過查詢:勾選此項,利用控件9中的查詢關鍵字在表中搜索行,沒有找到的行不進行任何操作。對找到的行若設置的「更新字段」內容有差異,則更新行。不勾選時,則關鍵字中目標表字段與流字段的數據值範圍應保持相同,否則會報錯。

8.忽略查詢失敗:勾選此項,利用查詢關鍵字在表中搜索行,對沒有找到的行數據與存在的行數據分別傳入到不同的流中。:標誌字段是對每行數據進行標識的字段取一個別名。

9.用來查詢值的關鍵字:指定字段名和比較符的列表。點擊「獲取字段」按鈕:從目標表和輸入流中獲取字段,並填充到關鍵字列表中。表字段爲目標表中所獲取的字段,流裏的字段1和流裏的字段2爲輸入流中獲取的字段。當比較符選擇爲BETWEEN時,則選擇流裏的字段1爲開始字段,流裏的字段2爲結束字段。當爲其他比較符時,只能選擇流裏的字段1進行設置,否則會報錯。可設置多個字段進行比較,當多個字段全部匹配爲True時,才認定爲匹配成功。:一般會用唯一鍵字段作爲比較字段。

10.更新字段:指定要更新的表中的所有字段,表字段列爲目標表中所獲取的字段,流字段列爲輸入流中獲取的字段。若有新數據時,則無法將流字段中的值按行集更新到表字段中。若爲歷史數據更新時,則根據更新列選項判斷是否更新此行:集中流字段數據到表字段中。爲「Y」時更新,爲「N」時不更新。:此列不填則默認爲N。點擊右側「獲取和更新字段」按鈕可獲取目標表和輸入流中的全部字段。點擊「編輯映射」可更快捷的配置表字段和流字段的映射關係。

11.SQL按鈕:根據更新字段設置生成自動創建輸出表的SQL腳本。確認腳本無誤後,可以點擊執行按鈕,更新數據庫表。

 

文章原創首發於:https://ckettle.ccsaii.com.cn/help/StepPluginType/Update?s=csdn

更多CKettle內容,歡迎點擊上述鏈接學習。