Modül 2 · İş Akışı Orkestrasyonu · ⏱ 7 dk

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ğumDilÖne Çıkan
AirflowAirbnb, 2014PythonEndüstri standardı. Airbnb, Spotify, Google kullanıyor. UI eski ama sağlam.
Prefect2018PythonDaha modern, cloud-first. UI güzelleştirilmiş. Hybrid (cloud + self-hosted) çalışır.
LuigiSpotify, 2011PythonSpotify’ın eski aracı. Basit ama sınırlı. Yeni projelerde tercih edilmiyor.
Kestra2022YAMLÇ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

  1. daily_sales flow’una schedule bloğu ekle.
  2. Kestra panelinden TriggerBackfill ile dün → bugün aralığını çalıştır.
  3. Execution listesinde 2 satır gör (dün + bugün).

Sıradaki

Bir sonraki ders: GitHub Actions ile CI/CD →