Fehlerbenachrichtigungen für Replikations- und Failover-Gruppen

Sie können Fehlerbenachrichtigungen für fehlgeschlagene Aktualisierungsvorgänge erhalten, indem Sie eine Benachrichtigungsintegration für eine primäre Replikations- oder Failover-Gruppe festlegen.

Fehlerbenachrichtigungen für fehlgeschlagene Aktualisierungsoperationen

Wenn Sie Fehlerbenachrichtigungen für eine Replikations- oder Failover-Gruppe aktivieren, wird bei einer fehlgeschlagenen Aktualisierungsoperation eine Benachrichtigung über die angegebene E-Mail, den Cloud Messaging Service oder den Webhook gesendet.

Die Benachrichtigungen enthalten die folgenden Informationen:

  • Namen der Quell- und Zielkonten.

  • Quell- und Zielregionen (und ggf. Regionsgruppe).

  • Name der primären und sekundären Replikations- oder Failover-Gruppe.

  • Zeitstempel, als der Fehler auftrat.

  • Fehlercode und Meldung.

  • Quell- und Zielanmeldungs-URL.

Fehlerbenachrichtigungen und Failover

Benachrichtigungen werden auf der primären Replikations- oder Failover-Gruppe aktiviert und über eine Benachrichtigungsintegration gesendet. Die Benachrichtigungsintegration muss nicht auf das Zielkonto repliziert werden. Wenn die Benachrichtigungsintegration repliziert wurde oder eine bestehende Benachrichtigungsintegration mit demselben Namen im neu hochgestuften Quellkonto vorhanden ist, werden im Falle eines Failovers weiterhin Fehlerbenachrichtigungen gesendet.

Wenn die Benachrichtigungsintegration nicht verfügbar ist, werden bei fehlgeschlagenen Aktualisierungsoperationen keine Fehlerbenachrichtigungen gesendet.

Voraussetzung: Benachrichtigungsintegration für Fehlerbenachrichtigungen

Zum Senden von Fehlerbenachrichtigungen ist eine Benachrichtigungsintegration erforderlich. Die Benachrichtigungsintegration muss einer der folgenden Typen sein, um E-Mail-Benachrichtigungen über fehlgeschlagene Aktualisierungsoperationen zu versenden:

TYPE = EMAIL:

Die Integration der E-Mail-Benachrichtigung muss mindestens eine verifizierte E-Mail-Adresse in der DEFAULT_RECIPIENTS-Liste haben.

Weitere Informationen zum Erstellen einer E-Mail-Benachrichtigung mit einer Standard-Empfängerliste finden Sie unter Geben Sie eine Standard-Empfängerliste und eine Standard-Betreffzeile an.

TYPE = QUEUE:

Sie können eine Benachrichtigungsintegration verwenden, die so konfiguriert ist, dass sie Benachrichtigungen an einen Nachrichtendienst für einen der von Snowflake unterstützten Cloud-Anbieter sendet. Sie müssen den Parameter für die Benachrichtigungsintegration TYPE auf QUEUE und den Parameter DIRECTION auf OUTBOUND setzen.

Weitere Informationen dazu finden Sie unter Senden von Benachrichtigungen an Warteschlangen von Cloud-Anbietern (Amazon SNS, Google Cloud PubSub und Azure Event Grid).

TYPE = WEBHOOK:

Sie können eine Benachrichtigungsintegration verwenden, die so konfiguriert ist, dass sie Benachrichtigungen an einen Webhook für eines der von Snowflake unterstützten externen Systeme sendet. Setzen Sie den TYPE-Parameter für die Benachrichtigungsintegration auf WEBHOOK. Möglicherweise müssen Sie auch ein Geheimnis erstellen (falls das externe System dies verlangt).

Weitere Informationen dazu finden Sie unter Versenden von Webhook-Benachrichtigungen.

Erstellen Sie eine Benachrichtigungsintegration (TYPE = EMAIL)

Um eine E-Mail-Benachrichtigungsintegration mit dem Namen my_notification_int und der E-Mail-Adresse first.last@example.com zu erstellen, gehen Sie wie folgt vor:

  1. Stellen Sie sicher, dass die E-Mail-Adresse first.last@example.com verifiziert wurde.

  2. Erstellen Sie die Benachrichtigungsintegration, indem Sie den Befehl CREATE NOTIFICATION INTEGRATION ausführen. Beispiel:

    CREATE NOTIFICATION INTEGRATION my_notification_int
      TYPE = EMAIL
      ENABLED = TRUE
      DEFAULT_RECIPIENTS = ('first.last@example.com');
    
    Copy

