Dati archiviati in Cloud Storage

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Questa pagina descrive i dati archiviati da Cloud Composer per il tuo ambiente in Cloud Storage.

Quando crei un ambiente, Cloud Composer crea Cloud Storage e lo associa. con il tuo ambiente. Il nome del bucket si basa sull'ambiente regione, nome e un ID casuale come us-central1-b1-6efabcde-bucket.

Cloud Composer sincronizza cartelle specifiche del bucket del tuo ambiente ai componenti Airflow in esecuzione nel tuo ambiente. Ad esempio, quando aggiorni un file con il codice del DAG di Airflow nel bucket dell'ambiente, anche i componenti di 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 tuoi plug-in personalizzati, ad esempio operatori, hook, sensori o interfacce Airflow interni personalizzati.
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 le cartelle in un componente Airflow vengono sovrascritte. Le cartelle data/ e logs/ si sincronizzano in modo bidirezionale.

La sincronizzazione dei dati è a coerenza finale. Inviare messaggi da un operatore all'altro, utilizza XComs.

Considerazioni sulla capacità

I dati delle cartelle dags/, plugins/ e data/ vengono sincronizzati con gli scheduler e i worker di Airflow.

In Airflow 2, i contenuti della cartella plugins/ vengono sincronizzati anche 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 Airflow. Salvare troppi dati in dags/ e plugins/ può interrompere le tue operazioni e causare problemi come:

  • Uno worker o uno scheduler esaurisce lo spazio di archiviazione locale e viene espulso a causa di spazio insufficiente sul disco locale del componente.

  • La sincronizzazione dei file dalle cartelle dags/ e plugins/ ai worker e ai pianificatori richiede molto tempo.

  • La sincronizzazione dei file dalle cartelle dags/ e plugins/ ai worker e ai pianificatori diventa impossibile. Ad esempio, archivi un file di 2 GB nella dags/, ma il disco locale di un worker Airflow può gestire solo 1 GB. Durante la sincronizzazione, il worker esaurisce le risorse locali di archiviazione e sincronizzazione.

Cartelle DAG e plug-in

Per evitare errori di esecuzione dei DAG, archivia i DAG, i plug-in e i moduli Python dags/ o plugins/ cartelle, anche se i moduli Python non contengono DAG o plug-in.

Ad esempio, utilizzi un DataFlowPythonOperator che fa riferimento a una pipeline py_file Dataflow. py_file non contiene DAG o ma devi comunque archiviarlo nella cartella dags/ o plugins/.

Cartella dei dati

Esistono scenari in cui determinati file della cartella data/ vengono sincronizzati con un componente Airflow specifico. Ad esempio, quando Cloud Composer tenta di leggere un determinato file per la prima volta durante:

  • Analisi del DAG: quando un file viene letto per la prima volta durante l'analisi del DAG, Cloud Composer lo sincronizza con lo scheduler che analizza il DAG.

  • Esecuzione DAG: quando un file viene letto per la prima volta durante l'esecuzione del DAG, Cloud Composer lo sincronizza con il worker che esegue l'esecuzione.

I componenti di Airflow hanno uno spazio di archiviazione locale limitato, quindi 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ò aumentare temporaneamente anche se hai attività concorrenti che scaricano lo stesso file in un singolo worker Airflow.

Cartella 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 trasferiti, il numero di attività Airflow eseguite dal tuo sistema può aumentare l'utilizzo dell'API Cloud Storage: più attività esegui, più grande è il log .

Sincronizzazione con il server web

Airflow 2 utilizza la serializzazione DAG per impostazione predefinita. La cartella plugins/ viene automaticamente sincronizzato con il server web in modo che i plug-in possano essere caricati UI di Airflow. Non puoi disattivare la serializzazione DAG in Airflow 2.

In Airflow 1, la serializzazione dei DAG è supportata ed è attiva per impostazione predefinita con Cloud Composer.

  • Quando la serializzazione DAG è attivata, i file da dags/ e plugins/ cartelle non sono sincronizzate con il server web.
  • Quando la serializzazione DAG è disattivata, i file di dags/ e plugins/ vengono sincronizzati con il server web.

Passaggi successivi