Cosa succede se più pipeline di dati devono interagire con lo stesso endpoint API? Dovresti davvero dichiarare questo endpoint in ogni pipeline? Nel caso in cui questo endpoint cambi nel prossimo futuro, dovrai aggiornare il suo valore in ogni singolo file.
Le variabili del flusso d’aria sono costrutti semplici ma preziosi, utilizzati per prevenire dichiarazioni ridondanti su più DAG. Sono semplicemente oggetti costituiti da una chiave e un valore serializzabile JSON, archiviati nel database dei metadati di Airflow.
E cosa succede se il tuo codice utilizza token o altri tipi di segreti? Codificarli in testo semplice non sembra essere un approccio sicuro. Oltre a ridurre la ripetizione, le variabili Airflow aiutano anche a gestire le informazioni sensibili. Con sei diversi modi per definire le variabili in Airflow, selezionare il metodo appropriato è fondamentale per garantire sicurezza e portabilità.
Un aspetto spesso trascurato è l’impatto che il recupero variabile ha sulle prestazioni del flusso d’aria. Può potenzialmente sovraccaricare il database dei metadati con richieste, ogni volta che lo Scheduler analizza i file DAG (il valore predefinito è trenta secondi).
È abbastanza facile cadere in questa trappola, a meno che non si capisca come lo Scheduler analizza i DAG e come le variabili vengono recuperate dal database.
Prima di entrare nella discussione su come le variabili vengono recuperate dal metastore e quali migliori pratiche applicare per ottimizzare i DAG, è importante avere le nozioni di base giuste. Per ora, concentriamoci solo su come possiamo effettivamente dichiarare le variabili in Airflow.
Come già accennato, esistono diversi modi per dichiarare le variabili in Airflow. Alcuni di essi risultano più sicuri e portatili di altri, quindi esaminiamoli tutti e cerchiamo di comprenderne i pro e i contro.
1. Creazione di una variabile dall’interfaccia utente
In questo primo approccio, creeremo una variabile tramite l’interfaccia utente. Dal menu in alto seleziona Admin
→ Variables
→ +
Fonte: towardsdatascience.com