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(列名,’’)。