DATA ENGINEERING BOOTCAMP — THE BOOK
Phase 3: Big Data
& Automation
Weeks 9–12. Your BrightCart pipeline gets a schedule (Airflow), a way to handle data too
large for one laptop (Spark), a way to ship itself anywhere (Docker) — and then you build something entirely
your own for the capstone.
Instructor / Self Preflight Checklist
Before starting Phase 3, confirm you can:
- Create and activate a Python virtual environment without looking it up
- Run SQL queries against PostgreSQL, including joins and window functions
- Explain ETL end-to-end, extract through a validated load
- Use GitHub for commits as a daily habit, not an afterthought
The Production Mindset
Everything in this phase is really one idea, applied three ways: a pipeline isn't finished when it works once. It has to rerun safely, log enough to debug itself, fail loudly on bad data, and be easy for someone else to deploy and understand. Airflow, Spark, and Docker are three different answers to "how do I make that actually true?"
Why Orchestration Exists
A single pipeline script is fine until you have five of them, some depending on others finishing first, all needing to run at specific times, with someone needing to know immediately when one fails. Orchestration is the layer that manages all of that — scheduling, dependencies, retries, and visibility.
Your First DAG
dags/first_pipeline.py
from airflow import DAG
from airflow.operators.empty import EmptyOperator
from datetime import datetime
with DAG(
dag_id="first_brightcart_pipeline",
start_date=datetime(2026, 1, 1),
schedule="@daily",
catchup=False
) as dag:
start = EmptyOperator(task_id="start")
finish = EmptyOperator(task_id="finish")
start >> finish
| Term | Meaning |
|---|
| DAG | a workflow definition — a set of tasks and the order they run in |
| Task | one unit of work inside a DAG |
| Operator | a template for a kind of work (run Python, run Bash, etc.) |
Chapter 1 Checklist — before moving on, you should be able to:
- Explain the difference between automation and orchestration
- Describe a DAG, task, and operator in your own words
LOCKED
The Rest of Chapter 1
PythonOperator & BashOperator, the TaskFlow API & XCom, Variables & Connections, retries, idempotent output paths, and a full realistic BrightCart DAG you can deploy.
WEEK 10 · LOCKED
Big Data With Apache Spark
PySpark DataFrames, explicit schemas, groupBy/joins, broadcast joins, lazy evaluation, partitioned Parquet output, and launching jobs with spark-submit.
- Why Spark (and When Not To)
- Spark Architecture & Vocabulary
- GroupBy, Joins & Broadcast Joins
- Lazy Evaluation: Transformations vs Actions
- Window Functions, Repartition & Cache
- Portfolio Project — Big Data Processing Job
WEEK 11 · LOCKED
Containerization With Docker
Dockerfiles, volumes, Docker Compose running your pipeline alongside Postgres, and the image-hygiene checklist that keeps builds portable.
- Image, Container, Dockerfile, Volume
- Your First Dockerfile
- Docker Compose: Pipeline + Postgres Together
- Portfolio Project — Dockerizing Your Data Pipelines
WEEK 12 · LOCKED
Capstone Project
Design your own end-to-end data platform on a dataset you choose — ingest, process, store, visualize — plus repo structure, README template, and a 4-day working plan.
- Minimum Requirements & Repository Structure
- Data Quality Checks Worth Including
- Presentation Storyline & 4-Day Working Plan
- Capstone Project — Full-Stack Data Platform
FULL PHASE 3 ACCESS
Unlock Spark, Docker & the Capstone
Get the complete orchestration, big data, containerization, and capstone chapters — with full code, diagrams, and the README/repo templates you'll present with.