CertNote/ Commute Study Notes
Roadmap
KOEN
CLF-C02 · FoundationalCloud Practitioner - Foundational
DVA-C02 · AssociateDeveloper - Associate
SAA-C03 · AssociateSolutions Architect - Associate
SOA-C02 · AssociateCloudOps Engineer - Associate
SAP-C02 · ProfessionalSolutions Architect - Professional
DOP-C02 · ProfessionalDevOps Engineer - Professional
Linux Master 2 · 2급KAIT Linux Master - Level 2
SCS-C03 · SpecialtySecurity - Specialty
Linux Master 1 · 1급KAIT Linux Master - Level 1
MLA-C01 · AssociateMachine Learning Engineer - Associate
AIF-C01 · FoundationalAI Practitioner - Foundational
DEA-C01 · AssociateData Engineer - Associate
  • Week 1
    • 1.What Is Data Engineering
    • 2.Batch vs Streaming
    • 3.A Bird's-Eye View of AWS Data Services
    • 4.Data Formats and Modeling
    • 5.Week 1 Comprehensive Review
  • Week 2
  • Week 3
  • Week 4
  • Week 5
  • Week 6
  • Week 7
  • Week 8
  • Week 9
  • Week 10
    • 1.Integrated Review of Domains 1 & 2: Ingestion, Transformation & Storage Management
    • 2.Integrated Review of Domains 3 & 4: Operations & Support + Security & Governance
    • 3.Full-Length Practice Exam Pace: 65 Questions in 130 Minutes, Time Allocation and Scenario Strategy
    • 4.Commonly Missed Traps and Keywords: The "Requirement → Service" Translation Table
    • 5.D-Day Wrap-Up: Exam Structure, Time Allocation, and Scenario Decomposition Strategy
MLS-C01 · SpecialtyMachine Learning - Specialty
SQLD · 개발자SQL Developer (SQLD)

© CertNote · 주간랩스

  • About
  • Changelog
  • Contact
  • Terms
  • Privacy
← DEA-C01/Week 10/Day 1

Based on the DEA-C01 exam guide·Report an error

DEA-C01· AssociateWeek 10 · Day 1~48 min read

Day 1 - Integrated Review of Domains 1 & 2: Ingestion, Transformation & Storage Management

📌 Key Takeaways

  • Domain 1 (ingestion and transformation, 34%) plus Domain 2 (store management, 26%) make up 60% of the scored questions. Do not study the services one by one; tie them into a single thread: "data comes in, gets transformed, and gets stored."
  • The source decides the ingestion service: direct consumption or replay = Kinesis Data Streams, unmanaged-free loading = Data Firehose, Kafka assets = MSK, database changes = DMS (CDC), files = S3 + Glue.
  • Transformation is chosen by scale and operational burden: serverless ETL = Glue; large scale, fine-grained tuning, or existing Spark/Hive = EMR. Incremental ETL means Glue job bookmarks.
  • The store is decided by how the data is read: lake = S3, analytic DW = Redshift, serverless SQL = Athena, key-value = DynamoDB, OLTP = RDS/Aurora.
  • In Redshift, DISTKEY reduces shuffling and SORTKEY reduces scanning, and Spectrum keeps cold data in S3. The shared metastore is the Glue Data Catalog, and central fine-grained permissions come from Lake Formation.

Tying the Two Domains into One Thread

This is the final week. Today we review the two areas with the largest exam weight as a single flow. Rather than memorizing individual services, the key to passing is to see them as a pipeline: "data arrives, is loaded, is transformed, and is stored." A typical exam scenario leaves one or two of the five slots below blank and asks you to fill them in.

  1. Ingestion: Kinesis/Firehose (streaming) or DMS (CDC) → S3 raw zone
  2. Catalog: a Glue crawler infers the schema → registered in the Data Catalog
  3. Transformation: a Glue job (incremental with bookmarks) or EMR → S3 curated zone (Parquet)
  4. Storage/query: ad hoc queries with Athena, or load into Redshift for BI
  5. Governance: fine-grained per-team permissions with Lake Formation

The exam guide splits the two domains into eight tasks. If you know which week of this track touches which task, you can pick your weak spots and go back to them.

