Accéder au contenu principal

Premiers pas avec AWS Glue : guide pas à pas

Découvrez comment configurer AWS Glue, créer un crawler, cataloguer vos données et exécuter des jobs pour convertir des fichiers CSV en Parquet afin d’optimiser vos processus ETL.
Actualisé 19 sept. 2026  · 10 min lire

Explorer avec l’IA

ChatGPTClaudePerplexity

Les solutions cloud-native gagnent du terrain dans tous les secteurs grâce à leur sécurité, leur flexibilité et leur scalabilité. Parmi elles, AWS Glue simplifie le traitement des données — un pilier pour prendre des décisions éclairées et optimiser les opérations.

Dans ce tutoriel, nous allons utiliser AWS Glue pour illustrer une tâche ETL (Extract, Transform, Load) courante : convertir des fichiers CSV stockés dans un bucket S3 en format Parquet. L’usage de Parquet améliore l’efficacité du traitement et les performances des requêtes.

Nous présenterons AWS Glue, ses fonctionnalités clés et les avantages de l’automatisation de la préparation des données. Nous vous guiderons ensuite pour configurer votre compte AWS, créer des rôles IAM et définir l’accès à votre bucket S3. Enfin, nous verrons comment créer un crawler Glue pour analyser vos jeux de données et générer des fichiers Parquet.

Qu’est-ce qu’AWS Glue ?

Avant d’aborder la pratique, commençons par comprendre ce qu’est AWS Glue et pourquoi il est utile pour les tâches de traitement des données.

AWS Glue est un service ETL entièrement managé qui facilite la préparation et le chargement des données pour l’analyse. Il propose un environnement serverless pour créer, exécuter et superviser des jobs ETL. AWS Glue découvre et profile automatiquement vos données via le AWS Glue Data Catalog, recommande et génère du code ETL, et fournit un ordonnanceur flexible pour gérer les dépendances, le suivi des jobs et les relances.

Pourquoi utiliser AWS Glue ?

Comprendre les bénéfices d’AWS Glue permet d’en mesurer la valeur dans un flux de traitement des données. Voici plusieurs raisons convaincantes de l’utiliser, illustrées ci-dessous :

Why choose AWS Glue

Pourquoi choisir AWS Glue ? Image de l’auteur

  • Serverless : aucun serveur à approvisionner ni à gérer, ce qui réduit la charge opérationnelle.
  • Génération de code automatique : AWS Glue peut générer automatiquement du code Python ou Scala pour vos jobs ETL.
  • Planification et supervision intégrées : facilite la planification et le suivi de l’exécution des jobs ETL.
  • Découverte et catalogage des données : les crawlers AWS Glue découvrent, cataloguent et préparent automatiquement les données pour l’analyse.
  • Intégration avec d’autres services AWS : s’intègre parfaitement avec Amazon S3, Amazon RDS, et Amazon Redshift.
  • Économique : vous ne payez que les ressources consommées pendant l’exécution des jobs ETL.

Devenez ingénieur en données

Devenez un ingénieur de données grâce à l'apprentissage avancé de Python
Commencez À Apprendre Gratuitement

AWS Glue : guide pas à pas

Passons à la pratique : voyons comment utiliser Glue pour une tâche de traitement très courante : convertir des fichiers CSV en Parquet.

Si vous découvrez AWS, commencez par créer un compte puis connectez-vous à la console de gestion.

  • Allez sur AWS et inscrivez-vous.
  • Une fois le compte créé, connectez-vous à la console de gestion AWS.

AWS Identity and Access Management (IAM) permet de gérer en toute sécurité l’accès aux services et ressources AWS.

Nous devons créer un rôle IAM pour autoriser Glue à accéder aux services nécessaires. Dans notre cas, le service principal est S3, qui héberge nos fichiers CSV.

Le tutoriel AWS Storage est une excellente ressource pour les nouveaux utilisateurs souhaitant mieux comprendre des systèmes comme S3. 

