Welcome to ExamTopics
ExamTopics Logo
- Expert Verified, Online, Free.

Unlimited Access

Get Unlimited Contributor Access to the all ExamTopics Exams!
Take advantage of PDF Files for 1000+ Exams along with community discussions and pass IT Certification Exams Easily.

Exam AWS Certified Data Analytics - Specialty topic 1 question 82 discussion

A company needs to store objects containing log data in JSON format. The objects are generated by eight applications running in AWS. Six of the applications generate a total of 500 KiB of data per second, and two of the applications can generate up to 2 MiB of data per second.
A data engineer wants to implement a scalable solution to capture and store usage data in an Amazon S3 bucket. The usage data objects need to be reformatted, converted to .csv format, and then compressed before they are stored in Amazon S3. The company requires the solution to include the least custom code possible and has authorized the data engineer to request a service quota increase if needed.
Which solution meets these requirements?

  • A. Configure an Amazon Kinesis Data Firehose delivery stream for each application. Write AWS Lambda functions to read log data objects from the stream for each application. Have the function perform reformatting and .csv conversion. Enable compression on all the delivery streams.
  • B. Configure an Amazon Kinesis data stream with one shard per application. Write an AWS Lambda function to read usage data objects from the shards. Have the function perform .csv conversion, reformatting, and compression of the data. Have the function store the output in Amazon S3.
  • C. Configure an Amazon Kinesis data stream for each application. Write an AWS Lambda function to read usage data objects from the stream for each application. Have the function perform .csv conversion, reformatting, and compression of the data. Have the function store the output in Amazon S3.
  • D. Store usage data objects in an Amazon DynamoDB table. Configure a DynamoDB stream to copy the objects to an S3 bucket. Configure an AWS Lambda function to be triggered when objects are written to the S3 bucket. Have the function convert the objects into .csv format.
Show Suggested Answer Hide Answer
Suggested Answer: B 🗳️

Comments

