Kettle 事務、轉換內順序、excel模版、使用踩坑


kettle中轉換和作業的執行順序:

    1、一個作業內的轉換,是順序執行的。
    2、一個轉換內的步驟是並行執行的。
    3、作業內不支持事務,轉換內支持事務。
根據業務需要,通常需要在轉換內順序執行,小技巧如下:
    1、執行SQL是優先於所有步驟。
    2、使用“阻塞數據直到步驟都完成”,確保其他數據步驟都完成再進行下一步驟。
事務:
    1、設置轉換只使用一個事務。轉換設置-->夾項-->使用唯一連接。
    2、設置轉換內的表插入等數據庫的操作不進行批量提交。"提交記錄數量"-->0
 
 
 
 
excel  輸出使用模版踩坑
首先 kettle 有兩個excel控件,“Excel輸出 ”    和  "Microsoft Excel 輸出"
Excel輸出 這個控件比較 簡單,支持的功能也少,注意,使用模版時,貌似不支持 xlsx ,否則會報錯,xls的模版必須是創建時就是xls格式的,不能是 xlsx 后綴修改的
配置如下:
  
 
 
1、不輸出頭 使用模版中的
2、編碼 自行選擇,
3、工作表名稱,必須和模版中一樣,
4、追加excel 模版,
5、模版中有ABCD 4個標簽頁,如果第一個輸出的是C的內容,會直接輸出到A上,
"Microsoft Excel 輸出"  配置如下,
 
 
1、如果文件已存在,這個選項要好好理解,如果多個轉換輸出到一個excel的多個sheet頁簽中,選"使用現有文件輸出",
2、工作表名要和模版中 你要輸出的 sheet的頁簽的名字保持一致
3、如果輸出文件中已存在工作表,因為要使用模版,所以肯定要選擇"輸出至已存在的工作表中"
4、使用模版創建新文件
5、模版文件路徑
6、開始輸出自單元格   即模版表頭下一行最左測的單元格的位置
7、輸出表頭,因為使用模版所以 這個不能勾選
8、其他自行摸索
 
 
 郵件發送多個附件:
1、一共五個附件,三個收件人,其中一個收三個附件,附件是之前的轉換生成的,名稱加日期,每天一份,比如fuJian-2019-11-19.xls,fuJian-2019-11-18.xls,當天郵件只能發當天的附件,
2、kettle的郵件空間里,選附件是可以選目錄的,同時可以加通配符,問題在於 通配符 添加系統變量沒有測試成功,日期是變量,輸出excel 的目錄有其他地區,其他日期的文件,所以發送三個附件那個郵件,要過濾地區及該地區的不同日期,
3、通配符 添加系統變量沒有測試成功,只能想其他解決方案,
  3.1、在輸出目錄新建子目錄,A
  3.2、三個附件一起發的,三個附件都輸出到A目錄,
  3.3、job里有刪除多個文件的控件,每次job執行時,首先刪掉A目錄下的所有文件,然后該job的后續 轉換會生成當天最新的附件excle文件,發送郵件時,發送A目錄下所有的文件
  3.4、避免過期的excle大量堆積
 
 
有個報錯,記錄下:
.../kettle/data-integration/spoon.sh:行226: /opt/java/jdk1.8.0_171/bin//opt/java/jdk1.8.0_171/bin/java: 沒有那個文件或目錄
 這個就是jdk安裝目錄的問題,本來好好的,不知道為啥叉劈了
 
關於表輸入:
使用如下圖:
 
這兩天搞數據盤點,又要用到這個表輸入時,有點問題,
步驟:首先讀取excel 然后用javascript做個變量轉換,然后用表輸入查詢數據,最后把查詢到的數據輸出到excel,最終輸出excel里內容也包含部分最初的那個excel里的內容
問題出在javascript和表輸入中間,如果表輸入里的 “從步驟插入數據” 不選,結果就啥也查不到,如果選了就報錯:無效的索引列
表輸入里的sql需要用到javascript里定義的一個變量
 
 
 
#淡定戒驕戒躁淡定#


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM