1、 KETL是什么?
KETL是一個開源的ETL平臺,由具有KPMG和IBM兩家公司的背景的公司開發,使用 java而構建的,其基于元數據驅動,使用XML語言作為ETL過程的描述工具。
其支持的元數據庫有oracle、mysql、postgresql、h2等,并在安裝文件中,有oracle、postgresql及h2的元數據腳本(主要是建用戶、模式、數據表、索引等sql腳本)。
2、 KETL的特性:
基于java開發,具有平臺無關的特性
使用XML作為ETL表達語言,但不僅限于此
多線程特性
元數據驅動,支持多種關系型數據庫,并提供相應的建表腳本
3、 KETL安裝
以下展示 整個KETL的安裝過程,其在fedora虛擬機上運行,基于 postgresql元數據庫運行。大家可在參考KETL 安裝手冊的基礎上,對其進行安裝,本文重點是對其中存在的問題進行了一些補充,歡迎大家交流。具體安裝步驟如下:
1、 準備所需的軟件安裝包,及所安裝部署的平臺
1) KETL安裝包(linux)
2) Postgressql安裝包(linux)
KETL提供在window平臺的管理頁面,可在其中進行流程的查看及監控,需要安裝以下幾個應用程序
3) Tomcat安裝包(linux)
4) Ketl web service war包(tomcat中)
5) Kinetic Network 安裝包(window)
以下具體步驟可以參見KETL的安裝指導,以下只給出大致過程及安裝過程中出現的問題。
2、 安裝KETL核心包
配置KETL的安裝路徑及環境變量
3、 安裝postgresql
4、 從ketl安裝文件的xml文件夾中,選取運行postgresql的元數據腳本
在此過程中,可能存在nvl函數不存在的問題,此函數為oracle的函數,需自己手動添加該函數。
5、 配置修改ketl的配置文件,指定運行的元數據服務器
6、 啟動 kelt_ctrl命令,啟動ketl服務器
此時,安裝過程結束,可以通過運行shell命令,進行elt的開發,但可視化程度不高,監控、調度較困難,為此,KETL提供了相應的監測平臺,需要繼續安裝tomcat等程序。
7、 安裝tomcat
8、 在tomcat中部署web service 程序
9、 在window平臺,安裝 Kinetic Network安裝包
10、 運行 KETL administror 程序,輸入用戶名和密碼(ketl配置文件中指定的),通過加載XML文件,實現運行單元的展示,可在此基礎上,運行該etl或通過調度方式進行運行(需注意的是,xml腳本需手工構建,Kinetic Network 程序僅僅是個展示、調度和簡單監控的平臺)。
其運行界面如下所示:
至此,整個KETL的安裝過程結束。
講的不清楚的地方,歡迎大家批評指正。
1、設置環境變量
2、設置 tomcat中的 catalina.bat (window環境下),catalina.sh(linux環境下)
實際解決方法:
以上方法,對于在Myeclipse中均為無用,需
Myeclipse->preferences->myeclipse->servers->tomcat->tomcat×.×->JDK面板中的
Optional Java VM arguments中添加:-Xmx1024M -Xms512M -XX:MaxPermSize=256m
參數理解:
-vmargs 虛擬機設置開始標志
-Xms128M 堆棧內存起始大小 128M
-Xmx512M 堆棧內存最大大小 512M
-XX:PermSize=64M 非堆棧內存 起始大小 64M
-XX:MaxPermSize=128M 非堆棧內存 最大大小 64M
在Eclipse.ini中配置,添加時 注意其格式
文章參考:http://blog.csdn.net/bjd14/archive/2009/02/16/3896153.aspx
Eclipse非堆棧內容不足的問題解決:http://www.aygfsteel.com/JetMah/archive/2007/12/07/166025.html
1、 使用 別的維護的數據表時,需檢驗其輸入的數據字典,查詢其維護的數據特征是不是嚴格按照 約定的數據字典說明來進行的。用select distinct進行查詢。
2、 多積累Exception的經驗,仔細閱讀Exception的內容,即使已經明白該異常的原因,也應該在解決問題后,將問題積累下來,以備事后的總結,如項目中的ibatis錯誤問題,區別一些微小的細節。
3、 嚴格對待字符處理與判斷、轉換等問題,防止出現NULLException的錯誤,對于自己寫的程序,最好能夠對NullException具有相應的容錯能力。
4、 對于全局變量的維護 一定要注意,最好能夠應用一定的方法,便于維護,如在 科目通用查詢中的查詢重置功能,可能就會對全局變量進行 重置,那樣會造成 部分功能無法使用。
5、 對于全局變量,在引用的方法中,一定要對其進行初始化,相當于在使用前進行重置。
6、 對于鏈表之類的數據結構,一定要注意 其初始化的位置放置將變量重復裝入,如java中的ArrayList、js中的[]等。
7、 要定期對java中的類及方法進行清理,保持代碼的可讀性,善用Eclipse中的查詢工具,對方法進行搜索,在確認的情況下,對方法類進行刪除與修改。