Exam guide taskWhat it asksWhere to go back
1.1 Data ingestionReading streaming and batch sources, schedule and event triggers, throttling responses, fan-out, replayabilityWeeks 2 and 3
1.2 Transformation and processingEngine choice (EMR, Glue, Lambda, Redshift), format conversion, cost, diagnosing transformation failuresWeeks 4 and 5
1.3 Pipeline orchestrationStep Functions, MWAA, Glue workflows, EventBridge, notifications (SNS, SQS)Week 5 Day 3
1.4 Programming conceptsIaC, CI/CD, Lambda concurrency, SAM, distributed computingThe "Task 1.4" section below
2.1 Store selectionStores by cost, performance, and access pattern; Spectrum, federation, and materialized views; open table formats; vector indexesWeeks 6 and 7
2.2 CatalogGlue Data Catalog, crawlers, partition synchronizationWeek 4 Day 1
2.3 LifecycleCOPY/UNLOAD, S3 Lifecycle, versioning, DynamoDB TTLWeek 6 Day 4
2.4 Model and schema evolutionRedshift and DynamoDB schema design, schema conversion, partitioning and compressionWeek 1 Day 4, Week 4 Day 4

Domain 1: Ingestion Pattern Summary

Ingestion splits broadly into streaming and batch. When the exam shows keywords like "real time" or "second-level latency," it is asking about streaming; when it shows "periodic," "bulk," or "hourly," it is asking about batch.

Requirement keywordSuitable serviceReason
Real-time streaming, custom consumers, ordering guaranteeKinesis Data StreamsShard-based; can reprocess within the retention period
Load a stream into S3/Redshift without managementData FirehoseFully managed; buffering, transformation, delivery
Kafka-compatible streamingAmazon MSKMigrating open-source Kafka
Bulk file loadingS3 + GlueThe default for batch ETL
Real-time replication of database changes (CDC)AWS DMSContinuous replication from source DB to target

💡 Related theory: Choose Kinesis Data Streams when you need "direct consumption, reprocessing, and ordering," and Firehose when the goal is "managed-free loading." Firehose has no shard or consumer concept; it delivers automatically to the destination based on buffer size and interval.

The moment you pick an ingestion service, you also fix its replay range. That is why the exam guide lists "replayability of ingestion pipelines" as its own item.

Ingestion pathCan past data be replayed?Basis
Kinesis Data StreamsYes, within the retention period24 hours by default, up to 365 days
MSKYes, within the topic retention settingRewind the offset and read again
DynamoDB StreamsOnly up to 24 hoursThe retention period cannot be extended
Data FirehoseNoIt has no retention or reprocessing feature. Use KDS as the source, or reprocess from the original data in S3
DMS CDCWithin the log retention range of the source DBIt reads the transaction log
S3 raw zoneAny timeThe reason to keep the original data immutable
  • When a reprocessing requirement exceeds the retention period, the answer is not the stream but the S3 original + batch reprocessing. That is why the combination "real-time analytics + original retention" (KDS → real-time consumers, with Firehose loading the same stream into S3) shows up repeatedly as the correct answer.

Domain 1: Transformation Summary

Choosing a transformation engine comes down to "serverless or not + data scale + coding style."

  • AWS Glue: Serverless Spark ETL. The default choice for small to medium scale, schedule- and trigger-based ETL. Its key feature is the Glue job bookmark, which skips data that has already been processed to enable incremental ETL.
  • Amazon EMR: A managed Hadoop/Spark cluster. For large scale, fine-grained tuning, or reusing existing Spark/Hive code. Cost optimization is Spot Instances + instance fleets.
  • Glue Studio / DataBrew: Visual/no-code transformation. DataBrew is for analysts to clean and profile data.
# Glue bookmark: process only new data since the last run (incremental ETL)
job.init(args['JOB_NAME'], args)
dyf = glueContext.create_dynamic_frame.from_catalog(
    database="raw", table_name="events",
    transformation_ctx="dyf"  # the bookmark tracks state by this ctx
)
# ... transformation ...
job.commit()  # the bookmark state is saved at commit time

