2023-04-27 07:17 Temps de lecture : 17 min

Libérer la puissance des outils ETL pour AWS

L'acronyme ETL désigne les processus d'Extraction, Transformation et Chargement des données. Les outils ETL sont conçus pour extraire des données de diverses sources, puis les transformer dans un format intermédiaire qui soit adapté aux systèmes cibles ou aux exigences spécifiques du modèle de données. La dernière étape consiste à charger ces données transformées dans une base de données cible, un entrepôt de données, ou même un lac de données.

Il y a 15 à 20 ans, le terme ETL était encore un concept obscur, compris seulement par un cercle restreint d'initiés. À cette époque, les traitements par lots personnalisés étaient largement déployés sur des infrastructures matérielles locales.

De nombreux projets impliquaient une forme ou une autre d'ETL, même sans le savoir. À cette époque, chaque fois que je présentais une architecture impliquant des processus ETL, le terme semblait évoquer une technologie venue d'un autre monde, quelque chose d'exceptionnellement rare.

Aujourd'hui, le contexte a radicalement changé. La migration vers le cloud est devenue une priorité absolue, et les outils ETL jouent un rôle stratégique dans l'architecture de la plupart des projets.

En fin de compte, la migration vers le cloud implique de prendre des données locales et de les transformer en bases de données cloud, en veillant à ce qu'elles soient compatibles avec l'architecture cloud. C'est précisément le rôle que jouent les outils ETL.

L'évolution de l'ETL et sa pertinence actuelle

Source : aws.amazon.com

Les fonctions fondamentales de l'ETL sont restées inchangées au fil du temps.

Les outils ETL extraient des données à partir de sources variées, qu'il s'agisse de bases de données, de fichiers plats, de services web ou, plus récemment, d'applications basées sur le cloud.

Auparavant, cela signifiait souvent traiter des fichiers provenant du système de fichiers Unix, avec un prétraitement, un traitement et un post-traitement.

On retrouvait alors un modèle récurrent dans la nomenclature des répertoires :

  • Entrée
  • Sortie
  • Erreur
  • Archive

Ces répertoires contenaient souvent une structure de sous-répertoires supplémentaire, basée principalement sur les dates.

Cette approche était la norme pour gérer les données entrantes et les préparer pour leur chargement dans une base de données.

Aujourd'hui, les systèmes de fichiers Unix, tels que nous les connaissions, ont largement disparu. De même, l'utilisation de fichiers comme format d'entrée est de moins en moins systématique. Les API (interfaces de programmation d'applications) sont désormais privilégiées, rendant l'utilisation de fichiers optionnelle.

Les données peuvent désormais être stockées en mémoire cache, même si elles conservent un format structuré. Le format JSON ou XML est souvent utilisé, mais les fichiers CSV (valeurs séparées par des virgules) restent une option dans certains cas.

C'est à vous de définir le format d'entrée. De même, la création d'un historique des fichiers d'entrée est une décision qui vous appartient et n'est plus une étape standard.

Transformation

Les outils ETL transforment les données extraites pour qu'elles soient prêtes à l'analyse. Cela comprend le nettoyage, la validation, l'enrichissement et l'agrégation des données.

Dans le passé, les données passaient par une logique personnalisée complexe, impliquant des étapes procédurales de préparation des données en Pro-C ou PL/SQL, de transformation et de stockage selon le schéma cible. Cette approche était aussi obligatoire que la séparation des fichiers entrants en sous-répertoires, en fonction de l'étape de traitement du fichier.

Pourquoi cette pratique était-elle à la fois si naturelle et si fondamentalement erronée ? En transformant directement les données entrantes sans stockage permanent, on perdait l'avantage majeur des données brutes : leur immuabilité. Les projets ont souvent jeté cela sans possibilité de reconstitution.

Aujourd'hui, plus vous évitez de transformations sur les données brutes, mieux c'est, en particulier pour le premier stockage des données. La prochaine étape peut impliquer des modifications importantes et une transformation du modèle de données. Cependant, il est crucial de conserver une copie des données brutes dans une structure aussi inchangée et atomique que possible. C'est un changement majeur par rapport à l'époque des systèmes locaux.

Chargement

Les outils ETL chargent les données transformées dans une base de données ou un entrepôt de données cible. Cela inclut la création des tables, la définition des relations et le chargement des données dans les champs appropriés.

L'étape de chargement est probablement la seule qui n'a pas connu de changements majeurs. La seule différence réside dans la base de données cible. Alors qu'Oracle était auparavant la norme, elle peut désormais être remplacée par n'importe quel service disponible dans le cloud AWS.

