行轉列
並進行欄位的新增(任務圖如下)
最終實現效果圖:
元件的使用:
說明:
任務1:使用滴滴.csv和攜程(xc.xlsx)做演示
任務2:使用京東(jd1.xlsx)做演示
流程:
檔案輸出,需要執行對應的路徑,通過萬用字元進行匹配資料夾下的所有檔案;.*\.xlsx
這裡需要注意,對於工作表來說,可用於兩個場景:
直接以該元件圖展示來說;
首先需要連線資料庫(可參考網上文章),選擇目標表,這裡有兩種方式:
最後執行可看到效果;
獲取檔名匹配類似與execl輸入元件,在預覽資料的時候需要注意的filename引數,後續用到。
首先通過單一的CSV檔案輸入,獲得對應檔案中的欄位:
然後連線到獲取檔名,通過filename引數,來接收前面的檔名;
最後表輸出與攜程例子中的操作相同,不表。
流程圖:
如果execl中存在兩個標題,將標題一進行行轉列
並進行欄位的新增。
在獲取檔名中得到檔名引數(filename),需要傳遞到轉換中:
Execl輸入元件中的設定引數;
為了實現將第一個標題下的資料讀取出來並進行行轉列。我們在輸入元件中的內容部分,設定為限制1
:表示唯讀取標題欄位下的第一行。(如下圖)
根據列拆分多行進行轉換:選擇前面的欄位,並設定向後傳遞的欄位名字。
Execl2輸入元件需要注意的點是sheet資料讀取的起始位置:
最後對資料進行組合和落庫:記錄關聯直接拖出來用就可。
update xc set vpkid=CONCAT(DATE_FORMAT(SYSDATE(),'%Y%m%d'), 'xc'),update_time=SYSDATE(),create_time=SYSDATE();
最後對入庫資料的各表欄位進行更新:
./pan.sh -file=xxx.ktr
./kitchen.sh -file=xxxx.kjb
kettle基於Java開發,可設定JVM記憶體大小:
起始記憶體大小:Xms
最大記憶體大小:Xmx
永久代大小:MaxpermSize
if "%PENTAHO_DI_JAVA_OPTIONS%"=="" set PENTAHO_DI_JAVA_OPTIONS="-Xms7680m" "-Xmx7680m" "-XX:MaxPermSize=3840m"