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 disponi di almeno un'istanza di triggerer (o almeno due in ambienti altamente resilienti), puoi utilizzare Operatori e trigger differibili nei tuoi DAG.

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

  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 altro servizio.

    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, uno spazio di lavoro non è occupato. L'attivatore di Airflow ha un'architettura asincrona 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 avvenga nell'ultima fase, che dovrebbe essere breve.

Prima di iniziare

  • Gli operatori e i sensori differibili sono disponibili negli ambienti 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

Abilita il supporto per gli operatori differibili

Un componente di ambiente chiamato attivatore Airflow monitora in modo asincrono tutte le attività differite nell'ambiente. Una volta completata un'operazione differita da un'attività di questo tipo, l'attivatore passa l'attività 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 modificare il numero di attivatori e i parametri delle prestazioni per un ambiente esistente.

Operatori 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 del pacchetto airflow.providers.google.operators.cloud che supportano la modalità differibile. La colonna con la versione minima del pacchetto airflow.providers.google.operators.cloud richiesta 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 di Google Cloud non ha questo parametro, non può essere eseguito in modalità differibile. Altri operatori possono avere convenzione diversa. Ad esempio, alcuni operatori di community hanno una classe separata con il suffisso Async nel nome.

Il seguente esempio di DAG utilizza l'operatore DataprocSubmitJobOperator in 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 che sono disponibili insieme a quelli di altri componenti dell'ambiente. Per ulteriori informazioni sulla visualizzazione dei log di ambiente, consulta Visualizzare i log.

Monitora l'attivatore

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