Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
En esta página, se explica cómo habilitar la compatibilidad con los operadores diferibles en tu entorno y cómo usar operadores diferibles de Google Cloud en tus DAG.
Acerca de los operadores diferibles en Cloud Composer
Si tienes al menos una instancia de activador (o al menos dos en entornos de alta resiliencia), puedes usar operadores y activadores diferibles en tus DAG.
Para los operadores diferibles, Airflow divide la ejecución de las tareas en las siguientes etapas:
Inicia la operación. En esta etapa, la tarea ocupa una ranura de trabajador de Airflow. La tarea realiza una operación que delega el trabajo a un servicio diferente.
Por ejemplo, ejecutar un trabajo de BigQuery puede tardar entre unos segundos y varias horas. Después de crear el trabajo, la operación pasa el identificador de trabajo (ID de trabajo de BigQuery) a un activador de Airflow.
El activador supervisa el trabajo hasta que finaliza. En esta etapa, una ranura de trabajador no está ocupada. El activador de Airflow tiene una arquitectura asíncrona y es capaz de controlar cientos de trabajos de ese tipo. Cuando el activador detecta que el trabajo finalizó, envía un evento que activa la última etapa.
En la última etapa, un trabajador de Airflow ejecuta una devolución de llamada. Esta devolución de llamada, por ejemplo, puede marcar la tarea como exitosa o ejecutar otra operación y configurar el trabajo para que el activador vuelva a supervisarlo.
El activador no tiene estado y, por lo tanto, es resistente a las interrupciones o los reinicios. Debido a esto, los trabajos de larga duración son resilientes a los reinicios de Pods, a menos que el reinicio ocurra durante la última etapa, que se espera que sea corta.
Antes de comenzar
- Los sensores y operadores diferibles están disponibles en los entornos de Cloud Composer 2 y requieren lo siguiente:
- Cloud Composer 2.0.31 y versiones posteriores
- Airflow 2.2.5, 2.3.3 y versiones posteriores
Cómo habilitar la compatibilidad con operadores diferibles
Un componente de entorno llamado Activador de Airflow supervisa de forma asíncrona todas las tareas diferidas de tu entorno. Después de que se completa una operación diferida de esa tarea, el activador pasa la tarea a un trabajador de Airflow.
Necesitas al menos una instancia de activador en tu entorno (o al menos dos en entornos de alta resiliencia) para usar el modo diferible en tus DAG. Puedes configurar los activadores cuando creas un entorno o ajustar la cantidad de activadores y los parámetros de rendimiento de un entorno existente.
Operadores de Google Cloud que admiten el modo diferible
Solo algunos operadores de Airflow se han extendido para admitir el modelo diferible.
La siguiente lista es una referencia para los operadores del paquete airflow.providers.google.operators.cloud
que admiten el modo diferible.
La columna con la versión mínima requerida del paquete airflow.providers.google.operators.cloud
representa la primera versión del paquete en la que ese operador admite el modo diferible.
Operadores de Cloud Composer
Nombre del operador | Versión de apache-airflow-providers-google requerida |
---|---|
CloudComposerCreateEnvironmentOperator | 6.4.0 |
CloudComposerDeleteEnvironmentOperator | 6.4.0 |
CloudComposerUpdateEnvironmentOperator | 6.4.0 |
Operadores de BigQuery
Nombre del operador | Versión de apache-airflow-providers-google requerida |
---|---|
BigQueryCheckOperator | 8.4.0 |
BigQueryValueCheckOperator | 8.4.0 |
BigQueryIntervalCheckOperator | 8.4.0 |
BigQueryGetDataOperator | 8.4.0 |
BigQueryInsertJobOperator | 8.4.0 |
Operadores del Servicio de transferencia de datos de BigQuery
Nombre del operador | Versión de apache-airflow-providers-google requerida |
---|---|
BigQueryDataTransferServiceStartTransferRunsOperator | 8.9.0 |
Operadores de Cloud Build
Nombre del operador | Versión de apache-airflow-providers-google requerida |
---|---|
CloudBuildCreateBuildOperator | 8.7.0 |
Operadores de Cloud SQL
Nombre del operador | Versión de apache-airflow-providers-google requerida |
---|---|
CloudSQLExportInstanceOperator | 10.3.0 |
Operadores de Dataflow
Nombre del operador | Versión de apache-airflow-providers-google requerida |
---|---|
DataflowTemplatedJobStartOperator | 8.9.0 |
DataflowStartFlexTemplateOperator | 8.9.0 |
Operadores de Cloud Data Fusion
Nombre del operador | Versión de apache-airflow-providers-google requerida |
---|---|
CloudDataFusionStartPipelineOperator | 8.9.0 |
Operadores de Dataproc
Nombre del operador | Versión de apache-airflow-providers-google requerida |
---|---|
DataprocCreateClusterOperator | 8.9.0 |
DataprocDeleteClusterOperator | 8.9.0 |
DataprocJobBaseOperator | 8.4.0 |
DataprocInstantiateWorkflowTemplateOperator | 9.0.0 |
DataprocInstantiateInlineWorkflowTemplateOperator | 10.1.0 |
DataprocSubmitJobOperator | 8.4.0 |
DataprocUpdateClusterOperator | 8.9.0 |
DataprocCreateBatchOperator | 8.9.0 |
Operadores de Google Kubernetes Engine
Nombre del operador | Versión de apache-airflow-providers-google requerida |
---|---|
GKEDeleteClusterOperator | 9.0.0 |
GKECreateClusterOperator | 9.0.0 |
Operadores de AI Platform
Nombre del operador | Versión de apache-airflow-providers-google requerida |
---|---|
MLEngineStartTrainingJobOperator | 8.9.0 |
Usa operadores diferibles en tus DAG
Una convención común para todos los operadores de Google Cloud es habilitar el modo diferible con el parámetro booleano deferrable
. Si un operador de Google Cloud no tiene este parámetro, no se puede ejecutar en el modo diferible. Otros operadores pueden tener una convención diferente. Por ejemplo, algunos operadores de comunidades tienen una clase separada con el sufijo Async
en el nombre.
En el siguiente DAG de ejemplo, se usa el operador DataprocSubmitJobOperator
en el modo diferible:
PYSPARK_JOB = {
"reference": { "project_id": "PROJECT_ID" },
"placement": { "cluster_name": "PYSPARK_CLUSTER_NAME" },
"pyspark_job": {
"main_python_file_uri": "gs://dataproc-examples/pyspark/hello-world/hello-world.py"
},
}
DataprocSubmitJobOperator(
task_id="dataproc-deferrable-example",
job=PYSPARK_JOB,
deferrable=True,
)
Ver registros del activador
El activador genera registros que están disponibles junto con los registros de otros componentes del entorno. Para obtener más información sobre cómo ver los registros de tu entorno, consulta Visualiza los registros.
Supervisa el activador
Para obtener más información sobre cómo supervisar el componente del activador, consulta Métricas de Airflow.
Además de supervisar el activador, puedes verificar la cantidad de tareas diferidas en las métricas de Tarea sin terminar en el panel de Monitoring de tu entorno.
¿Qué sigue?
- Soluciona problemas del activador de Airflow
- Métricas del activador de Airflow
- Registros del activador de Airflow