AWS Glue est un service de traitement de données entièrement géré et évolutif qui permet aux utilisateurs d’utiliser des workflows ETL (Extract, Transform, Load) sans serveur, pour ainsi s’affranchir de toute la partie gestion de l’infrastructure sous-jacente.
Rappel concernant les processus ETL
L’ETL est un processus qui a pour but de garantir la qualité et la disponibilité des données. Il est divisé en 3 phases :
- Extraction : récupération des données depuis des sources diverses
- Transformation : nettoyage, normalisation, modification des données pour les rendre exploitables
- Chargement : charge les données transformées dans un environnement final, tel qu’une base de données ou un data warehouse.
Comment se structure AWS Glue ?
Les jobs de Glue permettent d’accomplir le nécessaire requis pour l’extraction, la transformation et le chargement des données d’une source vers une destination. Le diagramme suivant indique l’architecture de AWS Glue, et nous décrivons ensuite les différents éléments :
- Data Catalog (catalogue de données) : il s’agit du stockage de métadonnées permanent dans AWS Glue. Il contient entre autres les définitions de tables, les définitions de jobs, etc.
- Base de données : c’est un ensemble de définition de tables de catalogues de données associées.
- Crawler : c’est un programme qui se connecte à une source de données pour en extraire ses données et déterminer leur structure. Il utilise ensuite ces informations pour créer des définitions de table dans le catalogue de données.
- Connexion : cette connexion AWS Glue est le catalogue de données qui contient les informations nécessaires pour se connecter à un certain stockage de données
- Classificateur : il détermine le schéma de données. AWS Glue fournit des classificateurs pour les types de fichiers les plus courants tels que CSV, Json, etc.
- Magasin de données : référentiel pour le stockage des données de manière persistante.
- Data source : il s’agit du point d’entrée utilisé pour le process de transformation
- Data target : il s’agit de la cible, où seront écrite les données une fois transformées
- Job : logique métier requise pour les travaux d’ETL et qui est composé des différents éléments nécessaires.
Les fonctionnalités de AWS Glue
AWS Glue vous permet une gestion complète de vos processus ETL par le biais de différentes fonctionnalités, dont voici les principales et les plus importantes :
Collecte et intégration de données | AWS Glue permet de collecter et d'intégrer des données provenant de différentes sources, telles que des bases de données, des fichiers plats, des données en streaming, etc. | |
---|---|---|
Transformation des données | Offre un ensemble d'outils pour transformer les données, y compris des fonctions de traitement de données, des opérations de filtrage, de tri, de jointure, etc. | |
Catalogue de données | Permet de créer et de gérer un catalogue de métadonnées qui facilite la découverte, la recherche et l'analyse des données. | |
Exécution et planification de tâches ETL | AWS Glue permet de planifier et d'exécuter des tâches ETL pour traiter des données à grande échelle. | |
Automatisation du workflow | Offre des fonctionnalités d'automatisation de flux de travail pour orchestrer des tâches complexes impliquant plusieurs étapes. | |
Jobs personnalisés | Permet de créer des jobs personnalisés pour traiter des cas d'utilisation spécifiques. Les jobs personnalisés peuvent être créés à l'aide de langages de programmation courants tels que Python et Scala. | |
Gestion des erreurs | Permet de gérer les erreurs rencontrées lors du traitement des données, telles que les erreurs de syntaxe ou les problèmes de connectivité. | |
Surveillance | AWS Glue offre des fonctionnalités de monitoring pour suivre les performances des jobs ETL, détecter les erreurs et les problèmes de performance, et optimiser l'utilisation des ressources. |
Avantages et inconvénients d’AWS Glue
Avant de se lancer dans l’utilisation et l’apprentissage d’AWS Glue, il est important de considérer ses avantages mais également ses inconvénients :
Avantages | Inconvénients |
---|---|
Gestion de données à grande échelle | Coûts élevés pour les petites entreprises, ou les projets à petite envergure, malgré le fait que le service soit entièrement géré |
Rapidité dans le traitement des données | Courbe d’apprentissage très importante |
Intégration avec d’autres services AWS | Personnalisations des workflows limitées |
Supporte plusieurs langages de programmation | Nécessite une expertise en data engineering |
Plateforme entièrement gérée | |
Catalogue de métadonnées intégré |
Conclusion
Comme vous l’avez certainement compris, AWS Glue est un service entièrement géré par Amazon AWS de gestion des workflows ETL. Sa grande puissance et flexibilité nécessite néanmoins une courbe d’apprentissage et un investissement très important afin de le mettre en place afin qu’il réponde aux besoins requis.