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.
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>' ]
Wobei:
cloudProviderParamsAuto (for Google Cloud Storage) ::= NOTIFICATION_PROVIDER = GCP_PUBSUB GCP_PUBSUB_SUBSCRIPTION_NAME = '<subscription_id>'cloudProviderParamsAuto (for Microsoft Azure Storage) ::= NOTIFICATION_PROVIDER = AZURE_STORAGE_QUEUE AZURE_STORAGE_QUEUE_PRIMARY_URI = '<queue_URL>' AZURE_TENANT_ID = '<directory_ID>';
Push-Benachrichtigungen
CREATE [ OR REPLACE ] NOTIFICATION INTEGRATION [IF NOT EXISTS]
<name>
ENABLED = { TRUE | FALSE }
DIRECTION = OUTBOUND
TYPE = QUEUE
cloudProviderParamsPush
[ COMMENT = '<string_literal>' ]
Wobei:
cloudProviderParamsPush (for Amazon SNS) ::= NOTIFICATION_PROVIDER = AWS_SNS AWS_SNS_TOPIC_ARN = '<topic_arn>' AWS_SNS_ROLE_ARN = '<iam_role_arn>'cloudProviderParamsPush (for Google Pub/Sub) ::= NOTIFICATION_PROVIDER = GCP_PUBSUB GCP_PUBSUB_TOPIC_NAME = '<topic_id>'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>';
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>' ]
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.
Wenn Sie eine neue Pipe unter Verwendung einer Benachrichtigungsintegration erstellen, die dieselbe Warteschlangen-URL wie eine andere Benachrichtigungsintegration hat, schlägt das Erstellen der Pipe mit einem Fehler fehl:
Notification queue already in use with another integration
.
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.
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.