1. 程式人生 > >ETl的工具(Kettle)和AIX伺服器定時任務總結

ETl的工具(Kettle)和AIX伺服器定時任務總結

    本人最近在搞一個專案的時候,用到ETl的工具(Kettle)來完成取數工作,在其中碰到一些問題,現在做個記錄。

      環境描述:我們使用的系統環境:AIX伺服器+DB2資料庫+Tmocat應用伺服器;需要從另外一臺AIX的伺服器上的DB2資料庫定時讀取資料。

使用中的問題:

      一、在Windows2003伺服器上執行轉換時提示DB2驅動版本不對

      解決方案:將 Windows2003伺服器DB2安裝路徑下的java目錄下的db2jcc.jar複製到Kettle目錄下的lib目錄下;

      二、在AIX伺服器上執行轉換時提示DB2驅動版本不對

      解決方案:將AIX伺服器DB2安裝路徑下的java目錄(我的伺服器路徑是:/db2fs/IBM/db2/V9.5/java)下的db2jcc.jar複製到Kettle目錄下的libext\JDBC目錄下;

      三、在AIX上執行轉換任務

      由於對kettle的命令列不熟,所以我是先在Windows2003伺服器上定義好轉換任務,然後在傳到AIX伺服器上用Pan.sh 執行,執行方法如下:

      ./pan.sh -file=11.ktr -debug=debug -log=log.log(11.ktr是轉換檔案,log.log是日誌檔案)

      四、將kettle工具轉換提交到AIX定時任務定時執行

      直接將上述語句寫到伺服器的cron檔案(root使用者應該是/var/spool/cron/crontabs/root)中,執行時提示“Exception in thread "main" java.lang.UnsupportedClassVersionError

”,經過一番搜尋,發現應該是Jdk版本有問題,AIX的定時任務用的是jdk5,而kettle用的是jdk6.

      解決方案:

      自己寫一個sh檔案,在該檔案中設定jdk的版本,sh檔案如下(僅供參考)

      export JAVA_HOME=/usr/java6
      export PATH=$JAVA_HOME/bin:$PATH

     echo $JAVA_HOME
     cd /usr/pdi-ce-4.2.1-stable
      ./pan.sh -file=11.ktr -debug=debug -log=log.log

備註:本人對AIx伺服器和kettle工具都不是很熟,所以如果出現錯誤,希望大家更正。