Q45 — AWS SAA-C03 Ch.12

Question 45 of 100 | ← Chapter 12

Q845. A company's application is receiving data from multiple data sources. The size of the data varies and is expected to increase over time. The current maximum size is 700 KB. The data volume and data size continue to grow as more data sources are added.The company decides to use Amazon DynamoDB as the primary database for the application. A solutions architect needs to identify a solution that handles the large data sizes.Which solution will meet these requirements in the MOST operationally efficient way?

Correct Answer: B. Store the large data as objects in an Amazon S3 bucket. In a DynamoDB table, create an item that has an attribute that points to the S3 URL of the data.

Explanation

To efficiently handle large data sizes in a scenario where a company's application is receiving data from multiple sources and using Amazon DynamoDB as the primary database, the recommended solution is:B. Store the large data as objects in an Amazon S3 bucket. In a DynamoDB table, create an item that has an attribute pointing to the S3 URL of the data.Here's why:Option B suggests storing the large data as objects in an Amazon S3 bucket and referencing them in a DynamoDB table. This approach leverages the strengths of both services to handle large data sizes in an operationally efficient manner.Amazon S3 is designed for storing and retrieving large objects, making it well-suited for handling data sizes that may exceed DynamoDB item size limits. By storing the large data in S3 and using DynamoDB to hold references to the S3 URLs, you can efficiently manage and access the data without worrying about size constraints.In DynamoDB, you can create an item with an attribute that contains the S3 URL pointing to the data stored in the S3 bucket. This allows you to store and retrieve metadata related to the large data in DynamoDB, while the actual data resides in S3.This solution provides operational efficiency by offloading the storage and retrieval of large data to Amazon S3, which is optimized for handling such objects. DynamoDB is then used to manage the metadata and provide fast and efficient querying capabilities.Option A suggests using an AWS Lambda function to filter and store larger data in an Amazon DocumentDB database. While this approach could work, it introduces additional complexity and operational overhead by maintaining two different databases (DynamoDB and DocumentDB) and managing data filtering and synchronization between them.Option C suggests splitting incoming large data into multiple items with the same partition key and writing them to DynamoDB using the BatchWriteItem API operation. This approach may work for some scenarios, but it can lead to increased complexity in managing data consistency, querying, and potential hot partition issues.Option D suggests using an AWS Lambda function with gzip compression to compress large objects as they are written to DynamoDB. While compression can help reduce storage requirements, it does not directly address the issue of DynamoDB item size limits, and it may introduce additional processing overhead.Therefore, the recommended solution is to store large data as objects in an Amazon S3 bucket and use a DynamoDB table to store item metadata with references to the S3 URLs. This approach leverages the strengths of each service and provides an operationally efficient solution for handling large data sizes within the application.