Aussetzbare Operatoren in DAGs verwenden

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Auf dieser Seite wird beschrieben, wie Sie die Unterstützung für verzögerbare Operatoren in Ihrer Umgebung aktivieren und verzögerbare Google Cloud-Operatoren in Ihren DAGs verwenden.

Verschiebbare Operatoren in Cloud Composer

Wenn Sie mindestens eine Triggerinstanz (oder mindestens zwei in hochverfügbaren Umgebungen) haben, können Sie zurückstellbare Operatoren und Trigger in Ihren DAGs verwenden.

Bei verschiebbaren Operatoren unterteilt Airflow die Aufgabenausführung in die folgenden Phasen:

  1. Starten Sie den Vorgang. In dieser Phase belegt die Aufgabe einen Airflow-Worker-Slot. Die Aufgabe führt einen Vorgang aus, der den Job an einen anderen Dienst delegiert.

    Zum Beispiel kann das Ausführen eines BigQuery-Jobs bis zu mehreren Stunden. Nach dem Erstellen des Jobs übergibt die Arbeits-ID (BigQuery-Job-ID) an eine Airflow-Trigger.

  2. Der Trigger überwacht den Job bis zum Abschluss. In dieser Phase Worker-Slot nicht belegt ist. Der Airflow-Trigger hat eine asynchrone Architektur und kann Hunderte solcher Jobs verarbeiten. Wenn der Trigger erkennt, dass der Job abgeschlossen ist, sendet er ein Ereignis, das die letzte Phase auslöst.

  3. In der letzten Phase führt ein Airflow-Worker einen Callback aus. Dieser Callback, für die Aufgabe als erfolgreich markieren, einen anderen Vorgang ausführen Legen Sie fest, dass der Job noch einmal vom Triggerer überwacht werden soll.

Der Auslöser ist zustandslos und daher robust gegenüber Unterbrechungen oder Neustarts. Daher sind langlaufende Jobs robust gegenüber Pod-Neustarts, es sei denn, der Neustart erfolgt während der letzten Phase, die voraussichtlich kurz sein wird.

Hinweise

  • Verschiebbare Operatoren und Sensoren sind in Cloud Composer 2-Umgebungen verfügbar. Dazu sind folgende Voraussetzungen erforderlich:
    • Cloud Composer 2.0.31 und höhere Versionen
    • Airflow 2.2.5, 2.3.3 und höher

Unterstützung für verzögerbare Operatoren aktivieren

Eine Umgebungskomponente namens Airflow-Trigger überwacht asynchron alle ausgesetzten Aufgaben in Ihrer Umgebung. Nachdem ein verzögerter Vorgang einer solchen Aufgabe abgeschlossen ist, übergibt der Trigger die Aufgabe an einen Airflow-Worker.

Sie benötigen mindestens eine Triggerer-Instanz in Ihrer Umgebung (oder mindestens zwei in Umgebungen mit extrem hoher Ausfallsicherheit), um den zurückstellbaren Modus in Ihren DAGs zu verwenden. Sie können die Trigger beim Erstellen einer Umgebung konfigurieren oder die Anzahl der Trigger und Leistungsparameter für eine vorhandene Umgebung anpassen.

Google Cloud-Operatoren, die den zurückgestellten Modus unterstützen

Nur einige Airflow-Operatoren wurden erweitert, um das verschiebbare Modell zu unterstützen. In der folgenden Liste finden Sie eine Referenz für die Operatoren im Paket airflow.providers.google.operators.cloud, die den verzögerbaren Modus unterstützen. Die Spalte mit der erforderlichen Mindestversion der airflow.providers.google.operators.cloud-Paketversion entspricht der frühesten Paketversion, bei der der jeweilige Betreiber den verzögerbaren Modus unterstützt.

Cloud Composer-Operatoren

Name des BetreibersErforderliche apache-airflow-providers-google-Version
CloudComposerCreateEnvironmentOperator 6.4.0
CloudComposerDeleteEnvironmentOperator 6.4.0
CloudComposerUpdateEnvironmentOperator 6.4.0

BigQuery-Operatoren

Name des BetreibersErforderliche apache-airflow-providers-google-Version
BigQueryCheckOperator 8.4.0
BigQueryValueCheckOperator 8.4.0
BigQueryIntervalCheckOperator 8.4.0
BigQueryGetDataOperator 8.4.0
BigQueryInsertJobOperator 8.4.0

BigQuery Data Transfer Service-Betreiber

Name des BetreibersErforderliche apache-airflow-providers-google-Version
BigQueryDataTransferServiceStartTransferRunsOperator 8.9.0

Cloud Build-Operatoren

Name des BetreibersErforderliche apache-airflow-providers-google-Version
CloudBuildCreateBuildOperator 8.7.0

Cloud SQL-Operatoren

Name des BetreibersErforderliche apache-airflow-providers-google-Version
CloudSQLExportInstanceOperator 10.3.0

Dataflow-Operatoren

Name des BetreibersErforderliche apache-airflow-providers-google-Version
DataflowTemplatedJobStartOperator 8.9.0
DataflowStartFlexTemplateOperator 8.9.0

Cloud Data Fusion-Operatoren

Name des BetreibersErforderliche apache-airflow-providers-google-Version
CloudDataFusionStartPipelineOperator 8.9.0

Google Kubernetes Engine-Operatoren

Name des BetreibersErforderliche apache-airflow-providers-google-Version
GKEDeleteClusterOperator 9.0.0
GKECreateClusterOperator 9.0.0

AI Platform-Betreiber

Name des BetreibersErforderliche apache-airflow-providers-google-Version
MLEngineStartTrainingJobOperator 8.9.0

Aussetzbare Operatoren in DAGs verwenden

Eine gemeinsame Konvention für alle Google Cloud-Operatoren besteht darin, die Funktion zurückgestellter Modus mit dem booleschen Parameter deferrable. Wenn ein Google Cloud- nicht über diesen Parameter verfügt, kann er nicht im deferrable- . Bei anderen Betreibern kann eine andere Konvention gelten. Einige Betreiber von Community-Netzwerken haben beispielsweise eine separate Klasse mit dem Suffix Async im Namen.

Im folgenden Beispiel-DAG wird der Operator DataprocSubmitJobOperator im verzögerbaren Modus verwendet:

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

Trigger-Logs ansehen

Der Triggerer generiert Logs, die zusammen mit Logs anderer -Umgebungskomponenten. Weitere Informationen zum Anzeigen Ihrer Umgebung Logs ansehen, finden Sie unter Logs ansehen.

Monitor-Trigger

Weitere Informationen zum Überwachen der Triggerkomponente finden Sie unter Airflow-Messwerte.

Sie können nicht nur den Auslöser überwachen, sondern auch die Anzahl der verschobenen Aufgaben im Messwert Unerledigte Aufgabe im Monitoring-Dashboard Ihrer Umgebung prüfen.

Nächste Schritte