KETTLE使用過程中幾個注意事項

1.進行字段選擇時,在彈出窗口的第 1、3個標籤中儘量填寫所有字段,以免出現找不到字段的問題。

2.兩個數據流 JOIN前必須先進行排序操作。

3.數據流計算器或 JOIN 操作流出,並將流入另一JOIN 操作之前,需要插入一個字段選擇插件,否則會報錯。

4.表輸入插件中,填寫查詢語句時,語句末尾不能加分號。

5.SQL腳本插件中,填寫SQL語句時,語句末尾必須加分號,否則不會執行。

6.引用變量時,儘量採用變量名的方式引用,以免出現問題。此種引用方式還可以在變量內容後接其他字符串,例如:{key}_20200201 會被解析爲:value_20200201。

7.job中執行多個trans,如何確定trans執行的先後順序?

8.如果元數據中有空值,但是目標數據中不希望出現空值:
直接設置目標數據庫各列的默認值爲空字符串是不行的,因爲只有不對某列複製纔會填入默認值,而NULL是有賦值的,只是賦值的是NULL.
在表輸入中將NULL值替換爲空字符串也是不行的,因爲KETTLE默認在數據流傳輸過程中會將空字符串轉換爲NULL進行傳輸,因此,到了寫入目標表時,傳入的是NULL值.
因此,正確的解決方案是:
首先,在表輸入中將NULL替換爲空字符串;
其次,將KETTLE的配置文件中配置以下內容:kettle_emppty_string_differs_from_null =y
其配置文件的位置:/opt/kettle/data-integration/.kettle/kettle.properties
這樣,表輸入中原來的NULL會被 ’ ’ 替換,而且在數據流傳輸中不會變回NULL,插入目標表中即爲空字符串。
PS:hive 中如何用空字符串替換NULL值?
coalsece函數,返回列表中的第一個非空元素,如果元素都爲空則返回NULL,採用coalesce(列名,’’)。

發佈了46 篇原創文章 · 獲贊 3 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章