CREATE NOTIFICATION INTEGRATION

Erstellt eine neue Benachrichtigungsintegration im Konto oder ersetzt eine vorhandene Integration. Eine Benachrichtigungsintegration ist ein Snowflake-Objekt, das als Schnittstelle zwischen Snowflake und Messagingdiensten (Cloud-Meldungswarteschlangendienste, E-Mail-Dienste usw.) von Drittanbietern dient.

Siehe auch:

ALTER NOTIFICATION INTEGRATION, DROP INTEGRATION, SHOW INTEGRATIONS

Features

Die Benachrichtigungsintegration ist integraler Bestandteil der folgenden Features pro Cloudspeicherdienst und E-Mail-Dienst:

Amazon Web Services (AWS)

Push-Benachrichtigungen:

E-Mail-Benachrichtigungen:

Google Cloud (GCP)

Automatisches Laden von Daten oder Aktualisieren von Metadaten:

Push-Benachrichtigungen:

Microsoft Azure (Azure)

Automatisches Laden von Daten oder Aktualisieren von Metadaten:

Push-Benachrichtigungen:

Syntax

Automatisches Laden von Daten oder Aktualisieren von Metadaten

CREATE [ OR REPLACE ] NOTIFICATION INTEGRATION [IF NOT EXISTS]
  <name>
  ENABLED = { TRUE | FALSE }
  TYPE = QUEUE
  cloudProviderParamsAuto
  [ COMMENT = '<string_literal>' ]
Copy

Wobei:

cloudProviderParamsAuto (for Google Cloud Storage) ::=
  NOTIFICATION_PROVIDER = GCP_PUBSUB
  GCP_PUBSUB_SUBSCRIPTION_NAME = '<subscription_id>'
Copy
cloudProviderParamsAuto (for Microsoft Azure Storage) ::=
  NOTIFICATION_PROVIDER = AZURE_STORAGE_QUEUE
  AZURE_STORAGE_QUEUE_PRIMARY_URI = '<queue_URL>'
  AZURE_TENANT_ID = '<directory_ID>';
Copy

Push-Benachrichtigungen

CREATE [ OR REPLACE ] NOTIFICATION INTEGRATION [IF NOT EXISTS]
  <name>
  ENABLED = { TRUE | FALSE }
  DIRECTION = OUTBOUND
  TYPE = QUEUE
  cloudProviderParamsPush
  [ COMMENT = '<string_literal>' ]
Copy

Wobei:

cloudProviderParamsPush (for Amazon SNS) ::=

  NOTIFICATION_PROVIDER = AWS_SNS
  AWS_SNS_TOPIC_ARN = '<topic_arn>'
  AWS_SNS_ROLE_ARN = '<iam_role_arn>'
Copy
cloudProviderParamsPush (for Google Pub/Sub) ::=
  NOTIFICATION_PROVIDER = GCP_PUBSUB
  GCP_PUBSUB_TOPIC_NAME = '<topic_id>'
Copy
cloudProviderParamsPush (for Microsoft Azure Event Grid) ::=
  NOTIFICATION_PROVIDER = AZURE_EVENT_GRID
  AZURE_EVENT_GRID_TOPIC_ENDPOINT = '<event_grid_topic_endpoint>'
  AZURE_TENANT_ID = '<directory_ID>';
Copy

E-Mail-Benachrichtigungen

CREATE [ OR REPLACE ] NOTIFICATION INTEGRATION [IF NOT EXISTS]
  <name>
  TYPE = EMAIL
  ENABLED = { TRUE | FALSE }
  [ ALLOWED_RECIPIENTS = ( '<email_address_1>' [ , ... '<email_address_N>' ] ) ]
  [ COMMENT = '<string_literal>' ]
Copy

Erforderliche Parameter

name

Zeichenfolge, die den Bezeichner (d. h. den Namen) für die Integration angibt. Muss in Ihrem Konto eindeutig sein.

Darüber hinaus muss der Bezeichner mit einem Buchstaben beginnen und darf keine Leer- oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen gesetzt (z. B. "My object"). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.

Weitere Details dazu finden Sie unter Anforderungen an Bezeichner.

ENABLED = { TRUE | FALSE }

Gibt an, ob die Integrationsoperation gestartet oder angehalten werden soll.

  • TRUE aktiviert die Integration.

  • FALSE deaktiviert die Integration für Wartungszwecke. Eine Integration zwischen Snowflake und einem Drittanbieterdienst funktioniert nicht.

