DEA-C01 Data Store Management Practice Question
A logistics company stores shipment tracking events in an Amazon DynamoDB table. The table uses a partition key of shipment_id and a sort key of event_timestamp. Analysts frequently run queries that filter by shipment_id and a range of event_timestamp values. The data engineer must ensure these queries are efficient and consume minimal read capacity. What should the data engineer do?
⚠ Common exam trap
The trap here is reaching for a secondary index or Streams when the existing primary key already supports the query pattern efficiently.
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
Use the base table with a Query operation specifying shipment_id as the partition key and a condition on event_timestamp.
The composite primary key already matches the access pattern, so a Query with shipment_id as the partition key and a condition on event_timestamp reads only the relevant item collection. This is the most efficient and lowest-cost approach and requires no additional index or infrastructure.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✓
Use the base table with a Query operation specifying shipment_id as the partition key and a condition on event_timestamp.
Why this is correct
The base table's composite primary key of shipment_id and event_timestamp is exactly the shape needed. A Query with shipment_id as the partition key and a range condition on event_timestamp reads only the matching item collection, avoids full table scans, and consumes read capacity proportional to the items returned.
- ✗
Create a global secondary index on event_timestamp alone.
Why it's wrong here
A GSI keyed only on event_timestamp would allow queries by time but lose the shipment_id filtering, forcing scans across many partitions. The access pattern filters by shipment_id plus a timestamp range, which the base table's primary key already supports efficiently, so this index adds cost without benefit.
- ✗
Run a Scan operation with a FilterExpression on shipment_id and event_timestamp.
Why it's wrong here
Scan reads every item in the table and then applies the filter, consuming read capacity for the entire table rather than the matching items. FilterExpression reduces returned data but not consumed capacity, so this approach is the least efficient option for the stated access pattern.
- ✗
Enable DynamoDB Streams on the table and query the stream for matching events.
Why it's wrong here
DynamoDB Streams captures item-level changes for event-driven processing and retains records for only 24 hours. It is not a queryable store and cannot serve historical range queries. Using streams for analytics would also require a separate consumer and storage layer, adding complexity without addressing query efficiency.
Go deeper
Related to this question
About these practice questions
Courseiva writes every DEA-C01 question from scratch — 1,321 in total, each with an explanation and a wrong-answer breakdown. None are copied from real exams or dumps. Learn why practice questions differ from exam dumps →
JA
Written and reviewed by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
Last reviewed September 2026 · checked against the official Amazon Web Services exam blueprint
This DEA-C01 practice question is part of Courseiva's free Amazon Web Services certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the DEA-C01 exam.