Erstellen Sie eine Benachrichtigungsintegration (TYPE = QUEUE)

Um eine Benachrichtigungsintegration für das Pushen von Benachrichtigungen an eine Warteschlange eines Cloud-Anbieters zu erstellen, folgen Sie den Anweisungen für die derzeit unterstützten Warteschlangen der Cloud-Anbieter:

Erstellen Sie eine Benachrichtigungsintegration (TYPE = WEBHOOK)

Um eine Benachrichtigungsintegration für das Pushen von Benachrichtigungen an einen externen System-Webhook zu erstellen, folgen Sie den Anweisungen für die derzeit unterstützten externen System-Webhooks:

Wichtig

Die Webhook-Benachrichtigungsintegration muss den Parameter WEBHOOK_BODY_TEMPLATE mit SNOWFLAKE_WEBHOOK_MESSAGE als Platzhalterwert angeben. Wenn die Benachrichtigung gesendet wird, wird der Platzhalter durch den Inhalt der Replikationsfehlermeldung ersetzt, wie unter Fehlerbenachrichtigungen bei fehlgeschlagenen Aktualisierungsoperationen beschrieben.

Das Format für die Angabe von WEBHOOK_BODY_TEMPLATE hängt von dem externen System ab:

  • Für Slack oder Microsoft Teams verwendet WEBHOOK_BODY_TEMPLATE das folgende einwertige JSON-Objektformat als Wert:

    WEBHOOK_BODY_TEMPLATE='{"text": "SNOWFLAKE_WEBHOOK_MESSAGE"}'
    
    Copy
  • Für PagerDuty verwendet WEBHOOK_BODY_TEMPLATE ein mehrwertiges JSON-Objekt als Wert, allerdings mit den folgenden Unterschieden zu einer standardmäßigen PagerDuty-Benachrichtigungsintegration:

    • Innerhalb des payload-Schlüssels wird der summary-Schlüssel nicht verwendet, um SNOWFLAKE_WEBHOOK_MESSAGE anzugeben.

    • Stattdessen wird ein zusätzlicher custom_details-Schlüssel verwendet, um SNOWFLAKE_WEBHOOK_MESSAGE anzugeben.

    Beispiel:

    WEBHOOK_BODY_TEMPLATE='{
      "routing_key": "SNOWFLAKE_WEBHOOK_SECRET",
      "event_action": "trigger",
      "payload": {
        "summary": "Snowflake replication failure",
        "source": "Snowflake monitoring",
        "severity": "INFO",
        "custom_details": {
          "message": "SNOWFLAKE_WEBHOOK_MESSAGE"
        }
      }
    }'
    
    Copy

Hinzufügen einer Fehlerbenachrichtigung für eine Replikations- oder Failover-Gruppe

Um Fehlerbenachrichtigungen für eine bestehende Replikations-/Failover-Gruppe zu aktivieren, verwenden Sie den Befehl ALTER REPLICATION GROUP oder ALTER FAILOVER GROUP, um den Parameter ERROR_INTEGRATION zu setzen.

Fügen Sie zum Beispiel die Benachrichtigungsintegration my_notification_int zur Failover-Gruppe my_fg hinzu. Die folgende Anweisung muss von dem Quell-Konto ausgeführt werden:

ALTER FAILOVER GROUP my_fg SET
  ERROR_INTEGRATION = my_notification_int;
Copy

Um eine Replikations-/Failover-Gruppe zu erstellen und Fehlerbenachrichtigungen zu aktivieren, verwenden Sie den Befehl CREATE REPLICATION GROUP oder CREATE FAILOVER GROUP und setzen den Parameter ERROR_INTEGRATION.

Um beispielsweise die Failover-Gruppe my_fg zu erstellen, um die Replikation und das Failover der Datenbanken db1, db2 auf die Konten myaccount2 und myaccount2 in der Organisation myorg zu ermöglichen, führen Sie die folgende Anweisung im Quell-Konto aus, um eine primäre Failover-Gruppe zu erstellen:

CREATE FAILOVER GROUP my_fg
  OBJECT_TYPES = DATABASES
  ALLOWED_DATABASES = db1, db2
  ALLOWED_ACCOUNTS = myorg.myaccount2, myorg.myaccount3
  REPLICATION_SCHEDULE = '10 MINUTE'
  ERROR_INTEGRATION = my_notification_int;
Copy

Bemerkung

Wenn der Replikationszeitplan für eine Replikations- oder Failover-Gruppe auf eine hohe Frequenz eingestellt ist, z. B. eine Minute, werden bei jeder geplanten Aktualisierungsoperation Fehlerbenachrichtigungen für dasselbe Problem gesendet.