Les principales étapes de création du rôle IAM depuis la console sont décrites ci-dessous :

  • Accédez au service IAM.
  • Cliquez sur « Roles » dans le menu de gauche, puis sur « Create role ».
  • Sous « Choose a use case », sélectionnez « Glue » et cliquez sur « Next: Permissions ».
  • Recherchez et sélectionnez les politiques suivantes :
    • AWSGlueServiceRole
    • AmazonS3FullAccess (Remarque : en production, privilégiez une politique plus restrictive).
  • Nommez votre rôle (par ex. « GlueETLRole ») et, si vous le souhaitez, ajoutez une description (facultatif). Enfin, cliquez sur « Create role ».

Steps to create an IAM role in the AWS console

Étapes de création d’un rôle IAM dans la console AWS. Image de l’auteur

Le guide complet d’AWS IAM détaille les étapes pour sécuriser vos environnements AWS, gérer les accès via utilisateurs, groupes et rôles, et appliquer les meilleures pratiques pour une sécurité robuste.

Nous allons stocker les fichiers CSV en entrée et les fichiers Parquet en sortie sur Amazon S3.

Les données d’exemple ont été créées à des fins d’illustration et sont disponibles dans le dépôt GitHub de l’auteur :

  • athletes.csv : contient des informations sur les athlètes (ID, nom, pays, sport, âge).
  • events.csv : liste différents événements (ID d’événement, sport, nom, date, lieu).
  • medals.csv : enregistre les médailles en reliant événements et athlètes aux distinctions remportées.

Nous pouvons maintenant configurer notre bucket S3 comme suit :

  • Accédez au service S3 dans la console de gestion AWS.
  • Cliquez sur « Create bucket » et donnez-lui un nom unique (par ex. « my-glue-csv-etl-bucket »).
  • Laissez les paramètres par défaut pour simplifier et créez le bucket.
  • Créez deux dossiers dans le bucket : « input » et « output ».

AWS S3 bucket and folder creations

Flux de création du bucket et des dossiers S3. Image de l’auteur 

Après avoir créé les deux dossiers, le contenu de votre bucket doit ressembler à ceci :

View of folders inside an S3 bucket

Aperçu des dossiers à l’intérieur du bucket S3. Image de l’auteur

Nous pouvons maintenant téléverser ces fichiers CSV d’entrée dans le dossier « input ».

Files in an S3 bucket

Contenu du dossier « input » du bucket S3. Image de l’auteur

Un crawler Glue permet de découvrir et cataloguer nos données automatiquement. Cette section explique comment créer un crawler qui scanne tous les fichiers CSV en entrée.

Les principales étapes sont les suivantes :

  • Accédez au service AWS Glue dans la console de gestion AWS.
  • Dans le menu de gauche, sous « Data catalog », cliquez sur « Crawlers ».
  • Cliquez sur « Create crawler ».
  • Nommez votre crawler (par ex. « CSV-to-Parquet-Crawler ») et laissez la description vide, puis cliquez sur « Next ».
  • Indiquez « S3 » comme source de données en choisissant « Add data source » comme type de source du crawler, puis cliquez sur « Next ».

AWS Glue crawler creation flow in the console

Flux de création d’un crawler AWS Glue dans la console — partie 1. Image de l’auteur

  • Choisissez « S3 » comme data store et indiquez le chemin de votre bucket S3 via « Browse S3 ». Cliquez sur « Next ».
  • Sélectionnez « Crawl all sub-folders ».
  • Sélectionnez « Add an S3 data source », puis cliquez sur « Next ».
  • Avant de continuer, vérifiez le type de données « S3 », puis « Next ».

AWS Glue crawler creation flow in the console

Flux de création d’un crawler AWS Glue dans la console — partie 2. Image de l’auteur

Une fois le bucket S3 connecté, associez le rôle IAM créé précédemment pour autoriser Glue à accéder aux buckets S3. Le nom de notre rôle est « GlueETLRole ».

  • Sélectionnez le nom du rôle dans le champ « Existing IAM role ».
  • Cliquez sur « Next ».

AWS Glue crawler creation flow in the console

Flux de création d’un crawler AWS Glue dans la console — partie 3. Image de l’auteur

L’étape suivante consiste à créer une base de données. La base « paris_olympics_db » servira de référentiel central dans le AWS Glue Data Catalog pour stocker et organiser les métadonnées de nos fichiers CSV.

