J'ai été invité à créer une application de type ETL qui transfère des informations d'une source de données à une autre. À l'heure actuelle, j'ai décidé d'utiliser une architecture à trois couches mais je voudrais en savoir plus sur les meilleures pratiques, ainsi que le cycle de vie décrit sur cette page wikipedia:Architecture ETL
http://en.wikipedia.org/wiki/Extract,_transform,_load
enfants de quatre approche à plusieurs niveaux pour la conception de l'architecture 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.
cycle de vie réelle 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