Dati archiviati in Cloud Storage

Cloud Composer 1 | Cloud Composer 2

Questa pagina descrive quali dati Cloud Composer archivia per il tuo ambiente in Cloud Storage.

Quando crei un ambiente, Cloud Composer crea un bucket Cloud Storage e associa il bucket al tuo ambiente. Il nome del bucket si basa sulla regione e sul nome dell'ambiente, nonché su un ID casuale come us-central1-b1-6efannnn-bucket.

Cloud Composer prevede il codice sorgente per i tuoi flussi di lavoro (DAG) e le rispettive dipendenze in cartelle specifiche in Cloud Storage e utilizza Cloud Storage FUSE per mappare le cartelle ai componenti Airflow nel tuo ambiente Cloud Composer.

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. Solo i DAG in questa cartella sono pianificati per il tuo ambiente.
Plug-in gs://bucket-name/plugins /home/airflow/gcs/plugins Archivia i tuoi plug-in personalizzati, ad esempio operatori Airflow interni, hook, sensori o interfacce personalizzati di Airflow.
Dati gs://bucket-name/data /home/airflow/gcs/data Archivia i dati prodotti e utilizzati dalle attività. Questa cartella è montata su tutti i nodi worker.
Log gs://bucket-name/logs Archivia i log di Airflow per le attività. I log sono disponibili anche nell'interfaccia web di Airflow e nella scheda Log dell'UI di Cloud Composer.

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 i contenuti della cartella plugins/ vengono sincronizzati con il server web Airflow.

  • In Airflow 1, le cartelle di 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.

Più dati vengono inseriti in queste cartelle, maggiore è lo spazio occupato nelle cartelle nell'archiviazione locale dei componenti di Airflow. Il risparmio di troppi dati in dags/ e plugins/ può interrompere le operazioni e generare problemi quali:

  • un worker o uno scheduler esauriscono 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 worker e scheduler richiede molto tempo.

  • È impossibile sincronizzare i file delle cartelle dags/ e plugins/ con worker e scheduler. Ad esempio, hai archiviato un file da 2 GB nella cartella dags/, ma il disco locale del tuo componente può contenere solo 1 GB. Durante la sincronizzazione, il componente esaurisce l'archiviazione locale e la sincronizzazione non può essere completata.

DAG e plug-in

Per evitare errori del flusso di lavoro, 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 DataFlowPythonOperator che fa riferimento a una pipeline Dataflow di py_file. py_file non contiene DAG o plug-in, ma dovresti comunque archiviarlo nella cartella dags/ o plugins/.

Dati

In alcuni casi, 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 DAG Quando un file viene letto per la prima volta durante l'analisi 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.

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ò anche aumentare temporaneamente se esistono attività simultanee che scaricano lo stesso file su un singolo worker Airflow.

Log

La cartella logs/ viene sincronizzata dai worker Airflow per il bucket 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.

Server web, dags/, plugins/ e data/ cartelle

  • Airflow 2 utilizza la serializzazione DAG preconfigurata. La cartella plugins/ viene sincronizzata automaticamente con il server web in modo che i plug-in possano essere caricati dall'UI 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 è attiva, i file di dags/ e delle cartelle plugins/ non vengono sincronizzati con il server web.
    • Quando la serializzazione DAG è disattivata, i file di dags/ e plugins/ vengono sincronizzati con il server web.

Sincronizzazione dati

Quando modifichi i DAG o i plug-in nel bucket Cloud Storage, i dati vengono sincronizzati in tutti i nodi nel cluster.

Cloud Composer sincronizza le cartelle dags/ e plugins/ in modo unidirezionale copiando in locale. La sincronizzazione unidirezionale significa che le modifiche locali in queste cartelle vengono sovrascritte.

Le cartelle data/ e logs/ vengono sincronizzate in modo bidirezionale utilizzando Cloud Storage FUSE.

Differenze tra Cloud Composer 1 e Cloud Composer 2

Cloud Composer 1 e Cloud Composer 2 allocano quantità diverse di CPU e memoria ai componenti che eseguono la sincronizzazione dei dati.

A seconda della configurazione, la velocità di sincronizzazione dei contenuti per le cartelle dags/, plugins/ e data/ tra il bucket Cloud Storage e i componenti Airflow potrebbe variare se confronti Cloud Composer 1 e Cloud Composer 2.

Passaggi successivi