【記錄】幾個kettle的問題
本人由於對於kettle不太熟悉,因此有些做法可能比較蠢,不太合理,如果有更好的方式,也希望各位能夠批評指出,謝謝~
1、流程:
通過ktr中執行一條sql,檢視需要更新哪些日期,可能會出來三條資料
如圖:
如果sql獲取的日期有3條資料,那麼kjb就會迴圈執行3次!
所以,這樣是沒什麼問題的~
然後有一次,我腦殘的這樣寫:
結果只有kjb1迴圈執行多次,kjb2只執行了最後一次的日期,也就是這個迴圈,一直到kjb1執行完了才跳掉kjb2上執行,所以總會缺幾天的資料。
解決:
解決方式也很簡單,直接把kjb1裡面的東西新增到kjb2中(我現在就是這麼解決的),或者直接寫在外面(就想第一張圖一樣,寫個處理1,處理2等等),這裡記錄下這個問題,怕自己忘了,也給大家提個醒(或許只有我這麼蠢才會發生這種奇奇怪怪的坑吧~)
2、關於http-client
情況是這樣,當某一天的資料跑完,要傳送一條get請求到某個專案中做一些監控!
因此我單獨寫了ktr,ktr裡面如下圖:
通過select獲取上一個步驟傳過來的日期,並傳給接下來的http-client使用
但是有個奇怪的地方,就是我單獨寫http-client的時候,在kettle中直接測試,他根本不傳送這個請求,必須前面加上一個執行sql的模組,才會傳送請求(其他模組我隨便試了幾個,好像都不行,試到sql行,我就沒往下去想了,我想或許不需要單獨寫個ktr,直接寫在上一層裡面應該也可以,我沒試過,不知道各位大神是否有更好的方法,或者已經試過,還請多多指教)
3、關於Respository Manager
我不知道,中文該怎麼翻譯這個東西,暫且就叫他資源倉庫吧,就是下圖的東西!
是這樣的,kettle是有介面的,但是伺服器是命令列,沒有介面的,所以得在本地開發,但是本地開發檔案路徑如果有什麼D盤,E盤,這樣的路徑在伺服器(linux)上是沒有的,所以要做個資源倉庫,然後使用的路徑和linux上面部署kettle的路徑一模一樣就可以了,但是這個按鈕有點奇怪。因為開啟這個kettle的機器是一臺windows的伺服器,結果如果有A使用者開啟了kettle,就會導致B使用者再開啟kettle的時候,這個按鈕就消失了!就選不了資源倉庫,必須去讓A把kettle關了,B重新開才能顯示這個按鈕,不知道重新複製一份kettle,然後再開啟是否可以避免這個問題!