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
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_STORAGE_QUEUE 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.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.
Paramètres pour les notifications par e-mail¶
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.Vous devez spécifier des adresses e-mail d’utilisateurs du compte actuel. Ces utilisateurs doivent vérifier leurs adresses e-mail.
Le nombre maximum d’adresses e-mail que vous pouvez spécifier est 50.
Si vous omettez ce paramètre, vous pouvez envoyer des notifications par e-mail à n’importe quelle adresse e-mail vérifiée dans le compte actuel.
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 Aperçu du contrôle d’accès.
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.
Lorsque vous créez un nouveau canal à l’aide d’une intégration de notification avec la même URL de file d’attente qu’une autre intégration de notification, la création du canal échoue avec une erreur :
Notification queue already in use with another integration
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 pour les chargements de données ou les actualisations de métadonnées automatisés.
L’utilisation de la même intégration de notification sortante pour plusieurs canaux est prise en charge pour les notifications push.
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. En d’autres termes, lorsqu’un objet est remplacé, l’ancien objet est supprimé et le nouvel objet est créé dans une seule transaction.
Les régions gouvernementales des fournisseurs Cloud n’autorisent pas l’envoi de notifications d’événements vers ou depuis d’autres régions commerciales. Pour plus d’informations, voir AWS GovCloud (US) et Azure Government.
Exemples¶
Pour des exemples spécifiques aux fonctionnalités Snowflake, voir les sujets référencés dans Fonctionnalités (dans cette rubrique).