Handbuch - DEA-C01 AWS Certified Data Engineer Associate
Zuletzt überprüft: Mai 2026
Eine übersichtliche Referenz der Architekturmuster, die in der DEA-C01-Prüfung getestet werden. Von oben nach unten lesen oder zu einem Abschnitt springen.
Datenerfassung und -transformation
Wählen Sie einen Kinesis-Dienst für die Streaming-Erfassung.
Verarbeitung im Sub-Sekunden-Bereich, vom Consumer gesteuert → Kinesis Data Streams. Vollständig verwaltete Lieferung an S3/Redshift/OpenSearch mit optionaler Formatkonvertierung → Kinesis Data Firehose.
Warum: KDS speichert Datensätze (24h-365d) und unterstützt mehrere Consumer. Firehose hat keine Wiederholungsmöglichkeit; tauscht Wiederholung gegen Zero-Ops-Lieferung ein.
Maximieren Sie den Ingest-Durchsatz von der Producer-seitigen Anwendung.
Kinesis Producer Library (KPL) mit Aggregation + Sammlung. Batcht mehrere Benutzerdatensätze zu einem Kinesis-Datensatz bis zu 1 MB; reduziert die PUT-Kosten.
Warum: Einzeldatensatz PutRecord ist ratenbegrenzt und teuer bei 50k Ereignissen/s. KPL aggregiert clientseitig.
JSON-Clickstream in S3 als Parquet speichern, partitioniert nach Ereigniszeit.
Firehose mit Datensatzformatkonvertierung (JSON → Parquet) unter Verwendung einer Glue Data Catalog-Tabelle + dynamischer Partitionierung auf dem Ereignis-Timestamp.
Warum: Parquet + Partitionierung senkt die Athena-Scan-Kosten drastisch. Dynamische Partitionierung vermeidet einen separaten ETL-Schritt.
Stellen Sie sicher, dass in MSK keine Daten verloren gehen, wenn eine Broker-AZ ausfällt.
Replikationsfaktor ≥ 3 über 3 AZs und `min.insync.replicas=2` mit Producer `acks=all`. Aktivieren Sie Multi-AZ über ZooKeeper-loses KRaft oder 3-AZ Broker-Platzierung.
Ein Thema speichert die neueste Version eines Datensatzes pro Schlüssel; alte Versionen können verworfen werden.
Setzen Sie `cleanup.policy=compact` für das Thema. Kafka behält den neuesten Wert für jeden Schlüssel; ältere Datensätze mit demselben Schlüssel können verdichtet werden.
Glue Crawler leitet aus unordentlichen CSV-Daten mehrdeutige Typen (`choice<int,string>`) ab.
Wenden Sie die `ResolveChoice`-Transformation an - Umwandlung in spezifischen Typ oder Projektion in Struct. Oder beheben Sie dies an der Quelle durch Erzwingung eines Schemas.
Glue Spark-Job schlägt mit OutOfMemoryError auf dem Driver während großer Aggregationen fehl.
Wechseln Sie zu G.2X- oder G.4X-Workern (mehr Driver-Speicher) oder aktivieren Sie `--enable-glue-datacatalog` Pushdown-Prädikate, um die Shuffle-Daten zu reduzieren.
Crawler leitet alle CSV-Spalten als `string` ab - benötigt Datum- und Zahlentypen.
Fügen Sie vor dem Crawling einen benutzerdefinierten Glue-Klassifikator (Grok-Muster oder Spaltenhinweis) hinzu. Alternativ schreiben Sie eine Header-Zeile mit expliziten Typen vor.
Step Functions-Schritt schlägt gelegentlich aufgrund vorübergehender Drosselung fehl; Wiederholung, dann Alarm.
`Retry`-Block hinzufügen mit `ErrorEquals: ["Lambda.ThrottlingException", "States.TaskFailed"]`, `IntervalSeconds`, `MaxAttempts`, `BackoffRate=2`. Plus `Catch` zu einem Benachrichtigungsstatus.
Müssen DAG-Änderungen zurücksetzen, falls eine Bereitstellung zu Fehlern führt.
DAGs in einem versionierten S3-Bucket speichern + Synchronisierung über S3-Versioning. Oder DAG-Repo in Git mit Environment-pro-Branch + S3-Synchronisierung über CI pflegen.
Unvorhersehbare Zugriffsmuster; manuelle Lifecycle-Richtlinie ist die falsche Wahl.
S3 Intelligent-Tiering. Verschiebt Objekte automatisch zwischen Häufig / Selten / Sofortiger Archivzugriff / Archiv / Deep Archive basierend auf dem Zugriffsmuster. Gebühr pro Objekt für die Überwachung; keine Abrufgebühren in Häufig/IA.
Athena-Abfragen auf dem Data Lake sind langsam; Partition enthält Tausende von 1-5 KB JSON-Dateien.
Kleine Dateien über Glue/EMR-Job zu ~256 MB Parquet-Dateien komprimieren. Verwenden Sie Iceberg `OPTIMIZE` oder Hudi Compaction für verwaltete Tabellenformate.
Warum: Athena/Spark Overhead pro Datei dominiert bei winzigen Dateien. Optimal sind ~128-512 MB Parquet.
Redshift-Abfragen filtern häufig nach `created_at`; Full-Table Scans sind langsam.
Definieren Sie einen Sortierschlüssel für `created_at` (oder einen zusammengesetzten Sortierschlüssel, der `created_at` enthält). Redshift verwendet Zonenkarten, um Blöcke während des Scans zu überspringen.
IoT-Gerätemesswerte; benötigen (1) alle Messwerte für ein Gerät in einem Zeitfenster, (2) den neuesten Messwert pro Gerät.
PK = `device_id`, SK = `timestamp`. GSI mit PK = `device_id`, SK = invertiertem `timestamp` (oder verwenden Sie Query mit `ScanIndexForward=false LIMIT 1`).
Lambda gibt Per-Record-Verarbeitungsmetriken aus; CloudWatch PutMetricData-Kosten sind hoch.
CloudWatch Embedded Metric Format (EMF). Protokollieren Sie JSON im EMF-Schema; CloudWatch extrahiert Metriken aus Protokollen ohne Kosten pro PutMetricData.
Athena scannt 5 TB, um Abfragen zu beantworten, die einen Tag an Daten betreffen; Kosten zu hoch.
Partitionieren Sie nach Datum und stellen Sie sicher, dass die WHERE-Klausel Partitionschlüssel verwendet. Validieren Sie mit `EXPLAIN`, das Partition Pruning anzeigt.
Warum: Athena rechnet pro gescannten Daten ab; Redshift pro Cluster-Stunde; EMR pro Instanz-Stunde. Passen Sie die Abrechnung an das Zugriffsmuster an.
Glue ETL-Wiederholungen erzeugen doppelte Ausgabezeilen im S3-Ziel.
Idempotenz: Schreiben Sie pro Lauf in ein temporäres Präfix, dann atomare Umbenennung über S3 Multipart `CompleteMultipartUpload` oder verwenden Sie Iceberg/Hudi MERGE für Upserts.
Pipeline überschrieb korrekte S3-Objekte mit beschädigten Daten.
S3 Bucket Versionierung + Wiederherstellung der vorherigen Version. Kombinieren Sie dies mit MFA Delete, um versehentliches Ablaufen von Versionen zu verhindern.
Identifizieren Sie die langsamsten Redshift-Abfragen der letzten Stunde zur Optimierung.
Abfrage von `SVL_QLOG` / `STL_QUERY` / `SYS_QUERY_HISTORY` nach Einträgen mit der längsten elapsed-time; verwenden Sie `SVL_QUERY_REPORT` für eine Aufschlüsselung pro Schritt.
Viele Teams + viele Tabellen; Per-Tabelle-Berechtigungen sind nicht wartbar.
Lake Formation LF-Tags. Tabellen/Spalten taggen; Tag-basierte Berechtigungen an Principals erteilen. Eine neue Tabelle benötigt lediglich das richtige Tag.
Konto A besitzt den Data Lake; Analysten von Konto B benötigen Lesezugriff auf bestimmte Tabellen.
Lake Formation Cross-Account Sharing über RAM. Konto A erteilt Berechtigungen an den IAM Principal/das Konto von B; B greift über Athena/Redshift Spectrum zu.
Row-Level Security innerhalb von Redshift (nicht Lake Formation).
Redshift native RLS-Richtlinien: `CREATE RLS POLICY` mit Prädikat, das den Session-Kontext referenziert (`current_user`, `session_role`). Richtlinie an Tabelle anhängen.
Compliance erfordert einen kundenverwalteten Schlüssel mit Audit-Trail für Redshift-Verschlüsselung.
Redshift-Cluster mit kundenverwaltetem KMS-Schlüssel verschlüsselt. Schlüsselrotation aktiviert; CloudTrail erfasst jede Decrypt-Operation gegen den CMK.
Jede S3 GetObject / PutObject im Data Lake-Bucket prüfen.
CloudTrail Datenereignisse für den Bucket. CloudTrail protokolliert standardmäßig nur Management-Ereignisse; Datenereignisse müssen explizit aktiviert werden.
Warum: Datenereignisse werden pro Ereignis abgerechnet; auf den sensiblen Bucket beschränken, um Kosten zu kontrollieren.
Benötigen Wer/Wann/IP für jeden S3-Zugriff; CloudTrail Datenereignisse sind zu teuer.
S3 Server Access Logging. Kostenlos; Protokolle werden an einen separaten Logging-Bucket geliefert; weniger Details als CloudTrail, deckt aber Anfragenden + IP + Pfad ab.
Einzelne Glue-Ausführungsrolle mit Least-Privilege-Richtlinien: `s3:GetObject` auf Quellpräfix, `redshift-data:ExecuteStatement`, `secretsmanager:GetSecretValue` auf dem spezifischen Secret ARN.