MLS-C01 Exploratory Data Analysis Practice Question
A data engineer is performing EDA on a dataset containing user activity logs from a mobile app. The dataset has 10 million rows and includes columns: 'user_id', 'event_type', 'timestamp', 'device_type', and 'session_duration'. The engineer uses Amazon Athena to query the data stored in S3 as CSV files. The engineer runs a query to find the average session_duration per device_type, but the query takes over 5 minutes and scans 100 GB of data. The engineer wants to reduce query cost and improve performance for future EDA. The dataset is not partitioned, and the engineer anticipates frequent queries filtering on 'timestamp' and 'device_type'. Which action will most effectively reduce data scanned?
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
✓
Partition the table by date derived from timestamp and convert to Parquet.
The most effective because it combines partitioning by date (derived from timestamp) and converting to Parquet format. Partitioning by date enables partition pruning for queries filtering on 'timestamp', drastically reducing the amount of data scanned. Parquet provides columnar storage and compression, further minimizing I/O and cost. Option C (Parquet without partitioning) still requires full file scans when filters are applied. Option B (random sampling) sacrifices accuracy for speed, which is undesirable for accurate EDA. Option D (partitioning by device_type) helps only for device_type filters, not for the common timestamp filters mentioned in the scenario.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✓
Partition the table by date derived from timestamp and convert to Parquet.
Why this is correct
Combining partitioning and columnar storage maximizes reduction in scanned data.
- ✗
Use random sampling to query a subset of data.
Why it's wrong here
Sampling reduces accuracy and may not be acceptable for EDA.
- ✗
Convert the data to Parquet format and use columnar storage.
Why it's wrong here
Parquet reduces bytes scanned but without partitioning, still full scan of columns.
- ✗
Partition the table by device_type.
Why it's wrong here
Partitioning by device_type helps only if filtering by device_type, not timestamp.
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.