Use the tables for a quick pre-exam check. Expand a topic’s notes for explanations, examples, and additional distinctions.
Scope and study context High-yield DEA-C01 thinking pattern:
Ingest : batch files, database CDC, SaaS, stream, events, or messages.Store : Amazon S3 data lake, Amazon Redshift warehouse, operational database, or search/time-series target.Catalog and govern : AWS Glue Data Catalog, AWS Lake Formation, IAM, AWS KMS.Transform : AWS Glue, Amazon EMR, AWS Lambda, Amazon Managed Service for Apache Flink, SQL CTAS, or Redshift SQL.Operate : monitor, retry, validate, secure, optimize, and troubleshoot.Core AWS data engineering architecture
flowchart LR
A[Sources: databases, SaaS, files, apps, streams] --> B[Ingestion: DMS, DataSync, AppFlow, Kinesis, Firehose, MSK]
B --> C[S3 raw zone]
C --> D[Catalog: AWS Glue Data Catalog]
C --> E[Transform: AWS Glue, EMR, Lambda, Athena CTAS]
E --> F[S3 curated zone]
F --> G[Query: Athena, Redshift Spectrum, EMR, QuickSight]
E --> H[Warehouse: Amazon Redshift]
D --> I[Governance: Lake Formation, IAM, KMS]
G --> J[Consumers]
H --> J
B --> K[Ops: CloudWatch, CloudTrail, EventBridge]
E --> K
H --> K
Service selection matrix Need in the scenario Usually choose Why Watch for Durable object storage for a data lake Amazon S3 Scalable object storage, integrates with Glue, Athena, Redshift Spectrum, EMR S3 is not a relational database; design prefixes, partitions, and file sizes Metadata catalog for S3 tables AWS Glue Data Catalog Central table, schema, partition metadata for analytics services Catalog stores metadata, not the data itself Serverless SQL over S3 Amazon Athena Ad hoc SQL using Glue Data Catalog Query cost/performance depends heavily on scanned data, partitions, and formats Managed Spark ETL AWS Glue ETL Serverless distributed transformations, crawlers, jobs, workflows Tune partitioning, file sizes, pushdown, and job bookmarks Big data frameworks with more cluster control Amazon EMR Spark, Hive, Presto/Trino, Hudi/Iceberg workloads with configurable clusters More operational responsibility than Glue Cloud data warehouse Amazon Redshift High-performance analytics, SQL warehouse, COPY/UNLOAD, Spectrum Model distribution, sort, workload, and external table scans Database migration and CDC AWS Database Migration Service (AWS DMS) Full load plus ongoing change replication DMS is not a general-purpose ETL engine File transfer from on-premises storage to S3 AWS DataSync Managed transfer for file/object storage migrations and recurring sync Needs network connectivity and correct IAM/S3/KMS permissions Managed SFTP/FTPS/FTP endpoint AWS Transfer Family External partners exchange files into S3 or Amazon EFS Do not confuse with DataSync migration/sync SaaS application data ingestion Amazon AppFlow Managed SaaS-to-AWS flows Best for supported SaaS connectors, not arbitrary streaming apps Custom real-time stream consumers Amazon Kinesis Data Streams Ordered records per partition key, replay, custom consumers Partition key design affects ordering and hot shards Managed stream delivery to S3/Redshift/OpenSearch Amazon Data Firehose Minimal-code delivery pipeline with buffering and optional transform Not for multiple custom replayable consumers Kafka-compatible streaming Amazon MSK Managed Apache Kafka ecosystem compatibility Choose when Kafka APIs/tools are required Stateful streaming analytics Amazon Managed Service for Apache Flink Windowing, state, joins, event-time processing More suitable than Lambda for complex stream computation Event routing across AWS services/apps Amazon EventBridge Event bus, rules, schedules, SaaS events Not a high-throughput analytics stream replacement Queue-based decoupling Amazon SQS Durable message queue for workers Not intended for replayable analytics streams Short event-driven transformation AWS Lambda Lightweight transform, validation, routing Avoid for large distributed ETL Multi-step orchestration with branching/retries AWS Step Functions Coordinates services, handles state, retries, error paths Prefer over ad hoc scripts for resilient workflows Airflow DAG compatibility Amazon Managed Workflows for Apache Airflow (MWAA) Managed Apache Airflow Choose when Airflow is a requirement Fine-grained data lake governance AWS Lake Formation Table, column, row-style governed access with LF-Tags IAM/S3/KMS permissions still matter Encryption key control AWS Key Management Service (AWS KMS) Customer managed keys, key policies, grants Cross-account access needs key policy alignment Secrets for connections AWS Secrets Manager Rotatable database/API credentials Do not hard-code credentials in Glue jobs or notebooks Logs, metrics, alarms Amazon CloudWatch Operational monitoring Know service-specific metrics and log locations API audit history AWS CloudTrail Tracks management events and optional data events CloudTrail is audit, not performance monitoring
Notes and examples Quick service-selection drills Use these as fast mental prompts before attempting original practice questions.
If the stem says… Stem phrase Think first “Serverless ETL” AWS Glue “Spark with minimal infrastructure” AWS Glue “Existing Hadoop/Spark ecosystem” EMR “Run SQL on S3” Athena “Data warehouse analytics” Redshift “Full load and CDC” AWS DMS “Kafka-compatible” Amazon MSK “Managed delivery stream” Kinesis Data Firehose “Multiple custom stream consumers” Kinesis Data Streams “Route events from AWS services” EventBridge “State machine, retries, branching” Step Functions “Airflow DAGs” Amazon MWAA “Discover table schema” Glue crawler “Central table metadata” Glue Data Catalog “Fine-grained lake permissions” Lake Formation “Sensitive data discovery in S3” Macie “Store and rotate credentials” Secrets Manager
Scenario keyword shortcuts Scenario phrase Strong candidate answer “Run SQL directly on files in S3” Athena “Catalog S3 data for Athena/Redshift Spectrum/Glue” AWS Glue Data Catalog “Discover schema and partitions automatically” AWS Glue crawler “Fine-grained access to data lake tables and columns” Lake Formation “Move on-premises NFS/SMB data to S3 repeatedly” DataSync “Partners upload files through SFTP” AWS Transfer Family “Replicate relational database changes continuously” AWS DMS with CDC “Ingest supported SaaS data without custom connector code” Amazon AppFlow “Custom applications need replayable stream records” Kinesis Data Streams “Deliver streaming data to S3 with minimal management” Data Firehose “Existing Kafka producers and consumers” Amazon MSK “Streaming joins, windows, and stateful processing” Managed Service for Apache Flink “Complex workflow with retries and branches” Step Functions “Existing Airflow DAGs” MWAA “Reduce Athena scanned data” Parquet/ORC, compression, partitioning, column pruning “Exact set of files for Redshift load” COPY with manifest “Query S3 from Redshift” Redshift Spectrum external tables
Data ingestion reference Batch, file, and database ingestion Source or requirement Choose Pattern Common trap On-premises file shares or object stores DataSync Schedule transfer into S3 raw prefixes Transfer service does not transform business logic External users send files over SFTP/FTPS/FTP AWS Transfer Family Land files in S3, trigger downstream workflow Transfer Family is for protocol access, not storage analytics RDBMS full load to S3/Redshift AWS DMS Source endpoint, target endpoint, replication task Validate data types, constraints, and permissions RDBMS ongoing changes AWS DMS CDC Full load plus change data capture to target Monitor replication lag and source log retention SaaS data Amazon AppFlow Flow from SaaS connector to S3/Redshift/Salesforce targets as supported Check connector and field mapping support AWS service events EventBridge Rule routes event to target such as Lambda or Step Functions EventBridge is not a bulk ETL engine Application-generated files S3 direct upload or SDK Write to raw zone with event notification Use idempotent object naming and downstream deduplication
Notes and examples Streaming ingestion Requirement Choose Design notes Multiple custom consumers need independent processing Kinesis Data Streams Consumers read from stream; partition key controls ordering and load Delivery to S3, Redshift, OpenSearch, or third-party endpoint with low code Data Firehose Configure destination, buffering, optional Lambda transform, backup for failures Kafka API compatibility Amazon MSK Use Kafka producers/consumers, topics, partitions, consumer groups SQL/window/stateful analytics on streams Managed Service for Apache Flink Use event-time processing, windows, joins, state, checkpoints Message queue for asynchronous workers SQS Worker decoupling, not analytics replay Event bus integration EventBridge Event routing, schedules, SaaS events, cross-account event patterns
Ingestion design rules Separate raw and curated data . Land immutable source data first, then transform.Make ingestion idempotent . Assume retries can create duplicate deliveries.Capture metadata : source, ingestion timestamp, schema version, batch ID, and lineage.Use partition-friendly timestamps . Common S3 partitions include date or hour, but avoid creating excessive tiny partitions.Validate early . Use data quality checks before promoting data into curated zones.Monitor lag and failures . Streams, DMS tasks, Firehose delivery, and Glue jobs all expose operational signals.Batch, file, database, SaaS, and stream choices Scenario clue Prefer Why “Move large files from on-premises storage to S3” AWS DataSync Managed transfer, scheduling, verification, bandwidth controls. “SFTP/FTPS/FTP endpoint for partners” AWS Transfer Family Managed file transfer into S3 or EFS. “Migrate relational database with minimal downtime” AWS DMS full load plus CDC Handles initial load and ongoing change replication. “Capture changes from an operational database into S3” AWS DMS CDC, sometimes Kinesis targets CDC is the key phrase. “SaaS application data into S3 or Redshift” Amazon AppFlow Managed SaaS connectors and scheduled/event flows. “Producers emit real-time clickstream events; multiple consumers process them” Kinesis Data Streams or MSK Custom consumers and replay are likely needed. “Deliver streaming records to S3 with minimal operational overhead” Kinesis Data Firehose Managed buffering, batching, delivery, and optional transformation. “Application components need asynchronous decoupling” SQS Queue semantics, retries, DLQs, decoupling. “Route events from AWS services to targets” EventBridge Event pattern matching and event bus routing.
Kinesis Data Streams vs Kinesis Data Firehose Feature Kinesis Data Streams Kinesis Data Firehose Primary use Custom stream processing Managed delivery Consumers You build/manage consumers Firehose manages delivery Replay Supported within stream retention Not the main pattern Ordering Per shard Delivery batching; do not assume per-record processing order Transformations Consumer applications, Lambda, analytics services Optional lightweight Lambda transformation Best clue “Multiple consumers,” “custom processing,” “replay,” “low latency” “Deliver to S3/Redshift/OpenSearch,” “minimal management,” “buffer”
Streaming traps Ordering is usually partition-specific. In Kinesis Data Streams, records with the same partition key go to the same shard, so ordering is per shard.Hot shards come from bad partition keys. A timestamp, region, or constant customer type can overload a shard if it concentrates traffic.At-least-once delivery means duplicates can happen. Design idempotent consumers and deduplication where needed.Firehose buffering affects latency. If a question requires very low latency custom processing, Firehose may not be the best fit.SQS is not Kinesis. SQS is excellent for decoupling and retries, but it is not usually the right answer for replayable analytics streams with multiple independent consumers.S3 data lake design Data lake zones Zone Purpose Typical properties Raw / bronze Immutable copy of source data Source format, append-only, tightly restricted write access Staging / silver Cleaned, normalized, deduplicated Standardized schema, data quality checks, partitioned layout Curated / gold Analytics-ready products Columnar formats, business dimensions, governed access Sandbox Exploration and temporary outputs Lifecycle policies, limited permissions, not production source of truth Audit / quarantine Failed or suspicious records Preserve rejected records with error reason and batch metadata
Notes and examples Format Best for Avoid when Exam notes CSV Simple exchange, human-readable exports Large analytics scans, nested structures, strict typing Easy but inefficient for Athena/Redshift Spectrum JSON Semi-structured events Heavy repeated scans without conversion Convert to columnar for curated analytics Avro Row-oriented data with schema evolution, streaming ecosystems Pure SQL scan optimization is the main goal Often used in streaming pipelines Parquet Columnar analytics on S3 Frequent single-row updates without table format support High-yield choice for Athena, Glue, Redshift Spectrum ORC Columnar analytics, Hive-style ecosystems Tooling standardizes on Parquet Similar exam value to Parquet Apache Iceberg table S3 lakehouse tables needing ACID-style operations and schema evolution Simple immutable append-only files are enough Useful for governed, evolving analytical tables
Partitioning and layout rules Rule Why it matters Partition by common filter columns Enables partition pruning in Athena, Glue, EMR, and Spectrum Avoid overly high-cardinality partitions Too many small partitions can hurt planning and metadata operations Avoid many tiny files Distributed engines spend too much time opening files instead of scanning data Use columnar compression Reduces scanned bytes and improves query performance Keep partition naming consistent Hive-style paths such as dt=2026-06-18/ work well with many tools Compact streaming outputs Firehose and streaming jobs can create many small objects Store raw data immutably Enables replay, audit, and recovery from bad transforms
Example S3 layout:
s3://company-data-lake/raw/source=salesforce/object=account/ingest_date=2026-06-18/
s3://company-data-lake/curated/domain=sales/table=orders/order_date=2026-06-18/
s3://company-data-lake/quarantine/source=orders/ingest_date=2026-06-18/
AWS Glue and Data Catalog reference Glue components Component What it does Choose when AWS Glue Data Catalog Stores databases, tables, schemas, partitions, connections Analytics services need shared metadata Crawler Infers schema and discovers partitions Data structure is discoverable and changes need catalog updates Classifier Helps crawler interpret data Custom formats or nonstandard records Glue ETL job Runs Spark, Python shell, or other supported job types Transform, clean, join, and write data Glue Studio Visual job authoring Need low-code ETL development Glue workflow Coordinates Glue crawlers, jobs, and triggers Glue-centered pipeline orchestration Glue trigger Starts jobs/crawlers on schedule or condition Simple Glue workflow automation Glue connection Stores connection details for JDBC, network, or marketplace connectors Jobs need source/target connectivity Glue Data Quality Evaluates rules against datasets Validate completeness, uniqueness, ranges, schema expectations Glue Schema Registry Manages schemas for streaming/event data Producers and consumers need schema validation/evolution
Notes and examples Crawler vs explicit schema Situation Better choice Unknown files arrive and schema must be discovered Glue crawler Production schema must be controlled and reviewed Explicit table definition or IaC-managed catalog Frequent partition additions only Partition projection, ALTER TABLE ADD PARTITION, crawler, or repair pattern Crawler creates unexpected tables Adjust folder structure, classifiers, grouping behavior, and crawler scope Sensitive columns need access control Catalog plus Lake Formation, not crawler alone
Glue ETL exam points Topic Remember DynamicFrame vs DataFrame DynamicFrames help with semi-structured data and schema ambiguity; DataFrames expose standard Spark APIs Job bookmarks Track previously processed source data; still design idempotent writes Pushdown predicates Reduce source data read, especially with partitions Repartition/coalesce Manage output file count and parallelism Small files Compact to improve Athena/Spectrum/EMR performance Skew A few hot keys can slow joins and aggregations Secrets Use Secrets Manager or Glue connections, not embedded passwords VPC access Jobs accessing private databases need subnet/security group routing and access to S3/logs/secrets Failure handling Use retries, checkpoints/bookmarks, quarantine outputs, and CloudWatch logs
Illustrative Glue PySpark pattern:
from awsglue.context import GlueContext
from pyspark.context import SparkContext
glue_ctx = GlueContext ( SparkContext . getOrCreate ())
orders = glue_ctx . create_dynamic_frame . from_catalog (
database = "raw" ,
table_name = "orders" ,
push_down_predicate = "ingest_date >= '2026-06-01'"
)
df = orders . toDF () . dropDuplicates ([ "order_id" ])
df . write . mode ( "append" ) \
. partitionBy ( "order_date" ) \
. parquet ( "s3://example-data-lake/curated/orders/" )
Example AWS Glue Data Quality rule style:
Rules = [
IsComplete "order_id",
IsUnique "order_id",
ColumnValues "amount" >= 0,
ColumnExists "order_date"
]
Athena reference Need Athena feature or pattern Query S3 data with SQL External tables using Glue Data Catalog Improve performance Parquet/ORC, compression, partition pruning, avoid SELECT * Create curated columnar data CTAS or INSERT INTO from raw table Control query usage Workgroups, result locations, query settings Add partitions Crawler, ALTER TABLE ADD PARTITION, partition projection, or repair for Hive-style partitions Secure data IAM, S3 bucket policy, KMS key policy, Lake Formation permissions Share governed tables Lake Formation and catalog-based permissions where supported
Notes and examples Athena CTAS pattern:
CREATE TABLE curated_orders
WITH (
format = 'PARQUET' ,
partitioned_by = ARRAY [ 'order_date' ],
external_location = 's3://example-data-lake/curated/orders/'
) AS
SELECT
order_id ,
customer_id ,
amount ,
order_status ,
order_date
FROM raw_orders
WHERE order_date >= DATE '2026-01-01' ;
Partition repair pattern for Hive-style S3 paths:
MSCK REPAIR TABLE raw_orders ;
Common Athena traps:
Athena queries data in S3 ; it does not ingest or move data by itself. Catalog permissions alone are not enough if S3 or KMS denies access. Crawlers update metadata; they do not optimize file format or clean data. Partition projection can reduce partition metadata management, but the S3 path pattern must match the table definition. Columnar formats help most when queries select only needed columns. Amazon Redshift reference Redshift vs Athena vs S3 lake Requirement Better fit Ad hoc SQL on raw/curated S3 data Athena Managed warehouse with repeated BI queries and modeled tables Redshift Query S3 from warehouse without loading all data Redshift Spectrum Transform and publish warehouse data to S3 Redshift UNLOAD Load large S3 datasets into warehouse tables Redshift COPY Variable or intermittent warehouse demand Redshift Serverless may fit Stable warehouse environment with cluster-level control Redshift provisioned may fit
Notes and examples Redshift design points Topic What to know for DEA-C01 COPY Preferred bulk load from S3, DynamoDB, EMR, or supported sources UNLOAD Writes query results from Redshift to S3 Distribution style Affects data movement during joins; AUTO can help, but know KEY/EVEN/ALL concepts Sort keys Improve range-restricted scans and joins when aligned with query patterns Compression encoding Reduces storage and I/O ANALYZE Updates statistics for the optimizer VACUUM Reclaims/sorts storage where applicable Spectrum Queries external S3 data through external schemas/tables Materialized views Precompute expensive query results when refresh strategy fits Workload management Manage query queues, priorities, and concurrency behavior Federated query Query operational databases from Redshift for specific use cases
COPY from S3 pattern:
COPY analytics . orders
FROM 's3://example-data-lake/curated/orders/'
IAM_ROLE 'arn:aws:iam::123456789012:role/RedshiftLoadRole'
FORMAT AS PARQUET ;
UNLOAD to S3 pattern:
UNLOAD ( 'SELECT order_date, SUM(amount) AS revenue FROM analytics.orders GROUP BY order_date' )
TO 's3://example-data-lake/exports/revenue/'
IAM_ROLE 'arn:aws:iam::123456789012:role/RedshiftUnloadRole'
FORMAT AS PARQUET ;
Redshift troubleshooting shortcuts:
Symptom Check first COPY fails IAM role, S3 path, KMS access, file format, load error views Query slow after load Statistics, sort/distribution, skew, scanned external data External table query slow S3 file format, partitioning, file sizes, Spectrum pruning Access denied to S3 Redshift role policy, bucket policy, KMS key policy BI workload contention Workload management, query design, materialized views
Redshift decision points Topic Review rule Loading COPY from S3 is the standard high-throughput loading pattern. Exporting UNLOAD writes query results back to S3. External data Redshift Spectrum queries external S3 data through external schemas and catalog metadata. Distribution Choose distribution style to reduce data movement, especially for large joins. Sort keys Improve range-restricted scans and query pruning when aligned with filters. Workload isolation Use workload management, scaling, or separate designs depending on the requirement. Security Combine IAM roles, VPC/network controls, encryption, and audit logging.
Distribution and sort-key intuition Question clue Likely design Large fact table frequently joins to dimension table on customer_id Consider distribution on the join key if it avoids redistribution. Small dimension table joined often Replication-style distribution may help when supported by the design. Queries filter by date ranges Date/time sort key may help range scans. Queries filter by many dimensions unpredictably Avoid overcommitting to one narrow sort strategy without evidence. Skewed join key Bad DISTKEY candidate even if it appears in joins.
Redshift traps Redshift is not the default place for all raw data; S3 is usually the landing zone for a lake. Redshift Spectrum still needs access to S3 data and metadata. COPY is usually better than row-by-row inserts for large loads. Poor distribution keys cause data skew and network redistribution. Sort keys help only when query predicates can benefit from them. Streaming and event processing reference Kinesis, Firehose, MSK, Flink Dimension Kinesis Data Streams Data Firehose Amazon MSK Managed Service for Apache Flink Primary role Durable stream for custom apps Managed delivery stream Managed Kafka Stateful stream processing Consumers Custom consumers Destination delivery, optional transform Kafka consumers Flink application Replay Yes, within configured retention Not a replay stream for custom consumers Kafka retention model Reads from stream sources Ordering Per partition key/shard Not the main design feature Per Kafka partition Depends on source partitioning and app logic Operations Stream capacity and consumer design Destination and delivery config Kafka cluster/topic/client design Application state, checkpoints, parallelism Choose when You need custom stream processing You need easy delivery to storage/search/warehouse You need Kafka compatibility You need windows, joins, state, event-time logic
Notes and examples Streaming design traps Partition keys determine ordering and load distribution. Bad keys create hot partitions. Assume at-least-once delivery in many pipelines; design deduplication and idempotent sinks. Firehose buffering means it is usually not the answer for the lowest-latency custom consumer requirement. Lambda works for lightweight stream processing, not complex stateful analytics. Use dead-letter, backup, or quarantine patterns for failed records. Monitor consumer lag, delivery failures, throttling, and error logs. Requirement Choose Why Distributed ETL over large S3 data AWS Glue Spark job Serverless managed Spark Complex big data stack or custom libraries/configuration Amazon EMR More control over cluster/runtime Lightweight event transform Lambda Simple code on event triggers SQL transformation over S3 Athena CTAS/INSERT Serverless SQL pipeline step SQL transformation inside warehouse Redshift SQL, stored procedures, materialized views Keep warehouse transformations close to modeled data Stateful stream transformation Managed Service for Apache Flink Windows, joins, state Glue-only pipeline Glue workflows and triggers Native Glue orchestration Multi-service workflow Step Functions Branches, retries, service integrations Airflow DAG requirement MWAA Managed Airflow compatibility Time-based event trigger EventBridge Scheduler or rules Schedules pipeline starts
Notes and examples Orchestration exam distinctions If the question emphasizes Prefer Retry policies, branching, human-readable state machine, AWS SDK integrations Step Functions Existing Airflow DAGs and operators MWAA Simple scheduled Glue job Glue trigger or EventBridge schedule Event from S3 starts processing S3 event notification to Lambda/EventBridge/queue, then orchestrate Decoupling ingestion from processing SQS between producer and worker, or stream where replay/order is needed Failure notification EventBridge rule, CloudWatch alarm, SNS notification
Choose the processing service Workload Prefer Decision rule Serverless batch ETL using Spark AWS Glue Default for managed Spark ETL, Glue Data Catalog integration, crawlers, bookmarks. Highly customized Spark/Hadoop ecosystem Amazon EMR Choose when cluster-level control, frameworks, or custom tuning matters. Small event transformation Lambda Good for lightweight, short-running transformations; avoid for large ETL. SQL transformation in warehouse Redshift Strong for ELT after data is loaded into warehouse tables. SQL transformation over S3 Athena Good for serverless querying and CTAS/INSERT-style transformations over data lake tables. Multi-step workflow with branching and retries Step Functions Explicit state machine, error handling, service integrations. Airflow DAGs Amazon MWAA When Airflow compatibility is central. Glue-centric job sequence Glue workflows/triggers Useful when most steps are Glue crawlers and jobs. Schedule or event trigger EventBridge Good for invoking jobs/functions on a schedule or event pattern.
AWS Glue high-yield points Concept What to remember Glue Data Catalog Central metadata store for databases, tables, schemas, partitions, and connections. Crawlers Infer schema and create/update catalog metadata. They do not clean, join, or transform data. Jobs Perform ETL, often Spark-based. Jobs can read from S3, JDBC sources, streams, and catalog tables. Job bookmarks Track previously processed data to help avoid reprocessing in incremental workloads. DynamicFrames Glue abstraction that can handle semi-structured data and schema inconsistencies. Connections Store network and connection information for data stores. Credentials should be protected. Glue Studio Visual interface for building and monitoring ETL jobs. Glue Data Quality Helps define and evaluate quality rules; failed records still need operational handling.
Choosing Lambda for heavy joins, large file conversions, or long-running Spark work. Choosing Glue crawlers when the question asks for transformation logic. Choosing EMR when the requirement says serverless and minimal infrastructure management. Ignoring incremental processing . If only new data should be processed, look for bookmarks, CDC, timestamps, watermarks, or checkpoints. Ignoring bad-record handling . Strong pipelines separate valid records, rejected records, and operational alerts. Treating orchestration as transformation. Step Functions and MWAA coordinate work; they are not the processing engine by themselves. Security, governance, and access control Data access control layers Layer Controls Common exam point IAM identity policy What principals can call AWS APIs Required but may not be sufficient alone S3 bucket/access point policy Resource-level access to objects Needed for cross-account and centralized lake patterns S3 Block Public Access Prevents public exposure Keep enabled unless a specific approved public pattern exists KMS key policy/grants Who can use encryption keys Access fails if IAM allows S3 but KMS denies decrypt Lake Formation permissions Table, column, and governed data lake access Use for fine-grained analytics permissions Glue Data Catalog resource policy Catalog-level sharing/access Often relevant in cross-account catalogs Secrets Manager Stores database/API credentials Use with Glue connections and jobs VPC security groups/routes/endpoints Network path to private sources and AWS APIs Glue/DMS in VPC often need S3 and service endpoint access CloudTrail Audit of API activity Enable relevant data events when object-level audit is needed Amazon Macie Sensitive data discovery in S3 Helps identify PII/sensitive data exposure
Notes and examples Governance decision table Requirement Strong answer Analysts can query only approved columns Lake Formation column permissions or governed views Grant data lake access by business tags Lake Formation LF-Tags Encrypt S3 objects with customer-managed key SSE-KMS with proper key policy Cross-account Athena access to encrypted S3 data Align Lake Formation/catalog, S3 bucket policy, IAM, and KMS key policy Store JDBC password for Glue Secrets Manager or Glue connection using a secret Audit who changed Glue table definitions CloudTrail management events Detect sensitive data in S3 Macie Keep Glue job traffic private to AWS services VPC endpoints and correct routing/security groups Prevent accidental public S3 lake access S3 Block Public Access plus least-privilege bucket policies
Least-privilege reminders Grant jobs only the S3 prefixes, catalog databases/tables, KMS keys, and logs they need. Separate roles for ingestion, transformation, catalog administration, and consumption. For cross-account sharing, check all layers: IAM, resource policy, Lake Formation, S3, and KMS. Avoid embedding credentials in scripts, notebooks, job parameters, or environment variables when Secrets Manager is appropriate. Use encryption in transit and at rest for data pipelines. Layer What it controls Common trap IAM identity policy What a user, role, or service principal can do Granting identity permissions but forgetting resource policy or KMS access. S3 bucket policy Who can access bucket and objects Cross-account access often needs both role permissions and bucket policy. KMS key policy/grants Who can use encryption keys S3 or Glue access can still fail if KMS decrypt is not allowed. Lake Formation Table, column, row, and tag-based data lake permissions Lake Formation is separate from ordinary IAM thinking. Secrets Manager Secure database credentials and rotation Do not hardcode passwords in Glue scripts or job parameters. VPC endpoints Private access to AWS services Glue jobs in private subnets need a route to S3, KMS, Secrets Manager, and other services they call. CloudTrail API audit events Not the same as application logs or ETL error logs. CloudWatch Metrics, logs, alarms Not a permission system or audit ledger.
Cross-account data access checklist When a question involves cross-account S3, Glue, Redshift Spectrum, Athena, or Lake Formation, check all of these:
Trust policy — can the principal assume the required role?Identity policy — does the role allow required actions?Resource policy — does the bucket, key, queue, or topic allow access?KMS key policy — can the principal encrypt/decrypt with the key?Lake Formation grants — if Lake Formation governs the table, are data permissions granted?Network path — can the service reach the endpoint privately if required?Catalog sharing — is metadata available to the consuming account?Encryption review Data state Typical controls At rest in S3 Server-side encryption with AWS-managed or customer-managed KMS keys, bucket policies. At rest in Redshift/RDS/DynamoDB Service encryption settings and KMS keys where applicable. In transit TLS/HTTPS/JDBC over TLS, secure endpoints. Secrets Secrets Manager or Parameter Store with appropriate encryption and access control. Logs Encrypt and restrict access to CloudWatch Logs, S3 log buckets, and audit trails.
Operations, monitoring, and troubleshooting Service signals Service Monitor Glue jobs Job run status, CloudWatch logs, errors, duration, data skew symptoms, output file count Glue crawlers Crawler run status, schema changes, tables created, partition discovery Athena Query failures, scanned data, workgroup settings, result location, permissions Redshift Query performance, load errors, disk/storage pressure, WLM queues, system views DMS Task status, table statistics, replication lag, task logs Kinesis Data Streams Write/read throttling, iterator age or consumer lag, hot partitions Firehose Delivery success/failure, transformation errors, backup records MSK Broker health, topic throughput, consumer lag Flink Checkpoints, application health, lag, failed records S3 Object creation, replication/lifecycle status, access errors Lake Formation Grant changes, denied access, LF-Tag policy alignment KMS Key access denied, disabled key, missing cross-account permissions Step Functions Failed states, retries, execution history EventBridge Rule matches, target invocation failures, dead-letter targets
Notes and examples Troubleshooting table Symptom Likely causes Fast checks or fixes Athena scans too much data Row format, no partitions, no column pruning Convert to Parquet/ORC, partition by filters, avoid SELECT * Athena access denied IAM, S3, KMS, Lake Formation, workgroup result location Test each permission layer Glue job out of memory or slow Skew, tiny files, wide shuffle, no predicate pushdown Repartition, compact, filter early, tune joins Glue job reprocesses data Bookmark disabled/reset, changed source path, non-idempotent writes Enable bookmarks where useful, deduplicate, design idempotent outputs Crawler creates many tables Folder structure or classifier mismatch Narrow crawler scope, fix path layout, adjust classifiers DMS CDC lag grows Source log pressure, target bottleneck, network, task config Check task logs, table stats, target capacity Firehose delivery fails Destination permission, KMS, transform error, schema conversion issue Inspect error logs and backup prefix Kinesis consumer falls behind Hot shard, slow consumer, insufficient parallelism Improve partition key, scale stream/consumer design Redshift COPY errors Bad file format, role/KMS issue, incompatible schema Check load error views and S3 object format Redshift query slow Poor distribution/sort, stale stats, queue contention Analyze tables, review plan, tune WLM and table design Lake Formation denies query Missing LF grant, IAM mismatch, location not registered Check data location registration and table permissions Glue job cannot reach S3 from VPC Missing route or VPC endpoint Add S3 access path and service endpoints as needed S3 event does not start pipeline Notification filter mismatch, target policy, unsupported event path Validate prefix/suffix, destination permissions, event pattern
High-yield service map Need in the question Strong AWS service candidate Watch for traps Serverless Spark ETL, schema-aware jobs, job bookmarks AWS Glue Glue Data Catalog stores metadata; it does not transform data by itself. SQL queries directly over S3 data Athena Performance depends heavily on partitions, columnar formats, and scan reduction. Managed data warehouse for analytics Amazon Redshift Not ideal as a raw object data lake; use COPY, Spectrum, external schemas, and proper table design. Full load and CDC from databases AWS Database Migration Service, AWS DMS DMS is not a general-purpose transformation engine. High-throughput streaming with custom consumers Kinesis Data Streams Ordering is per shard, not global. Partition-key design matters. Managed stream delivery to S3, Redshift, OpenSearch, or other destinations Kinesis Data Firehose Firehose is delivery-focused; use Kinesis Data Streams when consumers need custom, low-latency stream processing. Kafka-compatible streaming workloads Amazon MSK Do not choose MSK merely because the word “streaming” appears. Look for Kafka compatibility or existing Kafka clients. Decoupled application messages SQS SQS is a queue, not a replayable analytics stream in the same sense as Kinesis or Kafka. Event routing from AWS services or scheduled events EventBridge EventBridge is not a full ETL orchestrator. Stateful workflow orchestration Step Functions Best when explicit states, retries, branches, and service integrations matter. Airflow-compatible orchestration Amazon MWAA Choose when Airflow DAG compatibility or migration is required. Metadata catalog for data lake tables AWS Glue Data Catalog Permissions may still involve IAM, S3 policies, KMS, and Lake Formation. Centralized data lake permissions and fine-grained access AWS Lake Formation Lake Formation does not replace all IAM, network, and KMS considerations. Sensitive data discovery in S3 Amazon Macie Macie discovers and classifies; it is not an ETL service. Secrets for database connections AWS Secrets Manager Prefer over hardcoded credentials or plain-text job parameters. Monitoring jobs, logs, alarms, metrics CloudWatch CloudWatch observes; it does not automatically fix bad partition design or failed records. Audit API activity CloudTrail CloudTrail is audit history, not pipeline health monitoring by itself.
Pipeline reliability patterns Need Pattern Avoid duplicate processing Idempotent writes, deduplication keys, checkpoints, job bookmarks. Recover from transient failures Retries with backoff, DLQs, replayable streams, reprocessing from raw zone. Detect failed jobs CloudWatch metrics/logs/alarms, EventBridge failure events, workflow status. Handle bad records Quarantine path, validation rules, data quality reports, alerting. Maintain auditability Raw immutable landing zone, CloudTrail, job logs, lineage metadata. Minimize blast radius Separate environments, least privilege roles, isolated prefixes/buckets/accounts. Reduce cost Partition pruning, file compaction, right-sized compute, lifecycle policies.
Service-specific operational points Service Operational focus AWS Glue Job logs, worker sizing, bookmarks, retries, data quality, connection failures. Kinesis Data Streams Shard capacity, iterator age, consumer lag, hot shards, retention. Kinesis Data Firehose Delivery failures, backup S3 prefix, transformation errors, buffering settings. AWS DMS Replication lag, task errors, table mapping, endpoint connectivity, CDC status. Athena Query failures, partition metadata, data format errors, scanned data volume. Redshift Query performance, data skew, workload queues, COPY errors, disk/storage pressure. DynamoDB Throttling, hot partitions, capacity mode, GSI design, stream consumers. Step Functions Failed states, retry/catch behavior, timeout settings, state input/output size. EventBridge Rule pattern matching, target permissions, dead-letter or retry configuration.
Monitoring trap list A passing pipeline can still produce bad data; monitor quality , not just job success. CloudWatch logs may show the error, but you still need retry, alert, and remediation design. Duplicate events are normal in many distributed systems; consumers must handle them. “Near real time” may require watching consumer lag, iterator age, or delivery delay. A job that scans too much data is both slower and more expensive. Data quality, schema, and reliability Concern AWS pattern Validate completeness, uniqueness, ranges AWS Glue Data Quality rules Enforce streaming schema compatibility AWS Glue Schema Registry Preserve bad records Quarantine S3 prefix with error metadata Prevent duplicate records Idempotent keys, deduplication step, deterministic output paths Handle schema drift Crawler review, explicit schema management, compatible schema evolution Track lineage Store batch IDs, source metadata, job run IDs, and catalog versions Recover from bad transform Reprocess raw immutable data into corrected curated zone Promote trusted datasets Raw to curated pipeline with quality gates
Reliability checklist:
Can the pipeline be safely retried? Are failed records preserved? Is raw source data immutable? Are schema changes detected before breaking consumers? Are job failures visible through alarms or events? Are downstream writes atomic enough for the service and format used? Are permissions least-privilege but sufficient across IAM, S3, KMS, and Lake Formation? Area Optimize by Athena Columnar formats, compression, partitions, workgroups, CTAS for repeated transforms S3 lake Lifecycle policies, compact files, avoid unnecessary copies, design prefixes logically Glue Filter early, avoid shuffles, use bookmarks, write partitioned columnar output Redshift COPY from S3, sort/distribution design, statistics, materialized views, workload tuning Kinesis Balanced partition keys, right stream capacity mode/design, efficient consumers Firehose Destination buffering/format conversion, backup failed records, transform only when needed DMS Monitor lag, choose appropriate task settings, avoid unnecessary transformations Cross-service data movement Keep pipelines regional and avoid unnecessary intermediate hops Governance Use Lake Formation and tags to avoid duplicating governed datasets
High-yield optimization principle: for analytics on S3, reduce bytes scanned and reduce file/partition overhead before scaling compute.
Common DEA-C01 traps Trap Correct thinking “Crawler transforms data” Crawlers infer/update metadata only “Data Catalog stores the dataset” It stores metadata; data remains in S3 or source systems “IAM allow means Athena can read everything” S3, KMS, Lake Formation, and workgroup settings can still deny access “Firehose is the same as Kinesis Data Streams” Firehose is managed delivery; Data Streams supports custom consumers and replay “DMS is for complex transformations” DMS is mainly migration/replication with limited transformation “CSV is fine for large Athena workloads” Convert curated analytics data to Parquet/ORC “More partitions always improve performance” Too many tiny partitions can degrade planning and metadata operations “Lambda is best for all ETL” Use Glue/EMR for distributed data processing “S3 event notification guarantees a complete batch workflow” Use orchestration and idempotency for multi-file/batch completion logic “Redshift Spectrum replaces all warehouse modeling” Spectrum is useful, but internal Redshift tables can be better for repeated BI workloads “KMS is only an encryption checkbox” Key policies and grants are common causes of access failures “Lake Formation replaces all IAM” Lake Formation works with IAM, S3, catalog, and KMS controls
Final review checklist Before the exam, be able to answer these quickly:
Which service ingests files , database CDC , SaaS , events , streams , and Kafka ? When should data be stored in S3 , Redshift , or queried by Athena ? How do Glue Data Catalog , crawlers , Lake Formation , and Glue jobs differ? How do you optimize S3 analytics with Parquet , compression , partitioning , and compaction ? What permission layers can block a query: IAM , S3 , KMS , Lake Formation , catalog , or network ? How do you troubleshoot failed Glue , Athena , Redshift COPY , DMS , Kinesis , and Firehose workflows? Which orchestration service fits: Step Functions , Glue workflows , MWAA , or EventBridge ? How do you make pipelines idempotent, observable, recoverable, and governed? Notes and examples Final quick checklist Before you start a timed mock exam, confirm you can answer these without notes:
Can I distinguish Kinesis Data Streams , Kinesis Data Firehose , MSK , and SQS ? Can I choose between Glue , EMR , Lambda , Athena , and Redshift for transformations? Can I explain why S3 layout affects Athena and data-lake performance? Can I identify when DMS CDC is the right ingestion pattern? Can I troubleshoot access failures involving IAM , S3 policies , KMS , and Lake Formation ? Can I recognize small-file , overpartitioning , schema drift , and hot partition problems? Can I design for retries , idempotency , DLQs , checkpoints , and quarantine paths ? Can I connect monitoring tools to the right failure type? Next step: use this Cheat Sheet as a checklist, then move into DEA-C01 topic drills and original practice questions with detailed explanations until your mistakes are concentrated in a few identifiable decision areas.
The core DEA-C01 mental model Most questions can be reduced to a data pipeline decision:
Source — application, database, SaaS, stream, log, file, on-premises system.Ingest — batch, CDC, stream, event, transfer, managed delivery.Store — S3 data lake, Redshift warehouse, DynamoDB, RDS/Aurora, OpenSearch, or another target.Catalog and govern — Glue Data Catalog, Lake Formation, IAM, KMS, tags, metadata.Transform — Glue, EMR, Lambda, Athena SQL, Redshift SQL, Step Functions orchestration.Serve — Athena, Redshift, QuickSight, APIs, ML, search, downstream applications.Operate — monitor, retry, checkpoint, validate, secure, audit, optimize cost.
flowchart LR
A[Data source] --> B{Ingestion pattern}
B -->|Batch files| C[S3 / DataSync / Transfer Family]
B -->|Database migration or CDC| D[AWS DMS]
B -->|Streaming records| E[Kinesis Data Streams / MSK]
B -->|Managed delivery| F[Kinesis Data Firehose]
B -->|SaaS integration| G[AppFlow]
C --> H[S3 data lake]
D --> H
E --> H
F --> H
G --> H
H --> I[Glue Data Catalog]
I --> J{Processing}
J -->|Serverless Spark ETL| K[AWS Glue]
J -->|Custom Spark/Hadoop| L[EMR]
J -->|SQL over S3| M[Athena]
J -->|Warehouse analytics| N[Redshift]
K --> O[Govern, monitor, optimize]
L --> O
M --> O
N --> O
Main storage choices Storage target Best for Watch for Amazon S3 Data lakes, raw/curated zones, durable object storage Object layout, partitions, file size, compression, lifecycle, security. Amazon Redshift Warehousing, BI, complex analytics Distribution, sort keys, COPY/UNLOAD, workload management, concurrency. DynamoDB Low-latency key-value and document access Partition-key design, hot keys, GSIs/LSIs, capacity mode, streams. RDS/Aurora Transactional relational workloads Not usually the best answer for large analytical scans. OpenSearch Search, log analytics, text search, near-real-time indexing Not a replacement for a warehouse or data lake. EFS Shared file system for compute Not normally the primary analytical data lake store.
Notes and examples S3 data lake layout A strong S3 lake design usually has zones:
Zone Purpose Example Raw / landing Preserve source data with minimal changes Original JSON, CSV, logs, CDC files. Cleaned / standardized Validated, normalized, deduplicated Parquet with consistent schema. Curated / serving Business-ready data sets Partitioned tables for Athena, Redshift Spectrum, or ML. Quarantine / rejected Bad or suspicious records Schema failures, malformed files, validation errors.
Design choice Strong exam answer Querying only selected columns Use columnar formats such as Parquet or ORC. Reducing scanned data Partition by common filters and use compression. Avoiding excessive S3 requests Compact small files into larger analytical files. Handling evolving schema Use catalog updates, compatible formats, and planned schema evolution. Frequent Athena queries Use partition pruning, partition projection where appropriate, and columnar storage. Raw auditability Keep immutable raw data before transformation. Lifecycle cost control Move older data to lower-cost storage classes when access patterns allow.
Partition traps Partition by query pattern, not by habit. Date partitions are common, but the best key depends on how users filter data.Too many tiny partitions can hurt performance. Hour/minute/customer partitions may create partition explosion.Partition columns are often derived from path structure. The catalog must know the partition values.Columnar format plus partitions is stronger than either alone. Athena cost and speed depend on data scanned. Compress, partition, and select only needed columns.Requirement Best concept Discover schemas in S3 and create table definitions Glue crawler Central table definitions for Athena, Glue, and other analytics services Glue Data Catalog Fine-grained lake permissions Lake Formation Schema compatibility for streaming producers/consumers Schema registry pattern, such as AWS Glue Schema Registry Governed access by business classification LF-tags and Lake Formation permissions Detect personally identifiable or sensitive data in S3 Macie Track operational lineage and transformations Use catalog metadata, job logs, workflow metadata, and governance tools as appropriate
Notes and examples Schema evolution traps A crawler can detect changes, but automatic schema changes can break downstream consumers. Adding nullable columns is usually safer than renaming or changing data types. Streaming producers and consumers need compatibility controls before bad data reaches storage. Catalog schema and physical data must match. A table definition alone does not fix inconsistent files. Partition schema drift can cause query errors when old and new files differ. Calculation and capacity review If a scenario gives per-shard or per-partition limits, calculate from the numbers in the question rather than memorizing changing quotas.
For shard-style capacity planning, use the largest requirement across write throughput, record count, and read throughput:
\[
\text{required shards} =
\max(
\lceil \text{write throughput} / \text{write capacity per shard} \rceil,
\lceil \text{records per second} / \text{records per shard} \rceil,
\lceil \text{read throughput} / \text{read capacity per shard} \rceil
)
\]
For data-lake query cost/performance questions, focus on scanned data:
\[
\text{data scanned} \approx
\text{selected columns}
\times
\text{matching partitions}
\times
\text{uncompressed or effective file size}
\]
Practical implications:
Parquet/ORC reduces scanned columns. Partitions reduce scanned rows/files. Compression reduces physical bytes read. File compaction reduces request overhead. Predicate pushdown helps only when data format and query design support it. Common DEA-C01 answer-choice traps Trap Better reasoning “Use Lambda for all transformations.” Lambda is for lightweight event processing; Glue or EMR is better for large ETL. “Use Glue crawler to transform data.” Crawlers infer metadata; Glue jobs transform. “Use SQS for analytics stream replay.” SQS is a queue; choose Kinesis Data Streams or MSK for stream processing and replay-style consumers. “Use Firehose for custom multi-consumer stream apps.” Firehose is managed delivery; Kinesis Data Streams or MSK fits custom consumers. “Use Redshift as the raw data lake.” Land raw data in S3; load curated data into Redshift when warehouse analytics are needed. “Grant S3 access and ignore KMS.” Encrypted objects require KMS permissions too. “Lake Formation means IAM no longer matters.” IAM, Lake Formation, S3, KMS, and service roles can all matter. “Partition by every possible column.” Overpartitioning causes metadata and small-file problems. “Use CSV because it is simple.” Columnar formats are usually better for analytics over large data. “Assume exactly-once delivery.” Many services are at-least-once; design deduplication and idempotency. “Use DMS for complex ETL.” DMS is for migration and replication, not rich transformations. “Use Athena without considering format.” Athena performance depends on data layout, compression, partitions, and scanned bytes. “Use public internet paths for private data jobs.” Look for VPC endpoints, private subnets, security groups, and private connectivity. “Trust the catalog blindly.” Catalog metadata must match actual files and permissions. “Ignore rejected records.” Real pipelines need quarantine, alerts, and reprocessing strategy.
Practice plan after this Cheat Sheet For the AWS Certified Data Engineer – Associate (DEA-C01) exam, do not practice only by memorizing service names. The real skill is choosing among plausible AWS services under constraints.
Use a question bank in this order:
Topic drills: ingestion
Kinesis Data Streams vs Firehose vs MSK vs SQS. DMS full load and CDC. DataSync, Transfer Family, and AppFlow scenarios. Topic drills: storage and catalog
S3 partitioning and file formats. Glue Data Catalog and crawlers. Athena, Redshift Spectrum, and Redshift loading. Topic drills: transformation
Glue vs EMR vs Lambda vs Athena SQL vs Redshift SQL. Incremental processing, bookmarks, checkpoints, and bad-record handling. Topic drills: security and governance
IAM plus S3 bucket policies. KMS key-policy failures. Lake Formation permissions and LF-tags. Cross-account access. Topic drills: operations
CloudWatch logs and metrics. Retry, DLQ, replay, deduplication. Cost and performance optimization. Mixed mock exams
Force yourself to explain why each wrong answer is wrong. Track misses by decision type, not just by service. Revisit detailed explanations for every guessed question. Put the review into practice IT Mastery
Practice DEA-C01 \u2014 AWS Certified Data Engineer \u2013 Associate on Web Use the web app to preview question style, then practise the topics you need to revisit.
Original IT Mastery practice, independent of the exam provider; not official exam questions.
Open in IT Mastery Free preview
Included
before subscription
Practice bank
3,985
total questions
in the app