Datos almacenados en Cloud Storage

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

En esta página, se describe qué datos almacena Cloud Composer para tu entorno en Cloud Storage.

Cuando creas un entorno, Cloud Composer crea un bucket de Cloud Storage y lo asocia a tu entorno. El nombre del bucket se basa en la región, el nombre y un ID aleatorio del entorno, como us-central1-b1-6efabcde-bucket.

Cloud Composer sincroniza carpetas específicas en el bucket de tu entorno con los componentes de Airflow que se ejecutan en tu entorno. Por ejemplo, cuando actualizas un archivo con el código de tu DAG de Airflow en el bucket del entorno, los componentes de Airflow también reciben la versión actualizada. Cloud Composer usa Cloud Storage FUSE para la sincronización.

Carpetas en el bucket de Cloud Storage

Carpeta Ruta de almacenamiento Directorio asignado Descripción
DAG gs://bucket-name/dags /home/airflow/gcs/dags Almacena DAG para tu entorno.
Complementos gs://bucket-name/plugins /home/airflow/gcs/plugins Almacena tus complementos personalizados, como operadores, hooks, interfaces o sensores personalizados internos de Airflow.
Datos gs://bucket-name/data /home/airflow/gcs/data Almacena los datos que las tareas producen y usan.
Registros gs://bucket-name/logs /home/airflow/gcs/logs Almacena los registros de Airflow para las tareas. Los registros también están disponibles en la interfaz web de Airflow y en la pestaña Registros de la consola de Google Cloud.

Cloud Composer sincroniza las carpetas dags/ y plugins/ de forma unidireccional. La sincronización unidireccional significa que los cambios locales en estas carpetas en un componente de Airflow se reemplazan. Las carpetas data/ y logs/ se sincronizan de forma bidireccional.

La sincronización de datos tiene coherencia eventual. Para enviar mensajes de un operador a otro, usa XComs.

Consideraciones de capacidad

Los datos de las carpetas dags/, plugins/ y data/ se sincronizan con los trabajadores y los programadores de Airflow.

El contenido de la carpeta plugins/ se sincroniza con el servidor web de Airflow.

Cuantos más datos se coloquen en estas carpetas, más espacio se ocupará en el almacenamiento local de los componentes de Airflow. Guardar demasiados datos en dags/ y plugins/ puede interrumpir tus operaciones y generar problemas como los siguientes:

  • Un trabajador o programador se queda sin almacenamiento local y se expulsa debido a que no hay suficiente espacio en el disco local del componente.

  • La sincronización de los archivos de las carpetas dags/ y plugins/ a los trabajadores y programadores lleva mucho tiempo.

  • Se vuelve imposible sincronizar los archivos de las carpetas dags/ y plugins/ con los trabajadores y los programadores. Por ejemplo, almacenas un archivo de 2 GB en la carpeta dags/, pero el disco local de un trabajador de Airflow solo puede tener 1 GB. Durante la sincronización, el trabajador se queda sin almacenamiento local y no se puede completar.

Carpetas de DAG y complementos

Para evitar fallas de ejecución del DAG, almacena tus DAG, complementos y módulos de Python en las carpetas dags/ o plugins/, incluso si los módulos de Python no contienen DAG o complementos.

Por ejemplo, usa un DataFlowPythonOperator que hace referencia a una canalización py_file de Dataflow. Ese py_file no contiene DAG ni complementos, pero debes almacenarlo en la carpeta dags/ o plugins/.

Carpeta de datos

Hay situaciones en las que ciertos archivos de la carpeta data/ se sincronizan con un componente específico de Airflow. Por ejemplo, cuando Cloud Composer intenta leer un archivo determinado por primera vez durante lo siguiente:

  • Análisis de DAG: cuando se lee un archivo por primera vez durante el análisis del DAG, Cloud Composer lo sincroniza con el programador que analiza el DAG.

  • Ejecución de DAG: Cuando se lee un archivo por primera vez durante la ejecución del DAG, Cloud Composer lo sincroniza con el trabajador que ejecuta la ejecución.

Los componentes de Airflow tienen almacenamiento local limitado, por lo que debes considerar borrar los archivos descargados para liberar espacio en el disco en tus componentes. Ten en cuenta que el uso del almacenamiento local también puede aumentar de forma temporal si tienes tareas simultáneas que descargan el mismo archivo a un solo trabajador de Airflow.

Carpeta de registros

La carpeta logs/ se sincroniza de los trabajadores de Airflow con el bucket del entorno mediante la API de Cloud Storage.

La cuota de la API de Cloud Storage se calcula según la cantidad de datos que se mueven, por lo que la cantidad de tareas de Airflow que ejecuta tu sistema puede aumentar el uso de la API de Cloud Storage: cuantas más tareas ejecutes, más grandes serán tus archivos de registro.

Sincronización con el servidor web

La carpeta plugins/ se sincroniza de forma automática con el servidor web para que la IU de Airflow pueda cargar los complementos.

¿Qué sigue?