Pipeline'ı kağıtta yaz — robot egzersizi
Robot exercise draw the pipeline
Bu derste neler öğreneceksin
- Pseudo-DAG çizer
- Robot rolündeki arkadaşa uygulatır
- Hata varsa birlikte düzeltir
Ekransız Ders
Bugün bilgisayarı kapatıyoruz. Bu dersin amacı: pipeline mantığını öğrenmek, araçtan bağımsız. Yeni araçlar gelir, mantık aynı kalır.
Adım 1 — Senaryoyu Seç
Aşağıdaki senaryolardan birini seç:
- Oyun istatistikleri: Oyuncunun son 10 maçı API’den çekilir → Postgres’e yazılır → dbt ile temizlenir → dashboard’da gösterilir.
- Hava durumu analizi: OpenWeatherMap saatlik veriyi JSON döner → GCS’e yazılır → BigQuery’ye yüklenir → Streamlit dashboard’u güncellenir.
- Podcast istatistikleri: Spotify API günlük dinlenme sayısı → CSV indirilir → Postgres’e yazılır → Metabase’te rapor.
Adım 2 — Pseudo-DAG Çiz
A4 kağıda kutular ve oklar çiz:
[API] → [Ham JSON] → [GCS] → [BigQuery raw] → [dbt model] → [Dashboard]
Her kutuyu adım adım yaz:
- API: HTTP GET, ne sıklıkla, hangi endpoint.
- Ham JSON: Hangi alanlar var, hangileri eksik olabilir.
- GCS: Hangi bucket, hangi path formatı (
{{ tarih }}.json). - BigQuery raw: Tablo adı, partition stratejisi.
- dbt model: Hangi sütunlar temizlenecek, hangi testler var.
- Dashboard: Hangi metrik gösterilecek.
Adım 3 — Pseudo-Kod
Her kutu altına pseudo-kod:
ADIM 1: "Robot, https://api.example.com/v1/matches?limit=10 adresine git, son 10 maçı çek."
ADIM 2: "Gelen JSON'u oku, her maç için id, score, date al."
ADIM 3: "Google Cloud Storage'a gs://my-bucket/matches/2026-06-19.json olarak yaz."
ADIM 4: "BigQuery lemonade.raw.matches_20260619 tablosuna yükle, WRITE_TRUNCATE."
ADIM 5: "dbt run --select stg_matches çalıştır."
ADIM 6: "Metabase dashboard'u yenile (email gönder)."
ADIM HATA: "Herhangi bir adım hata verirse: Slack'e 'Pipeline patladı: ADIM X' yaz, dur."
Adım 4 — Robot Rolü
Bir arkadaşını veya aile büyüğünü robot olarak çağır. Kağıdı ver, “çalıştır” de. Robot kelimesi kelimesine uygulayacak — yorum yapmayacak. Bu debugging pratiği için altın:
- Robot takılırsa → yazımın belirsiz demektir.
- Robot yanlış yere yazarsa → path/parametre eksik demektir.
- Robot “hata oldu” demezse → hata yönetimi yazmamışsın demektir.
Sık Yapılan Hatalar (ve Çözümleri)
| Hata | Bulgu | Çözüm |
|---|---|---|
| Tarih formatı belirsiz | Robot “hangi format?” diye sorar | ISO 8601 (YYYY-MM-DD) yaz, örnek ver |
| Hata yönetimi eksik | Robot hata olunca ne yapacağını bilmez | Her adımın sonuna “hata olursa → Slack” yaz |
| Adımlar arası bağımlılık yok | Robot paralel yapar, sıra bozulur | ”ADIM 3 SADECE ADIM 2 bitince” yaz |
| Idempotentlik unutulmuş | Robot 2 kez çalıştırınca 2 kez yazar | ”Eğer dosya zaten varsa üzerine yaz (üretme)” yaz |
| Gözlem/ölçüm eksik | Robot log tutmaz | ”Her adımda süre ve satır sayısı logla” yaz |
Neden Bu Ders Var?
Bu egzersizde gördüğün 8 hata kategorisi, gerçek production pipeline’larında da en sık yapılan hatalar. Kestra, Airflow, Prefect — hangi aracı kullanırsan kullan, bu 8’i halledecek şekilde tasarlamalısın.
İleri seviye prensip: “Pipeline’ı bir başkasına devret.” Eğer takım arkadaşın okuyunca anlıyorsa, production’a hazırdır. Yoksa kod değil, kağıt düzelt.
Bugün Yaptık
- Seçtiğimiz senaryonun pseudo-DAG’ını çizdik
- Her adımı pseudo-kodla belirsizlikten arındırdık
- Robot rolüyle debugging pratiği yaptık
Ellerini Kirlet
- A4 kağıda senaryonu çiz.
- Pseudo-kod yaz, her adımda hata olursa notunu ekle.
- Bir “robot” bul, uygulat, eksikleri bul.
- Düzeltilmiş hali
docs/pipeline-design.mdolarak repo’ya ekle. Bu döküman capstone’unda referans olacak.