Kategorien:

DDL für Benutzer und Sicherheit (Integrationen von Drittanbieterservices)

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 Cloud-Meldungswarteschlangendiensten von Drittanbietern dient.

Die Benachrichtigungsintegration ist integraler Bestandteil der folgenden Funktionen pro Cloudspeicherdienst:

Amazon S3
Google Cloud Storage
Microsoft Azure Blob-Speicher
Siehe auch:

ALTER NOTIFICATION INTEGRATION, DROP INTEGRATION, SHOW INTEGRATIONS

Unter diesem Thema:

Syntax

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

Wobei:

cloudProviderParams (for Amazon S3) ::=

  NOTIFICATION_PROVIDER = AWS_SNS
  DIRECTION = OUTBOUND
  AWS_SNS_TOPIC_ARN = '<topic_arn>'
  AWS_SNS_ROLE_ARN = '<iam_role_arn>'
cloudProviderParams (for Google Cloud Storage) ::=
  NOTIFICATION_PROVIDER = GCP_PUBSUB
  GCP_PUBSUB_SUBSCRIPTION_NAME = '<subscription_id>'
cloudProviderParams (for Microsoft Azure) ::=
  NOTIFICATION_PROVIDER = AZURE_STORAGE_QUEUE
  AZURE_STORAGE_QUEUE_PRIMARY_URI = '<queue_URL>'
  AZURE_TENANT_ID = '<directory_ID>';

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 Drittanbieterservice funktioniert nicht.

TYPE = QUEUE

Geben Sie den Typ der Integration an:

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

Cloudanbieterparameter (cloudProviderParams)

Amazon S3

DIRECTION = OUTBOUND

Richtung für das Cloudmessaging in Bezug auf Snowflake.

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

AWS_SNS_TOPIC_ARN = '<topic_arn>'

Amazon Resource Name (ARN) des Amazon SNS-Themas (SNS), das Fehlermeldungen verarbeitet.

AWS_SNS_ROLE_ARN = '<iam_role_arn>'

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

Google Cloud Storage

NOTIFICATION_PROVIDER = GCP_PUBSUB

Geben Sie den Cloudanbieter an:

GCP_PUBSUB: Gibt Google Cloud Pub/Sub als Cloud-Nachrichtenwarteschlangendienst eines Drittanbieters an.

GCP_PUBSUB_SUBSCRIPTION_NAME = '<subscription_id>'

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

Microsoft Azure

NOTIFICATION_PROVIDER = AZURE_STORAGE_QUEUE

Geben Sie den Cloudanbieter an:

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

AZURE_STORAGE_QUEUE_PRIMARY_URI = 'https://Konto_der_Speicherwarteschlange.queue.core.windows.net/Name_der_Speicherwarteschlange'

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

Bemerkung

Eine Azure Queue Storage-Warteschlange unterstützt eine einzelne Benachrichtigungsintegration. Das Verweisen auf eine einzelne Speicherwarteschlange in mehreren Benachrichtigungsintegrationen kann dazu führen, dass Daten in Zieltabellen fehlen, da Ereignisbenachrichtigungen zwischen Benachrichtigungsintegrationen aufgeteilt werden.

Weitere Informationen dazu finden Sie unter:

Snowpipe

Automatisieren von Snowpipe für Microsoft Azure Blob-Speicher

Externe Tabellen

Automatisches Aktualisieren externer Tabellen für Azure Blob Storage

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, mit der Snowflake Zugriff auf das Abonnement für Event Grid-Benachrichtigungen erhält, damit Snowpipe-Ladevorgänge neuer Dateien im Blob-Speicher automatisch ausgelöst werden können.

Optionale Parameter

COMMENT = 'Zeichenfolgenliteral'

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

Standard: Kein Wert

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 benutzerdefinierten Rolle mit einer bestimmten Gruppe von Berechtigungen finden Sie unter Erstellen von benutzerdefinierten Rollen.

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

Nutzungshinweise

  • Das Erstellen einer einzelnen Benachrichtigungsintegration für mehrere Microsoft Azure-Speicherwarteschlangen oder Google Cloud Pub/Sub-Abonnements wird nicht 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.

Beispiele

Google Cloud Storage

CREATE NOTIFICATION INTEGRATION my_notification_int
  TYPE = QUEUE
  NOTIFICATION_PROVIDER = GCP_PUBSUB
  ENABLED = true
  GCP_PUBSUB_SUBSCRIPTION_NAME = 'projects/project-1234/subscriptions/sub2';

Microsoft Azure

CREATE NOTIFICATION INTEGRATION my_notification_int
  ENABLED = true
  TYPE = QUEUE
  NOTIFICATION_PROVIDER = AZURE_STORAGE_QUEUE
  AZURE_STORAGE_QUEUE_PRIMARY_URI = 'https://myqueue.queue.core.windows.net/mystoragequeue'
  AZURE_TENANT_ID = 'a123bcde-1234-5678-abc1-9abc12345678';