0Pricing
Cloud & IT Cert Prep · Leçon

AWS Glue : ETL et catalogue de données

Exécutez des tâches ETL sans serveur avec AWS Glue, enregistrez les schémas de tables dans le catalogue de données Glue et explorez automatiquement les nouvelles données.

AWS Glue : ETL et catalogue de données est une leçon Cloud & IT Cert Prep gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Cloud & IT Cert Prep, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Cloud & IT Cert Prep comprend 4 leçons au total.

Qu’est-ce qu’AWS Glue ?

AWS Glue est un service ETL (extraction, transformation, chargement) entièrement géré et sans serveur. Vous n’avez pas à provisionner ni à gérer de serveurs : Glue alloue automatiquement des nœuds Spark ou Python lors de l’exécution d’un traitement. Glue se compose de deux éléments principaux : le moteur ETL pour les traitements de transformation des données et le catalogue de données pour stocker les métadonnées relatives à vos sources et cibles de données.

Présentation du catalogue de données Glue

Le catalogue de données Glue est un référentiel centralisé de métadonnées compatible avec Apache Hive Metastore. Il stocke les bases de données, les tables, les définitions de colonnes, les types de données et les informations de partitionnement. Des services tels qu’Athena, Spectrum et EMR utilisent tous le même catalogue de données, qui constitue ainsi la source de référence unique indiquant quelles données existent et où elles se trouvent dans S3.

# List databases in the Glue Data Catalogue
aws glue get-databases --query 'DatabaseList[*].Name'

# List tables in a database
aws glue get-tables --database-name my_db --query 'TableList[*].Name'

Crawlers Glue : découverte automatique du schéma

Un crawler Glue se connecte à un magasin de données (S3, JDBC, DynamoDB), échantillonne les données et déduit automatiquement le schéma ainsi que la structure des partitions. Il écrit ensuite les définitions de tables dans le catalogue de données ou les met à jour. Les crawlers peuvent être exécutés selon une planification ou déclenchés à la demande. Ils prennent en charge l’exploration incrémentielle, de sorte qu’ils ne traitent que les nouvelles partitions lors des exécutions suivantes.

# Create and start a Glue Crawler via CLI
aws glue create-crawler \
  --name sales-crawler \
  --role arn:aws:iam::123456789012:role/GlueRole \
  --database-name my_db \
  --targets '{"S3Targets": [{"Path": "s3://my-data-lake-123/landing/sales/"}]}'

aws glue start-crawler --name sales-crawler

Écriture d’un traitement ETL Glue

Un traitement ETL Glue est un script PySpark ou Scala Spark qui lit une source, applique des transformations à l’aide de l’API DynamicFrame et écrit le résultat dans une cible. Les DynamicFrames étendent les DataFrames Spark grâce à leur souplesse de schéma : ils gèrent automatiquement les types de données incohérents et les fichiers JSON imbriqués. Vous pouvez générer un script de traitement de base depuis l’éditeur visuel Glue Studio.

# Minimal Glue PySpark ETL job
from awsglue.context import GlueContext
from awsglue.transforms import *
from pyspark.context import SparkContext

sc = SparkContext()
glueContext = GlueContext(sc)

# Read from Data Catalogue table
source = glueContext.create_dynamic_frame.from_catalog(
    database='my_db', table_name='raw_sales')

# Drop null order_id rows
cleaned = Filter.apply(frame=source, f=lambda r: r['order_id'] is not None)

# Write Parquet to curated zone
glueContext.write_dynamic_frame.from_options(
    frame=cleaned,
    connection_type='s3',
    connection_options={'path': 's3://my-data-lake-123/curated/sales/'},
    format='parquet')

Nœuds d’exécution Glue et DPU

Glue alloue la capacité en unités de traitement des données (DPU). Une DPU équivaut à 4 vCPUs et 16 GB de mémoire. Vous choisissez un type de nœud (G.1X, G.2X ou G.025X pour le traitement flexible ou le streaming Spark) ainsi qu’un nombre de nœuds. Pour les petits traitements, utilisez le type de traitement G.025X Python Shell, qui utilise un quart de DPU et offre un excellent rapport coût-efficacité pour les transformations simples.

# Create a Glue job with G.1X workers
aws glue create-job \
  --name clean-sales \
  --role arn:aws:iam::123456789012:role/GlueRole \
  --command '{"Name": "glueetl", "ScriptLocation": "s3://scripts/clean_sales.py", "PythonVersion": "3"}' \
  --worker-type G.1X \
  --number-of-workers 5 \
  --glue-version '4.0'

Flux de travail et déclencheurs Glue

Un flux de travail Glue enchaîne les crawlers et les traitements dans un graphe de dépendances. Un crawler découvre les nouvelles données, puis, une fois terminé, déclenche un traitement, qui peut à son tour en déclencher un autre, et ainsi de suite. Les déclencheurs peuvent être planifiés (cron), fondés sur des événements (à la demande) ou conditionnels (déclenchés lorsqu’un traitement réussit ou échoue). Les flux de travail fournissent un DAG visuel pour votre pipeline ETL, sans service d’orchestration distinct.

# Create a schedule trigger that starts a job every night at 2 AM UTC
aws glue create-trigger \
  --name nightly-clean \
  --type SCHEDULED \
  --schedule 'cron(0 2 * * ? *)' \
  --actions '[{"JobName": "clean-sales"}]' \
  --start-on-creation

Glue Studio : conception visuelle de traitements ETL

