MLS-C01 Question 31
Single answerA company is using Amazon Kinesis Data Streams to collect clickstream data from its website in near real-time. The data needs to be analyzed in batches every 15 minutes and stored in Amazon S3 for long-term storage and further processing. Which approach should the company use to efficiently process and store the data?
- A
Use AWS Lambda to process the data from Kinesis Data Streams and write it directly to Amazon S3.
- B
Configure Amazon Kinesis Data Firehose to read data from Kinesis Data Streams, transform it, and deliver it to Amazon S3.
- C
Set up an Amazon Elastic MapReduce (EMR) cluster to read data from Kinesis Data Streams and store the output in Amazon S3.
- D
Use Amazon Kinesis Data Analytics to process the data and write the results to Amazon S3.
Show answer and explanation
Correct answer: B
Explanation
In this scenario, Amazon Kinesis Data Firehose is the best choice because it is purpose-built to deliver streaming data to destinations like Amazon S3. It can handle data transformation, batching, and compression automatically, making it the most efficient solution for the requirement of processing and storing data in batches every 15 minutes.
- A. Incorrect.
Using AWS Lambda to write directly to S3 is not efficient for batch processing every 15 minutes, as Lambda is designed for event-driven, real-time processing and not for batching or transforming data efficiently over time.
- B. Correct.
Amazon Kinesis Data Firehose is specifically designed for delivering streaming data to destinations such as Amazon S3, with capabilities for transformation and batching, making it the most efficient option for this use case.
- C. Incorrect.
An Amazon EMR cluster is a more complex and costly solution for this scenario, as it is not necessary to use a big data processing framework for straightforward batch delivery to Amazon S3.
- D. Incorrect.
Amazon Kinesis Data Analytics is used for real-time analytics on streaming data, but it does not natively support batch processing or directly writing transformed data to S3 without additional configuration.