Jobstatus mit Pub/Sub-Benachrichtigungen und BigQuery überwachen

In diesem Dokument wird beschrieben, wie Sie Änderungen des Job- und Aufgabenstatus mithilfe von Pub/Sub-Benachrichtigungen überwachen können. Sie können die Benachrichtigungen für verschiedene Anwendungsfälle verwenden. In diesem Dokument wird beispielsweise beschrieben, wie Sie die Benachrichtigungen in eine BigQuery-Tabelle streamen, um die Daten zu analysieren. Weitere Informationen zu den Anwendungsfällen für Pub/Sub-Benachrichtigungen finden Sie in der Pub/Sub-Dokumentation unter Abo-Typ auswählen.

Wenn Sie alle Informationen zu einem Job nach BigQuery exportieren möchten, lesen Sie stattdessen den Abschnitt Jobinformationen exportieren.

Hinweis

  1. Wenn Sie Batch noch nicht verwendet haben, lesen Sie den Artikel Erste Schritte mit Batch und aktivieren Sie Batch, indem Sie die Voraussetzungen für Projekte und Nutzer erfüllen.
  2. Wenn Sie Pub/Sub-Benachrichtigungen für Ihre Batch-Jobs einrichten möchten, gehen Sie so vor:
    1. Aktivieren Sie die Pub/Sub API, falls sie noch nicht aktiviert ist.

      Rollen, die zum Aktivieren von APIs erforderlich sind

      Zum Aktivieren von APIs benötigen Sie die Berechtigung serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen

      API aktivieren

    2. Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Pub/Sub Editor (roles/pubsub.editor) für ein Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Konfigurieren eines Pub/Sub-Themas und -Abos benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

      Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

  3. Zusätzliche Anforderungen variieren je nach Art des Abos, das Sie konfigurieren möchten. Wenn Sie beispielsweise Benachrichtigungen in eine BigQuery-Tabelle streamen und analysieren möchten, müssen Sie Folgendes tun:
    1. Aktivieren Sie die BigQuery API, falls sie noch nicht aktiviert ist.

      Rollen, die zum Aktivieren von APIs erforderlich sind

      Zum Aktivieren von APIs benötigen Sie die Berechtigung serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen

      API aktivieren

    2. Damit das Pub/Sub-Dienstkonto die erforderlichen Berechtigungen zum Streamen von Pub/Sub-Benachrichtigungen an BigQuery hat, bitten Sie Ihren Administrator, dem Pub/Sub-Dienstkonto die IAM-Rolle BigQuery-Datenbearbeiter (roles/bigquery.dataEditor) für das Projekt des Pub/Sub-Themas zuzuweisen.

      Weitere Informationen zum Zuweisen dieser Rolle finden Sie unter Pub/Sub-Dienstkonto BigQuery-Rollen zuweisen.

    3. Achten Sie darauf, dass alle Nutzer, die Benachrichtigungen in BigQuery analysieren sollen, die erforderlichen Berechtigungen haben.

      Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Abfragen von Pub/Sub-Benachrichtigungen in BigQuery benötigen:

Pub/Sub-Benachrichtigungen für Batch einrichten

Batch unterstützt Pub/Sub-Benachrichtigungen für Änderungen am Job- und Aufgabenstatus, die Sie für Benachrichtigungen, Beobachtbarkeit oder Analysen verwenden können.

Wenn Sie Pub/Sub-Benachrichtigungen für einen oder mehrere Batch-Jobs einrichten möchten, führen Sie die Schritte in den folgenden Abschnitten aus:

  1. Pub/Sub-Thema für Ihre Batchjobs erstellen oder identifizieren
  2. Erstellen Sie mindestens ein Abo für Ihr Thema, um Benachrichtigungen zu erhalten und zu verwenden.
  3. Jobs so konfigurieren, dass Benachrichtigungen an Ihr Thema gesendet werden

Nachdem Sie Pub/Sub-Benachrichtigungen für Batch eingerichtet haben, können Sie optional für jeden Job festlegen, dass bestimmte Benachrichtigungen gesendet werden. Sie können Benachrichtigungen erhalten, wenn sich der Status von Jobs oder Aufgaben ändert, oder die Benachrichtigungen nach bestimmten Job- oder Aufgabenstatus filtern. Pub/Sub sendet keine Benachrichtigungen für den ersten Status, in den ein Job oder eine Aufgabe eintritt. Pub/Sub sendet nur Benachrichtigungen, wenn ein Job von einem Status in einen anderen wechselt.

Weitere Informationen zu den Attributen, die Sie für Pub/Sub-Benachrichtigungen konfigurieren können, finden Sie unter Job erstellen und ausführen, der Pub/Sub-Statusbenachrichtigungen sendet.

Pub/Sub-Thema für Batch erstellen oder identifizieren

Erstellen Sie ein neues Pub/Sub-Thema oder identifizieren Sie ein vorhandenes Pub/Sub-Thema, das Sie für Batch-Benachrichtigungen verwenden möchten.

Wie später in diesem Dokument erläutert, können Jobs erst dann Benachrichtigungen an dieses Pub/Sub-Thema senden, wenn Ihr Administrator zusätzliche Berechtigungen erteilt, die dies zulassen.

Abo erstellen, um Benachrichtigungen zu erhalten und zu verwenden