Ce catalogue facilitera la découverte des données et simplifiera notre processus ETL pour combiner et convertir les données d’athlètes, d’événements et de médailles en format Parquet.

À ce stade, nous n’avons pas encore de base. Les étapes de création sont illustrées ci-dessous :

  • Sélectionnez « Add database » pour ouvrir une nouvelle fenêtre de création. Donnez-lui le nom « paris_olympics_db », laissez le reste par défaut et cliquez sur « Create database ».

AWS Glue crawler creation flow in the console

Flux de création d’un crawler AWS Glue dans la console — partie 4. Image de l’auteur

Depuis l’onglet d’origine où vous reliez une base de données, actualisez la section « Target database » et choisissez la base nouvellement créée. Cliquez ensuite sur « Next ».

AWS Glue crawler creation flow in the console

Flux de création d’un crawler AWS Glue dans la console — partie 5. Image de l’auteur

Enfin, vérifiez l’ensemble et cliquez sur « Create crawler ».

AWS Glue crawler review and create view

Vue « Review and create » du crawler AWS Glue. Image de l’auteur

Après la création du crawler, vous devriez voir le message suivant confirmant sa création :

Glue crawler successful creation message

Création du crawler Glue réussie. Image de l’auteur

Maintenant que notre crawler est créé, lançons-le pour voir comment il catalogue nos données.

AWS Glue run crawler button

Bouton « Run crawler » de Glue. Image de l’auteur

  • Sélectionnez votre crawler dans la liste.
  • Cliquez sur « Run crawler ».
  • Patientez jusqu’à la fin de l’exécution (quelques minutes).
  • Une fois terminé, allez dans « Databases » sous « Data catalog » dans le menu de gauche.
  • Cliquez sur la base créée.
  • Vous devriez voir une table représentant la structure de vos données CSV.

View of tables created in the database from Glue crawler execution

Aperçu des tables créées dans la base après exécution du crawler Glue. Image de l’auteur

Avec le catalogue de données en place, nous pouvons créer un job Glue pour combiner nos fichiers CSV et les convertir en Parquet. Cette section vous guide dans la création du job Glue et fournit le code Python nécessaire.

  • Dans la console AWS Glue, allez dans « Jobs » sous « ETL » dans le menu de gauche.
  • Sélectionnez le Script editor pour ouvrir l’éditeur et écrire du code Python, puis cliquez sur « Create script ».

Creating and running an AWS Glue job

Créer et exécuter un job Glue — partie 1. Image de l’auteur

La création du script ouvre un onglet où l’on peut nommer le job, « CS » dans notre exemple.

  • Dans la zone de code, collez le script suivant, puis cliquez sur « Save ».

Creating and running a Glue job

Créer et exécuter un job Glue — partie 2. Image de l’auteur

Le code Python correspondant est donné ci-dessous :

import sys
from awsglue.transforms import *
from awsglue.utils import getResolvedOptions
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.job import Job
from pyspark.sql.functions import col, to_date

# Initialize the Spark and Glue contexts
sc = SparkContext()
glueContext = GlueContext(sc)
spark = glueContext.spark_session
job = Job(glueContext)

# Set Spark configurations for optimization
spark.conf.set("spark.sql.adaptive.enabled", "true")
spark.conf.set("spark.sql.adaptive.coalescePartitions.enabled", "true")

# Get job parameters
args = getResolvedOptions(sys.argv, ['JOB_NAME'])

# Set the input and output paths
input_path = "s3://glue-csv-etl-bucket/input/"
output_path = "s3://glue-csv-etl-bucket/output/"

# Function to read CSV and write Parquet
def csv_to_parquet(input_file, output_file):
    try:
        # Read CSV
        df = spark.read.option("header", "true") \
                       .option("inferSchema", "true") \
                       .option("mode", "PERMISSIVE") \
                       .option("columnNameOfCorruptRecord", "_corrupt_record") \
                       .csv(input_file)
        
        # Print schema for debugging
        print(f"Schema for {input_file}:")
        df.printSchema()
        
        # Convert date column if it exists (assuming it's in the format M/d/yyyy)
        if "date" in df.columns:
            df = df.withColumn("date", to_date(col("date"), "M/d/yyyy"))
        
        # Write Parquet
        df.write.mode("overwrite").parquet(output_file)
        
        print(f"Successfully converted {input_file} to Parquet at {output_file}")
        print(f"Number of rows processed: {df.count()}")
    except Exception as e:
        print(f"Error processing {input_file}: {str(e)}")

