Zamanlayıcı ve geriye dönük çalıştırma
Scheduling and backfill
Bu derste neler öğreneceksin
- Kestra schedule tanımlar
- Backfill ne zaman gerekli açıklar
- Airflow Prefect Luigi farklarını bilir
Sabah 09:00 Zili
Şimdiye kadar flow’ları elle çalıştırdın. Ama limonatacı her sabah kendi mi kalkacak? Hayır! Zamanlayıcı kuracağız: “Her sabah saat 09:00’te dünkü siparişleri işle.”
Kestra’da bunu schedule ile yapıyoruz:
id: daily_sales
namespace: lemonade
schedule:
cron: "0 9 * * *"
tasks:
- id: load_yesterday
type: io.kestra.plugin.gcp.bigquery.Load
from: gs://lemonade-orders/{{ yesterday }}.csv
destinationTable: lemonade.daily_orders
cron: "0 9 * * *" → Linux’un klasik zamanlama formatı. “Her ayın her günü saat 09:00.” İstersen her Pazartesi 10:00 için "0 10 * * 1". İlk başta sihirli gibi görünür; birkaç kez yazınca ezberlersin.
Backfill: “Geçmişi de Getir”
Diyelim Kestra’yı bugün kurdun ama verilerin 2025’in başından beri var. Schedule 09:00’de bugünden itibaren çalışacak — geçmiş boş kalır. İşte backfill: geçmiş tarihler için de aynı flow’u elle tetiklemek.
Kestra panelinde Re-Execute → Backfill deyince açılan takvimden tarih aralığı seç, Kestra arka arkaya her gün için bir execution başlatır. 90 günlük veri 90 satır, hepsi sırayla işlenir.
Airflow, Prefect, Luigi — Hangisi?
Üçü de orkestrasyon aracı. Lego kümeleri gibi düşün:
| Araç | Doğum | Dil | Öne Çıkan |
|---|---|---|---|
| Airflow | Airbnb, 2014 | Python | Endüstri standardı. Airbnb, Spotify, Google kullanıyor. UI eski ama sağlam. |
| Prefect | 2018 | Python | Daha modern, cloud-first. UI güzelleştirilmiş. Hybrid (cloud + self-hosted) çalışır. |
| Luigi | Spotify, 2011 | Python | Spotify’ın eski aracı. Basit ama sınırlı. Yeni projelerde tercih edilmiyor. |
| Kestra | 2022 | YAML | Çok yeni, YAML-first, plugin ekosistemi geniş. Bu kursta bunu seçtik. |
Neden Kestra? Çünkü YAML, Python’dan daha öğretici: neyi yaptığını açıkça görüyorsun, decorator/magic az. Çocuk için ideal. Ama dünyaya girdiğinde Airflow göreceksin — kelime hazinesi aynı.
Bugün Yaptık
- Kestra’da cron schedule tanımladık
- Backfill mantığını öğrendik
- Airflow / Prefect / Luigi / Kestra’yı yan yana karşılaştırdık
Ellerini Kirlet
daily_salesflow’unaschedulebloğu ekle.- Kestra panelinden Trigger → Backfill ile dün → bugün aralığını çalıştır.
- Execution listesinde 2 satır gör (dün + bugün).