Dati archiviati in Cloud Storage

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/ e plugins/ con i lavoratori e i pianificatori richiede molto tempo.

  • Sincronizzare i file delle cartelle dags/ e plugins/ con worker e scheduler diventa impossibile. Ad esempio, archivi un file da 2 GB nella cartella dags/, 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/ e plugins/ non vengono sincronizzati con il server web.
  • Quando la serializzazione DAG è disattivata, i file da dags/ e plugins/ vengono sincronizzati con il server web.

Passaggi successivi