Catégories :

Utilisateur et sécurité DDL (Intégrations de services tiers)

CREATE NOTIFICATION INTEGRATION

Crée une nouvelle intégration de notification dans le compte ou remplace une intégration existante. Une intégration de notification est un objet Snowflake qui fournit une interface entre Snowflake et des services de messagerie tiers (services tiers de mise en file d’attente de messages dans le Cloud, services de messagerie électronique, etc.).

Voir aussi :

ALTER NOTIFICATION INTEGRATION , DROP INTEGRATION , SHOW INTEGRATIONS

Dans ce chapitre :

Fonctionnalités

Les intégrations de notifications font partie intégrante des fonctionnalités suivantes conformément au service de stockage dans le Cloud et au service de messagerie électronique :

Amazon Web Services (AWS)

Notifications push :

Notifications par e-mail :

Google Cloud (GCP)

Chargements automatisés de données ou actualisation de métadonnées :

Notifications push :

Microsoft Azure (Azure)

Chargements automatisés de données ou actualisation de métadonnées :

Notifications push :

Syntaxe

Chargements automatisés de données ou actualisation de métadonnées

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

Où :

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

Notifications push

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

Où :

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>';

Notifications par e-mail

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>' ]

Paramètres requis

name

Chaîne spécifiant l’identificateur (c’est-à-dire le nom) de l’intégration ; elle doit être unique sur votre compte.

De plus, l’identificateur doit commencer par un caractère alphabétique et ne peut pas contenir d’espaces ou de caractères spéciaux à moins que toute la chaîne d’identificateur soit délimitée par des guillemets doubles (p. ex. "My object"). Les identificateurs entre guillemets doubles sont également sensibles à la casse.

Pour plus de détails, voir Exigences relatives à l’identificateur.

ENABLED = { TRUE | FALSE }

Spécifie s’il faut initier le fonctionnement de l’intégration ou le suspendre.

  • TRUE permet l’intégration.

  • FALSE désactive l’intégration de la maintenance. Toute intégration entre Snowflake et un service tiers échoue.

TYPE = QUEUE | EMAIL

Spécifiez le type d’intégration :

  • QUEUE : crée une interface entre Snowflake et un service de mise en file d’attente de messages dans le Cloud tiers.

  • EMAIL : crée une interface entre Snowflake et un service de messagerie électronique tiers.

    Vous pouvez définir un maximum de 10 intégrations de notification par e-mail pour un compte donné.

Paramètres facultatifs

DIRECTION = OUTBOUND

(Pour les notifications push utilisant TYPE = QUEUE) Direction de la messagerie Cloud par rapport à Snowflake. Requis uniquement lors de la configuration des notifications push vers un service de messagerie dans le Cloud.

OUTBOUND : spécifie que Snowflake produit la notification envoyée au service de messagerie dans le Cloud.

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

(Pour TYPE = EMAIL) Une liste, séparée par des virgules, d’adresses e-mail mises entre guillemets qui peuvent recevoir des e-mails de notification de cette intégration.

Il doit s’agir d’adresses e-mail d’utilisateurs du compte actuel. Ces adresses e-mail doivent être vérifiées.

Le nombre maximum d’adresses e-mail que vous pouvez spécifier est 50.

COMMENT = 'string_literal'

Chaîne (littéral) qui spécifie un commentaire pour l’intégration.

Par défaut : aucune valeur

Paramètres du fournisseur de Cloud pour les chargements automatisés de données ou les actualisations de métadonnées (cloudProviderParamsAuto)

Google Cloud Storage

NOTIFICATION_PROVIDER = GCP_PUBSUB

Spécifie Google Cloud Pub/Sub comme service tiers de mise en file d’attente des messages dans le Cloud.

GCP_PUBSUB_SUBSCRIPTION_NAME = '<subscription_id>'

ID d’abonnement à un sujet Pub/Sub utilisé pour permettre à Snowflake d’accéder aux messages d’événement.

Note

Une seule intégration de notification prend en charge un seul abonnement Google Cloud Pub/Sub. Le fait de référencer le même abonnement Pub/Sub dans plusieurs intégrations de notification peut entraîner des données manquantes dans les tables cibles, car les notifications d’événements sont réparties entre les intégrations de notification.

Stockage Microsoft Azure

NOTIFICATION_PROVIDER = AZURE_EVENT_GRID