L'ETL dans l'environnement cloud actuel

Si vous prévoyez de migrer vos données locales vers le cloud (AWS), l'utilisation d'un outil ETL est indispensable. C'est un élément essentiel de l'architecture cloud. Si cette étape est mal gérée, cela aura des répercussions sur le reste du processus.

Bien qu'il existe de nombreuses options disponibles, je me concentrerai sur trois outils avec lesquels j'ai une expérience personnelle significative :

  • Service de migration de données (DMS) – un service natif d'AWS.
  • Informatica ETL – un acteur majeur dans le monde de l'ETL, ayant réussi sa transition des systèmes locaux vers le cloud.
  • Matillion pour AWS – un acteur relativement nouveau dans le cloud, non natif d'AWS, mais conçu pour le cloud.

AWS DMS comme outil ETL

Source : aws.amazon.com

AWS Data Migration Service (DMS) est un service entièrement géré qui facilite la migration des données de différentes sources vers AWS. Il prend en charge divers scénarios de migration :

  • Migrations homogènes (par exemple, d'Oracle vers Amazon RDS pour Oracle).
  • Migrations hétérogènes (par exemple, d'Oracle vers Amazon Aurora).

DMS permet de migrer des données à partir de diverses sources, telles que des bases de données, des entrepôts de données et des applications SaaS, vers des cibles telles qu'Amazon S3, Amazon Redshift et Amazon RDS.

AWS considère DMS comme l'outil idéal pour transférer des données de n'importe quelle source de base de données vers des environnements cloud natifs. Bien que la fonction principale de DMS soit la copie de données vers le cloud, il effectue également des transformations pendant le processus.

Vous pouvez définir des tâches DMS au format JSON pour automatiser différentes tâches de transformation lors de la copie des données de la source vers la cible :

  • Fusionner plusieurs tables ou colonnes source en une seule valeur.
  • Diviser une valeur source en plusieurs champs cibles.
  • Remplacer les données source par une autre valeur cible.
  • Supprimer les données inutiles ou créer des données en fonction du contexte d'entrée.

Vous pouvez donc utiliser DMS comme outil ETL. Bien qu'il ne soit pas aussi sophistiqué que d'autres options, il peut convenir si l'objectif est bien défini.

Facteur d'adéquation

Bien que DMS propose certaines fonctionnalités d'ETL, il est principalement conçu pour les scénarios de migration de données. Voici quelques cas où il peut être préférable d'utiliser DMS plutôt que des outils ETL comme Informatica ou Matillion :

  • DMS est adapté aux migrations homogènes, où les bases de données source et cible sont identiques. Cela peut être un avantage si l'objectif est de migrer des données entre des bases de données du même type, comme d'Oracle à Oracle ou de MySQL à MySQL.
  • DMS offre des fonctionnalités de transformation et de personnalisation des données, bien qu'elles soient limitées. Cela peut être suffisant pour des besoins de transformation de données simples.
  • Les exigences en matière de qualité des données et de gouvernance sont généralement limitées avec DMS, mais elles peuvent être améliorées lors des phases ultérieures du projet avec des outils plus spécifiques. Si la partie ETL doit être simple, DMS est un excellent choix.
  • DMS peut être une option plus économique pour les organisations avec des budgets restreints. Son modèle de tarification est plus simple que celui d'Informatica ou Matillion, ce qui facilite la gestion des coûts.
  • Matillion ETL

    Source : matillion.com

    Matillion est une solution native du cloud qui permet d'intégrer des données provenant de diverses sources, telles que des bases de données, des applications SaaS et des systèmes de fichiers. Il offre une interface visuelle pour créer des pipelines ETL et prend en charge divers services AWS, tels qu'Amazon S3, Amazon Redshift et Amazon RDS.

    Matillion est un outil facile à utiliser, adapté aux organisations qui débutent avec les outils ETL ou qui ont des besoins d'intégration de données moins complexes.

    Cependant, Matillion est une solution à personnaliser. Vous devez coder sur mesure les fonctionnalités, car il ne fournit pas de solutions prêtes à l'emploi, même si les capacités techniques sont là.

    Matillion est souvent considéré comme un outil ELT plutôt qu'ETL, ce qui signifie qu'il est plus adapté à effectuer le chargement des données avant leur transformation.

    Facteur d'adéquation

    En d'autres termes, Matillion est plus efficace pour transformer les données une fois qu'elles sont déjà stockées dans la base de données. Cela est dû à la nécessité de créer des scripts personnalisés. L'efficacité dépendra donc de l'efficacité du code que vous aurez écrit.

    Il est donc plus logique de laisser la transformation de données à la base de données cible et de confier à Matillion une simple tâche de chargement 1:1, ce qui réduit les risques de problèmes liés au code personnalisé.

    Bien que Matillion offre diverses fonctionnalités pour l'intégration de données, il peut ne pas fournir le même niveau de qualité et de gouvernance des données que d'autres outils ETL.

    Matillion peut s'adapter aux besoins de l'organisation, mais il peut ne pas être aussi efficace pour gérer de très gros volumes de données. Le traitement parallèle est limité. À cet égard, Informatica est un choix plus judicieux car il est plus avancé et riche en fonctionnalités.

    Néanmoins, pour de nombreuses organisations, Matillion peut fournir une évolutivité et des capacités de traitement parallèle suffisantes.

    Informatica ETL

    Source : informatica.com

    Informatica pour AWS est un outil ETL basé sur le cloud conçu pour faciliter l'intégration et la gestion des données provenant de diverses sources et cibles dans AWS. Il s'agit d'un service entièrement géré qui fournit une gamme de fonctionnalités pour l'intégration, le profilage, la qualité et la gouvernance des données.

    Voici quelques caractéristiques clés d'Informatica pour AWS :

  • Informatica est conçu pour s'adapter aux besoins. Il peut gérer de gros volumes de données et intégrer des données provenant de diverses sources, y compris des bases de données, des entrepôts de données et des applications SaaS.
  • Informatica offre des fonctionnalités de sécurité robustes, telles que le chiffrement, les contrôles d'accès et les pistes d'audit. Il est conforme à diverses normes de l'industrie, notamment HIPAA, PCI DSS et SOC 2.
  • Informatica offre une interface visuelle pour créer des pipelines ETL, ce qui permet aux utilisateurs de créer et de gérer facilement des workflows d'intégration de données. Il fournit des connecteurs et des modèles prédéfinis pour faciliter la connexion aux systèmes.
  • Informatica s'intègre aux services AWS, tels qu'Amazon S3, Amazon Redshift et Amazon RDS, ce qui facilite l'intégration des données dans différents services AWS.
  • Facteur d'adéquation

    Informatica est l'outil ETL le plus riche en fonctionnalités de la liste. Cependant, il peut être plus coûteux et complexe à utiliser que d'autres outils ETL disponibles sur AWS.

    Le coût d'Informatica peut être élevé, en particulier pour les PME. Son modèle de tarification est basé sur l'utilisation, ce qui peut entraîner des dépenses importantes.

    Il peut également être complexe à installer et à configurer, ce qui peut nécessiter un investissement de temps et de ressources.

    Informatica a une courbe d'apprentissage complexe, ce qui peut être un inconvénient pour ceux qui ont besoin d'intégrer rapidement des données ou qui ont des ressources limitées à consacrer à la formation.

    De plus, Informatica peut être moins efficace pour intégrer des données provenant de sources non AWS, ce qui pourrait faire de DMS ou Matillion de meilleures options.

    Enfin, Informatica est un système fermé avec peu de possibilités de personnalisation. Il faut se contenter de la configuration fournie, ce qui limite la flexibilité.

    Derniers mots

    Il n'existe pas de solution unique, en particulier dans le domaine des outils ETL sur AWS.

    Informatica, la solution la plus complexe, la plus riche en fonctionnalités et la plus coûteuse, est pertinente si :

    • Le projet est important et vous êtes sûr que la solution et les sources de données seront compatibles avec Informatica.
    • Vous avez une équipe de développeurs et de configureurs Informatica compétents.
    • Vous êtes disposé à payer pour le support technique offert par Informatica.

    Si ces conditions ne sont pas remplies, Matillion peut être une bonne alternative :

    • Si les besoins du projet ne sont pas complexes.
    • Si la flexibilité est essentielle, et que vous avez besoin d'étapes de traitement hautement personnalisées.
    • Si vous êtes prêt à créer la plupart des fonctionnalités à partir de zéro avec votre équipe.

    Pour les projets plus simples, DMS pour AWS est un choix pertinent en tant que service natif.

    Ensuite, explorez les outils de transformation de données pour mieux gérer vos informations.

    Auteur
    France

    Rédacteur tech, guides pratiques et astuces numériques.