# List of files to process
files = ["athletes", "events", "medals"]

# Process each file
for file in files:
    input_file = f"{input_path}{file}.csv"
    output_file = f"{output_path}{file}_parquet"
    csv_to_parquet(input_file, output_file)

job.commit()
print("Job completed.")

Voyons rapidement ce que fait ce code :

  1. Imports : import des bibliothèques nécessaires depuis AWS Glue, PySpark et la bibliothèque standard Python.
  2. Initialisation : initialisation des contextes Spark et Glue, et définition de configurations Spark pour l’optimisation.
  3. Paramètres du job : récupération des paramètres du job (notamment le nom) depuis la ligne de commande.
  4. Chemins : définition des chemins d’entrée et de sortie pour les fichiers CSV et Parquet dans le bucket S3.
  5. Définition de fonction : la fonction csv_to_parquet() lit un CSV, affiche son schéma, convertit une colonne de date si elle existe, puis écrit les données en Parquet. Elle gère les exceptions éventuelles.
  6. Traitement des fichiers : traitement d’une liste de fichiers (athletes, events, medals) en appelant csv_to_parquet() pour chacun.
  7. Commit du job : validation du job et affichage d’un message de fin.

Avant d’exécuter le job, complétez les paramètres suivants dans la section « Job details » :

  • Renseignez le rôle IAM créé précédemment pour autoriser l’exécution.
  • Définissez le « Type » du job sur « Spark », laissez les autres champs par défaut et « Save ».
  • Lancez ensuite le job !

Creating and running a Glue job

Créer et exécuter un job Glue — partie 3. Image de l’auteur

Après une exécution réussie, vous pouvez consulter des détails supplémentaires sur le statut du job :

AWS Glue job run details view

Vue des détails d’exécution d’un job AWS Glue. Image de l’auteur

Accéder aux détails d’exécution et les surveiller est essentiel pour maintenir des pipelines de données performants et fiables. Ces métriques apportent des informations clés et aident à :

  • Optimiser les performances : suivez les temps d’exécution pour améliorer l’efficacité des jobs et l’allocation des ressources.
  • Gérer les coûts : surveillez l’usage des ressources (DPU, workers) pour rester aligné avec le budget et optimiser les dépenses.
  • Planifier la capacité : utilisez les métriques d’exécution pour prévoir les besoins et anticiper la montée en charge.

L’exécution réussie de ce job a converti chaque fichier CSV en son fichier Parquet correspondant et les a stockés dans le dossier « output » comme illustré ci-dessous :

  • À gauche, les dossiers portent le même nom que le fichier CSV d’origine.
  • À droite, vous trouvez les fichiers Parquet de chaque CSV.

Contents of the output folder inside the S3 bucket

Contenu du dossier « output » dans le bucket S3. Image de l’auteur

Conclusion et prochaines étapes

Ce tutoriel a présenté AWS Glue et ses fonctionnalités. Vous avez configuré un environnement AWS et exploré l’interface AWS Glue. Vous avez aussi créé et exécuté un crawler pour cataloguer les données, mis en place un job Glue pour les transformer, et converti des fichiers CSV en Parquet.

Vous pouvez aller plus loin en ajoutant des triggers pour automatiser les workflows, en implémentant la gestion des erreurs et la journalisation, et en optimisant les fichiers Parquet pour de meilleures performances. Vous pouvez également interroger vos données avec AWS Athena ou Amazon Redshift Spectrum.

Surveillez également votre consommation et vos coûts AWS, et nettoyez les ressources inutilisées pour éviter des frais non désirés.

Les cours Introduction to AWS et AWS Cloud Technology and Services constituent d’excellentes prochaines étapes pour approfondir !

Le premier offre des bases solides sur AWS et le cloud, idéal pour débuter ou réviser les concepts clés. Le second est orienté pratique pour approfondir vos connaissances des services AWS.

Obtenez une certification pour le poste de Data Engineer de vos rêves

