Variabili Airflow

Introduzione ad Apache Airflow in Python

Mike Metzger

Data Engineer

Cosa sono le variabili?

  • Utile per valori di configurazione
  • Percorsi file, endpoint API, ambienti, ecc.
  • Si possono interrogare dai task, impostare via codice, UI di Airflow o file
  • Esistono fuori dal codice del Dag
Introduzione ad Apache Airflow in Python

Accesso alle variabili nella UI di Airflow

  • Dal menu Admin: Variables

UI di Airflow con il menu Admin aperto che mostra l’opzione Variables

Introduzione ad Apache Airflow in Python

Visualizzare le variabili nella UI di Airflow

Pagina Variabili di Airflow con elenco vuoto e nessuna variabile definita

Introduzione ad Apache Airflow in Python

Aggiungere una variabile in Airflow

Pagina Variabili di Airflow con il pulsante Add Variable evidenziato

Introduzione ad Apache Airflow in Python

Editor variabili

Editor variabili di Airflow con campi key, value e description

Introduzione ad Apache Airflow in Python

Variabili presenti nella UI

Pagina Variabili di Airflow che mostra una variabile definita nell’elenco

Introduzione ad Apache Airflow in Python

Lettura di una variabile in Python

  • Usa la libreria airflow.sdk.Variable
  • Leggi con Variable.get("variable_name")
    # Retrieve a plain string value
    my_region = Variable.get("region")
    
  • In questo caso, my_region è us-eastern
  • Fornisci un fallback se la variabile non esiste
    # Provide a fallback if the variable doesn't exist
    env = Variable.get("current_environment", default=None)
    
  • Poiché non abbiamo definito current_environment, env è None
Introduzione ad Apache Airflow in Python

Accesso alle variabili nei template Jinja

  • Accessibile tramite {{ var.value.variable_name }}
    filewatcher = FileSensor(
    task_id="wait_for_files",
    filepath="/data/{{ var.value.region }}/input.csv",
    ...
    
  • In questo caso, FileSensor cercherà il file /data/us-eastern/input.csv
Introduzione ad Apache Airflow in Python

Accesso alle variabili via CLI

  • Le variabili si possono leggere, aggiornare, eliminare o elencare da riga di comando
  • Read - airflow variables get <variable_name>
  • Write - airflow variables set <variable_name> <value>
  • Delete - airflow variables delete <variable_name>
  • List - airflow variables list <variable_name>
Introduzione ad Apache Airflow in Python

Variabili JSON

  • I valori delle variabili possono essere stringhe JSON
    • Variable.get("variable_name", deserialize_json=True)
    • Restituisce un dizionario Python
  • Con Jinja
    • {{ var.json.variable_name }}
Introduzione ad Apache Airflow in Python

Impostare variabili

  • Si possono anche impostare variabili
  • Con Variable.set("variable_name", variable_value)
  • Supporta anche JSON con l’opzione serialize_json=True
  • Usale con parsimonia: può influire su altri Dag in modi imprevisti
Introduzione ad Apache Airflow in Python

Passons à la pratique !

Introduzione ad Apache Airflow in Python

Preparing Video For Download...