Data Engineering Learning Guide
Data Engineering Learning Guide¶
Introduction¶
Data Engineering is the field of designing and building systems that collect, store, transform, and deliver data. Through data pipelines, raw data is transformed into analyzable formats for data analysts and scientists to utilize.
Target Audience: Data pipeline beginners to intermediate level (practical fundamentals)
Learning Roadmap¶
Data Engineering Overview → Data Modeling → ETL/ELT Concepts
↓
Prefect ← Airflow Advanced ← Airflow Basics ←┘
↓
Spark Basics → PySpark DataFrame → Spark Optimization
↓
Practical Project ← Data Quality ← dbt ← Data Lake/Warehouse ← Kafka Streaming
File List¶
| Filename | Topic | Difficulty | Key Content |
|---|---|---|---|
| 01_Data_Engineering_Overview.md | Data Engineering Overview | ⭐ | Roles, pipelines, batch vs streaming, architecture patterns |
| 02_Data_Modeling_Basics.md | Data Modeling Basics | ⭐⭐ | Dimensional modeling, star/snowflake schema, SCD |
| 03_ETL_vs_ELT.md | ETL vs ELT | ⭐⭐ | Traditional ETL, modern ELT, tool comparison, use cases |
| 04_Apache_Airflow_Basics.md | Airflow Basics | ⭐⭐ | Architecture, DAG, Task, Operator, scheduling |
| 05_Airflow_Advanced.md | Airflow Advanced | ⭐⭐⭐ | XCom, dynamic DAG, Sensor, Hook, TaskGroup |
| 06_Prefect_Modern_Orchestration.md | Prefect Modern Orchestration | ⭐⭐ | Flow, Task, Airflow comparison, Deployment |
| 07_Apache_Spark_Basics.md | Apache Spark Basics | ⭐⭐⭐ | Architecture, RDD, cluster modes, installation |
| 08_PySpark_DataFrames.md | PySpark DataFrame | ⭐⭐⭐ | SparkSession, DataFrame, transformations, actions, UDF |
| 09_Spark_SQL_Optimization.md | Spark SQL Optimization | ⭐⭐⭐ | Catalyst, partitioning, caching, join strategies, tuning |
| 10_Kafka_Streaming.md | Kafka Streaming | ⭐⭐⭐ | Kafka overview, Topic, Producer/Consumer, real-time processing |
| 11_Data_Lake_Warehouse.md | Data Lake and Warehouse | ⭐⭐ | Lake, Warehouse, Lakehouse, Delta Lake, Iceberg |
| 12_dbt_Transformation.md | dbt Transformation Tool | ⭐⭐⭐ | Models, sources, tests, documentation, Jinja templates |
| 13_Data_Quality_Governance.md | Data Quality and Governance | ⭐⭐⭐ | Quality dimensions, Great Expectations, catalog, lineage |
| 14_Practical_Pipeline_Project.md | Practical Pipeline Project | ⭐⭐⭐⭐ | E2E design, Airflow+Spark+dbt, quality validation, monitoring |
Total Lessons: 14
Environment Setup¶
Docker-based Environment (Recommended)¶
# Build complete environment with Docker Compose
# After creating docker-compose.yml file:
# Start Airflow environment
docker compose up -d airflow-webserver airflow-scheduler
# Start Spark environment
docker compose up -d spark-master spark-worker
# Start Kafka environment
docker compose up -d zookeeper kafka
Individual Tool Installation¶
# Apache Airflow
pip install apache-airflow
# PySpark
pip install pyspark
# Kafka Python client
pip install confluent-kafka
# dbt
pip install dbt-core dbt-postgres
# Great Expectations
pip install great_expectations
# Prefect
pip install prefect
Recommended Versions¶
| Tool | Version |
|---|---|
| Python | 3.9+ |
| Apache Airflow | 2.7+ |
| Apache Spark | 3.4+ |
| Apache Kafka | 3.5+ |
| dbt-core | 1.6+ |
| Prefect | 2.x |
Learning Sequence¶
Phase 1: Fundamental Concepts (01-03)¶
- Data Engineering Overview: Roles, pipeline concepts
- Data Modeling: Dimensional modeling, schema design
- ETL vs ELT: Understanding data processing patterns
Phase 2: Workflow Orchestration (04-06)¶
- Airflow Basics: Writing DAGs, scheduling
- Airflow Advanced: XCom, Sensor, dynamic DAGs
- Prefect: Modern orchestration tool
Phase 3: Large-scale Data Processing (07-09)¶
- Spark Basics: RDD, cluster architecture
- PySpark DataFrame: Using DataFrame API
- Spark Optimization: Performance tuning, join strategies
Phase 4: Streaming and Storage (10-11)¶
- Kafka: Real-time data streaming
- Data Lake/Warehouse: Storage architecture
Phase 5: Transformation and Quality (12-13)¶
- dbt: SQL-based data transformation
- Data Quality: Great Expectations, governance
Phase 6: Practical Project (14)¶
- E2E Pipeline: Airflow + Spark + dbt integration
References¶
Official Documentation¶
- Apache Airflow Documentation
- Apache Spark Documentation
- Apache Kafka Documentation
- dbt Documentation
- Prefect Documentation
- Great Expectations Documentation
Related Folders¶
- Data_Analysis/ - NumPy, Pandas basics
- PostgreSQL/ - SQL, database fundamentals
- Docker/ - Container environment setup
- Cloud_Computing/ - Cloud services (S3, BigQuery)