Amazon DEA-C01: Data-orkestratie en workflowbeheer — Studiegids
Onderdeel van de Amazon Data Engineer Associate DEA-C01 — Studiegids. Oefen met geverifieerde antwoorden in het Amazon-examencentrum, of doe getimede oefentests op ExamRoll.io.
Orchestratie en workflowbeheer zijn essentieel voor het bouwen van betrouwbare, onderhoudbare dataplatforms: ze coördineren extract-transform-load-taken, beheren afhankelijkheden, vangen fouten op en integreren event-driven processen. Dit domein behandelt beheerde AWS-opties voor batch-ETL, complexe DAG’s, serverless state machines en event-scheduling — elk met verschillende uitvoeringssemantiek, duurzaamheid en afwegingen op het gebied van schaalbaarheid. Begrijpen wanneer je AWS Glue Workflows, MWAA, Step Functions of EventBridge Scheduler moet gebruiken — en hoe je foutafhandeling en observability configureert — is cruciaal voor voorspelbare pipelines en de beheersing van operationele kosten.
AWS Glue Workflows en triggers
AWS Glue Workflows groeperen Glue-jobs, -crawlers en -triggers in een afhankelijkheidsgraaf en stellen je in staat om gecoördineerde ETL uit te voeren. Maak workflows aan via de console of de CLI (aws glue create-workflow –name MyWorkflow). Triggers worden aan workflows gekoppeld en zijn er in drie soorten: gepland (scheduled), op aanvraag (on-demand) en voorwaardelijk (conditional). Voorbeeld van het aanmaken van een geplande trigger via de CLI:
- aws glue create-trigger –name hourly-trigger –workflow-name MyWorkflow –type SCHEDULED –schedule “cron(0 * * * ? *)” –actions ‘[{“JobName”:“etl-job”}]’
Voorwaardelijke triggers gebruiken een Predicate dat verwijst naar de naam en de status van een job (SUCCEEDED, FAILED). Voorbeeld van een predicate in JSON: {“Logical”:“AND”,“Conditions”:[{“JobName”:“prev-job”,“State”:“SUCCEEDED”}]}. Standaard worden voorwaardelijke Glue-triggers geactiveerd bij succes; om fouten af te handelen, configureer je condities met State=FAILED of maak je een expliciete FAILED-trigger om fouten door te sturen naar hersteltaken of SNS-meldingen.
Operationele patronen en beslissingscriteria:
- Gebruik Glue Workflows wanneer je native orchestratie en lineage voor Glue-jobs/crawlers nodig hebt; kies triggers voor cron-scheduling of het aaneenschakelen van jobs na voltooiing.
- Gebruik voor ad-hoc aanroepen
aws glue start-workflow-run --name MyWorkflowofstart-triggervoor on-demand triggers. - Geef voor complexe vertakkingen of niet-Glue-taken de voorkeur aan Step Functions of MWAA; Glue-workflows zijn het meest geschikt wanneer de pipeline gecentreerd is rond Glue.
Foutafhandeling: voeg FAILED-triggers toe, publiceer CloudWatch-metrics voor het slagen/falen van jobs en stuur fouten naar een SQS/SNS dead-letter queue via Lambda voor geautomatiseerde retries en onderzoek.
Amazon MWAA (Managed Airflow) voor complexe DAG’s
MWAA biedt een beheerde Apache Airflow-omgeving om complexe DAG’s, taakafhankelijkheden, sensors en custom operators te definiëren. Maak omgevingen aan met aws mwaa create-environment --name MyEnv --airflow-configuration-options Key=core.executor,Value=CeleryExecutor en geef een S3-pad voor de DAG’s en een execution role op. Belangrijke details over dimensionering en netwerken:
- MWAA vereist een VPC met private subnets en een NAT-gateway voor internettoegang; configuraties met alleen public subnets worden niet ondersteund.
- Het gedrag van de worker en de scheduler wordt beheerd via Airflow-configuratieopties die bij het aanmaken van de omgeving worden opgegeven (AirflowConfigurationOptions). Stem
celery.worker_concurrency,celery.worker_autoscaleen scheduler-instellingen af op de taak-concurrency en de complexiteit van de DAG. - Monitor CloudWatch-metrics (SchedulerHeartbeat, TasksFailed, TasksRunning, QueuedTasks) en schaal de worker-autoscales op of verhoog het maximale aantal workers als je de wachtrij ziet groeien.
Beslissingscriteria:
- Gebruik MWAA wanneer je Airflow-functies nodig hebt: complexe DAG’s, uitgebreide operators, afhankelijkheden tussen DAG’s, SLA/missed-task sensors en custom Python-logica.
- Als taken van korte duur zijn en een extreem hoge doorvoer hebben, geef dan de voorkeur aan serverless Step Functions Express of Glue voor beheerde ETL-operaties.
- Houd zware, langdurige taken in beheerde compute-omgevingen (Glue/EMR/EKS) en gebruik MWAA-taken alleen voor orchestratie — vermijd het uitvoeren van grootschalige datatransformaties op de MWAA-workers zelf.
Foutafhandeling in Airflow: gebruik task retries en retry_delay in DAG-definities, stel on_failure_callback in om te notificeren of naar een SQS dead-letter queue te pushen, en configureer SLA-afhandeling op taakniveau om herstel-DAG’s te triggeren.
AWS Step Functions voor serverless orchestratie
Step Functions bieden stateful orchestratie met een op JSON gebaseerde Amazon States Language en integreren breed met AWS-services. Kies tussen Standard en Express workflows:
- Standard Workflows: ontworpen voor langdurige, duurzame state machines (maanden tot jaren), met exactly-once (unieke) uitvoeringssemantiek, ingebouwde uitvoeringsgeschiedenis en tracing/logging per uitvoering. Start met
aws stepfunctions start-execution --state-machine-arn arn:... --input '{"key":"value"}'. - Express Workflows: geoptimaliseerd voor high-throughput, low-latency, kortdurende verwerking en zijn kosteneffectief op grote schaal; ze gebruiken at-least-once uitvoeringssemantiek, dus taken moeten idempotent zijn of deduplicatiepatronen gebruiken.
Use cases en beslissingscriteria:
- Gebruik Standard wanneer je duurzame, auditeerbare workflows nodig hebt die lang kunnen duren en once-only semantiek vereisen.
- Gebruik Express voor event-driven micro-orchestraties met duizenden uitvoeringen per seconde, waarbij een korte duur en kostenefficiëntie belangrijk zijn, en je idempotente taken kunt ontwerpen of downstream kunt dedupliceren.
Foutafhandeling en integratiepatronen:
- Gebruik
Retry-blokken in ASL om retries te definiëren metErrorEquals,IntervalSeconds,BackoffRateenMaxAttempts. - Gebruik
Catch-blokken om fouten om te leiden naar alternatieve branches of naar een Fail/Success-status en omResultPathte vullen met foutdetails voor diagnostiek. - Voor asynchrone dead-lettering, push mislukte berichten naar SQS/SNS of ontwerp een Step Functions-patroon dat fout-payloads naar een SQS DLQ stuurt voor offline verwerking. Schakel CloudWatch Logs en X-Ray tracing in via
LoggingConfigurationenTracingConfigurationvoor observability.
EventBridge Scheduler en event-driven pipelines
EventBridge biedt uitgebreide event-routing en een Scheduler-functie voor cron-taken en eenmalige taken. Maak op schema gebaseerde regels met aws events put-rule --name dailyRule --schedule-expression "cron(0 2 * * ? *)" en koppel targets via aws events put-targets. Gebruik voor event-driven (patroon) routing put-rule met --event-pattern '{"source":["aws.s3"],"detail-type":["Object Created"]}' om S3-events door te sturen naar Lambda, Step Functions of SQS.
Belangrijke operationele punten:
- EventBridge ondersteunt schedule expressions (cron en rate). Houd rekening met het minimale interval van 5 minuten voor EventBridge-regels bij het gebruik van rate expressions; overweeg Step Functions of een polling-laag voor een fijnere granulariteit.
- Gebruik EventBridge Scheduler voor eenmalige, ad-hoc toekomstige aanroepen en terugkerende schema’s; Scheduler ondersteunt tijdzones en flexibele retry-instellingen per target en kan een dead-letter SQS-wachtrij configureren voor onbestelbare aanroepen.
- Voor pipelines met hoge betrouwbaarheid, koppel targets zoals Step Functions, Lambda of SQS en configureer per-target retry-beleid en DLQ’s. Bijvoorbeeld,
put-targetsaccepteert eenDeadLetterConfigmet de Arn van een SQS-wachtrij.
Foutafhandeling: configureer target-specifieke retry-pogingen en backoff, gebruik een DLQ voor mislukte leveringen en combineer EventBridge met Step Functions voor complexe foutafhandeling en compenserende transacties.
Veelvoorkomende Valkuilen en Beslissingscriteria
- Fout: Express Workflows gebruiken voor niet-idempotente taken. Correcte aanpak: ontwerp voor idempotentcy (dedupe keys, idempotente Lambda) of gebruik Standard workflows voor exactly-once semantiek.
- Fout: Aannemen dat conditionele triggers van Glue afgaan bij een fout. Correcte aanpak: maak expliciet FAILED-triggers aan of neem
State=FAILEDop in de Predicate van de trigger om fouten door te sturen. - Fout: MWAA implementeren in publieke subnets of zonder NAT. Correcte aanpak: plaats MWAA in private subnets en voorzie een NAT-gateway of VPC-endpoints voor de vereiste servicetoegang.
- Fout: EventBridge-schema’s van minder dan een minuut verwachten. Correcte aanpak: onthoud dat EventBridge-regels een minimaal interval van 5 minuten hebben; gebruik Step Functions of Lambda-timers voor behoeften van minder dan 5 minuten.
- Fout: Geen gecentraliseerde retry/catch-strategie over services heen. Correcte aanpak: standaardiseer retry/backoff (ASL Retry, EventBridge retry-configuratie, Airflow retries) en gebruik DLQ’s om mislukte events te bewaren voor handmatige/geautomatiseerde herstelacties.
- Fout: MWAA-workers overbelasten met zware dataverwerking. Correcte aanpak: alleen orkestratie op MWAA, voer zware transformaties uit op Glue/EMR/EKS en geef pointers (S3-paden) door tussen taken.
Praktijkprobleem: Acme Retail’s uurlijkse ETL met pieken
Acme Retail heeft een uurlijkse ETL nodig die Glue-jobs uitvoert voor de opname van ruwe data, een complexe verrijkings-DAG met Python-operators, en een kortstondige SKU-aggregatie die moet reageren op hoogfrequente voorraad-events. Ze vereisen robuuste retries en het vastleggen van fouten.
- Gebruik EventBridge om een uurlijks geplande regel te triggeren die een Step Functions Standard workflow aanroept om de algehele pipeline te coördineren.
- Orkestreer in Step Functions langlopende Glue-jobs (
StartJobRun) met Retry- en Catch-handlers; stuur bij een fout door naar een SQS DLQ en een herstel-Lambda via een Catch-blok. - Implementeer de complexe verrijkings-DAG’s in MWAA en roep ze aan vanuit Step Functions met behulp van de Airflow REST API of door DAG run-berichten op SQS te plaatsen; dimensioneer MWAA-workers via
celery.worker_autoscale-instellingen op basis van de verwachte concurrency en monitor CloudWatch-metrics om aan te passen. - Gebruik voor hoogfrequente voorraad-events EventBridge event-pattern-regels om te pushen naar een Express Step Function of Lambda met idempotency keys en een door SQS ondersteunde DLQ om pieken op te vangen.
- Implementeer gecentraliseerde monitoring (CloudWatch Logs/Metrics, X-Ray voor Step Functions), en stel alerts in op de groei van de DLQ en de uitputting van task retries.
Rationale: Dit ontwerp gebruikt het juiste gereedschap voor elke vereiste — Step Functions voor duurzame cross-service orkestratie en foutafhandeling, MWAA voor complexe DAG-logica, Glue voor beheerde ETL, en EventBridge voor scheduling en reactieve events. Het dwingt idempotentcy en DLQ’s af voor veerkrachtige, observeerbare pipelines die in lijn zijn met de best practices van AWS.
← Datatransformatie en -verwerking · Alle domeinen · Dataquery en -analyse →
Oefen deze vragen → · Getimede oefening op ExamRoll.io →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
Slaag voor je examen →