Jinja ile şablonlama

Python ile Apache Airflow’a Giriş

Mike Metzger

Data Engineer

Şablon nedir?

  • Airflow’un bilgiyi otomatikçe değiştirmesini sağlayan tanımlı bir biçim
  • Genellikle düz metin / metin dosyaları
  • Erişimi ve yeniden kullanımı basitleştirir

 

Yerine konacak değerler için yer tutucuları olan bir şablon illüstrasyonu

Python ile Apache Airflow’a Giriş

Jinja nedir?

  • Basit, metin tabanlı bir şablon dili
  • Airflow dışında birçok araçta kullanılır
  • {{ ... }} bir şablon yer değiştirmesini gösterir
    • Python f-string’e benzer
  • Daha dinamik kullanım; for döngülerini destekler

Çift süslü parantezli yer değiştirmeler kullanan bir Jinja şablonu illüstrasyonu

Python ile Apache Airflow’a Giriş

Airflow Jinja işlevleri

  • logical_date: Bir Dag çalışmasının zamanı
  • ds: logical_date’in YYYY-MM-DD biçimi
  • logical_date.year, logical_date.month, logical_date.day: Tarih bileşenlerine erişim
  • params: Dag çalışmasının çalışma zamanı parametreleri
  • Hesaplamalar, döngüler ve daha fazlası
    • macros.ds_add: Tarih hesaplamalarını sağlar
Python ile Apache Airflow’a Giriş

SmtpNotifier ile örnek

  • Konu alanında yer değiştirmeler
@dag(dag_id=`sales_etl`,
     on_failure_callback=SmtpNotifier(
         to='[email protected]',
         from_email='[email protected]',

subject='sales_etl on {{ logical_date }} has failed!' ) )
  • Konu: sales_etl 2026-04-30 tarihinde başarısız oldu!
Python ile Apache Airflow’a Giriş

FileSensor ile örnek

  • Dosya yolunu dinamik yapılandırınız
  • ds’ten önceki günde dosyaları arayınız (YYYY-MM-DD biçimindeki logical_date)
  • macros.ds_add kullanınız
    filewatcher = FileSensor(
    task_id="wait_for_files",
    filepath="/data/{{ macros.ds_add(ds, -1) }}/input.csv",
    ...
    )
    
  • ds 2026-04-30 ise, dosya yolu /data/2026-04-29/input.csv olur
Python ile Apache Airflow’a Giriş

Jinja notları

  • Her yerde kullanılamaz
  • Belgelerde şablonlanabilen özniteliklere bakınız
  • Kod görünümünü kontrol ediniz

Dag'ı tanımlayan salt okunur Python kaynağını gösteren Airflow Dag kod görünümü

Python ile Apache Airflow’a Giriş

Hadi pratik yapalım!

Python ile Apache Airflow’a Giriş

Preparing Video For Download...