ETL工具

1.Kettle

1.多多使用獲取字段按鈕
2.表輸入中的數字字段(如:COUNT(1))會自動轉換為小數點后一位,可以在獲取變量時轉為Integer,或者to_char(count(1))
3.從表輸入如果SQL中有變量,設置環境變量時需要手動獲取變量
4.讀取環境變量需要和設置環境變量在不同的轉換中
5.JNDI配置在data-integration\simple-jndi\jdbc.properties中

1.配置例子

zzb_oracle_username/type=javax.sql.DataSource
zzb_oracle_username/driver=oracle.jdbc.driver.OracleDriver
zzb_oracle_username/url=jdbc:oracle:thin:@ip:port:ORCL
zzb_oracle_username/user=username
zzb_oracle_username/password=password

6.調試轉換時可以在執行時給變量賦值并調節日志級別
7.[添加文件到結果文件中]中需點擊增加才能添加文件
8.linux上job中使用hadoop copy files下載文件到本地,通過shell執行下載不了,通過UI可以(有可能是個bug,坑了我好幾天ToT)

1.暫時可以變通使用FTP下載對象

9.javascript的date2str格式化時HH代表24小時制hh是12小時制
10.轉換中的步驟是并行執行的(以為有箭頭相連就有順序了,細心還是好呀~)
11.etl調用存儲過程
12.轉換中的DB存儲過程中指定的存儲過程如果返回值是小數則類型需要指定為BigNumber,否則有可能會出現截位現象

13.實現循環執行

1.轉換參照1
2.作業參照2
3.說明

1.對于作業表輸入會轉換為列名,SQL腳本不可以,而轉換無此限制

14.linux安裝pentaho(被日立收購了)

1.參照1
2.參照2

15.關于執行SQL腳本組件

16.關于csv導入數據庫

16.1.可以通過計算器計算生成新列

16.1.1.計算器可以通過增加一個Set field to constant value A來設置常數,而后參見運算
16.2.通過增加常量新增列,但值為常量
16.3.通過switch/case篩選數據
16.4.通過記錄關聯(笛卡爾輸出)新增列,可以使用變量

17.調用存儲過程,傳入的參數名和順序必須和procedure一致

18.Kettle教程

1.Kettle手冊

19.Kettle下載鏈接

1.社區版

20.執行SQL語句中【變量替換】替換的是SQL中的?,不支持${}
21.設置命名參數
22.作業的sql和轉換的執行sql語句如想執行以下sql需要選擇將SQL腳本作為一條語句發送Execute as a single statement

begin
    for cur in (select 'drop table '||table_name txt
                from user_tables)
    loop
     execute immediate cur.txt;
    end loop;

end;

23.解決kettle去除空格類型設置不上
24.解決kettle抽取Excel字段添加.0

1.時間加.0可以通過設置時間格式去除

25.可以表輸入1連接表輸入2,表輸入1拼接sql在表輸入2每一行執行exec (?),輸出到Microsoft Excel Writer
26.查詢ES

1.通過restclient調用post接口查詢es
2.字符串替換

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容