1. 程式人生 > >【記錄】幾個kettle的問題

【記錄】幾個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,然後再開啟是否可以避免這個問題!

 

結束語:本人菜雞一隻,有什麼錯誤的地方,希望大家可以指出批評,或者大家對於我的問題,有更好的處理方式,也可以給我留言賜教!