Nos programmes de certification vous aident à vous démarquer et à prouver aux employeurs potentiels que vos compétences sont adaptées à l'emploi.

Obtenez Votre Certification
Timeline mobile.png

FAQs

Quelles sont les bonnes pratiques pour optimiser les performances des fichiers Parquet ?

Pour optimiser les performances des fichiers Parquet, ajustez la taille des fichiers (idéalement entre 128 Mo et 1 Go), partitionnez vos données pour des requêtes plus efficaces et choisissez le bon codec de compression (comme Snappy ou Gzip). Ces stratégies réduisent les I/O et accélèrent les requêtes sur de grands volumes dans des outils tels qu’AWS Athena.

Comment mettre en place la gestion des erreurs et la journalisation dans des jobs AWS Glue ?

AWS Glue s’intègre à Amazon CloudWatch, ce qui vous permet de suivre l’état des jobs, les erreurs et les logs personnalisés. Vous pouvez configurer vos jobs Glue pour écrire dans CloudWatch afin de faciliter le suivi des performances, le dépannage et garantir une exécution fluide des processus ETL.

Quels sont les cas d’usage courants d’AWS Glue au-delà de la conversion CSV → Parquet ?

AWS Glue est polyvalent et peut gérer des tâches comme la déduplication, l’enrichissement et les transformations de schéma. Il est souvent utilisé pour intégrer des données issues de multiples sources (par ex. RDS, S3, Redshift) dans un format unifié, préparer des données pour des modèles de machine learning et réaliser des transformations pour les data lakes.

Comment AWS Glue se compare-t-il à d’autres outils ETL comme Apache Airflow ou Databricks ?

AWS Glue est un service ETL entièrement managé et serverless, tandis qu’Apache Airflow est un outil open source d’orchestration de workflows qui nécessite plus de configuration et de gestion d’infrastructure. Databricks, de son côté, est conçu pour l’analytique et le machine learning à grande échelle. AWS Glue se distingue par sa simplicité d’usage et son intégration avec les services AWS ; pour des workflows très complexes, Airflow ou Databricks peuvent offrir davantage de flexibilité.

Comment automatiser des jobs AWS Glue avec des triggers ?

Les triggers dans AWS Glue permettent d’automatiser les workflows ETL en programmant l’exécution des jobs à des heures précises ou après certains événements, comme l’arrivée de nouvelles données dans un bucket S3. Vous pouvez définir des triggers basés sur le temps ou les événements via la console AWS Glue, pour un traitement des données sans intervention manuelle.


Zoumana Keita 's photo
Author
Zoumana Keita
LinkedIn
Twitter

Scientifique de données aux multiples talents qui aime partager ses connaissances et rendre service aux autres, Zoumana est un créateur de contenu sur YouTube et un rédacteur technique de premier plan sur Medium. Il prend plaisir à parler, à coder et à enseigner. Zoumana est titulaire de deux masters. Le premier en informatique avec une spécialisation en apprentissage automatique à Paris, en France, et le second en science des données à l'université Texas Tech aux États-Unis. Son parcours professionnel a débuté en tant que développeur de logiciels au sein du Groupe OPEN en France, avant de rejoindre IBM en tant que consultant en apprentissage automatique, où il a développé des solutions d'IA de bout en bout pour les compagnies d'assurance. Zoumana a rejoint Axionable, la première startup d'IA durable basée à Paris et Montréal. Il y a occupé le poste de Data Scientist et a mis en œuvre des produits d'IA, principalement des cas d'utilisation NLP, pour des clients en France, à Montréal, à Singapour et en Suisse. En outre, 5 % de son temps a été consacré à la recherche et au développement. Il travaille actuellement en tant que scientifique de données senior à l'IFC, le groupe de la Banque mondiale.

Sujets
AWS
Ingénierie des données

Approfondissez AWS et l’ingénierie des données avec ces cours !

Cours

Concepts de sécurité et de gestion des coûts sur AWS

3 h
10.7K
Maîtrisez la sécurité, la gouvernance et l'optimisation des coûts AWS afin de vous préparer à la certification Cloud Practitioner.
Afficher les détailsRight Arrow
Commencer Le Cours
Voir plusRight Arrow