CREATE NOTIFICATION INTEGRATION¶
Cria uma nova integração de notificação na conta ou substitui uma integração existente. Uma integração de notificação é um objeto Snowflake que fornece uma interface entre o Snowflake e serviços de mensagens de terceiros (serviços de enfileiramento de mensagens em nuvem de terceiros, serviços de e-mail etc.).
- Consulte também:
ALTER NOTIFICATION INTEGRATION , DROP INTEGRATION , SHOW INTEGRATIONS
Recursos¶
As integrações de notificação são parte integrante dos seguintes recursos por serviço de armazenamento em nuvem e serviço de e-mail:
- Amazon Web Services (AWS):
Notificações por push:
Notificações por e-mail:
- Google Cloud (GCP):
Carregamentos de dados automatizadas ou atualizações de metadados:
Notificações por push:
- Microsoft Azure (Azure):
Carregamentos de dados automatizadas ou atualizações de metadados:
Notificações por push:
Sintaxe¶
Carregamentos de dados automatizadas ou atualizações de metadados
CREATE [ OR REPLACE ] NOTIFICATION INTEGRATION [IF NOT EXISTS]
<name>
ENABLED = { TRUE | FALSE }
TYPE = QUEUE
cloudProviderParamsAuto
[ COMMENT = '<string_literal>' ]
Onde:
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>';
Notificações por push
CREATE [ OR REPLACE ] NOTIFICATION INTEGRATION [IF NOT EXISTS]
<name>
ENABLED = { TRUE | FALSE }
DIRECTION = OUTBOUND
TYPE = QUEUE
cloudProviderParamsPush
[ COMMENT = '<string_literal>' ]
Onde:
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>';
Notificações por 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>' ]
Parâmetros obrigatórios¶
name
Cadeia de caracteres que especifica o identificador (ou seja, nome) para a integração; deve ser única em sua conta.
Além disso, o identificador deve começar com um caractere alfabético e não pode conter espaços ou caracteres especiais, a menos que toda a cadeia de caracteres do identificador esteja entre aspas duplas (por exemplo,
"My object"
). Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.Para obter mais detalhes, consulte Requisitos para identificadores.
ENABLED = { TRUE | FALSE }
Especifica se deve iniciar a operação da integração ou suspendê-la.
TRUE
permite a integração.FALSE
desabilita a integração para manutenção. Qualquer integração entre o Snowflake e um serviço de terceiro não funciona.
TYPE = QUEUE | EMAIL
Especifique o tipo de integração:
QUEUE
: cria uma interface entre o Snowflake e um serviço de enfileiramento de mensagens em nuvem de terceiros.EMAIL
: cria uma interface entre o Snowflake e um serviço de e-mail de terceiros.Você pode definir um máximo de 10 integrações de notificação por e-mail para uma determinada conta.
Parâmetros opcionais¶
DIRECTION = OUTBOUND
(Para notificações por push usando
TYPE = QUEUE
) Direção das mensagem em nuvem em relação ao Snowflake. Obrigatório apenas ao configurar notificações de push para um serviço de mensagens em nuvem.OUTBOUND
: especifica que o Snowflake produz a notificação enviada para o serviço de mensagens em nuvem.COMMENT = 'string_literal'
Cadeia de caracteres (literal) que especifica um comentário da integração.
Padrão: sem valor
Parâmetros do provedor de nuvem para carregamentos de dados automatizados ou atualizações de metadados (cloudProviderParamsAuto
)¶
Google Cloud Storage
NOTIFICATION_PROVIDER = GCP_PUBSUB
Especifica o Google Cloud Pub/Sub como o serviço de enfileiramento de mensagens em nuvem de terceiros.
GCP_PUBSUB_SUBSCRIPTION_NAME = '<subscription_id>'
ID da assinatura do tópico Pub/Sub usada para permitir o acesso do Snowflake às mensagens de eventos.
Nota
Uma única integração de notificação oferece suporte para uma única assinatura do Google Cloud Pub/Sub. A referência a uma única assinatura do Pub/Sub em múltiplas integrações de notificação pode resultar na ausência de dados nas tabelas de destino porque as notificações de eventos são divididas entre as integrações de notificação.
Armazenamento do Microsoft Azure
NOTIFICATION_PROVIDER = AZURE_EVENT_GRID
Especifica o Microsoft Azure Event Grid como o serviço de enfileiramento de mensagens em nuvem de terceiros.
AZURE_STORAGE_QUEUE_PRIMARY_URI = 'https://storage_queue_account.queue.core.windows.net/storage_queue_name'
Especifica a ID da fila para a fila do Armazenamento de Filas do Azure criada para as notificações do Event Grid.
Nota
Uma única integração de notificação oferece suporte para uma única fila de armazenamento do Azure. A referência à mesma fila de armazenamento em múltiplas integrações de notificação pode resultar na ausência de dados nas tabelas de destino porque as notificações de eventos são divididas entre as integrações de notificação.
AZURE_TENANT_ID = 'ad_directory_id'
Especifica a ID do locatário do Azure Active Directory utilizado para a gestão da identidade. Este ID é necessário para gerar o URL de consentimento que concede ao Snowflake acesso à assinatura da notificação do Event Grid.
Parâmetros do provedor de nuvem para notificações por push (cloudProviderParamsPush
)¶
Amazon Simple Notification Service
NOTIFICATION_PROVIDER = AWS_SNS
Especifica o Amazon Simple Notification Service (SNS) como o serviço de enfileiramento de mensagens em nuvem de terceiros.
AWS_SNS_TOPIC_ARN = '<topic_arn>'
Amazon Resource Name (ARN) do tópico Amazon SNS (SNS) para as notificações são enviadas.
AWS_SNS_ROLE_ARN = '<iam_role_arn>'
ARN da função IAM que tem permissões para publicar mensagens para o tópico SNS.
Google Pub/Sub
NOTIFICATION_PROVIDER = GCP_PUBSUB
Especifica o Google Cloud Pub/Sub como o serviço de enfileiramento de mensagens em nuvem de terceiros.
GCP_PUBSUB_TOPIC_NAME = '<topic_id>'
Identificação do tópico Pub/Sub para o qual a Snowpipe envia notificações.
Microsoft Azure Event Grid
NOTIFICATION_PROVIDER = AZURE_EVENT_GRID
Especifica o Microsoft Azure Event Grid como o serviço de enfileiramento de mensagens em nuvem de terceiros.
AZURE_EVENT_GRID_TOPIC_ENDPOINT = '<event_grid_topic_endpoint>'
Ponto de extremidade do tópico do Event Grid para o qual o Snowpipe envia as notificações.
AZURE_TENANT_ID = 'ad_directory_id'
ID do locatário do Azure Active Directory utilizado para a gestão da identidade. Esta ID é necessária para gerar o URL do consentimento que concede ao Snowflake acesso ao tópico do Event Grid.
Parâmetros para notificações por e-mail¶
ALLOWED_RECIPIENTS=('email_address_1' [, ... 'email_address_N'])
(Para
TYPE = EMAIL
) Uma lista separada por vírgula de endereços de e-mail entre aspas que podem receber e-mails de notificação a partir desta integração.Você deve especificar os endereços de e-mail dos usuários na conta atual. Estes usuários devem verificar seus endereços de e-mail.
O número máximo de endereços de e-mail que você pode especificar é 50.
Se você omitir esse parâmetro, poderá enviar notificações por e-mail para qualquer endereço de e-mail verificado na conta atual.
Requisitos de controle de acesso¶
Uma função usada para executar este comando SQL deve ter os seguintes privilégios no mínimo:
Privilégio |
Objeto |
Notas |
---|---|---|
CREATE INTEGRATION |
Conta |
Only the ACCOUNTADMIN role has this privilege by default. The privilege can be granted to additional roles as needed. |
Para instruções sobre como criar uma função personalizada com um conjunto específico de privilégios, consulte Criação de funções personalizadas.
Para informações gerais sobre concessões de funções e privilégios para executar ações de SQL em objetos protegíveis, consulte Visão geral do controle de acesso.
Notas de uso¶
A criação de uma única integração de notificação para várias filas de armazenamento do Microsoft Azure ou assinaturas do Google Cloud Pub/Sub não é suportada.
Quando você cria um novo canal usando uma integração de notificação com o mesmo URL da fila de outra integração de notificação, a criação do canal falha com um erro:
Notification queue already in use with another integration
.
O uso da mesma fila de armazenamento do armazenamento do Microsoft Azure ou assinatura do Google Cloud Pub/Sub para múltiplas integrações de notificações de entrada não é suportada para carregamentos de dados automatizados ou atualizações de metadados.
O uso da mesma integração de notificação de saída para vários canais é suportada para notificações por push.
Em relação aos metadados:
Atenção
Os clientes devem garantir que nenhum dado pessoal (exceto para um objeto do usuário), dados sensíveis, dados controlados por exportação ou outros dados regulamentados sejam inseridos como metadados ao usar o serviço Snowflake. Para obter mais informações, consulte Campos de metadados no Snowflake.
Instruções CREATE OR REPLACE <object> são atômicas. Ou seja, quando um objeto é substituído, o objeto antigo é excluído e o novo objeto é criado em uma única transação.
As regiões governamentais dos provedores de nuvem não permitem o envio de notificações de eventos de ou para outras regiões comerciais. Para obter mais informações, consulte AWS GovCloud (US) e Azure Government.
Exemplos¶
Para obter exemplos específicos dos recursos do Snowflake, consulte os tópicos citados em Recursos (neste tópico).