💡 Related theory: A Glue bookmark works only when transformation_ctx and job.commit() are both present. For problems like "incremental ETL," "prevent reprocessing of data already processed," or "a scheduled job reads everything again each time," enabling the bookmark is the correct answer.

Before choosing the bookmark as the answer, there are three conditions to check (Week 4 Day 2).

  • The default value of the bookmark option is Disable. Even if the code has transformation_ctx and job.commit(), the job reads everything every time when the option is off.
  • An S3 source identifies new data by the object's last modified time, and a JDBC source by the bookmark key. So it cannot catch UPDATEs and DELETEs of existing rows in a JDBC source. If the requirement is "reflect changes too," the answer is DMS CDC.
  • If the job fails before job.commit(), the state is not updated and the next run reads the same input again. A bookmark is also at-least-once in nature, so design the output to be idempotent, such as overwrite or MERGE.

Task 1.4: What Comes Out of Programming Concepts

This is a task for which this track has no dedicated week. It asks not about syntax but about "which tool does what." The exam guide explicitly places knowledge of the syntax of any specific language out of scope.

TopicWhat to know
IaCCloudFormation defines a stack with templates, and CDK defines it with a programming language. Both are ways to deploy the same pipeline repeatedly across environments
AWS SAMBundles serverless resources such as Lambda, Step Functions, and DynamoDB tables in a short syntax for packaging and deployment. The deployment result is a CloudFormation stack
CI/CDAutomating the implementation, testing, and deployment of pipeline code. Data pipelines are also subject to version control and testing
Lambda concurrencyReserved concurrency is both the upper limit and the guaranteed share of concurrent executions a function can use; provisioned concurrency pre-warms execution environments to eliminate cold starts
Lambda storageTemporary storage is /tmp (512 MB to 10,240 MB); for files shared across invocations, mount EFS (a VPC connection is required)
Throttling responseLimit overruns on DynamoDB, RDS, and Kinesis are handled with retries using exponential backoff and jitter, batch size adjustment, and a capacity mode change
  • If the downstream system (such as RDS) can handle only a small number of connections, cap Lambda with reserved concurrency. If concurrency is left unlimited, database connections are exhausted as Lambda scales out.

Domain 2: Choosing a Data Store

Map stores by "structure, access pattern, and query style."

RequirementServiceKey point
Unstructured/semi-structured lake, unlimited scale, cheapAmazon S3Base storage for a data lake
Large-scale analytic queries, columnar MPP DWAmazon RedshiftPetabyte-scale OLAP
Direct SQL queries on S3, serverlessAmazon AthenaBased on Trino (formerly Presto), no infrastructure to manage
Key-value, ultra-low latency, serverlessDynamoDBSingle-digit millisecond latency
Relational OLTPRDS / AuroraTransaction processing

Domain 2: Redshift Operations Essentials

On the exam, Redshift is about distribution keys and sort keys.

  • Distribution style (DISTSTYLE): KEY (places rows with the same join column value on the same node, reducing shuffling), ALL (replicates a small dimension table in full), EVEN (spreads evenly), AUTO (Redshift chooses automatically).
  • Sort key (SORTKEY): Speeds up range filters and time-range queries. Blocks are skipped using zone maps.
  • Redshift Spectrum: Queries external data in S3 from Redshift without loading it. A tier separation in which hot data stays in Redshift and cold data stays in S3.
CREATE TABLE fact_sales (
  sale_id bigint, customer_id bigint, sale_ts timestamp, amount decimal(10,2)
)
DISTSTYLE KEY DISTKEY (customer_id)   -- optimizes the join with the customer dimension
SORTKEY (sale_ts);                    -- speeds up time-range queries

When joining a large fact table with a small dimension table, use DISTSTYLE ALL if the dimension is small; when joining two large tables, put a DISTKEY on the common join key on both sides so that no data moves between nodes (shuffle).

Let us go one level deeper into how the four distribution styles and two sort key types actually work.

