Airflow Değişkenleri

Python ile Apache Airflow’a Giriş

Mike Metzger

Data Engineer

Değişkenler nedir?

  • Yapılandırma değerleri için kullanışlıdır
  • Dosya yolları, API uç noktaları, ortamlar vb.
  • Görevlerden sorgulanabilir; kodla, Airflow UI üzerinden veya dosya ile ayarlanabilir
  • Dag kodunun dışında bulunur
Python ile Apache Airflow’a Giriş

Airflow arayüzünde değişkenlere erişim

  • Admin: Variables menüsünden

Değişkenler seçeneği görünen açık Admin menüsü ile Airflow UI

Python ile Apache Airflow’a Giriş

Airflow arayüzünde değişkenleri görüntüleme

Hiç değişken tanımlı olmayan boş listeyle Airflow Değişkenleri sayfası

Python ile Apache Airflow’a Giriş

Airflow'da değişken ekleme

Değişken Ekle düğmesi vurgulanmış Airflow Değişkenleri sayfası

Python ile Apache Airflow’a Giriş

Değişken düzenleyici

Anahtar, değer ve açıklama alanları olan Airflow değişken düzenleyicisi formu

Python ile Apache Airflow’a Giriş

Arayüzde mevcut değişkenler

Listede bir değişken tanımlı olan Airflow Değişkenleri sayfası

Python ile Apache Airflow’a Giriş

Python'da değişken okuma

  • airflow.sdk.Variable kitaplığını kullanır
  • Variable.get("variable_name") ile okunur
    # Düz bir string değerini al
    my_region = Variable.get("region")
    
  • Bu durumda my_region değeri us-eastern olur
  • Değişken yoksa bir yedek değer verin
    # Değişken yoksa yedek bir değer verin
    env = Variable.get("current_environment", default=None)
    
  • current_environment tanımlamadığımız için env None olur
Python ile Apache Airflow’a Giriş

Jinja şablonlarında değişkenlere erişim

  • {{ var.value.variable_name }} ile erişilebilir
    filewatcher = FileSensor(
    task_id="wait_for_files",
    filepath="/data/{{ var.value.region }}/input.csv",
    ...
    
  • Bu örnekte FileSensor, /data/us-eastern/input.csv dosyasını arar
Python ile Apache Airflow’a Giriş

CLI ile değişkenlere erişim

  • Değişkenler komut satırından okunabilir, güncellenebilir, silinebilir veya listelenebilir
  • Oku - airflow variables get <variable_name>
  • Yaz - airflow variables set <variable_name> <value>
  • Sil - airflow variables delete <variable_name>
  • Listele - airflow variables list <variable_name>
Python ile Apache Airflow’a Giriş

JSON değişkenleri

  • Değerler JSON string olabilir
    • Variable.get("variable_name", deserialize_json=True)
    • Bir Python sözlüğü döndürür
  • Jinja ile
    • {{ var.json.variable_name }}
Python ile Apache Airflow’a Giriş

Değişken ayarlama

  • Değişkenler ayarlanabilir
  • Variable.set("variable_name", variable_value) kullanın
  • serialize_json=True ile JSON da yazılabilir
  • Dikkatli kullanın; diğer Dag'leri beklenmedik biçimde etkileyebilir
Python ile Apache Airflow’a Giriş

Hadi pratik yapalım!

Python ile Apache Airflow’a Giriş

Preparing Video For Download...