TYPE = QUEUE | EMAIL

Geben Sie den Typ der Integration an:

  • QUEUE: Erstellt eine Schnittstelle zwischen Snowflake und dem Cloud-Nachrichtenwarteschlangendienst eines Drittanbieters.

  • EMAIL: Erstellt eine Schnittstelle zwischen Snowflake und dem E-Mail-Dienst eines Drittanbieters.

    Sie können maximal 10 E-Mail-Benachrichtigungsintegrationen pro Konto definieren.

Optionale Parameter

DIRECTION = OUTBOUND

(bei Push-Benachrichtigungen mit TYPE = QUEUE) Richtung für das Cloudmessaging in Bezug auf Snowflake. Nur erforderlich bei der Konfiguration von Push-Benachrichtigungen an einen Cloudmessagingdienst.

OUTBOUND: Gibt an, dass Snowflake die an den Cloudmessagingdienst gesendete Benachrichtigung erstellt.

COMMENT = 'string_literal'

Zeichenfolge (Literal), die einen Kommentar zur Integration enthält.

Standard: Kein Wert

Cloudanbieterparameter für automatisches Laden von Daten oder Aktualisieren von Metadaten (cloudProviderParamsAuto)

Google Cloud Storage

NOTIFICATION_PROVIDER = GCP_PUBSUB

Gibt Google Cloud Pub/Sub als Cloud-Meldungswarteschlangendienst eines Drittanbieters an.

GCP_PUBSUB_SUBSCRIPTION_NAME = '<subscription_id>'

Pub/Sub-Themenabonnement-ID, mit der Snowflake auf Ereignismeldungen zugreifen kann.

Bemerkung

Eine einzelne Benachrichtigungsintegration unterstützt genau ein Google Cloud Pub/Sub-Abonnement. Wenn mehrere Benachrichtigungsintegrationen auf dasselbe Pub/Sub-Abonnement verweisen, kann dies zu fehlenden Daten in den Zieltabellen führen, da Ereignisbenachrichtigungen zwischen Benachrichtigungsintegrationen aufgeteilt werden.

Microsoft Azure Storage

NOTIFICATION_PROVIDER = AZURE_EVENT_GRID

Gibt Microsoft Azure Event Grid als Cloud-Nachrichtenwarteschlangendienst eines Drittanbieters an.

AZURE_STORAGE_QUEUE_PRIMARY_URI = 'https://storage_queue_account.queue.core.windows.net/storage_queue_name'

Gibt die Warteschlangen-ID der Azure Queue Storage-Warteschlange an, die für Event Grid-Benachrichtigungen erstellt wurde.

Bemerkung

Eine einzelne Benachrichtigungsintegration unterstützt genau eine Azure Storage-Warteschlange. Wenn mehrere Benachrichtigungsintegrationen auf dieselbe Speicherwarteschlange verweisen, kann dies zu fehlenden Daten in den Zieltabellen führen, da Ereignisbenachrichtigungen zwischen Benachrichtigungsintegrationen aufgeteilt werden.

AZURE_TENANT_ID = 'ad_directory_id'

Gibt die ID des Azure Active Directory-Mandanten an, der für die Identitätsverwaltung verwendet wird. Diese ID wird benötigt, um die Zustimmungs-URL zu generieren, die Snowflake Zugriff auf das Event Grid-Abonnement gewährt.

Cloudanbieterparameter für Push-Benachrichtigungen (cloudProviderParamsPush)

Amazon Simple Notification Service

NOTIFICATION_PROVIDER = AWS_SNS

Gibt Amazon Simple Notification Service (SNS) als Cloud-Meldungswarteschlangendienst eines Drittanbieters an.

AWS_SNS_TOPIC_ARN = '<topic_arn>'

Amazon Resource Name (ARN) des Amazon SNS (SNS)-Themas, an das Benachrichtigungen gesendet werden.

AWS_SNS_ROLE_ARN = '<iam_role_arn>'

ARN der IAM-Rolle, die die Berechtigung hat, Meldungen im SNS-Thema zu veröffentlichen.

Google Pub/Sub

NOTIFICATION_PROVIDER = GCP_PUBSUB

Gibt Google Cloud Pub/Sub als Cloud-Meldungswarteschlangendienst eines Drittanbieters an.

