Utiliser des opérateurs différables dans vos DAG

Cloud Composer 1 | Cloud Composer 2

Cette page explique comment activer la compatibilité avec les opérateurs différables dans votre environnement et utiliser des opérateurs Google Cloud différables dans vos DAG.

À propos des opérateurs différables dans Cloud Composer

Si vous disposez d'au moins une instance de déclencheur (ou au moins deux dans des environnements hautement résilients), vous pouvez utiliser des opérateurs et déclencheurs différables dans vos DAG.

Pour les opérateurs différables, Airflow répartit l'exécution des tâches en plusieurs étapes:

  1. Démarrez l'opération. À ce stade, la tâche occupe un emplacement de nœud de calcul Airflow. La tâche effectue une opération qui délègue la tâche à un autre service.

    Par exemple, l'exécution d'une tâche BigQuery peut prendre de quelques secondes à plusieurs heures. Une fois la tâche créée, l'opération transmet l'identifiant de travail (ID de tâche BigQuery) à un déclencheur Airflow.

  2. Le déclencheur surveille la tâche jusqu'à ce qu'elle se termine. À ce stade, un emplacement de nœud de calcul n'est pas occupé. Le déclencheur Airflow possède une architecture asynchrone et est capable de gérer des centaines de tâches de ce type. Lorsque le déclencheur détecte que la tâche est terminée, il envoie un événement qui déclenche la dernière étape.

  3. Lors de la dernière étape, un nœud de calcul Airflow exécute un rappel. Ce rappel, par exemple, peut marquer la tâche comme réussie ou exécuter une autre opération et définir de nouveau la surveillance de la tâche par le déclencheur.

Le déclencheur est sans état et résiste donc aux interruptions ou aux redémarrages. De ce fait, les tâches de longue durée sont résilientes aux redémarrages des pods, sauf si celui-ci a lieu au cours de la dernière étape, qui est censée être courte.

Avant de commencer

  • Les opérateurs et capteurs différables sont disponibles dans les environnements Cloud Composer 2 et nécessitent les éléments suivants :
    • Cloud Composer 2.0.31 et versions ultérieures
    • Airflow 2.2.5, 2.3.3 et versions ultérieures

Activer la prise en charge des opérateurs différables

Un composant d'environnement appelé déclencheur Airflow surveille de manière asynchrone toutes les tâches différées de votre environnement. Une fois qu'une opération différée est terminée, le déclencheur transmet la tâche à un nœud de calcul Airflow.

Pour utiliser le mode différable dans vos DAG, vous avez besoin d'au moins une instance de déclencheur dans votre environnement (ou d'au moins deux dans les environnements hautement résilients). Vous pouvez configurer les déclencheurs lorsque vous créez un environnement ou ajuster le nombre de déclencheurs et les paramètres de performances pour un environnement existant.

Opérateurs Google Cloud compatibles avec le mode différable

Seuls certains opérateurs Airflow ont été étendus pour être compatibles avec le modèle différable. La liste suivante est une référence pour les opérateurs du package airflow.providers.google.operators.cloud compatibles avec le mode différable. La colonne contenant la version minimale requise du package airflow.providers.google.operators.cloud représente la version de package la plus ancienne pour laquelle cet opérateur est compatible avec le mode différable.

Opérateurs Cloud Composer

Nom de l'opérateurVersion apache-airflow-providers-google requise
CloudComposerCreateEnvironmentOperator 6.4.0
CloudComposerDeleteEnvironmentOperator 6.4.0
CloudComposerUpdateEnvironmentOperator 6.4.0

Opérateurs BigQuery

Nom de l'opérateurVersion apache-airflow-providers-google requise
BigQueryCheckOperator 8.4.0
BigQueryValueCheckOperator 8.4.0
BigQueryIntervalCheckOperator 8.4.0
BigQueryGetDataOperator 8.4.0
BigQueryInsertJobOperator 8.4.0

Opérateurs du service de transfert de données BigQuery

Nom de l'opérateurVersion apache-airflow-providers-google requise
BigQueryDataTransferServiceStartTransferRunsOperator 8.9.0

Opérateurs Cloud Build

Nom de l'opérateurVersion apache-airflow-providers-google requise
CloudBuildCreateBuildOperator 8.7.0

Opérateurs Cloud SQL

Nom de l'opérateurVersion apache-airflow-providers-google requise
CloudSQLExportInstanceOperator 10.3.0

Opérateurs Dataflow

Nom de l'opérateurVersion apache-airflow-providers-google requise
DataflowTemplatedJobStartOperator 8.9.0
DataflowStartFlexTemplateOperator 8.9.0

Opérateurs Cloud Data Fusion

Nom de l'opérateurVersion apache-airflow-providers-google requise
CloudDataFusionStartPipelineOperator 8.9.0

Opérateurs Google Kubernetes Engine

Nom de l'opérateurVersion apache-airflow-providers-google requise
GKEDeleteClusterOperator 9.0.0
GKECreateClusterOperator 9.0.0

Opérateurs AI Platform

Nom de l'opérateurVersion apache-airflow-providers-google requise
MLEngineStartTrainingJobOperator 8.9.0

Utiliser des opérateurs différables dans vos DAG

Une convention courante pour tous les opérateurs Google Cloud consiste à activer le mode différable avec le paramètre booléen deferrable. Si un opérateur Google Cloud ne possède pas ce paramètre, il ne peut pas s'exécuter en mode différable. D'autres opérateurs peuvent avoir une convention différente. Par exemple, certains opérateurs de communauté ont une classe distincte dont le nom inclut le suffixe Async.

L'exemple de DAG suivant utilise l'opérateur DataprocSubmitJobOperator en mode différable:

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,
    )

Afficher les journaux du déclencheur

Le déclencheur génère des journaux disponibles avec les journaux d'autres composants d'environnement. Pour en savoir plus sur l'affichage des journaux d'environnement, consultez la section Afficher les journaux.

Surveiller le déclencheur

Pour en savoir plus sur la surveillance du composant déclencheur, consultez la section Métriques Airflow.

En plus de surveiller le déclencheur, vous pouvez vérifier le nombre de tâches différées dans les métriques Tâches inachevées sur le tableau de bord Monitoring de votre environnement.

Étapes suivantes