ItemBehaviorCost paid
AUTOThe default applied when no distribution style is specified. A small table starts as ALL, changes to KEY as it grows, or to EVEN when there is no suitable key, all in the backgroundYou do not control it
EVENSplits round-robin regardless of column values. Suits tables that do not take part in joinsRedistribution at join time
KEYPlaces the same key value on the same slice. If both tables are distributed on the join column, the join finishes locallyIf the key is skewed, only particular slices grow large
ALLCopies the whole table to every nodeStorage is multiplied by the number of nodes, and loading and updating become slower. Use it only for tables that rarely change
Compound sort keyThe default. Efficient when conditions use the sort key columns from the leading column onwardLittle effect on conditions that use only the trailing columns
Interleaved sort keyGives each column equal weight. A condition may arrive on any column. Up to 8 columnsVACUUM REINDEX takes a long time. For frequently updated tables, compound is recommended
  • What a zone map really is: Redshift stores column data in 1 MB blocks and keeps each block's minimum and maximum values as metadata. When a range condition arrives, it looks only at those values and skips whole blocks. If the data is not sorted, values are scattered across many blocks and there are no blocks to skip.
  • AWS recommends creating tables with SORTKEY AUTO and DISTSTYLE AUTO and leaving them to automatic table optimization. However, when the exam stem points at the cause, as in "reduce data movement between nodes," the choice that picks the distribution key yourself is the answer.
  • The cue for ALL is not just "small" but "small and rarely changing." A choice that applies ALL to a large table or a frequently updated table is wrong.

Domain 2: Lake Formation and the Catalog

This is permission and metadata management for the data lake.

  • Glue Data Catalog: The central metastore shared by Athena, Redshift Spectrum, and EMR. Crawlers infer schemas automatically.
  • Lake Formation: Central, fine-grained permissions for the data lake. Table, column, row, and cell level permissions and LF-Tag based policies. Instead of writing IAM policies for each S3 object one by one, you manage data permissions centrally.

For the scenario "several teams share an S3 data lake, and we want to control access at the column/row level and manage it in one place," the answer is almost always Lake Formation. IAM bucket policies alone cannot provide column- or row-level control.

Paths Into and Out of Redshift

A stem that says "load data into Redshift" has different answers depending on the source and freshness.

PathWhen to useWhat to remember
COPY (S3 → Redshift)The default for batch loadingLoads in parallel when there are multiple files or the files are splittable. GZIP-compressed CSV/JSON cannot be auto-split, so split them into multiple files of similar size and make the file count a multiple of the slice count
Firehose → RedshiftLoad a stream without codeInternally stages in S3 and then runs COPY
Streaming ingestionQuery KDS or MSK directly with low latencyComes in through a materialized view without passing through S3. The stream is read when the view is refreshed
SpectrumQuery S3 data without loading itExternal tables use the Glue Data Catalog. On a provisioned cluster, it is billed by the amount of data scanned
Federated queryJoin the latest data of an operational RDS/Aurora without moving itQuery load goes to the remote DB
Materialized viewPrecompute a repeated heavy aggregationStores the result and refreshes it
UNLOAD (Redshift → S3)Export results to the lakeIf exported as Parquet, Athena and Spectrum can read it right away
  • Why COPY of one large file is slow: a file that cannot be split is read serially by a single slice. It cannot use Redshift's parallelism.
  • The complete form of "hot in Redshift, cold in S3" is to UNLOAD old data as Parquet and attach it back with a Spectrum external table.

Data Lifecycle: Different Expiry Mechanisms for Each Store

StoreMechanismBehavior
S3Lifecycle transitionAfter a set number of days, moves the object to a cheaper storage class
S3Lifecycle expirationAfter a set number of days, deletes the object. In a versioned bucket, set a separate rule for expiring previous versions
S3Intelligent-TieringAutomatically places objects not accessed for 30 or 90 days in cheaper tiers without you knowing the access pattern
DynamoDBTTLAutomatically deletes an item once the expiration timestamp written on it has passed
Kinesis Data StreamsRetention periodRecords expire once it passes
RedshiftDelete after UNLOADThere is no automatic expiry, so you build the export-and-delete job yourself

For S3 storage classes, the minimum storage duration is the trap. If you delete or move an object before it, you are charged for the remaining period.

