Wartungsfenster angeben

Managed Airflow (Gen 3) | Managed Airflow (Gen 2) | Managed Airflow (Legacy Gen 1)

Auf dieser Seite wird erläutert, wie Sie Wartungsfenster für Ihre Umgebungen definieren.

Informationen zu Wartungsfenstern

Ein Wartungsfenster ist ein Zeitraum, in dem Managed Airflow Wartungsvorgänge ausführen darf. Sie können beispielsweise dafür sorgen, dass die Ausführung wichtiger Aufgaben nicht unterbrochen wird, indem Sie Wartungsfenster außerhalb der DAG-Zeitpläne angeben.

Mit Wartungsfenstern haben Sie die Kontrolle über die Zeiträume, in denen Wartungen für Ihre Umgebung durchgeführt werden können:

  • Wenn Sie benutzerdefinierte Wartungsfenster für Ihre Umgebung definieren, führt Managed Airflow die Wartung während dieser Zeiträume durch.

  • Wenn Sie keine benutzerdefinierten Wartungsfenster für Ihre Umgebung definieren, führt Managed Airflow die Wartung während der Standardwartungsfenster durch.

Funktionsweise von Wartungsfenstern

Wartungsfenster funktionieren so:

  • Für Wartungsvorgänge müssen mindestens 12 Stunden pro Woche eingeplant werden.

  • Sie können mehrere Zeitfenster verwenden, aber die Dauer jedes Zeitfensters muss mindestens 4 Stunden betragen.

  • Ihre Umgebung bleibt während der Wartungsfenster verfügbar. Einige Komponenten Ihrer Umgebung sind möglicherweise vorübergehend nicht verfügbar, wenn Wartungsvorgänge ausgeführt werden.

  • Die 12 Stunden sind erforderlich, damit Managed Airflow genügend Zeit hat, alle Wartungsvorgänge zu planen und auszuführen. Das bedeutet nicht, dass Wartungsvorgänge 12 Stunden dauern oder jede Woche stattfinden.

Sie können Ihre DAGs weiterhin während der Wartungsfenster ausführen, solange es akzeptabel ist, dass einige Aufgaben unterbrochen und wiederholt werden. Wenn Sie DAGs während der Wartungsfenster ausführen, müssen Sie die Wiederholung von Aufgaben aktivieren. Sie können die Wiederholung von Aufgaben auf Airflow-Konfigurations-, DAG- oder Aufgabenebene konfigurieren.

Aufgaben, deren Ausführung weniger als 55 Minuten dauert, sind in der Regel nicht von Wartungsvorgängen betroffen. Für sie muss jedoch die Wiederholung aktiviert sein, um Neustarts des Planers zu überstehen. Der Planer kann während der Standardvorgänge von Managed Airflow außerhalb der Wartungsfenster neu gestartet werden.

Managed Airflow informiert Airflow-Worker darüber, dass ein Wartungsvorgang bevorsteht. Ein Airflow-Worker schließt bereits gestartete Aufgaben ab und nimmt keine neuen Aufgaben an. Diese neuen Aufgaben werden von Airflow-Workern ausgeführt, die keine Wartungsvorgänge durchlaufen.

Wenn Sie eine hochverfügbare Umgebung verwenden, werden die Airflow-Komponenten Ihrer Umgebung wahrscheinlich zu unterschiedlichen Zeiten während eines Wartungsvorgangs neu gestartet. Das hängt vom Typ des Wartungsvorgangs ab. Insgesamt reduziert die Verwendung einer hochverfügbaren Umgebung die Ausfallzeit Ihrer Umgebung während Wartungsvorgängen.

Wartungsvorgänge haben die folgenden Auswirkungen auf Ihre Umgebung:

  • Die Airflow-UI ist möglicherweise vorübergehend nicht verfügbar.

  • Das Ändern einiger Parameter Ihrer Umgebung oder das Upgrade auf eine neuere Version ist möglicherweise vorübergehend nicht möglich.

  • Direkte SQL-Abfragen an die Airflow-Datenbank können länger als gewöhnlich dauern und müssen möglicherweise wiederholt werden.

  • Einige Airflow-Aufgaben, deren Ausführung länger als 55 Minuten dauert, können unterbrochen werden. Nach Abschluss des Wartungsvorgangs plant Airflow Wiederholungen für diese Aufgaben, sofern nichts anderes konfiguriert ist.

Standardwartungsfenster

