MLS-C01 Data Engineering Practice Question
A data engineering team needs to ingest streaming data from thousands of IoT devices into a data lake on Amazon S3 for near-real-time analytics. The data must be partitioned by device ID and timestamp, and the team must minimize data loss during ingestion failures. Which solution is MOST appropriate?
⚠ Common exam trap
Many exam-takers choose Option A (Lambda with Kinesis Data Streams) because they think it offers more control, but they overlook Firehose’s native dynamic partitioning and managed retry capabilities, which are more reliable and cost-effective for high-volume streaming ingestion to S3.
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
✓
Use Amazon Kinesis Data Firehose to write directly to S3 with dynamic partitioning.
Amazon Kinesis Data Firehose with dynamic partitioning is the most appropriate solution because it natively supports partitioning incoming data by device ID and timestamp before writing to S3, and it provides built-in data buffering and retry logic to minimize data loss during ingestion failures. Unlike a Lambda-based approach, Firehose handles large-scale streaming ingestion without requiring custom code for partitioning or error handling, making it ideal for near-real-time analytics on IoT data.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
Use Amazon Kinesis Data Streams with a Lambda function that writes to S3.
Why it's wrong here
Kinesis Data Streams requires custom consumer code and Lambda may introduce latency and data loss.
- ✓
Use Amazon Kinesis Data Firehose to write directly to S3 with dynamic partitioning.
Why this is correct
Firehose provides automatic partitioning, retries, and near-real-time delivery to S3.
- ✗
Use Amazon S3 Transfer Acceleration with direct uploads from devices.
Why it's wrong here
Transfer Acceleration improves upload speed but does not provide streaming ingestion or partitioning.
- ✗
Use AWS Lambda to receive data via API Gateway and write to S3.
Why it's wrong here
Lambda has a maximum execution time of 15 minutes and is not designed for sustained high-throughput streaming.
Quick reference
AWS S3 Storage Class Comparison
| Storage Class | Min Duration | Retrieval | Use Case |
|---|---|---|---|
| S3 Standard | None | Immediate | Frequently accessed data |
| S3 Standard-IA | 30 days | Immediate | Infrequent access, rapid retrieval |
| S3 One Zone-IA | 30 days | Immediate | Non-critical infrequent data |
| S3 Intelligent-Tiering | None | Immediate–hours | Unknown or changing access patterns |
| S3 Glacier Instant | 90 days | Milliseconds | Archive with instant retrieval |
| S3 Glacier Flexible | 90 days | Minutes–hours | Archive, flexible retrieval |
| S3 Glacier Deep Archive | 180 days | Hours | Long-term compliance archive |
Go deeper
Related to this question
About these practice questions
This MLS-C01 question is part of Courseiva's 1,672-question bank — original exam-style content with full explanations and wrong-answer analysis, never real exam questions or exam 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 MLS-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 MLS-C01 exam.