Cloud Composer 1 | Cloud Composer 2
Questa pagina descrive quali dati vengono archiviati da Cloud Composer per il tuo ambiente in Cloud Storage.
Quando crei un ambiente, Cloud Composer crea un bucket Cloud Storage e lo associa al tuo ambiente. Il nome del bucket si basa sulla regione, sul nome e su un ID casuale come us-central1-b1-6efabcde-bucket
.
Cloud Composer sincronizza cartelle specifiche nel bucket del tuo ambiente con i componenti Airflow in esecuzione nel tuo ambiente. Ad esempio, quando aggiorni un file con il codice del DAG Airflow nel bucket dell'ambiente, anche i componenti Airflow ricevono la versione aggiornata. Cloud Composer utilizza Cloud Storage FUSE per la sincronizzazione.
Cartelle nel bucket Cloud Storage
Cartella | Percorso di archiviazione | Directory mappata | Descrizione |
---|---|---|---|
DAG | gs://bucket-name/dags |
/home/airflow/gcs/dags |
Archivia i DAG per il tuo ambiente. |
Plug-in | gs://bucket-name/plugins |
/home/airflow/gcs/plugins |
Archivia i plug-in personalizzati, ad esempio operatori, hook, sensori o interfacce Airflow interni. |
Dati | gs://bucket-name/data |
/home/airflow/gcs/data |
Archivia i dati prodotti e utilizzati dalle attività. |
Log | gs://bucket-name/logs |
/home/airflow/gcs/logs |
Archivia i log di Airflow per le attività. I log sono disponibili anche nell'interfaccia web di Airflow e nella scheda Log della console Google Cloud. |
Cloud Composer sincronizza le cartelle dags/
e plugins/
in modo unidirezionale. La sincronizzazione unidirezionale significa che le modifiche locali in queste cartelle su un componente Airflow vengono sovrascritte. Le cartelle data/
e logs/
si sincronizzano in modo bidirezionale.
La sincronizzazione dei dati è alla fine coerente. Per inviare messaggi da un operatore a un altro, utilizza XComs.
Considerazioni sulla capacità
I dati delle cartelle dags/
, plugins/
e data/
sono sincronizzati con gli scheduler e i worker di Airflow.
In Airflow 2, anche il contenuto della cartella plugins/
viene sincronizzato con il server web Airflow. In Airflow 1, le cartelle dei contenuti dags/
e plugins/
vengono sincronizzate con il server web Airflow solo se la serializzazione DAG è disattivata.
In caso contrario, la sincronizzazione non viene eseguita.
Maggiore è il numero di dati inseriti in queste cartelle, maggiore sarà lo spazio occupato nell'archiviazione locale dei componenti di Airflow. Il salvataggio di troppi dati in dags/
e plugins/
può interrompere le operazioni e causare problemi quali:
Un worker o uno scheduler esaurisce lo spazio di archiviazione locale e vengono rimossi a causa dello spazio insufficiente sul disco locale del componente.
La sincronizzazione dei file delle cartelle
dags/
eplugins/
con i lavoratori e i pianificatori richiede molto tempo.Sincronizzare i file delle cartelle
dags/
eplugins/
con worker e scheduler diventa impossibile. Ad esempio, archivi un file da 2 GB nella cartelladags/
, ma il disco locale di un worker Airflow può ospitarne solo 1 GB. Durante la sincronizzazione, il worker esaurisce lo spazio di archiviazione locale e la sincronizzazione non può essere completata.
Cartelle di DAG e plug-in
Per evitare errori di esecuzione dei DAG, archivia i DAG, i plug-in e i moduli Python nelle cartelle dags/
o plugins/
, anche se i moduli Python non contengono DAG o plug-in.
Ad esempio, utilizzi un elemento DataFlowPythonOperator
che fa riferimento a una pipeline Dataflow
py_file
. Questo elemento py_file
non contiene DAG o plug-in, ma devi comunque archiviarlo nella cartella dags/
o plugins/
.
Cartella di dati
In alcuni casi, alcuni file della cartella data/
vengono sincronizzati con un componente Airflow specifico. Ad esempio, quando Cloud Composer tenta di leggere per la prima volta un determinato file durante:
Analisi dei DAG: quando un file viene letto per la prima volta durante l'analisi dei DAG, Cloud Composer lo sincronizza con lo scheduler che analizza il DAG.
Esecuzione di DAG: quando un file viene letto per la prima volta durante l'esecuzione di DAG, Cloud Composer lo sincronizza con il worker che esegue l'esecuzione.
Lo spazio di archiviazione locale dei componenti di Airflow è limitato, pertanto ti consigliamo di eliminare i file scaricati per liberare spazio su disco nei componenti. Tieni presente che l'utilizzo dello spazio di archiviazione locale può anche aumentare temporaneamente se hai attività simultanee che scaricano lo stesso file su un singolo worker Airflow.
Cartella dei log
La cartella logs/
viene sincronizzata dai worker di Airflow al bucket dell'ambiente
utilizzando l'API Cloud Storage.
La quota dell'API Cloud Storage viene calcolata in base alla quantità di dati spostati, pertanto il numero di attività Airflow eseguite dal sistema può aumentare l'utilizzo dell'API Cloud Storage: più attività esegui, più grandi sono i file di log.
Sincronizzazione con il server web
Airflow 2 utilizza la serializzazione DAG preconfigurata. La cartella plugins/
viene automaticamente sincronizzata con il server web in modo che i plug-in possano essere caricati dall'interfaccia utente di
Airflow. Non puoi disattivare la serializzazione DAG in Airflow 2.
In Airflow 1, la serializzazione DAG è supportata ed è attiva per impostazione predefinita in Cloud Composer.
- Quando la serializzazione DAG è attivata, i file delle cartelle
dags/
eplugins/
non vengono sincronizzati con il server web. - Quando la serializzazione DAG è disattivata, i file da
dags/
eplugins/
vengono sincronizzati con il server web.