Storage classRetrieval latencyMinimum storage durationOther billing factors
S3 StandardMillisecondsNone-
S3 Standard-IA / One Zone-IAMilliseconds30 daysPer-GB retrieval fee; objects smaller than 128 KB are billed as 128 KB. One Zone-IA stores in a single Availability Zone only
S3 Intelligent-TieringMilliseconds (default tier)NonePer-object monitoring fee, no retrieval fee. Objects smaller than 128 KB are not eligible for automatic tiering
S3 Glacier Instant RetrievalMilliseconds90 daysPer-GB retrieval fee
S3 Glacier Flexible RetrievalMinutes to hours (restore required)90 daysRestore fee
S3 Glacier Deep ArchiveHours (restore required)180 daysRestore fee
  • Lifecycle transitions flow only from top to bottom (the waterfall model). From Glacier Deep Archive you cannot move back to another class with a rule; you have to copy the restored copy.
  • Objects smaller than 128 KB are excluded from Lifecycle transitions by default, because the transition request fee can exceed the savings (this default changed in September 2024, so older material may say "they are transitioned to Glacier").
  • Athena cannot read objects stored in Glacier Flexible Retrieval or Deep Archive without restoring them. If the condition is "we query it with SQL occasionally," a choice that moves the curated zone to an archive class is eliminated.

New Store Topics in the Exam Guide

Version 1.1 of the exam guide, published in December 2025, added vectors and open table formats to Domain 2. Prepare at the level of distinguishing terms rather than depth.

TopicOne-line summary
Open table format (Apache Iceberg)Treats a bundle of files in S3 as a table with ACID, time travel, and row-level updates. Needs maintenance such as compaction and snapshot expiration
Amazon S3 TablesA bucket dedicated to Iceberg tables. S3 performs table maintenance such as compaction for you
VectorizationTurns text and similar data into numeric vectors (embeddings) to find things with similar meaning. An example is the process where an Amazon Bedrock knowledge base splits documents, embeds them, and puts them into a vector store
HNSWA graph-based vector index. Fast search and high recall, at the cost of heavy memory use and slow builds. Available in Aurora PostgreSQL (pgvector)
IVFAn index that divides vectors into clusters and searches only the nearby clusters. Uses less memory and builds fast, but recall varies with the search scope setting
Amazon MemoryDBA durable in-memory key-value store. Fast key-value access is the cue
Business data catalogWhile the Glue Data Catalog holds technical metadata (schema, location), Amazon SageMaker Catalog holds business context such as terms, owners, and descriptions

Symptom → Cause → Action

SymptomCauseAction
A scheduled Glue job reads everything again each timeThe bookmark is Disable (the default), or transformation_ctx or job.commit() is missingSatisfy all three conditions
Yesterday's data does not appear in AthenaThe new partition is not in the CatalogCrawler, ALTER TABLE ADD PARTITION, or partition projection
Athena cost grows faster than the dataRow-oriented format, queries without a partition filterConvert to Parquet, date partitions, use the partition column in WHERE
Athena became slow after Firehose loadingThe buffer is small, so many small files pour inIncrease buffer size and interval, periodic compaction
A Redshift join is slow because of redistribution between nodesThe join column and the distribution key do not matchDISTKEY on the join column in both tables; ALL for a small, static dimension
A date range query in Redshift scans everythingThere is no sort key, or the sort order has degradedMake the date column the sort key; restore a degraded sort with VACUUM
COPY is much slower than expectedOne large compressed file is read seriallySplit into multiple files (a multiple of the slice count)
Only a particular KDS shard is throttledPartition key skewChange to a high-cardinality key. Adding shards or on-demand mode does not solve it
After the DMS full load, changes do not arriveThe source DB's log settings are missingEnable binlog ROW, logical replication, or supplemental logging
Moving objects less than 30 days old to IA increased the billMinimum storage duration and retrieval feesIf the access pattern is unknown, use Intelligent-Tiering

Scenario → Answer Decision Table

These are situations that do not overlap with the practice questions, with pairs where changing one condition changes the answer.

