Minggu 3 — Arsitektur Data & Big Data Pipeline (Dasar)
Breakdown Harian (±18 jam)
| Hari | Jam | Materi |
|---|---|---|
| Senin | 2 jam | Konsep dasar arsitektur data: OLTP vs OLAP, data warehouse vs data lake vs lakehouse |
| Selasa | 2 jam | Data modeling: star schema, snowflake schema, fact & dimension table |
| Rabu | 2 jam | ETL vs ELT — konsep, kapan pakai yang mana, contoh tools (Airflow, dbt, Fivetran) |
| Kamis | 2 jam | Batch processing vs Stream processing — konsep dasar, use case |
| Jumat | 2 jam | Pengantar Apache Spark: arsitektur (driver, executor), RDD vs DataFrame |
| Sabtu | 4 jam | Hands-on: setup PySpark lokal, transform data dataset e-commerce (bandingkan vs Pandas) |
| Minggu | 4 jam | Hands-on: bangun pipeline sederhana pakai Apache Airflow (DAG extract → transform → load) |
Detail Topik
- Data Warehouse vs Data Lake vs Lakehouse — perbedaan struktur data, use case, contoh tools (Snowflake, BigQuery vs S3/GCS, Delta Lake)
- Data Modeling — fokus star schema, latihan rancang dari dataset e-commerce (fact_sales, dim_customer, dim_product, dim_date)
- ETL vs ELT — kenapa ELT makin populer dengan cloud warehouse modern
- Batch vs Streaming — level konsep dulu (Kafka masuk lebih dalam di Minggu 4)
- Apache Spark — fokus konsep + PySpark basic syntax, local mode saja
- Apache Airflow — install via Docker, konsep DAG/task/scheduler, bikin 1 DAG sederhana
Sumber Belajar
- “Fundamentals of Data Engineering” (Reis & Housley) — bab 1-3
- Video overview: Andreas Kretz / Seattle Data Guy (YouTube)
- Spark official docs “Quick Start”, atau Databricks Community Edition
- Airflow official “Getting Started” + docker-compose quickstart
Target di Akhir Minggu 3
- Menjelaskan perbedaan data warehouse/lake/lakehouse dan kapan masing-masing dipakai
- Merancang star schema sederhana dari data mentah
- Menjalankan transformasi data dasar dengan PySpark
- Membuat dan menjalankan 1 DAG sederhana di Airflow
Mini Project: “Automated ETL Pipeline untuk E-Commerce Data Warehouse”
Kenapa case ini? Naik level dari mini project Minggu 1-2 — dari analisis manual jadi pipeline otomatis. Melanjutkan dataset yang sama (Online Retail II) untuk kontinuitas portfolio.
Tahap 1: Data Modeling
Rancang star schema:
fact_sales(invoice_id, product_id, customer_id, date_id, quantity, unit_price, total_amount)dim_product(product_id, description, category)dim_customer(customer_id, country)dim_date(date_id, day, month, quarter, year)
Dokumentasikan di README/diagram (draw.io atau dbdiagram.io).
Tahap 2: Transform Data dengan PySpark
Script PySpark yang:
- Baca raw CSV
- Cleaning (reuse logic dari project Minggu 2)
- Transform jadi bentuk star schema (split ke fact & dimension tables)
- Tulis hasil ke format Parquet
Tahap 3: Orkestrasi dengan Airflow
DAG dengan task terpisah:
extract_raw_data → transform_with_spark → load_to_warehouse → data_quality_check
- extract: baca raw file
- transform: jalankan PySpark script
- load: masukkan Parquet ke SQLite/PostgreSQL sebagai “warehouse”
- data_quality_check: validasi sederhana (row count > 0, tidak ada duplicate invoice_id) — jembatan ke topik Data Governance
Jadwalkan DAG jalan otomatis (misal daily) untuk menunjukkan pemahaman scheduling.
Struktur Repo
ecommerce-etl-pipeline/
├── README.md
├── dags/
│ └── ecommerce_etl_dag.py
├── spark_jobs/
│ ├── clean_transform.py
│ └── build_star_schema.py
├── data/
│ ├── raw/
│ └── warehouse/
├── docker-compose.yml
└── diagrams/
└── star_schema.png
README yang Perlu Ditulis
- Diagram arsitektur pipeline (extract → transform → load → check)
- Diagram star schema
- Screenshot Airflow DAG graph view (sukses run)
- Penjelasan singkat: kenapa star schema, kenapa Parquet bukan CSV
Alokasi Waktu (±8 jam)
- Design star schema: 1 jam
- PySpark transform script: 3 jam
- Airflow DAG setup + testing: 3 jam
- README + diagram: 1 jam