AWS Solutions Architect · Les

AWS Glue: ETL en datapcatalogus

Voer serverloze ETL-taken uit met AWS Glue, registreer tabelschema's in de Glue Data Catalogue en crawl nieuwe gegevens automatisch.

Les 2 van 413 stappen

AWS Glue: ETL en datapcatalogus is een gratis AWS Solutions Architect-les op CoddyKit. Dit is les 2 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject AWS Solutions Architect. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus AWS Solutions Architect bevat in totaal 4 lessen.

Wat is AWS Glue?

AWS Glue is een volledig beheerde, serverloze ETL-service (Extract, Transform, Load). Je hoeft geen servers in te richten of te beheren — Glue wijst automatisch Spark- of Python-werkers toe wanneer een taak wordt uitgevoerd. Glue bestaat uit twee hoofdonderdelen: de ETL-engine voor taken voor gegevenstransformatie en de Data Catalogue voor het opslaan van metagegevens over je gegevensbronnen en -doelen.

Uitleg over de Glue Data Catalogue

De Glue Data Catalogue is een gecentraliseerde opslagplaats voor metagegevens die compatibel is met de Apache Hive Metastore. De catalogus slaat databases, tabellen, kolomdefinities, gegevenstypen en partitie-informatie op. Services zoals Athena, Redshift Spectrum en EMR gebruiken allemaal dezelfde Data Catalogue. Daardoor is deze de enige bron van waarheid voor welke gegevens bestaan en waar ze in S3 staan.

# 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'

Glue Crawlers: schema's automatisch ontdekken

Een Glue Crawler maakt verbinding met een gegevensopslag (S3, JDBC, DynamoDB), neemt een steekproef van de gegevens en leidt automatisch het schema en de partitiestructuur af. Vervolgens schrijft of actualiseert de crawler tabeldefinities in de Data Catalogue. Crawlers kunnen volgens een schema of op aanvraag worden uitgevoerd. Ze ondersteunen incrementeel crawlen, zodat ze bij volgende uitvoeringen alleen nieuwe partities verwerken.

# 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

Een Glue-ETL-taak schrijven

Een Glue-ETL-taak is een PySpark- of Scala Spark-script dat uit een bron leest, transformaties toepast met de DynamicFrame-API en naar een doel schrijft. DynamicFrames breiden Spark DataFrames uit met flexibele schema's: ze verwerken automatisch inconsistente gegevenstypen en geneste JSON. Je kunt vanuit de visuele editor van Glue Studio een sjabloonscript voor een taak genereren.

# 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')

Glue-werknemers en DPU's

