Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Cette page explique comment activer la prise en charge des 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 d'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 divise l'exécution des tâches en plusieurs étapes:
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 entre quelques secondes et plusieurs heures. Une fois le job créé, l'opération transmet l'identifiant de travail (ID de tâche BigQuery) à un déclencheur Airflow.
Le déclencheur surveille la tâche jusqu'à sa fin. À ce stade, un emplacement de worker n'est pas occupé. Le déclencheur Airflow possède une architecture asynchrone et peut 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.
Lors de la dernière étape, un nœud de calcul Airflow exécute un rappel. Par exemple, ce rappel peut marquer la tâche comme réussie, ou exécuter une autre opération et définir la tâche à surveiller à nouveau par le déclencheur.
Le déclencheur est sans état et est donc résilient aux interruptions ou aux redémarrages. Par conséquent, les tâches de longue durée sont résilientes aux redémarrages de pod, sauf si le redémarrage se produit pendant la dernière étape, qui devrait ê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 compatibilité avec les 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 d'une telle tâche est terminée, le déclencheur transmet la tâche à un nœud de calcul Airflow.
Vous devez disposer d'au moins une instance de déclencheur dans votre environnement (ou d'au moins deux dans des environnements hautement résilients) pour utiliser le mode différable dans vos DAG. 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 d'un environnement existant.
OpérateursGoogle Cloud compatibles avec le mode différable
Seuls certains opérateurs Airflow ont été étendus pour prendre en charge le modèle différable.
La liste suivante est une référence des 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érateur | Version apache-airflow-providers-google requise |
---|---|
CloudComposerCreateEnvironmentOperator | 6.4.0 |
CloudComposerDeleteEnvironmentOperator | 6.4.0 |
CloudComposerUpdateEnvironmentOperator | 6.4.0 |
Opérateurs BigQuery
Nom de l'opérateur | Version 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érateur | Version apache-airflow-providers-google requise |
---|---|
BigQueryDataTransferServiceStartTransferRunsOperator | 8.9.0 |
Opérateurs Cloud Build
Nom de l'opérateur | Version apache-airflow-providers-google requise |
---|---|
CloudBuildCreateBuildOperator | 8.7.0 |
Opérateurs Cloud SQL
Nom de l'opérateur | Version apache-airflow-providers-google requise |
---|---|
CloudSQLExportInstanceOperator | 10.3.0 |
Opérateurs Dataflow
Nom de l'opérateur | Version apache-airflow-providers-google requise |
---|---|
DataflowTemplatedJobStartOperator | 8.9.0 |
DataflowStartFlexTemplateOperator | 8.9.0 |
Opérateurs Cloud Data Fusion
Nom de l'opérateur | Version apache-airflow-providers-google requise |
---|---|
CloudDataFusionStartPipelineOperator | 8.9.0 |
Opérateurs Dataproc
Nom de l'opérateur | Version apache-airflow-providers-google requise |
---|---|
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 |
Opérateurs Google Kubernetes Engine
Nom de l'opérateur | Version apache-airflow-providers-google requise |
---|---|
GKEDeleteClusterOperator | 9.0.0 |
GKECreateClusterOperator | 9.0.0 |
Opérateurs AI Platform
Nom de l'opérateur | Version 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 Cloudne dispose pas de 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 la communauté disposent d'une classe distincte avec le suffixe Async
dans le nom.
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 qui sont disponibles avec les journaux des autres composants de l'environnement. Pour en savoir plus sur l'affichage des journaux de votre environnement, consultez la section Afficher les journaux.
Déclencheur de surveillance
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âche incomplète du tableau de bord "Monitoring" de votre environnement.
Étape suivante
- Résoudre les problèmes liés au déclencheur Airflow
- Métriques du déclencheur Airflow
- Journaux du déclencheur Airflow