ScenarioDecisive cueAnswer
Click events are only piled into S3No consumers, minimal operationsData Firehose
A fraud detection app and a recommendation app each read the same eventsMultiple consumers, independent consumptionKinesis Data Streams (enhanced fan-out if needed)
Only new rows are pulled each day from an append-only order log tableIncreasing key, append-onlyGlue job + bookmark
The status column of the same table changes constantlyChanges to existing rowsDMS CDC
A few times a month, logs are investigated with SQLIntermittent, no clusterAthena
Hundreds of people view the same dashboard all dayAlways on, concurrency, predictable performanceRedshift
Redshift joins with the current inventory in an operational AuroraLatest values without replicationFederated query
Redshift occasionally queries orders from three years agoCold data, storage costS3 + Spectrum
Session data is deleted automatically after 7 days (DynamoDB)Automatic per-item expiryTTL
Reduce storage cost for lake objects whose access frequency is unpredictableUnknown pattern, minimal operationsS3 Intelligent-Tiering
Regulations require 7-year retention, with almost no queriesLong-term retention, restore delay acceptableLifecycle → Glacier Deep Archive
Delete and update only a particular customer's rows in a lake tableRow-level updates and deletes, ACIDIceberg table

Tomorrow we combine Domains 3 and 4, on running the pipelines built this way reliably and protecting them safely.

📖 Glossary

  • Replayability: The ability to send data that has already passed through again for reprocessing. The retention period sets its range.
  • Bookmark key: The reference column Glue bookmarks use to remember "how far we have read" in a JDBC source.
  • Slice: The unit of parallel processing into which a Redshift compute node is divided. The distribution style decides which slice a row goes to.
  • Shuffle (redistribution): Moving rows between nodes for a join or aggregation. It does not occur when the distribution key matches.
  • Zone map: The minimum and maximum values stored for each block. It lets the engine skip blocks that do not match the condition without reading them.
  • Materialized view: A view whose query result is precomputed and stored. It keeps up with the latest state through refresh.
  • Federated query: A query that reads tables in another database directly, without moving the data.
  • Minimum storage duration: The minimum number of days a storage class requires. Even if you delete or move the object earlier, you are billed for the remaining period.
  • TTL: A DynamoDB feature that automatically deletes an item once the expiration timestamp written on it has passed.
  • Embedding: Text or an image converted into a numeric vector that reflects its meaning. A vector index uses it as its search target.

📝 Practice Questions

Click a choice to reveal the answer and explanation.

Question 1

A Glue job runs hourly on a schedule and must process only the new files in S3, but it re-reads all of the data every time, which makes cost and run time excessive. What is the most appropriate solution?

Question 2

Multiple analytics teams share the same S3 data lake, and you want to centrally control access so that some columns of a particular table (for example, a national ID number) are visible only to certain teams. Which service is the most suitable?

Question 3

You need to receive tens of thousands of IoT events per second in real time and automatically buffer, convert, and load them into S3 as Parquet without managing additional infrastructure. Which service is the most suitable?

Question 4

A petabyte-scale fact table is frequently joined with a small date dimension table. Which Redshift distribution setting is the most appropriate for minimizing data movement (shuffling) between nodes?

Question 5

A data analyst wants to run ad hoc queries against logs stored in S3 using standard SQL without launching a cluster or servers. They want to pay only based on the amount of data scanned. Which service is the most suitable?

PreviousWeek 9 Review: Security and GovernanceWeek 9 · Day 5Next Integrated Review of Domains 3 & 4: Operations & Support + Security & GovernanceWeek 10 · Day 2

Official references

  • DEA-C01 official exam page(opens in a new tab)
  • Amazon S3 documentation(opens in a new tab)
  • Amazon Redshift documentation(opens in a new tab)
  • AWS Glue documentation(opens in a new tab)
  • Amazon Athena documentation(opens in a new tab)
  • Amazon RDS · Aurora documentation(opens in a new tab)

On this page

  • Key Takeaways
  • Tying the Two Domains into One Thread
  • Domain 1: Ingestion Pattern Summary
  • Domain 1: Transformation Summary
  • Task 1.4: What Comes Out of Programming Concepts
  • Domain 2: Choosing a Data Store
  • Domain 2: Redshift Operations Essentials
  • Domain 2: Lake Formation and the Catalog
  • Paths Into and Out of Redshift
  • Data Lifecycle: Different Expiry Mechanisms for Each Store
  • New Store Topics in the Exam Guide
  • Symptom → Cause → Action
  • Scenario → Answer Decision Table
  • Glossary
  • Practice Questions