Glue wijst capaciteit toe in Data Processing Units (DPU's). Eén DPU staat gelijk aan 4 vCPU's en 16 GB geheugen. Je kiest een werkertype (G.1X, G.2X of G.025X voor flexibele verwerking of Spark-streaming) en een aantal werknemers. Gebruik voor kleine taken het taaktype G.025X Python Shell. Dit gebruikt een kwart DPU en is zeer kostenefficiënt voor eenvoudige transformaties.

# 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'

Glue-workflows en triggers

Een Glue Workflow koppelt crawlers en taken tot een afhankelijkheidsgraaf. Een crawler ontdekt nieuwe gegevens, start na voltooiing een taak, die vervolgens een andere taak start, enzovoort. Triggers kunnen gepland zijn (cron), op gebeurtenissen gebaseerd (op aanvraag) of voorwaardelijk (starten wanneer een taak slaagt of mislukt). Workflows bieden een visuele DAG voor je ETL-verwerkingsketen zonder afzonderlijke orkestratieservice.

# 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: visuele ETL-bouwer

Glue Studio biedt een interface met slepen en neerzetten om ETL-taken grafisch te ontwerpen zonder handmatig PySpark-code te schrijven. Je verbindt bronknooppunten (S3, catalogustabellen, JDBC) via transformatieknooppunten (filteren, samenvoegen, aggregeren, aangepaste Python) met doelknooppunten. Glue Studio genereert het Spark-script automatisch. Het biedt ook een dashboard voor taakuitvoeringen om de uitvoeringsstatus en gegevenskwaliteitsmetingen te controleren.

Gegevenskwaliteit in Glue

AWS Glue Data Quality (DQDL — Data Quality Definition Language) laat je regels schrijven om gegevens te valideren terwijl ze door een ETL-taak stromen. Regels kunnen null-percentages, waardebereiken, referentiële integriteit en uniciteit controleren. Als gegevens niet aan de kwaliteitsregels voldoen, kan Glue de taak stoppen of onjuiste records naar een quarantainepad in S3 sturen voor handmatige controle, in plaats van beschadigde gegevens stilzwijgend naar de gecureerde zone door te laten.

# 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 versus andere ETL-opties

Voor het SAA-C03-examen moet je weten wanneer je Glue aanbeveelt boven alternatieven. Gebruik Glue voor serverloze Spark-ETL en integratie met de Data Catalogue. Gebruik AWS Data Pipeline voor het orkestreren van oudere taken voor gegevensverplaatsing (voornamelijk verouderde systemen). Gebruik Amazon EMR wanneer je aangepaste configuratie van een Hadoop- of Spark-cluster of langdurig draaiende werklasten nodig hebt. Gebruik Lambda voor lichte, gebeurtenisgestuurde microtransformaties op kleine gegevensladingen.

JDBC- en andere gegevensbronnen dan S3

Glue kan via JDBC-verbindingen verbinding maken met relationele databases — RDS, Aurora, Redshift of databases op locatie via een Glue VPC Connection. Je definieert een verbinding met een JDBC-URL, inloggegevens uit Secrets Manager en een VPC-beveiligingsgroep. Glue gebruikt vervolgens een speciale netwerkinterface die binnen het subnet van je VPC is geplaatst om privé-eindpunten van databases te bereiken zonder het openbare internet te gebruiken.

# 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"
    }
  }'

Bladwijzers: incrementele verwerking

Standaard zou een Glue-taak bij elke uitvoering elk record opnieuw verwerken. Glue Job Bookmarks houden bij welke invoerbestanden al zijn verwerkt, zodat volgende uitvoeringen alleen nieuwe gegevens oppakken. Bladwijzers zijn essentieel voor append-only S3-bronnen waarin dagelijks nieuwe bestanden onder dezelfde prefix worden geplaatst. Schakel bladwijzers in de taakparameters in met --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"}'

Korte controle

Test je begrip van de concepten uit deze les voor AWS Solutions Architect (SAA-C03).

Samenvatting van de les

In deze les heb je geleerd dat AWS Glue serverloze ETL biedt via PySpark en de DynamicFrame API, dat Glue Crawlers schema's automatisch ontdekken en de Data Catalogue vullen en dat Glue Bookmarks incrementele verwerking van nieuwe S3-gegevens mogelijk maken. Hierna bekijken we Amazon Athena voor serverloze SQL-query's rechtstreeks op S3.

Gratis beginnen

Leer AWS Solutions Architect met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
30
Lessen
120

Veelgestelde vragen

Is de les “AWS Glue: ETL en datapcatalogus” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad AWS Solutions Architect, waaronder “AWS Glue: ETL en datapcatalogus”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus AWS Solutions Architect bevat in totaal 4 lessen.

Wat leer ik in “AWS Glue: ETL en datapcatalogus”?

Voer serverloze ETL-taken uit met AWS Glue, registreer tabelschema's in de Glue Data Catalogue en crawl nieuwe gegevens automatisch. Je oefent met AWS Solutions Architect door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met AWS Solutions Architect te beginnen?

Ervaring vooraf is niet nodig. AWS Solutions Architect op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.

Hoe lang duurt de les “AWS Glue: ETL en datapcatalogus”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over AWS Solutions Architect?

Ja. Elke les over AWS Solutions Architect bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Een data lake op S3 bouwen
  2. AWS Glue: ETL en datapcatalogus
  3. Amazon Athena: serverloze SQL op S3
  4. Kinesis Streams, Firehose en realtimeanalyse
← Terug naar AWS Solutions Architect