Die Standardwartungsfenster in Managed Airflow (Gen 2) sind jeden Freitag, Samstag und Sonntag von 00:00:00 bis 04:00:00 Uhr (GMT).

Wartung außerhalb von Wartungsfenstern

Managed Airflow führt möglicherweise in den folgenden Fällen Wartungen außerhalb der konfigurierten Wartungsfenster durch:

  • In Notfallsituationen, z. B. bei der Behebung einer kritischen Sicherheitslücke, werden einige Wartungsvorgänge möglicherweise außerhalb der regulären Wartungsfenster durchgeführt.

  • Wenn Managed Airflow 30 Tage lang keine regulären Wartungsvorgänge während der Wartungsfenster ausführen konnte, werden kritische Wartungsvorgänge außerhalb der angegebenen Wartungsfenster durchgeführt. Dies ist ein Fallback-Mechanismus für Fälle, in denen Wartungsfenster falsch konfiguriert sind und Managed Airflow wiederholt keine Wartung in einer Umgebung durchführen kann.

Wartungsfenster einsetzen

Wartungsvorgänge können sich auf die Ausführung Ihrer DAGs und Airflow-Aufgaben auswirken. Daher empfehlen wir Ihnen Folgendes:

  1. Definieren Sie Wartungsfenster für Ihre Managed Airflow-Umgebungen.

  2. Planen Sie DAG-Ausführungen für außerhalb der angegebenen Wartungsfenster indem Sie die Parametern start_date und schedule in Ihren DAGs verwenden.

Wartungsfenster für neue Umgebungen angeben

Sie können Wartungsfenster angeben, wenn Sie eine Umgebung erstellen. Weitere Informationen finden Sie unter Umgebungen erstellen.

Wartungsfenster für vorhandene Umgebungen angeben

Console

Wenn Sie Wartungsfenster für eine vorhandene Umgebung definieren oder ändern möchten, aktualisieren Sie die Umgebung:

  1. Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.

    Zur Seite Umgebungen

  2. Wählen Sie Ihre Umgebung aus.

  3. Rufen Sie den Tab Umgebungskonfiguration auf.

  4. Klicken Sie neben dem Eintrag Wartungsfenster auf Bearbeiten.

  5. Klicken Sie im Kästchen Wartungsfenster das Kästchen Benutzerdefinierte Zeit für Wartungsfenster festlegen an.

  6. Legen Sie Startzeit, Zeitzone, Tage und Länge fest, sodass die kombinierte Zeit für den angegebenen Zeitplan beträgt mindestens 12 Stunden in einem 7-tägigen rollierenden Zeitfenster. Zum Beispiel bietet ein Zeitraum von vier Stunden jeden Montag, Mittwoch und Freitag die erforderliche Zeitmenge.

  7. Klicken Sie auf Speichern und warten Sie, bis die Umgebung aktualisiert wurde.

gcloud

Beim Aktualisieren einer Umgebung definieren die folgenden Argumente Wartungsfensterparameter:

  • --maintenance-window-start legt den Beginn eines Wartungsfensters fest.
  • --maintenance-window-end legt das Ende eines Wartungsfensters fest.
  • --maintenance-window-recurrence sets the maintenance window recurrence.
gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --maintenance-window-start 'DATETIME_START' \
    --maintenance-window-end 'DATETIME_END' \
    --maintenance-window-recurrence 'MAINTENANCE_RECURRENCE'

Ersetzen Sie:

  • ENVIRONMENT_NAME durch den Namen der Umgebung.
  • DATETIME_START durch das Startdatum und die Uhrzeit im Eingabeformat Datum/Uhrzeit. Es wird nur die angegebene Uhrzeit verwendet. Das angegebene Datum wird ignoriert.
  • DATETIME_END durch das Enddatum und die Uhrzeit im Eingabeformat Datum/Uhrzeit. Es wird nur die angegebene Uhrzeit verwendet. Das angegebene Datum wird ignoriert. Das angegebene Datum und die angegebene Uhrzeit müssen nach dem Startdatum liegen.
  • MAINTENANCE_RECURRENCE mit einer RFC 5545 RRULE für Wiederholungsversuche von Wartungsfenstern. Managed Airflow unterstützt zwei Formate:

  • Das Format FREQ=DAILY gibt eine tägliche Wiederholung an.

  • Das Format FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA gibt eine Wiederholung an ausgewählten Wochentagen an.

