Based on the MLS-C01 exam guideReport an error
This week's content connects in the following flow.
[Source] Click logs · IoT · Transaction events ──┐
▼
[Ingest] Stream? → Kinesis (Firehose = delivery / KDS = multi-consumer, replay) (Day 3)
Batch? → Glue ETL / EMR / Batch
▼
[Store] S3 data lake (Parquet / RecordIO) (Day 2)
▼
[Label] SageMaker Ground Truth (workforce + active learning + consensus) (Day 4)
▼
[Features] Feature engineering with Glue/Processing → Feature Store
▼
[Train I/O] S3 (Pipe/File/FastFile) | EFS | FSx for Lustre (Day 2)
▼
[Model] Train → evaluate (tie to business metrics) → deploy → monitor (Day 1)
└──── drift → loop back ────┘
💡 Concept: The one principle that runs through this entire pipeline is reproducibility and preventing training-serving skew. Fix the ingestion, cleaning, and feature logic in code, version the data, and use the same transformations in training and inference. Features improvised in a notebook or data of unknown origin quietly ruin the model in production.
Compressing the decisions that are confusing on the exam.
Storage input mode (Day 2)
| Situation | Choice |
|---|---|
| Large, sequential access, fast start | Pipe mode |
| Small, random access, simplicity first | File mode |
| Large but only partial / random access | FastFile mode |
| Repeated reads, high-throughput shared access | FSx for Lustre |
| General-purpose shared file system | EFS |
Data format (Day 2)
| Situation | Choice |
|---|---|
| Structured data analysis / ETL, only some columns | Parquet (columnar) |
| SageMaker built-in algorithms, large sequential | RecordIO-protobuf |
| Millions of small files | Consolidate via sharding |
| Raw logs with ragged schemas | JSON Lines → structure with Glue |
Ingestion service (Day 3)
| Situation | Choice |
|---|---|
| Delivery to S3 etc. without code | Kinesis Data Firehose |
| Multiple consumers, reprocessing (replay), custom processing | Kinesis Data Streams |
| Real-time aggregation / anomaly detection | Managed Service for Flink |
| Schema inference, cataloging | Glue Crawler |
| Serverless Spark ETL | Glue ETL Job |
Labeling (Day 4)
| Situation | Choice |
|---|---|
| Sensitive / regulated data | Private or Vendor workforce |
| Public, large-scale, low-cost | Mechanical Turk |
| Reducing labeling cost | Active learning (automated labeling) |
| Reducing random labeler errors | Consensus (multiple labelers + consolidation) |
| Everyone errs in the same direction | Clarify guidelines + golden set |
# Classification metric decision tree (pseudocode)
if classes_are_extremely_imbalanced:
if cost_of_missed_detection_is_high (fraud, disease): → recall first, compare with PR-AUC
elif cost_of_false_alarm_is_high (spam, marketing): → precision first
else: → PR-AUC
else:
if threshold_undecided: → ROC-AUC
else: → F1 / accuracy| Metric | One-line summary | Clue that makes this metric the answer |
|---|---|---|
| Accuracy | Overall correct rate | Only when "classes are balanced" is stated |
| Precision | Are false alarms few? | "Must not block legitimate email," "sending cost" |
| Recall | Are misses few? | "Missing one is fatal," "fraud, disease" |
| F1 | Balance of the two | A statement that the two costs are similar |
| ROC-AUC | Threshold-independent discrimination | "We haven't set the threshold yet," "comparing models" |
| PR-AUC | Minority-class discrimination | "Positives are 0.1%," "extreme imbalance" |
| RMSE / MAE | Regression error | Continuous-value prediction, mention of outlier sensitivity |
Beware the single-metric trap. On imbalanced data, 99.9% accuracy can be an "all negative" model. Offline metrics are the gate that lets a deployment through, and online business metrics (A/B tests) deliver the final verdict. If you remember this two-stage structure, you have grasped the gist of Day 1.
Scenario: A global e-commerce company wants to detect fraudulent transactions from a real-time clickstream. Past fraud labels are very scarce, and fraud is 0.1% of all transactions. The data includes PII.
Step-by-step solution flow:
This single scenario contains every concept from Week 1. If you can explain the rationale for each decision in words, you have digested this week.
In constraint-collision scenarios, constraints come first. PII forces the workforce, extreme imbalance forces the metric, and the multi-consumer requirement forces KDS. The correct answer is not the flashiest technology but the choice that satisfies all constraints simultaneously. If even one is violated (for example, PII to a public workforce), the answer is wrong regardless of its other merits.
⚠️ Pitfall: Even if "the newest service," "the cheapest option," or "the simplest configuration" catches your eye among the options, all of them are wrong if they violate a constraint. Solve in this order: constraints → eliminate candidates → compare cost and operational burden among the rest.
| Confusing pair | Decisive difference |
|---|---|
| KDS vs. Firehose | Retention, replay, multiple consumers vs. code-free simple delivery |
| Glue Crawler vs. Glue ETL Job | Schema inference and catalog registration vs. actual data transformation |
| File vs. Pipe vs. FastFile | Start after full copy vs. start immediately via streaming vs. a compromise between the two |
| FullyReplicated vs. ShardedByS3Key | Full copy to every node vs. distributing pieces per node |
| EFS vs. FSx for Lustre | General-purpose sharing, simple setup vs. high-throughput repeated reads |
| Parquet vs. RecordIO-protobuf | Structured analysis, column selection vs. sequential streaming for built-in algorithms |
| Mechanical Turk vs. Private/Vendor | Public, high-volume, low-cost vs. sensitive data, expertise |
| Consensus vs. golden set | Canceling random errors vs. validating systematic bias and guidelines |
| ROC-AUC vs. PR-AUC | General discrimination vs. honesty under extreme imbalance |
| Batch vs. streaming | Periodic, accurate, simple vs. immediacy, high operational difficulty |
Only the points where people repeatedly stumble on the exam are collected here.
Answer these in your head.
This gathers the services that appeared this week on one page, by role. On the exam you should be able to recall a service's place from its name alone.
| Role | Service | One line |
|---|---|---|
| Stream ingestion | Kinesis Data Streams | Shard-based, retention, replay, multiple consumers |
| Stream delivery | Kinesis Data Firehose | Delivers to S3 etc. without code, format conversion |
| Stream analytics | Managed Service for Flink | Windowed aggregation, real-time anomaly detection |
| Video ingestion | Kinesis Video Streams | Input for video ML |
| Kafka alternative | Amazon MSK | Managed Kafka |
| DB ingestion | AWS DMS | Migration + CDC |
| File transfer | AWS DataSync / Snow family | Online bulk transfer / offline physical transfer |
| Metadata | Glue Data Catalog | Central store for schema, location, partitions |
| Schema inference | Glue Crawler | Scans and registers tables |
| Serverless ETL | Glue ETL Job | Spark-based transformation |
| SQL exploration | Amazon Athena | Ad hoc queries over the catalog |
| Object storage | Amazon S3 | The foundation of the data lake |
| Shared files | Amazon EFS | Managed NFS, multiple mounts |
| High-performance files | FSx for Lustre | Repeated, high-throughput training I/O |
| Labeling | SageMaker Ground Truth | Workforce + active learning + consensus |
| Human review | Amazon A2I | Human review of low-confidence predictions in production |
| Preprocessing execution | SageMaker Processing | Managed distributed preprocessing job |
| Anomaly detection | Random Cut Forest | Produces anomaly scores without labels |
Specialty passages always plant words that point to the answer. Memorizing the mapping below speeds up elimination.
| Expression in the passage | What to recall immediately |
|---|---|
| "Small operations staff," "minimal management overhead" | Serverless (Firehose, Glue) |
| "Multiple teams each consume," "reprocessing needed" | Kinesis Data Streams |
| "Without code," "automatic delivery" | Kinesis Data Firehose |
| "We don't know the schema" | Glue Crawler → Data Catalog → Athena |
| "The GPU is waiting for data" | Pipe/FastFile mode, FSx for Lustre |
| "Hundreds of tuning runs on the same data" | FSx for Lustre |
| "Only a few of 50 columns" | Parquet |
| "Millions of small files" | Consolidate via sharding |
| "PII," "patient," "regulated" | Private or Vendor workforce |
| "Tight labeling budget" | Active learning, transfer learning |
| "Positives are 0.1%" | PR-AUC, recall |
| "Millisecond response" | Real-time endpoint (not serverless) |
| "Nightly bulk scoring" | Batch transform |
Week 2 moves into Data Engineering 2. We cover large-scale processing with EMR and Spark, deeper data transformation and cleaning, handling missing values, outliers, and imbalanced data, and feature engineering techniques overall. It is like zooming in on the "Features" stage of this week's pipeline.
Click a choice to reveal the answer and explanation.
Question 1
You are comparing the performance of a fraud detection model where only 0.1% of transactions are fraudulent and false negatives are costly. What is the most honest single metric?
Question 2
You are distributing training of hundreds of GB of data across multiple instances, minimizing GPU idle time while having each instance read only a different slice of the data. What do you use?
Question 3
You need to label medical data containing PII while also reducing labeling labor costs. What is the most appropriate combination?
Question 4
A single event stream must be used independently for a real-time dashboard, a fraud model, and later reprocessing, and replay is needed after failures. Which ingestion service fits?
Question 5
When solving a scenario question with multiple simultaneous constraints (sensitive data, extreme imbalance, multi-consumer stream), what is the correct approach?