<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    2008年1月28日

    ETL高級教程

        在昨天的帖子里面,我介紹了一些ETL初級的東西,不知道大家是否已經掌握,我現在介紹一些Kettle應用中,比較有幫助的一些地方。

    1,Kettle跨平臺使用。
        例如:在AIX下(AIX是IBM商用UNIX操作系統,此處在LINUX/UNIX同樣適用),運行Kettle的相關步驟如下:
        1)進入到Kettle部署的路徑
        2)執行 chmod *.sh,將所有shell文件添加可執行權限
        3)在Kettle路徑下,如果要執行transformation,就運行./pan.sh -file=?.ktr -debug=debug -log=log.log
        其中。-file說明你要運行的transformation文件所在的路徑;-debug說明日志輸出的級別;-log說明日志輸出的路徑
        4)同理,對于job的執行,請將./pan.sh更換成./kitchen.sh,其他部分說明不變。

    2,Kettle環境變量使用。
        在transformation中,Core Objects-->Job-->Set Variables,可疑設置環境變量,對于絕對路徑和相對路徑的轉換很有幫助,Kettle的跨平臺很大程度依靠他的

    3,其它功能的使用。
        其它功能包括DB存儲過程調用,流查詢,值映射,聚合記錄等,各位自行摸索,有問題可以和我聯系:)

    4,Kettle定時功能。
        在Job下的start模塊,有一個定時功能,可以每日,每周等方式進行定時,對于周期性的ETL,很有幫助。

    5,Kettle經驗之日志。
        Kettle對于日志的處理,存在一個BUG,看過上一篇的人或許已經看到了我的留言,Kettle對于日志處理有一個BUG,當日志多于49M(不是50M,也不是49M),Kettle就會自動停止,這一點我在源碼里面也沒有找到對應的設置和約束,原因還找不到,因為是日志沒有寫,所以原因也不好跟蹤還不知道具體原因。

    6,Kettle之效率提升。
        Kettle作為一款ETL工具,肯定無法避免遇到效率問題,當很大的數據源輸入的時候,就會遇到效率的問題。對此有幾個解決辦法:
        1)數據庫端創建索引。對需要進行查詢的數據庫端字段,創建索引,可以在很大程度上提升查詢的效率,最多的時候,我不創建索引,一秒鐘平均查詢4條記錄,創建索引之后,一秒鐘查詢1300條記錄。
        2)數據庫查詢和流查詢注意使用環境。因為數據庫查詢為數據輸入端輸入一條記錄,就對目標表進行一次查詢,而流查詢則是將目標表讀取到內存中,數據輸入端輸入數據時,對內從進行查詢,所以,當輸入端為大數據量,而被查詢表數據量較小(幾百條記錄),則可以使用流查詢,畢竟將目標表讀到內存中,查詢的速度會有非常大的提升(內存的讀寫速度是硬盤的幾百倍,再加上數據庫自身條件的制約,速度影響會更大)。同理,對于目標表是大數據量,還是建議使用數據庫查詢,不然的話,一下子幾百M的內存被干進去了,還是很恐怖的。
        3)謹慎使用javascript腳本,因為javascript本身效率就不高,當你使用js的時候,就要考慮你每一條記錄,就要執行一次js所需要的時間了。
        4)數據庫commit次數,一條記錄和一百條記錄commit對效率的影響肯定是不一樣的。
        5)表輸入的sql語句的寫法。有些人喜歡在表輸入的時候,將所有關聯都寫進去,要么from N多個表,要么in來in去,這樣,就要面對我在2)里面說道的問題,需要注意。
        6)注意日志輸出,例如選擇數據庫更新方式,而且日志級別是debug,那么后臺就會拼命的輸出日志,會在很大程度上影響速度,此處一定要注意。

    7,常見的調試BUG。
        Kettle提供了很多調試的解決辦法,但是對于常見的調試BUG還是能避免就避免。
        1)路徑問題。我最常遇到的問題就是在windows下調試成功,但是部署到UNIX下出問題,忘記將windows下路徑變成unix下,經常會出現問題。
        2)輸出端,數據庫插入更新選擇不對。輸出端,提供了三種數據庫輸出的辦法,數據庫輸出,插入/更新,更新,對于這三種,各有利弊,如果你知道數據庫輸出,完全是插入,如果有重復數據,則會報錯;插入更新和更新,因為更新數據時,后臺輸出很多日志,會導致效率很低。
       

        總體來說,Kettle還是一個很不錯的ETL工具,在開源軟件里面并不多見,以后有Kettle相關的問題,大家可疑相互探討。

    posted @ 2008-01-28 19:20 shenxiangl 閱讀(4360) | 評論 (6)編輯 收藏

    主站蜘蛛池模板: 免费a在线观看播放| 亚洲国产免费综合| 久久伊人久久亚洲综合| selaoban在线视频免费精品| 免费a级毛片18以上观看精品| 亚洲午夜无码久久久久小说| 久久精品免费一区二区喷潮| 亚洲国产乱码最新视频| 午夜视频免费观看| 国产成人亚洲精品播放器下载| 日日夜夜精品免费视频| 瑟瑟网站免费网站入口| 国产乱子精品免费视观看片| 亚洲国产二区三区久久| 亚洲免费观看网站| 一本色道久久88亚洲精品综合| 日本19禁啪啪无遮挡免费动图| 免费夜色污私人影院网站电影| 在线亚洲97se亚洲综合在线| 亚洲av永久中文无码精品| 日韩视频在线免费观看| 免费国产草莓视频在线观看黄| 国产亚洲精品看片在线观看 | 国产精品亚洲а∨天堂2021 | 国产亚洲精久久久久久无码AV| 99re6在线视频精品免费| 免费国产高清视频| 国产精品一区二区三区免费| 亚洲视频在线观看免费视频| 18禁超污无遮挡无码免费网站国产 | 中文在线观看永久免费| 亚洲精品永久www忘忧草| 国产国产成年年人免费看片| 亚洲一级免费视频| 免费午夜爽爽爽WWW视频十八禁| 中文字幕一区二区三区免费视频| 亚洲卡一卡2卡三卡4麻豆| 国产免费av片在线无码免费看| 你是我的城池营垒免费观看完整版| 亚洲六月丁香六月婷婷蜜芽 | 国产在线98福利播放视频免费|