Chosen Answer:
This is a voting comment (?) , you can switch to a simple comment.
Switch to a voting comment New
Heer
Highly Voted 2 years, 6 months ago
ANSWER:A EXPLANATION: Firehose can invoke an AWS Lambda function to transform incoming data before delivering it to destinations Amazon Kinesis Data Firehose allows you to compress your data before delivering it to Amazon S3 .
upvoted 17 times
nadavw
1 year, 3 months ago
You can use the Amazon Kinesis Data Firehose API to send data to a Kinesis Data Firehose delivery stream using the AWS SDK https://docs.aws.amazon.com/firehose/latest/dev/writing-with-sdk.html As explicitly mentioned in the case: To request an increase in quota, use the Amazon Kinesis Data Firehose Limits form https://docs.aws.amazon.com/firehose/latest/dev/limits.html
upvoted 2 times
juanife
9 months, 2 weeks ago
I don't understand why not opcion B yet.
upvoted 1 times
juanife
9 months, 2 weeks ago
aaaaaaaah, I got it. AWS KDS + AWS Lambda means Lambda polling from AWS KDS steam, but in the case of AWS KDF + AWS Lambda, Lambda is not polling from AWS KDF, so it's faster than the other solution. It also requires custom code, because you have to create 8 shards...
upvoted 1 times
...
...
...
...
teo2157
Most Recent 4 months ago
Selected Answer: A
The requirements can be met by using a combination of AWS services: Amazon Kinesis Data Firehose, AWS Lambda, and Amazon S3. Here's a high-level overview of how these services can be used to meet the requirements: This solution requires minimal custom code - only the Lambda function to convert JSON to .csv needs to be written. The rest of the pipeline can be configured using AWS Management Console or AWS CLI.
upvoted 1 times
...
LocalHero
5 months, 1 week ago
I choose A. Because of A has minimum custom code. D is wrong . not compress. BC are wrong. They have compress code in Lambda.
upvoted 1 times
LocalHero
5 months, 1 week ago
Probably, This question asks that we know Firehose's compress feature or not.
upvoted 1 times
...
...
pk349
11 months, 3 weeks ago
A: I passed the test
upvoted 1 times
...
rsn
1 year ago
Selected Answer: A
Least cutom code
upvoted 2 times
...
Arjun777
1 year, 3 months ago
Firehose can it connect directly connect to source ? by that rule - A does not seem to be right .. C and B - KDS are required for large volume 10GB and above in general .. D seems to be the closest though compression to parquet is not mentioned ..
upvoted 1 times
Merrick
1 year, 2 months ago
A source can be a logging server running on Amazon EC2 instances, an application running on mobile devices, or a sensor on an IoT device. You can connect your sources to Kinesis Data Firehose using 1) Amazon Kinesis Data Firehose API, which uses the AWS SDK for Java, .NET, Node.js, Python, or Ruby. 2) Kinesis Data Stream, where Kinesis Data Firehose reads data easily from an existing Kinesis data stream and load it into Kinesis Data Firehose destinations... in Kinesis Data Firehose FAQ
upvoted 3 times
...
...
cloudlearnerhere
1 year, 5 months ago
Selected Answer: A
Correct answer is A as Kinesis Data Firehose can be used to collect the data, it integrates with Lambda to provide custom transformation and then stores the compressed data to S3. There is a limit of throughput that KDF can support and it can be increased using quota increase requests. Options B & C are wrong as Kinesis Data Stream would require more handling and custom code. Option D is wrong as it does not meet the requirement that the usage data objects need to be reformatted, converted to .csv format, and then compressed before they are stored in Amazon S3.
upvoted 4 times
...
jazzok
1 year, 6 months ago
Go with C: A– Doesn’t mention saving to S3, and the Lambda read log data instead of usage data. (unless this is a typo, then A is about right) B- Cannot be done as the Shards have a hard limit of 1MB/Sec. (Can AWS increase that quota?) C- Correct. With Custom code on Lambda (which I can live with). D – no compression was mentioned.
upvoted 4 times
...
karanbhasin
1 year, 6 months ago
my answer is 'A' considering the least custom code possible condition.
upvoted 1 times
...
yemauricio
1 year, 8 months ago
Selected Answer: A
KDF + lambda +compression
upvoted 3 times
...
rocky48
1 year, 8 months ago
Selected Answer: A
ANSWER : A
upvoted 3 times
...
samsanta2012
1 year, 10 months ago
Selected Answer: D
AWS Lambda supports Parallelization Factor, a feature that allows you to process DynamoDB data stream with more than one Lambda invocation simultaneously.
upvoted 1 times
...
youonebe
2 years, 1 month ago
Ans: A B is wrong because: 1. It will create 2 hot shards 2. Max object size per shard is 1MB in Kinesis Data Stream.
upvoted 2 times
alfredofmt
1 year, 8 months ago
The question says 2 MiB per second, not 2 MiB of payload
upvoted 2 times
...
...
sanpak
2 years, 4 months ago
A is really make sense... but wondering why cant we use option B with enhance fan out ?
upvoted 1 times
...
ThomasKalva
2 years, 5 months ago
A is my answer: Forehose provides way to introduce lambda for transformations before loading files to s3 and it clearly states before loading files to s3 which removes option D for sure. Option C is close but question asks clearly finding a solution to store and does not ask for any real-time processing, keeping cost in mind, A stands.
upvoted 3 times
...
virendrapsingh
2 years, 5 months ago
The question clearly states - "The usage data objects need to be reformatted..... " Emphasis on the phrase USAGE DATA OBJECTS. Why are you guys suggesting option A in that case. Option A talks of LOG DATA OBJECTS not USAGE DATA OBJECTS. This leaves B & C - with my vote on C.
upvoted 3 times
...
Dr_Kiko
2 years, 5 months ago
A because: Amazon Kinesis Data Firehose allows you to compress your data before delivering it to Amazon S3. The service currently supports GZIP, ZIP, and SNAPPY compression formats. Firehose can invoke an AWS Lambda function to transform incoming data before delivering it to destinations. You can configure a new Lambda function using one of the Lambda blueprints we provide or choose an existing Lambda function.
upvoted 3 times
...
Community vote distribution
A (35%)
C (25%)
B (20%)
Other
Most Voted
A voting comment increases the vote count for the chosen answer by one.

Upvoting a comment with a selected answer will also increase the vote count towards that answer by one. So if you see a comment that you already agree with, you can upvote it instead of posting a new comment.

SaveCancel
Loading ...