|
Dans cet article nous présentons un historique des systèmes ETL. Nous y traitons les trois catégories des systèmes à savoir les ETL générateurs de code, les moteurs ETL et les ETL Intégrés à la base de données. Il y’est aussi question de présenter les différences entre les trois catégories. Générateurs de code. Au début des années 90, la majorité des organisations a développé des applications personnalisées dans le but d’extraire et transformer les données à partir des systèmes opérationnels et de les charger dans des entrepôts de données. Au milieu des années 90, les fournisseurs de solutions informatiques se rendent compte de l’opportunité et commencent à vendre des solutions conçues afin de réduire la charge du codage des processus ETL. Les premiers outils ETL fournissent un environnement de conception graphique qui permet de générer du code (3GL), comme le COBOL. Même si ces outils ont simplifié le travail de développement, ils étaient moins capables d’automatiser l’environnement d’exécution, de diminuer l’effort de la maintenance du code, ordonnancer et exécuter les processus ETL, et non plus copier et transporter les fichiers. Le moteur ou l'engin Dans le but d’automatiser les processus ETL, les fournisseurs de solutions ont commencé à offrir des solutions basées sur un moteur à partir du milieu vers la fin des années 90. Ces solutions utilisent un langage de scripting propriétaire qui s’exécute dans un moteur ou dans un serveur de bases de données. Ces moteurs utilisent des interpréteurs de langage pour exécuter les processus ETL. Les flux ETL définis par les développeurs dans l’environnement graphique de développement sont stockés dans un référentiel, à partir duquel le moteur lit l’information qui lui permettra de déterminer comment réaliser les traitements. Cette approche a le mérite d’unifier les processus ETL, cependant elle n’élimine pas nécessairement le développement spécifique et la maintenance. Pour répondre à des besoins complexes ou spécifiques, les développeurs sont le plus souvent amenés à développer des routines spécifiques que l’outil pourra utiliser à l’exécution. Ce genre de développement amène de la complexité et un besoin de maintenance parfois difficile. Une autre caractéristique importante est que tous les traitements se réalisent dans le moteur et par le moteur et non pas dans le système source (Cependant il existe des architectures hybrides). L’engin roule en général sur une machine Windows ou UNIX et établis des connexions directes avec les systèmes sources. Si le système source n’est pas relationnel, les administrateurs ETL utilise des passerelles ou créent des fichiers plats afin d’alimenter le moteur. Quelques moteurs supportent les traitements parallèles, ce qui leur permet de traiter les processus ETL en parallèle et ce en utilisant différents processeurs. D’autres nécessitent une paramétrisation manuelle de la prise en charge des traitements parallèles en utilisant des partitions par exemple ce qui n’est pas souvent très dynamique. Les générateurs de code Vs Les moteurs Même si les deux approches date depuis déjà plusieurs années, le débat sur la meilleure approche est toujours présent. Avantages des ETL générateurs de code : L’avantage le plus évident est que ce genre d’ETL permet de réaliser des processus ETL complexe par rapport à ceux permis par un moteur ETL. L’unité de traitement d’un moteur ETL est l’enregistrement ce qui limite leur capacité à gérer efficacement certains types de transformations. Par conséquence les ETL générateurs de codes éliminent le besoin de maintenir les routines complexes développés afin de répondre à des transformations que le moteur ne supporte pas. En plus les ETL générateurs de code produisent un code qui peut tourner sur différentes plateformes. Le code compilé n’est pas seulement performant, il permet aussi à l’organisation de distribuer les traitements à travers plusieurs plateformes dans le but d’optimiser la performance. De ce fait, on n’a pas besoin de machines ayant des capacités énormes afin de réaliser les traitements, du moment ou on peut distribuer le traitement sur plusieurs machines ayant des capacités acceptables. Avantages des Moteurs ETL: Les moteurs ETL centralisent les traitements dans un serveur unique. Même si cela peut devenir un goulot d’étranglement, les administrateurs peuvent configurer la machine afin d’atteindre une performance maximale. En plus et du fait que tous les traitements se réalisent dans une seule machine, les administrateurs peuvent facilement contrôler la performance du moteur et de la machine et effectuer les ajustements nécessaires !Cette approche fait disparaître le besoin de distribuer les traitements sur plusieurs machines avec tout ce que cela peut engendrer comme tâches de maintenance. En d’autre part, en réalisant les transformations dans le moteur, celui libère rapidement les ressources des systèmes sources et interfère le moindrement possible avec les opérations.Par ailleurs, même si certains ETL générateurs de code offrent des environnements visuels de développement, ces derniers sont difficilement utilisable si l’on les compare à ceux offerts par les moteurs ETL. Un environnement conviviale et facilement navigable permet de coder rapidement les processus ETL !. ETL Intégré à la BD De nos jours plusieurs fournisseurs de solutions informatiques intègrent leur outil ETL dans leur SGBD et l’offre à des prix très bas. Ce qui commence à présenter à une sérieuse options pour les compagnies afin de réduire les coûts et de simplifier leurs environnements BI. Il est certain qu’il s’agit d’une option à ne pas négliger, et plusieurs utilisateurs posent déjà la question « Pourquoi devrait-on acheter une suite ETL d'un autre fournisseur, alors que l’on peut disposer de toutes les fonctionnalités ETL, et ce gratuitement, dans la base de données de notre choix ? Quels sont les avantages de l’achat d’une suite ETL ? Pour répondre à ces questions il est important de comprendre le niveau et le type de traitement ETL que la base de données supporte. Pour ce faire, nous avons établis les 3 types de relations qui peuvent exister entre les suites ETL et les ETL intégrés à la BD : Coopération : Dans ce cas de figure, la suite ETL peut exploiter les plusieurs fonctionnalités de la BD afin de réaliser les processus ETL. Par exemple une suite ETL peut utiliser les procédures stockées pour réaliser les transformations et les agrégations dans la BD la ou c’est approprié. Ceci permet aux suites ETL d’optimiser les performances en exploitant l’optimisation, le traitement parallèle et l’évolutivité de SGDB. Complémentarité : Certains fournisseurs de BD offrent des fonctionnalités ETL qui complètent ou remplacent celles des suites ETL. Par exemple, les vues matérialisées représentent des tables « sommarisées » qui sont automatiquement mises à jour ( Refresh ) lorsque les données détaillées ont été ajoutées ou mises à jour. Ce genre de table permet d’améliorer les performances d’une façon très considérable. En plus, certains fournisseurs de suites ETL offre des commandes SQL qui permettent d’interagir avec les applications Web-services… ce qui est très important lors de la mise en place d’un DW presque temps réel. Compétitivité : La majorité de fournisseurs de fonctionnalités ETL intégrées à la BD offre un environnement de développement graphique. Ces outils offrent plusieurs fonctionnalités déjà offerts par les suites ETL et ce à un coût nul ou presque modique. Cependant, de nos jours, les suites ETL continuent de fournir des avantages importants, à savoir le nombre de systèmes sources accessibles, la puissance des transformations et la simplicité de la maintenance. Aujourd’hui, les ETL intégrés à la BD sont le plus souvent utilisés pour construire des data marts, cependant cela risque de changer, surtout que les fournisseurs de SGBD continuent d’améliorer leurs fonctionnalités ETL Article Traduit par l'auteur. Lire l'article en anglais |