Im folgenden Beispiel wird ein Wartungsfenster von 6 Stunden zwischen 01:00 und 07:00 Uhr (UTC) an Mittwochen, Samstagen und Sonntagen angegeben. Das Datum 1. Januar 2023 wird ignoriert.

gcloud composer environments update example-environment \
  --location us-central1 \
  --maintenance-window-start '2023-01-01T01:00:00Z' \
  --maintenance-window-end '2023-01-01T07:00:00Z' \
  --maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=SU,WE,SA'

API

  1. Erstellen Sie eine environments.patch-API-Anfrage.

  2. In dieser Anfrage:

    1. Geben Sie im Parameter updateMask die Maske config.maintenanceWindow an.

    2. Geben Sie im Anfragetext die Parameter für Wartungsfenster an.

{
  "config": {
    "maintenanceWindow": {
      "startTime": "DATETIME_START",
      "endTime": "DATETIME_END",
      "recurrence": "MAINTENANCE_RECURRENCE"
    }
  }
}

Ersetzen Sie:

  • DATETIME_START durch das Startdatum und die Uhrzeit im Eingabeformat Datum/Uhrzeit. Es wird nur die angegebene Uhrzeit verwendet. Das angegebene Datum wird ignoriert.
  • DATETIME_END durch das Enddatum und die Uhrzeit im Eingabeformat Datum/Uhrzeit. Es wird nur die angegebene Uhrzeit verwendet. Das angegebene Datum wird ignoriert. Das angegebene Datum und die angegebene Uhrzeit müssen nach dem Startdatum liegen.
  • MAINTENANCE_RECURRENCE mit einer RFC 5545 RRULE für Wiederholungsversuche von Wartungsfenstern. Managed Airflow unterstützt zwei Formate:

    • Das Format FREQ=DAILY gibt eine tägliche Wiederholung an.
    • Das Format FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA gibt eine Wiederholung an ausgewählten Wochentagen an.

Im folgenden Beispiel wird ein Wartungsfenster von 6 Stunden zwischen 01:00 und 07:00 Uhr (UTC) an Mittwochen, Samstagen und Sonntagen angegeben. Das Datum 1. Januar 2023 wird ignoriert.

  // PATCH https://composer.googleapis.com/v1/projects/example-project/
  // locations/us-central1/environments/example-environment?updateMask=
  // config.maintenanceWindow

  {
    "config": {
      "maintenanceWindow": {
        "startTime": "2023-01-01T01:00:00Z",
        "endTime": "2023-01-01T07:00:00Z",
        "recurrence": "FREQ=WEEKLY;BYDAY=SU,WE,SA"
      }
    }
  }

Terraform

Der Block maintenance_window gibt die Wartungsfenster für Ihre Umgebung an:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {
    maintenance_window {
      start_time = "DATETIME_START"
      end_time = "DATETIME_END"
      recurrence = "MAINTENANCE_RECURRENCE"
    }
  }
}

Ersetzen Sie:

  • ENVIRONMENT_NAME durch den Namen der Umgebung.
  • LOCATION durch die Region, in der sich die Umgebung befindet.
  • DATETIME_START durch das Startdatum und die Uhrzeit im Eingabeformat Datum/Uhrzeit. Es wird nur die angegebene Uhrzeit verwendet. Das angegebene Datum wird ignoriert.
  • DATETIME_END durch das Enddatum und die Uhrzeit im Eingabeformat Datum/Uhrzeit. Es wird nur die angegebene Uhrzeit verwendet. Das angegebene Datum wird ignoriert. Das angegebene Datum und die angegebene Uhrzeit müssen nach dem Startdatum liegen.
  • MAINTENANCE_RECURRENCE mit einer RFC 5545 RRULE für Wiederholungsversuche von Wartungsfenstern. Managed Airflow unterstützt zwei Formate:

    • Das Format FREQ=DAILY gibt eine tägliche Wiederholung an.
    • Das Format FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA gibt eine Wiederholung an ausgewählten Wochentagen an.

Im folgenden Beispiel wird ein Wartungsfenster von 6 Stunden zwischen 01:00 und 07:00 Uhr (UTC) an Mittwochen, Samstagen und Sonntagen angegeben. Das Datum 1. Januar 2023 wird ignoriert.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {
    maintenance_window {
      start_time = "2023-01-01T01:00:00Z"
      end_time = "2023-01-01T07:00:00Z"
      recurrence = "FREQ=WEEKLY;BYDAY=SU,WE,SA"
    }
  }
}

Nächste Schritte