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
解決方案:
自己寫一個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工具都不是很熟,所以如果出現錯誤,希望大家更正。