Utilizzare gli operatori differibili

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Questa pagina spiega come attivare il supporto degli operatori differibili nel tuo ambiente e utilizzare gli operatori Google Cloud differibili nei tuoi DAG.

Informazioni sugli operatori differibili in Cloud Composer

Se hai almeno un'istanza di attivatore (o almeno due in ambienti altamente resilienti), puoi utilizzare attivatori e operatori 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 un worker Airflow slot machine. L'attività esegue un'operazione che delega il job a una un servizio diverso.

    Ad esempio, l'esecuzione di un job BigQuery può richiedere 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. L'attivatore monitora il job fino al completamento. In questa fase, uno slot di worker non è occupato. L'attivatore Airflow ha un'architettura asincrona ed è in grado di gestire centinaia di questi job. Quando l'attivatore rileva che il job è stato completato, invia un evento che attiva l'ultima fase.

  3. Nell'ultima fase, un worker Airflow esegue un callback. Ad esempio, questo callback può contrassegnare l'attività come completata o eseguire un'altra operazione e impostare nuovamente il job da monitorare dall'attivatore.

L'attivatore è senza stato e quindi è resiliente alle interruzioni o ai riavvii. Per questo motivo, i job a lunga esecuzione sono resilienti ai riavvii dei pod. a meno che il riavvio non avvenga durante l'ultima fase, che dovrebbe essere breve.

Prima di iniziare

  • Operatori e sensori posticipabili sono disponibili in Cloud Composer 2 ambienti e richiede quanto segue:
    • Cloud Composer 2.0.31 e versioni successive
    • Airflow 2.2.5, 2.3.3 e versioni successive

Attivare il supporto per gli operatori differibili

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

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

Operatori Google Cloud che supportano la modalità differibile

Solo alcuni operatori Airflow sono stati estesi per supportare il modello derogabile. Il seguente elenco è un riferimento per gli operatori nel package 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 versione del pacchetto precedente 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 di apache-airflow-providers-google richiesta
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 di apache-airflow-providers-google richiesta
BigQueryDataTransferServiceStartTransferRunsOperator 8.9.0

Operatori di Cloud Build

Nome dell'operatoreVersione di apache-airflow-providers-google richiesta
CloudBuildCreateBuildOperator 8.7.0

Operatori Cloud SQL

Nome operatoreVersione di apache-airflow-providers-google richiesta
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 dell'operatoreVersione apache-airflow-providers-google obbligatoria
CloudDataFusionStartPipelineOperator 8.9.0

Operatori di Google Kubernetes Engine

Nome dell'operatoreVersione di apache-airflow-providers-google richiesta
GKEDeleteClusterOperator 9.0.0
GKECreateClusterOperator 9.0.0

Operatori di AI Platform

Nome dell'operatoreVersione di apache-airflow-providers-google richiesta
MLEngineStartTrainingJobOperator 8.9.0

Usa operatori decriptabili nei DAG

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

Il seguente DAG di esempio utilizza l'operatore DataprocSubmitJobOperator in modalità posticipabile:

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 i log dell'attivatore

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

Monitora triggerer

Per ulteriori informazioni sul monitoraggio del componente triggerer, consulta Metriche Airflow.

Oltre a monitorare l'attivatore, puoi controllare il numero di attività posticipate nelle metriche Attività incompiuta nella dashboard di monitoraggio del tuo ambiente.

Passaggi successivi