Utilizza operatori differibili nei DAG

Cloud Composer 1 | Cloud Composer 2

Questa pagina spiega come abilitare il supporto per gli operatori differibili nel tuo ambiente e utilizzare gli operatori Google Cloud differibili nei DAG.

Informazioni sugli operatori differibili in Cloud Composer

Se hai almeno un'istanza di triggerer (o almeno due in ambienti a elevata resilienza), puoi utilizzare Operatori e trigger differiti nei DAG.

Per gli operatori differibili, Airflow suddivide l'esecuzione dell'attività nelle fasi seguenti:

  1. Avvia l'operazione. In questa fase, l'attività occupa uno slot worker Airflow. L'attività esegue un'operazione che delega il job a un servizio diverso.

    Ad esempio, l'esecuzione di un job BigQuery può richiedere da pochi secondi a diverse ore. Dopo aver creato il job, l'operazione passa l'identificatore di lavoro (ID job BigQuery) a un trigger di Airflow.

  2. Il trigger monitora il job fino al suo completamento. In questa fase, non è occupato uno spazio worker. L'attivatore Airflow ha un'architettura asincrone ed è in grado di gestire centinaia di questi job. Quando il trigger rileva che il job è stato completato, invia un evento che attiva l'ultima fase.

  3. Nell'ultima fase, un worker Airflow esegue un callback. Questo callback, ad esempio, può contrassegnare l'attività come riuscita o eseguire un'altra operazione e impostare di nuovo il job in modo che venga monitorato dall'attivatore.

L'attivatore è stateless e pertanto resiliente in caso di interruzioni o riavvii. Per questo motivo, i job a lunga esecuzione sono resilienti ai riavvii dei pod, a meno che il riavvio non si verifichi durante l'ultima fase, che dovrebbe essere breve.

Prima di iniziare

  • Gli operatori e i sensori differibili sono disponibili negli ambienti di Cloud Composer 2 e richiedono quanto segue:
    • Cloud Composer 2.0.31 e versioni successive
    • Airflow 2.2.5, 2.3.3 e versioni successive

Attiva il supporto per gli operatori differibili

Un componente dell'ambiente chiamato trigger di Airflow monitora in modo asincrono tutte le attività differite nel tuo ambiente. Dopo il completamento di un'operazione differita da un'attività di questo tipo, l'attivatore la passa a un worker Airflow.

Per utilizzare la modalità differibile nei DAG, è necessaria almeno un'istanza dell'attivatore nel tuo ambiente (o almeno due in ambienti altamente resilienti). Puoi configurare gli attivatori quando crei un ambiente o regolare il numero di attivatori e i parametri di prestazioni per un ambiente esistente.

Operatori di Google Cloud che supportano la modalità differibile

Solo alcuni operatori Airflow sono stati estesi per supportare il modello differibile. Il seguente elenco è un riferimento per gli operatori nel pacchetto airflow.providers.google.operators.cloud che supportano la modalità differibile. La colonna con la versione minima richiesta per il pacchetto airflow.providers.google.operators.cloud rappresenta la prima versione del pacchetto in cui l'operatore supporta la modalità differibile.

Operatori di Cloud Composer

Nome operatoreVersione apache-airflow-providers-google obbligatoria
CloudComposerCreateEnvironmentOperator 6.4.0
CloudComposerDeleteEnvironmentOperator 6.4.0
CloudComposerUpdateEnvironmentOperator 6.4.0

Operatori BigQuery

Nome operatoreVersione apache-airflow-providers-google obbligatoria
BigQueryCheckOperator 8.4.0
BigQueryValueCheckOperator 8.4.0
BigQueryIntervalCheckOperator 8.4.0
BigQueryGetDataOperator 8.4.0
BigQueryInsertJobOperator 8.4.0

Operatori di BigQuery Data Transfer Service

Nome operatoreVersione apache-airflow-providers-google obbligatoria
BigQueryDataTransferServiceStartTransferRunsOperator 8.9.0

Operatori di Cloud Build

Nome operatoreVersione apache-airflow-providers-google obbligatoria
CloudBuildCreateBuildOperator 8.7.0

Operatori Cloud SQL

Nome operatoreVersione apache-airflow-providers-google obbligatoria
CloudSQLExportInstanceOperator 10.3.0

Operatori Dataflow

Nome operatoreVersione apache-airflow-providers-google obbligatoria
DataflowTemplatedJobStartOperator 8.9.0
DataflowStartFlexTemplateOperator 8.9.0

Operatori di Cloud Data Fusion

Nome operatoreVersione apache-airflow-providers-google obbligatoria
CloudDataFusionStartPipelineOperator 8.9.0

Operatori di Google Kubernetes Engine

Nome operatoreVersione apache-airflow-providers-google obbligatoria
GKEDeleteClusterOperator 9.0.0
GKECreateClusterOperator 9.0.0

Operatori AI Platform

Nome operatoreVersione apache-airflow-providers-google obbligatoria
MLEngineStartTrainingJobOperator 8.9.0

Utilizza operatori differibili nei DAG

Una convenzione comune per tutti gli operatori di Google Cloud è abilitare la modalità differibile con il parametro booleano deferrable. Se un operatore Google Cloud non ha questo parametro, non può essere eseguito in modalità differibile. Altri operatori possono avere una convenzione diversa. Ad esempio, alcuni operatori della community hanno una classe separata con il suffisso Async nel nome.

Il DAG di esempio seguente utilizza l'operatore DataprocSubmitJobOperator nella modalità differibile:

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

Visualizza log dell'attivatore

L'attivatore genera log disponibili insieme ai log di altri componenti dell'ambiente. Per ulteriori informazioni sulla visualizzazione dei log di ambiente, consulta Visualizzare i log.

Monitora triggerer

Per ulteriori informazioni sul monitoraggio del componente dell'attivatore, consulta Metriche Airflow.

Oltre a monitorare l'attivatore, puoi controllare il numero di attività differite nelle metriche Attività non completate nella dashboard di Monitoring del tuo ambiente.

Passaggi successivi