Deal of The Day! Hurry Up, Grab the Special Discount - Save 25% - Ends In 00:00:00 Coupon code: SAVE25
Welcome to Pass4Success

- Free Preparation Discussions

Amazon BDS-C00 Exam - Topic 5 Question 120 Discussion

Actual exam question for Amazon's BDS-C00 exam
Question #: 120
Topic #: 5
[All BDS-C00 Questions]

An online retailer is using Amazon DynamoDB to store data relate to customer transactions. The items in the table contain several string attributes describing the transaction as well as a JSON attribute containing the shopping cart and other details corresponding to the transactions. Average item size is ~250KB, most of which is associated with the JSON attribute. The average generates ~3GB of data per month.

Customers access the table to display their transaction history and review transaction details as needed. Ninety percent of queries against the table are executed when building the transaction history view, with the other 10% retrieving transaction details. The table is partitioned on CustomerID and sorted on transaction data.

The client has very high read capacity provisioned for the table and experiences very even utilization, but complains about the cost of Amazon DynamoDB compared to other NoSQL solutions.

Which strategy will reduce the cost associated with the client's read queries while not degrading quality?

Show Suggested Answer Hide Answer
Suggested Answer: C

Contribute your Thoughts:

0/2000 characters
Rasheeda
2 months ago
C could simplify things and save money too!
upvoted 0 times
...
Yuriko
3 months ago
Wait, are we really considering changing the primary table?
upvoted 0 times
...
Beth
3 months ago
B seems complicated, but it could work.
upvoted 0 times
...
Cherelle
3 months ago
I disagree, eventually consistent reads might confuse customers.
upvoted 0 times
...
Carissa
4 months ago
A sounds like a good way to cut costs!
upvoted 0 times
...
Sage
4 months ago
I vaguely recall something about LSIs and how they can help with query efficiency. If we project the JSON attribute into the index, it might save costs, but I wonder if it would still handle the read capacity well.
upvoted 0 times
...
Herschel
4 months ago
Vertically partitioning the table sounds like a good idea, but I’m uncertain about how it would affect query performance. We did a case study on this, and it seemed beneficial in some scenarios.
upvoted 0 times
...
Mila
4 months ago
I think changing the primary table's partitioning could help, but it sounds complicated. We practiced a similar question where we had to optimize queries using GSIs, and it was tricky to balance performance and cost.
upvoted 0 times
...
Lindsey
4 months ago
I remember we discussed using eventually consistent reads in class. It seems like a simple way to cut costs, but I'm not sure if customers would be okay with the slight delay in data accuracy.
upvoted 0 times
...
Ciara
5 months ago
I'm leaning towards the LSI option, since it sounds like it could provide a good balance between cost savings and maintaining data quality. Querying the primary table for the summary data and the LSI for the JSON details seems like a solid approach. I'll need to make sure I understand how to set up and maintain the LSI effectively.
upvoted 0 times
...
Naomi
5 months ago
The vertical partitioning option seems like it could work well too, separating the base attributes and the JSON data. That way we can query the primary table for the summary data and only retrieve the full JSON details when needed. I'll need to think through the implementation details.
upvoted 0 times
...
Emmett
5 months ago
Okay, the second option with the GSI partitioned on customer and sorted on date sounds promising. Projecting the small attributes into the GSI and then querying that for the summary data could be a good way to optimize the reads. I'll need to make sure I understand how that would work in practice.
upvoted 0 times
...
Troy
5 months ago
Hmm, the eventually consistent reads option seems tempting to reduce costs, but I'm not sure if the customers will be okay with potentially out-of-date transaction history. I'll have to weigh the trade-offs carefully.
upvoted 0 times
...
Royce
5 months ago
This is a tricky one. I'm not sure if I fully understand the implications of the different options. I'll need to carefully read through each one and think it through.
upvoted 0 times
...
Rickie
6 months ago
That's true, but it might impact the quality of the data for some customers.
upvoted 0 times
...
Inocencia
6 months ago
Vertically partitioning the table and using a secondary table for the JSON data is an interesting approach, but it might add complexity to the application.
upvoted 0 times
Cordell
2 months ago
Maybe a simpler solution like option A would work better?
upvoted 0 times
...
Roslyn
2 months ago
True, but it might save costs in the long run.
upvoted 0 times
...
Keneth
3 months ago
I agree, vertically partitioning could complicate things.
upvoted 0 times
...
Desmond
3 months ago
Complexity can lead to maintenance issues later.
upvoted 0 times
...
...
Annice
7 months ago
Partitioning on TransactionID and using a GSI sounds like a good way to optimize the query performance and cost. The JSON data can be efficiently retrieved from the GSI.
upvoted 0 times
...
Beth
7 months ago
The eventual consistency option seems like a reasonable trade-off, but I'm not sure if customers will be happy with potentially outdated transaction history.
upvoted 0 times
Laurel
6 months ago
B) Change the primary table to partition on TransactionID, create a GSI partitioned on customer and sorted on date, project small attributes into GSI and then query GSI for summary data and the primary table for JSON details.
upvoted 0 times
...
Lettie
6 months ago
A) Modify all database calls to use eventually consistent reads and advise customers that transaction history may be one second out-of-date.
upvoted 0 times
...
...
Kati
7 months ago
But what about option A? Eventually consistent reads could save costs too.
upvoted 0 times
...
Keneth
7 months ago
I agree with Rickie, partitioning on TransactionID seems like a smart move.
upvoted 0 times
...
Rickie
7 months ago
I think option B sounds like a good idea.
upvoted 0 times
...

Save Cancel