Glue Studio fournit une interface glisser-déposer pour concevoir graphiquement des traitements ETL, sans écrire manuellement de code PySpark. Vous connectez des nœuds sources (S3, tables du catalogue, JDBC) à des nœuds de transformation (filtrage, jointure, agrégation, Python personnalisé), puis à des nœuds cibles. Glue Studio génère automatiquement le script Spark. Il fournit également un tableau de bord d’exécution des traitements pour surveiller leur état d’exécution et les indicateurs de qualité des données.

Qualité des données Glue

AWS Glue Data Quality (DQDL — Data Quality Definition Language) vous permet d’écrire des règles pour valider les données à mesure qu’elles traversent un traitement ETL. Les règles peuvent vérifier les taux de valeurs nulles, les plages de valeurs, l’intégrité référentielle et l’unicité. Si les données ne respectent pas les règles de qualité, Glue peut interrompre le traitement ou acheminer les enregistrements incorrects vers un chemin de quarantaine dans S3 pour une vérification manuelle, plutôt que de transmettre silencieusement des données corrompues à la zone organisée.

# DQDL rule example for Glue Data Quality
# Reject rows where order_total is negative or null
Rules = [
  IsComplete 'order_total',
  ColumnValues 'order_total' >= 0
]

Glue comparé aux autres options ETL

Pour l’examen SAA-C03, vous devez savoir quand recommander Glue plutôt que ses alternatives. Utilisez Glue pour l’ETL Spark sans serveur et l’intégration au catalogue de données. Utilisez AWS Data Pipeline pour orchestrer les anciennes tâches de déplacement de données (principalement héritées). Utilisez Amazon EMR lorsque vous avez besoin d’une configuration personnalisée d’un cluster Hadoop/Spark ou de charges de travail de longue durée. Utilisez Lambda pour les micro-transformations légères et pilotées par les événements sur de petites charges utiles.

Sources de données JDBC et autres que S3

Glue peut se connecter à des bases de données relationnelles via des connexions JDBC — RDS, Aurora, Redshift ou des bases de données sur site grâce à une connexion VPC Glue. Vous définissez une connexion avec une URL JDBC, des identifiants provenant de Secrets Manager et un groupe de sécurité VPC. Glue utilise ensuite une interface réseau dédiée, placée dans le sous-réseau de votre VPC, pour atteindre les points de terminaison privés des bases de données sans traverser Internet.

# Create a Glue JDBC connection to RDS Aurora
aws glue create-connection \
  --connection-input '{
    "Name": "aurora-prod",
    "ConnectionType": "JDBC",
    "ConnectionProperties": {
      "JDBC_CONNECTION_URL": "jdbc:mysql://aurora-cluster.cluster-xyz.us-east-1.rds.amazonaws.com:3306/sales",
      "SECRET_ID": "arn:aws:secretsmanager:us-east-1:123:secret:rds-creds"
    },
    "PhysicalConnectionRequirements": {
      "SubnetId": "subnet-abc123",
      "SecurityGroupIdList": ["sg-xyz456"],
      "AvailabilityZone": "us-east-1a"
    }
  }'

Signets : traitement incrémentiel

Par défaut, un traitement Glue retraiterait chaque enregistrement à chaque exécution. Les signets des traitements Glue indiquent quels fichiers d’entrée ont déjà été traités ; les exécutions suivantes ne récupèrent donc que les nouvelles données. Les signets sont indispensables pour les sources S3 en ajout uniquement, lorsque le même préfixe reçoit quotidiennement de nouveaux fichiers. Activez-les dans les paramètres du traitement avec --job-bookmark-option job-bookmark-enable.

# Start Glue job with bookmark enabled
aws glue start-job-run \
  --job-name clean-sales \
  --arguments '{"--job-bookmark-option": "job-bookmark-enable"}'

Vérification rapide

Testez votre compréhension des concepts AWS Solutions Architect (SAA-C03) abordés dans cette leçon.

Récapitulatif de la leçon

Dans cette leçon, vous avez appris que AWS Glue fournit un ETL sans serveur via PySpark et l’API DynamicFrame, que les Glue Crawlers découvrent automatiquement les schémas et alimentent le Catalogue Data, et que les Glue Bookmarks permettent de traiter progressivement les nouvelles données S3. Nous allons maintenant découvrir Amazon Athena pour exécuter des requêtes SQL sans serveur directement sur S3.

Questions Fréquemment Posées

La leçon « AWS Glue : ETL et catalogue de données » est-elle gratuite ?

Oui — le texte complet de « AWS Glue : ETL et catalogue de données » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Cloud & IT Cert Prep, passe à CoddyKit PRO. Le cours Cloud & IT Cert Prep comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « AWS Glue : ETL et catalogue de données » ?

Exécutez des tâches ETL sans serveur avec AWS Glue, enregistrez les schémas de tables dans le catalogue de données Glue et explorez automatiquement les nouvelles données. Tu pratiques Cloud & IT Cert Prep avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Cloud & IT Cert Prep ?

Aucune expérience préalable n'est requise. Cloud & IT Cert Prep sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « AWS Glue : ETL et catalogue de données » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Cloud & IT Cert Prep ?

Oui. Chaque leçon Cloud & IT Cert Prep inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Créer un lac de données sur S3
  2. AWS Glue : ETL et catalogue de données
  3. Amazon Athena : SQL sans serveur sur S3
  4. Flux Kinesis, Firehose et analyse en temps réel
← Retour à Cloud & IT Cert Prep