Spécifie Microsoft Azure Event Grid en tant que service de mise en file d’attente de messages dans le Cloud tiers.

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

Spécifie l’ID de file d’attente pour la file d’attente de stockage Azure Queue Storage créée pour les notifications Event Grid.

Note

Une seule intégration de notification prend en charge une seule file d’attente de stockage Azure. Le fait de référencer la même file d’attente de stockage dans plusieurs intégrations de notification peut entraîner des données manquantes dans les tables cibles, car les notifications d’événements sont réparties entre les intégrations de notification.

AZURE_TENANT_ID = 'ad_directory_id'

Spécifie l’ID du client Azure Active Directory utilisé pour la gestion des identités. L’ID est nécessaire pour générer l’URL de consentement qui accorde à Snowflake l’accès à l’abonnement aux notifications Event Grid.

Paramètres du fournisseur de Cloud pour les notifications push (cloudProviderParamsPush)

Amazon Simple Notification Service

NOTIFICATION_PROVIDER = AWS_SNS

Spécifie Amazon Simple Notification Service (SNS) comme le service de mise en file d’attente des messages dans le Cloud tiers.

AWS_SNS_TOPIC_ARN = '<topic_arn>'

Nom de la ressource Amazon (ARN) du sujet Amazon SNS (SNS) vers lequel les notifications sont poussées.

AWS_SNS_ROLE_ARN = '<iam_role_arn>'

ARN du rôle IAM qui a les autorisations pour publier des messages dans le sujet SNS.

Google Pub/Sub

NOTIFICATION_PROVIDER = GCP_PUBSUB

Spécifie Google Cloud Pub/Sub comme service tiers de mise en file d’attente des messages dans le Cloud.

GCP_PUBSUB_TOPIC_NAME = '<topic_id>'

Identification du sujet Pub/Sub vers lequel Snowpipe envoie des notifications.

Microsoft Azure Event Grid

NOTIFICATION_PROVIDER = AZURE_EVENT_GRID

Spécifie Microsoft Azure Event Grid en tant que service de mise en file d’attente de messages dans le Cloud tiers.

AZURE_EVENT_GRID_TOPIC_ENDPOINT = '<event_grid_topic_endpoint>'

Point de terminaison du sujet d’Event Grid vers lequel Snowpipe envoie des notifications.

AZURE_TENANT_ID = 'ad_directory_id'

ID du client Azure Active Directory utilisé pour la gestion des identités. L’ID est nécessaire pour générer l’URL de consentement qui accorde à Snowflake l’accès à l’abonnement au sujet Event Grid.

Exigences en matière de contrôle d’accès

Un rôle utilisé pour exécuter cette commande SQL doit avoir les privilèges suivants définis au minimum ainsi :

Privilège

Objet

Remarques

CREATE INTEGRATION

Compte

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

Pour obtenir des instructions sur la création d’un rôle personnalisé avec un ensemble spécifique de privilèges, voir Création de rôles personnalisés.

Pour des informations générales sur les rôles et les privilèges accordés pour effectuer des actions SQL sur des objets sécurisables, voir Contrôle d’accès dans Snowflake.

Notes sur l’utilisation

  • La création d’une intégration de notification unique pour plusieurs files d’attente de stockage Microsoft Azure ou abonnements Google Cloud Pub/Sub n’est pas prise en charge.

  • L’utilisation de la même file d’attente de stockage Microsoft Azure Storage ou du même abonnement Google Cloud Pub/Sub pour plusieurs intégrations de notification n’est pas prise en charge.

  • Concernant les métadonnées :

    Attention

    Les clients doivent s’assurer qu’aucune donnée personnelle (autre que pour un objet utilisateur), donnée sensible, donnée à exportation contrôlée ou autre donnée réglementée n’est saisie comme métadonnée lors de l’utilisation du service Snowflake. Pour plus d’informations, voir Champs de métadonnées dans Snowflake.

  • Les instructions CREATE OR REPLACE <objet> sont atomiques. Autrement dit, lorsque l’objet est remplacé, la suppression de l’ancien objet et la création du nouvel objet sont traitées en une seule transaction.

Exemples

Pour des exemples spécifiques aux fonctionnalités Snowflake, voir les sujets référencés dans Fonctionnalités (dans cette rubrique).

Revenir au début