GCP_PUBSUB_TOPIC_NAME = '<topic_id>'

Identifizierung des Pub/Sub-Themas, an das Snowpipe Benachrichtigungen sendet.

Microsoft Azure Event Grid

NOTIFICATION_PROVIDER = AZURE_EVENT_GRID

Gibt Microsoft Azure Event Grid als Cloud-Nachrichtenwarteschlangendienst eines Drittanbieters an.

AZURE_EVENT_GRID_TOPIC_ENDPOINT = '<event_grid_topic_endpoint>'

Endpunkt des Event Grid-Themas, an das Snowpipe Benachrichtigungen sendet.

AZURE_TENANT_ID = 'ad_directory_id'

ID des Azure Active Directory-Mandanten, der für die Identitätsverwaltung verwendet wird. Diese ID wird benötigt, um die Zustimmungs-URL zu generieren, die Snowflake Zugriff auf das Event Grid-Thema gewährt.

Parameter für E-Mail-Benachrichtigungen

ALLOWED_RECIPIENTS=('email_address_1' [, ... 'email_address_N'])

(bei TYPE = EMAIL) Eine durch Kommas getrennte Liste von in Anführungszeichen geschriebenen E-Mail-Adressen, die E-Mail-Benachrichtigungen von dieser Integration erhalten können.

Dabei müssen die E-Mail-Adressen von Benutzern des aktuellen Kontos angegeben werden. Diese Benutzer müssen ihre E-Mail-Adressen verifizieren.

Die maximale Anzahl von E-Mail-Adressen, die Sie angeben können, ist 50.

Wenn Sie diesen Parameter weglassen, können Sie E-Mail-Benachrichtigungen an jede verifizierte E-Mail-Adresse des aktuellen Kontos senden.

Anforderungen an die Zugriffssteuerung

Eine Rolle, die zur Ausführung dieses SQL-Befehls verwendet wird, muss mindestens die folgenden Berechtigungen haben:

Berechtigung

Objekt

Anmerkungen

CREATE INTEGRATION

Konto

Only the ACCOUNTADMIN role has this privilege by default. The privilege can be granted to additional roles as needed.

Eine Anleitung zum Erstellen einer kundenspezifischen Rolle mit einer bestimmten Gruppe von Berechtigungen finden Sie unter Erstellen von kundenspezifischen Rollen.

Allgemeine Informationen zu Rollen und Berechtigungen zur Durchführung von SQL-Aktionen auf sicherungsfähigen Objekten finden Sie unter Übersicht zur Zugriffssteuerung.

Nutzungshinweise

  • Das Erstellen einer einzelnen Benachrichtigungsintegration für mehrere Microsoft Azure Storage-Warteschlangen oder Google Cloud Pub/Sub-Abonnements wird nicht unterstützt.

  • Das Verwenden derselben Microsoft Azure Storage-Warteschlange oder desselben Google Cloud Pub/Sub-Abonnements für mehrere eingehende Benachrichtigungsintegrationen wird nicht unterstützt, wenn es sich um automatisiertes Datenladen oder Metadaten-Aktualisierungen handelt.

  • Das Verwenden derselben ausgehenden Benachrichtigungsintegration für mehrere Pipes wird für Push-Benachrichtigungen unterstützt.

  • Hinweis zu Metadaten:

    Achtung

    Kunden müssen sicherstellen, dass bei der Nutzung des Snowflake-Dienstes keine personenbezogenen Daten (außer für ein Objekt „Benutzer“), sensible Daten, exportkontrollierte Daten oder andere regulierte Daten als Metadaten eingegeben werden. Weitere Informationen dazu finden Sie unter Metadatenfelder in Snowflake.

  • CREATE OR REPLACE <Objekt>-Anweisungen sind atomar. Das heißt, wenn ein Objekt ersetzt wird, erfolgt das Löschen des alten Objekts und das Erstellen des neuen Objekts in einer einzigen Transaktion.

  • In den von den Cloudanbietern bereitgestellten Regionen für Regierungsbehörden ist das Senden und Empfangen von Ereignisbenachrichtigungen an oder aus anderen kommerziellen Regionen nicht zulässig. Weitere Informationen dazu finden Sie unter AWS GovCloud (US) und Azure Government.

Beispiele

Beispiele speziell für Snowflake-Features finden Sie unter den Themen, auf die in Features (unter diesem Thema) verwiesen wird.