DEA-C01 Data Store Management Practice Question
A gaming company uses Amazon DynamoDB to store player profiles and game state. The table has a partition key of 'player_id' and no sort key. The table is provisioned with 5,000 RCUs and 5,000 WCUs. The application performs frequent reads and writes to update player scores. Recently, the company introduced a new feature that allows players to form guilds. The guild data is stored in a separate DynamoDB table with a partition key of 'guild_id'. The application often needs to retrieve all members of a guild. The data engineer is encountering high latency when querying the guild table because the guilds can have up to 100 members. The engineer wants to reduce latency without changing the application architecture. What should the data engineer do?
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
✓
Create a global secondary index (GSI) on the guild table with partition key guild_id and sort key member_id.
Adding a global secondary index (GSI) on the guild table with guild_id as the partition key and member_id as the sort key allows efficient queries for all members of a guild. Option A is wrong because increasing capacity may not solve the access pattern issue. Option C is wrong because DynamoDB Streams are for change data capture, not for query optimization. Option D is wrong because DAX caches read results; if the query pattern is inefficient, DAX won't help much.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
Increase the provisioned read and write capacity for the guild table to 10,000 RCUs and 10,000 WCUs.
Why it's wrong here
Higher capacity may reduce throttling but does not address the inefficient query pattern.
- ✓
Create a global secondary index (GSI) on the guild table with partition key guild_id and sort key member_id.
Why this is correct
The GSI allows efficient retrieval of all members of a guild by querying on guild_id.
- ✗
Enable DynamoDB Streams on the guild table and process the stream to populate a separate read table.
Why it's wrong here
Enabling DynamoDB Streams and processing them to populate a separate read table does not directly address the high latency encountered when querying the *original* guild table for all members. This approach primarily facilitates data denormalisation or propagation for different access patterns, rather than optimising the read performance of a `Query` operation on the source table itself. It is tempting because streams are excellent for creating read replicas or indexes for *alternative* access patterns, such as full-text search or analytics, where the original table's schema is unsuitable.
- ✗
Use DynamoDB Accelerator (DAX) to cache the results of the guild queries.
Why it's wrong here
DAX caches responses but does not change the query pattern; the query will still be inefficient.
Go deeper
Related to this question
About these practice questions
Courseiva writes every DEA-C01 question from scratch — 1,711 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 by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
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.