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

Onde:

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

Notificações por push

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

Onde:

cloudProviderParamsPush (for Amazon SNS) ::=

  NOTIFICATION_PROVIDER = AWS_SNS
  AWS_SNS_TOPIC_ARN = '<topic_arn>'
  AWS_SNS_ROLE_ARN = '<iam_role_arn>'
Copy
cloudProviderParamsPush (for Google Pub/Sub) ::=
  NOTIFICATION_PROVIDER = GCP_PUBSUB
  GCP_PUBSUB_TOPIC_NAME = '<topic_id>'
Copy
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>';
Copy

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

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).