Airflow zamanlama

Python ile Apache Airflow'a Giriş

Mike Metzger

Data Engineer

DAG Çalıştırmaları

  • Belirli bir zamanda bir iş akışının tekil örneği
  • Elle veya schedule_interval ile tetiklenebilir
  • Her iş akışı ve içindeki görevler için durum tutar
    • running
    • failed
    • success
1 https://airflow.apache.org/docs/stable/scheduler.html
Python ile Apache Airflow'a Giriş

DAG Çalıştırmaları görünümü

DAG Çalıştırmaları

Python ile Apache Airflow'a Giriş

DAG Çalıştırma durumu

DAG Çalıştırma Durumu

Python ile Apache Airflow'a Giriş

Zamanlama ayrıntıları

Bir DAG zamanlanırken dikkat edilmesi gereken öznitelikler:

  • start_date - İlk planlama tarih/saat
  • end_date - Yeni DAG örneklerini durdurma için isteğe bağlı tarih
  • max_tries - Deneme sayısı (isteğe bağlı)
  • schedule_interval - Çalıştırma sıklığı
Python ile Apache Airflow'a Giriş

Zamanlama aralığı

schedule_interval şunları belirtir:

  • DAG’in ne sıklıkla zamanlanacağı
  • start_date ile end_date arasındaki dönem
  • cron sözdizimiyle veya yerleşik hazır ayarlarla tanımlanabilir
Python ile Apache Airflow'a Giriş

cron sözdizimi

Cron sözdizimi

  • Unix cron biçiminden alınmıştır
  • Boşlukla ayrılmış 5 alandan oluşur
  • Yıldız *, her aralıkta çalıştırmayı ifade eder (örn. her dakika, her gün)
  • Alanlar virgülle ayrılmış değer listeleri içerebilir
Python ile Apache Airflow'a Giriş

cron örnekleri

0 12 * * *              # Her gün öğlen çalıştır
* * 25 2 *              # 25 Şubat’ta her dakika çalıştır
0,15,30,45 * * * *      # Her 15 dakikada çalıştır
Python ile Apache Airflow'a Giriş

Airflow zamanlayıcı hazır ayarları

Hazır ayarlar:

  • @hourly
  • @daily
  • @weekly
  • @monthly
  • @yearly

cron karşılığı:

  • 0 * * * *
  • 0 0 * * *
  • 0 0 * * 0
  • 0 0 1 * *
  • 0 0 1 1 *
1 https://airflow.apache.org/docs/stable/scheduler.html
Python ile Apache Airflow'a Giriş

Özel hazır ayarlar

Airflow’da iki özel schedule_interval hazır ayarı vardır:

  • None - Hiç zamanlama; yalnızca elle tetiklenen DAG’lar için
  • @once - Yalnızca bir kez zamanla
Python ile Apache Airflow'a Giriş

schedule_interval sorunları

Bir DAG zamanlandığında Airflow şunları yapar:

  • En erken değer olarak start_date’i kullanır
  • Görevi start_date + schedule_interval zamanında planlar
'start_date': datetime(2020, 2, 25),
'schedule_interval': @daily

Bu, DAG’in en erken 26 Şubat 2020’de çalışacağı anlamına gelir

Python ile Apache Airflow'a Giriş

Hadi pratik yapalım!

Python ile Apache Airflow'a Giriş

Preparing Video For Download...