Variabile Airflow

Introducere în Apache Airflow în Python

Mike Metzger

Data Engineer

Ce sunt variabilele?

  • Utile pentru valori de configurare
  • Căi de fișiere, endpoint-uri API, medii etc.
  • Pot fi interogate din taskuri, setate prin cod, interfața Airflow sau fișier
  • Există în afara codului DAG
Introducere în Apache Airflow în Python

Accesarea variabilelor în interfața Airflow

  • Prin meniul Admin: Variables

Interfața Airflow cu meniul Admin deschis, afișând opțiunea Variables

Introducere în Apache Airflow în Python

Vizualizarea variabilelor în interfața Airflow

Pagina Variabile Airflow cu lista goală și nicio variabilă definită

Introducere în Apache Airflow în Python

Adăugarea unei variabile în Airflow

Pagina Variabile Airflow cu butonul Adăugare variabilă evidențiat

Introducere în Apache Airflow în Python

Editor de variabile

Formularul de editare a variabilei Airflow cu câmpurile cheie, valoare și descriere

Introducere în Apache Airflow în Python

Variabile prezente în interfață

Pagina Variabile Airflow cu o variabilă definită în listă

Introducere în Apache Airflow în Python

Citirea unei variabile în Python

  • Utilizează biblioteca airflow.sdk.Variable
  • Citire prin Variable.get("variable_name")
    # Retrieve a plain string value
    my_region = Variable.get("region")
    
  • În acest caz, my_region ar fi us-eastern
  • Furnizați o valoare implicită dacă variabila nu există
    # Provide a fallback if the variable doesn't exist
    env = Variable.get("current_environment", default=None)
    
  • Deoarece current_environment nu a fost definit, env este None
Introducere în Apache Airflow în Python

Accesarea variabilelor în șabloane Jinja

  • Accesibilă prin {{ var.value.variable_name }}
    filewatcher = FileSensor(
    task_id="wait_for_files",
    filepath="/data/{{ var.value.region }}/input.csv",
    ...
    
  • În cazul nostru, FileSensor va căuta fișierul /data/us-eastern/input.csv
Introducere în Apache Airflow în Python

Accesarea variabilelor prin CLI

  • Variabilele pot fi citite, actualizate, șterse sau listate prin linie de comandă
  • Citire - airflow variables get <variable_name>
  • Scriere - airflow variables set <variable_name> <value>
  • Ștergere - airflow variables delete <variable_name>
  • Listare - airflow variables list <variable_name>
Introducere în Apache Airflow în Python

Variabile JSON

  • Valorile variabilelor pot fi șiruri JSON
    • Variable.get("variable_name", deserialize_json=True)
    • Returnează un dicționar Python
  • Utilizând Jinja
    • {{ var.json.variable_name }}
Introducere în Apache Airflow în Python

Setarea variabilelor

  • Este posibil să setați variabile
  • Prin Variable.set("variable_name", variable_value)
  • Suportă și JSON cu opțiunea serialize_json=True
  • Utilizați cu moderație, deoarece poate afecta alte DAG-uri care accesează variabilele în mod neașteptat
Introducere în Apache Airflow în Python

Lass uns üben!

Introducere în Apache Airflow în Python

Preparing Video For Download...