Wenn Sie Nachrichten empfangen und verwenden möchten, die in einem Pub/Sub-Thema veröffentlicht wurden, müssen Sie mindestens ein Abo für dieses Thema erstellen.

Sie können beispielsweise Ihr Thema so konfigurieren, dass seine Benachrichtigungen in BigQuery gestreamt werden. Wenn Sie dann Jobs ausführen, mit denen Benachrichtigungen veröffentlicht werden, können Sie die Benachrichtigungen in einer BigQuery-Tabelle empfangen und analysieren. Weitere Informationen finden Sie in diesem Dokument unter Beispiel: Pub/Sub-Benachrichtigungen in BigQuery empfangen und verwenden.

Weitere Informationen zu Abos und anderen Abo-Optionen finden Sie in der Pub/Sub-Dokumentation unter Abos – Übersicht.

Jobs so konfigurieren, dass Benachrichtigungen an Ihr Thema gesendet werden

Wenn Sie Jobs konfigurieren möchten, die Pub/Sub-Benachrichtigungen an Ihr Thema senden, folgen Sie der Anleitung auf der Seite Job erstellen und ausführen, der Pub/Sub-Statusbenachrichtigungen sendet. Gehen Sie dazu so vor:

  1. Falls noch nicht geschehen, bitten Sie Ihren Administrator, alle Berechtigungen zu gewähren, die für Jobs erforderlich sind, um Benachrichtigungen an Ihr Pub/Sub-Thema zu senden. Diese Berechtigungen sind auf der Seite im Abschnitt Erforderliche Rollen aufgeführt.
  2. Erstellen und führen Sie einen Job aus, der Pub/Sub-Benachrichtigungen aktiviert, indem Sie das Feld notifications des Jobs definieren.

Beispiel: Pub/Sub-Benachrichtigungen in BigQuery empfangen und verwenden

In den folgenden Abschnitten wird ein Beispiel für einen Anwendungsfall für den Empfang und die Verwendung von Pub/Sub-Benachrichtigungen in BigQuery erläutert. Wenn Sie ein Abo konfigurieren, mit dem die Pub/Sub-Benachrichtigungen Ihres Themas in eine BigQuery-Tabelle gestreamt werden, können Sie den Verlauf der Job- und Aufgabenstatusänderungen beibehalten und diese Änderungen abfragen.

Abo konfigurieren, mit dem Benachrichtigungen in BigQuery gestreamt werden

Konfigurieren Sie ein Pub/Sub-Abo, das Benachrichtigungen aus einem Thema in eine BigQuery-Tabelle streamt. Gehen Sie dazu so vor:

  1. Falls noch nicht geschehen, erstellen oder identifizieren Sie ein Pub/Sub-Thema für Batch.

  2. Falls Sie noch keines haben, erstellen Sie ein BigQuery-Dataset.

  3. Erstellen Sie eine BigQuery-Tabelle mit der folgenden Schemadefinition:

    [
      {
        "name": "data",
        "type": "STRING"
      },
      {
        "name": "subscription_name",
        "type": "STRING"
      },
      {
        "name": "message_id",
        "type": "STRING"
      },
      {
        "name": "attributes",
        "type": "JSON"
      },
      {
        "name": "publish_time",
        "type": "TIMESTAMP",
        "mode": "NULLABLE"
      }
    ]
    
  4. Pub/Sub-Abo erstellen, das in BigQuery streamt und die folgenden Optionen angeben:

    • Thema: Wählen Sie das Pub/Sub-Thema für Batch aus.
    • Projekt: Wählen Sie das Projekt aus, das Ihre BigQuery-Tabelle enthält.
    • Dataset: Wählen Sie das Dataset aus, das Ihre BigQuery-Tabelle enthält.
    • Tabelle: Wählen Sie die Tabelle aus, die Sie im vorherigen Schritt erstellt haben.
    • Wählen Sie Schema des Themas verwenden aus.
    • Wählen Sie Metadaten schreiben aus.

Immer wenn eine Pub/Sub-Benachrichtigung an dieses Thema gesendet wird, streamt Pub/Sub diese Benachrichtigung in die BigQuery-Tabelle. Nachdem Sie Jobs zum Senden von Pub/Sub-Benachrichtigungen konfiguriert haben, können Sie Benachrichtigungen in BigQuery analysieren.

Benachrichtigungen in BigQuery analysieren

Sie können Benachrichtigungen in BigQuery analysieren, nachdem Sie ein Abo für eine BigQuery-Tabelle für Ihr Thema konfiguriert und Jobs ausgeführt haben, die Benachrichtigungen an Ihr Thema senden. Wenn Sie die Benachrichtigungen in BigQuery analysieren möchten, führen Sie eine Abfrage für die Spalte attributes der BigQuery-Tabelle aus. Die Attribute, die Sie abfragen können, hängen davon ab, ob Sie Benachrichtigungen für Aufgaben oder Jobs konfiguriert haben.

Sie können die folgenden Attribute von Aufgabenbenachrichtigungen abfragen:

  • JobUID
  • NewTaskState
  • Region
  • TaskName
  • TaskUID
  • Type

Sie können die folgenden Attribute von Jobbenachrichtigungen abfragen:

  • JobUID
  • JobName
  • NewJobState
  • Region
  • Type

Die folgende Abfrage zeigt beispielsweise die JobUID, die mit jeder Benachrichtigung verknüpft ist:

select attributes.JobUID from `example-table`

Nächste Schritte