Passare dati tra task con XCom

Introduzione ad Apache Airflow in Python

Mike Metzger

Data Engineer

Cos’è XCom?

  • "Cross Communication"
    • Consente ai task di comunicare
  • Salvato nel database di metadati di Airflow
    • Passa piccole quantità di dati
    • Nomi file, URI, conteggi di righe

Illustrazione di XCom che passa piccoli dati tra task di Airflow

Introduzione ad Apache Airflow in Python

Cosa non inviare via XCom

  • File grandi
  • DataFrame
  • Interi database
  • Immagini pesanti

Illustrazione di tipi di dati da evitare con XCom, come file grandi e DataFrame

Introduzione ad Apache Airflow in Python

Implementare XCom

  • Molti modi per usare XCom
  • Ci concentriamo sulla TaskFlow API
  • Estende ciò che abbiamo fatto con @task
Introduzione ad Apache Airflow in Python

Esempio XCom

@dag(dag_id='Example_XCom')
def example_xcom():

@task def get_data(): return data
@task(multiple_outputs=True) def clean_data(sourcedata): return clean(sourcedata) # Example, not implemented
clean_data(get_data()) example_xcom()
Introduzione ad Apache Airflow in Python

Dipendenze XCom

  • Gli XCom definiscono automaticamente l’ordine delle dipendenze
  • Esempio
    clean_data(get_data())
    
  • Concettualmente uguale a get_data() >> clean_data()
  • Altro esempio
     result = clean_data(get_data())
     result >> alert_when_complete()
    
Introduzione ad Apache Airflow in Python

Visualizzare i dati XCom

Pagina XCom di Airflow con valori salvati per chiave, DAG e task

Introduzione ad Apache Airflow in Python

Passons à la pratique !

Introduzione ad Apache Airflow in Python

Preparing Video For Download...