Minggu 4 — Lanjutan Pipeline: Data Quality, Orchestration Lanjutan, Streaming Intro
Breakdown Harian (±18 jam)
| Hari | Jam | Materi |
|---|---|---|
| Senin | 2 jam | Data quality dalam pipeline: dimensi kualitas data (completeness, uniqueness, validity, consistency, timeliness) |
| Selasa | 2 jam | Tools data quality: pengantar Great Expectations — konsep expectation, validation |
| Rabu | 2 jam | Orchestration lanjutan: Airflow — sensors, task dependencies kompleks, retry & alerting, XComs |
| Kamis | 2 jam | Pengantar streaming: konsep Kafka (topic, producer, consumer, partition) — level konsep |
| Jumat | 2 jam | Incremental load vs full load, CDC (Change Data Capture) |
| Sabtu | 4 jam | Hands-on: implementasi Great Expectations pada pipeline Minggu 3 |
| Minggu | 4 jam | Hands-on: setup Kafka lokal (Docker), producer/consumer sederhana untuk simulasi streaming |
Detail Topik
- Data Quality Dimensions — 5 dimensi utama, fondasi untuk Data Governance Minggu 5
- Great Expectations — buat “expectation suite” (kolom tidak boleh null, value dalam range, tipe data sesuai)
- Airflow Lanjutan — sensors, branching, parallel tasks, alerting (email/Slack)
- Pengantar Kafka — konsep event-driven architecture, kenapa dipakai untuk data real-time
- Incremental Load & CDC — kenapa full load tidak efisien untuk data besar; tools seperti Debezium (pengenalan saja)
Sumber Belajar
- Great Expectations official docs — “Getting Started”
- Airflow docs bagian “Concepts” (sensors, XComs, branching)
- Confluent “Kafka 101” (gratis, beginner-friendly), atau Kafka official quickstart
- Artikel/video overview untuk CDC
Target di Akhir Minggu 4
- Mengimplementasikan data quality checks dengan Great Expectations
- Membuat Airflow DAG dengan dependency dan error handling production-ready
- Menjelaskan konsep dasar Kafka dan streaming architecture
- Menjelaskan perbedaan incremental vs full load serta konsep CDC
Mini Project: “Production-Grade ETL Pipeline dengan Data Quality Checks & Real-Time Simulation”
Kenapa case ini? Upgrade langsung dari pipeline Minggu 3 — menunjukkan progresi dari “pipeline yang jalan” ke “pipeline yang reliable”.
Lanjutkan repo
ecommerce-etl-pipelineyang sama (bukan repo baru).
Tahap 1: Data Quality dengan Great Expectations
Validation layer sebelum data masuk warehouse:
- Completeness:
customer_id,invoice_idtidak boleh null - Uniqueness: kombinasi
invoice_id + product_idtidak boleh duplikat - Validity:
unit_pricedanquantityharus > 0,countryharus ada di list valid - Consistency:
total_amount=quantity × unit_price
Integrasikan sebagai task baru di DAG:
extract → transform (spark) → data_quality_check (Great Expectations) → load → notify
Kalau validation gagal, task load tidak jalan (fail fast).
Tahap 2: Airflow Lanjutan — Alerting & Robustness
- Email/Slack notification saat task gagal (
on_failure_callback) - Sensor: DAG jalan saat file source sudah “landing” di folder tertentu
- Retry logic dengan delay untuk task yang bergantung ke resource eksternal
Tahap 3: Simulasi Real-Time dengan Kafka
Skenario terpisah dari batch pipeline utama, di folder streaming-demo/:
- Producer: script Python yang “stream” data transaksi satu per satu ke Kafka topic
- Consumer: script Python yang baca dari topic, agregasi ringan (running total revenue), print/log hasil
Struktur Repo (update dari Minggu 3)
ecommerce-etl-pipeline/
├── README.md
├── dags/
│ └── ecommerce_etl_dag.py # update: tambah task GE check, alerting, sensor
├── spark_jobs/
├── great_expectations/
│ └── expectations/
│ └── ecommerce_suite.json
├── streaming-demo/
│ ├── producer.py
│ └── consumer.py
├── data/
├── docker-compose.yml # update: tambah service Kafka
└── diagrams/
├── star_schema.png
└── pipeline_architecture_v2.png
README yang Perlu Diupdate
- Section “What’s New in v2”: data quality checks, alerting, streaming demo
- Screenshot: DAG dengan task baru, output Great Expectations validation report, log consumer Kafka
- Penjelasan trade-off: kenapa fail-fast penting, kenapa streaming demo dipisah dari batch pipeline
Alokasi Waktu (±8 jam)
- Great Expectations setup + integrasi ke DAG: 3 jam
- Airflow alerting + sensor: 2 jam
- Kafka producer/consumer demo: 2 jam
- Update README + diagram: 1 jam