使用kettle批量下載檔案,kettle批量下載檔案

來源:互聯網
上載者:User

使用kettle批量下載檔案,kettle批量下載檔案

使用kettle批量下載檔案

      最新有項目中需要批量下載檔案並把結果匯入到資料中,通過一些實驗測試,kettle確實可以勝任。問題是關鍵是如果通過http批量下載檔案,本文將詳細說明,假設你已經瞭解了kettle的基本知識,如果需要可以查看我的系列入門教程。

      本文的範例程式碼可以在這裡下載.

主作業

      kettle的轉換中沒有通過http下載檔案的步驟,但是job的有對應的步驟,所以在主job調用子job(Download.kjb),需要下載的檔案清單通過一個轉換提供。

 

檔案清單轉換

      這裡我僅僅使用資料表步驟提供五條記錄檔案,有兩個欄位分別為“filename”和“url”(url的內容根據你的業務需要,這裡使用一個樣本供測試),為了讓這些資料在download.kjb中可以訪問,後面使用了job類別中“copy rows to result”步驟。

 

 

下載的作業

      download作業只下載一個單獨的檔案,但是我們需要針對檔案清單中每條記錄都要運行。這裡需要在作業的進階設定,選中“Execute for every input row”,實現迴圈調用。

      在http步驟中,我們需要設定filename和url,這兩個欄位內容來自輸入後,我們使用變數${URL}和${FILENAME},為了使這些資料和變數關係對應,我們需要做兩件事情。

1)     需要聲明“URL”和“FILENAME”具名引數

在作業的屬性設定,具名引數選項卡中設定。


2)     選要指定欄位和變數(具名引數)的映射關係

在主作業中雙擊download作業步驟,然後再具名引數選項中配置映射關係。同時在主作業中定義了PATH變數,確定檔案儲存的位置,http步驟中使用該變數確定檔案位置及名稱。

 

結論

      運行完成後,可以在c:\temp目錄中可以成功下載的檔案,如果把檔案的結果讀入到資料庫,就不是難事了。有需要通過其他的文章講解。



我建立了多個kettle指令檔,怎批量執行這些指令碼(若是一個一個的執行,比較麻煩) 指點

for i in $(ls *kettle*); do
source $i
done
 
有kettle這個軟體怎使用

可以重新啟動kettle.exe檔案或者spoon.bat檔案!在重新啟動前,要刪除兩個檔案,在C:\Documents and Settings\登陸使用者明 目錄下,分別是".kettle"和".pentaho"!這兩個檔案記錄了kettle使用過程中的一些配置資訊!
 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.