2011-03-12 32 views
2

我被要求製作一種ETL風格的應用程序,可將信息從一個數據源傳輸到另一個數據源。目前,我已經決定要使用三層架構,但我想了解更多的最佳實踐以及本維基百科頁面上所描述的生命週期:ETL架構

http://en.wikipedia.org/wiki/Extract,_transform,_load

的四層對於ETL架構設計分層方法

* Functional layer: Core functional ETL processing (extract, transform, and load). 
    * Operational management layer: Job-stream definition and management, parameters, scheduling, monitoring, communication and alerting. 
    * Audit, balance and control (ABC) layer: Job-execution statistics, balancing and controls, rejects- and error-handling, codes management. 
    * Utility layer: Common components supporting all other layers. 

現實生活中的ETL週期

The typical real-life ETL cycle consists of the following execution steps: 

    1. Cycle initiation 
    2. Build reference data 
    3. Extract (from sources) 
    4. Validate 
    5. Transform (clean, apply business rules, check for data integrity, create aggregates or disaggregates) 
    6. Stage (load into staging tables, if used) 
    7. Audit reports (for example, on compliance with business rules. Also, in case of failure, helps to diagnose/repair) 
    8. Publish (to target tables) 
    9. Archive 
    10. Clean up 

回答

5

我不知道是什麼Ÿ你的情況或我們的要求是,但你很可能過度思考問題。

單獨的名稱是 「」 架構:

  • 提取
  • 變換
  • 負載

導出數據庫表到CSV可以被認爲是 「ET」 加載CSV是「L」。大多數ETL問題都不復雜。除此之外,你應該抓住任何已經在Java,免費和商業,圖書館和全船處理系統中使用的1或200萬ETL和ESB軟件包,並簡單地採用你最喜歡的其中之一。

獲得一塊白板,將一些氣泡與線條串起來,並將其轉爲代碼。