Gerenciamento de integrações do Snowflake com Python¶
É possível usar Python para gerenciar diferentes tipos de integrações no Snowflake.
Pré-requisitos¶
Os exemplos neste tópico pressupõem que você tenha adicionado código para se conectar ao Snowflake e criar um objeto Root a partir do qual usar o Snowflake Python APIs.
Por exemplo, o seguinte código usa parâmetros de conexão definidos em um arquivo de configuração para criar uma conexão com o Snowflake:
Usando o objeto Session resultante, o código cria um objeto Root para usar os tipos e métodos de API. Para obter mais informações, consulte Conexão ao Snowflake com o Snowflake Python APIs.
Gerenciamento de integrações de catálogo¶
É possível gerenciar integrações de catálogo para tabelas Apache Iceberg™ em sua conta. Uma integração de catálogo é um objeto Snowflake nomeado em nível de conta que armazena informações sobre como os metadados da tabela Iceberg são organizados para cenários em que você não usa o Snowflake como o catálogo Iceberg ou quando deseja integrar com o Snowflake Open Catalog. Para obter mais informações, consulte a seção Integração de catálogo em Tabelas Apache Iceberg™.
Nota
ALTER CATALOG INTEGRATION não é compatível atualmente.
O Snowflake Python APIs representa integrações de catálogo com dois tipos separados:
CatalogIntegration: Expõe as propriedades de uma integração de catálogo, como seu nome, formato de tabela e configurações de catálogo.CatalogIntegrationResource: Expõe métodos que você pode usar para buscar um objetoCatalogIntegrationcorrespondente e descartar a integração do catálogo.
Criação de uma integração de catálogo¶
Para criar uma integração de catálogo, primeiro crie um objeto CatalogIntegration e, em seguida, crie um objeto CatalogIntegrationCollection a partir do objeto Root da API. Usando CatalogIntegrationCollection.create, adicione a nova integração de catálogo ao Snowflake.
É possível criar integrações de catálogo em sua conta para os seguintes tipos de catálogos externos do Iceberg.
AWS Glue¶
O código no exemplo a seguir cria um objeto CatalogIntegration que representa uma integração de catálogo nomeada my_catalog_integration para tabelas Iceberg que usam o AWS Glue com as propriedades especificadas:
Loja de objetos¶
O código no exemplo a seguir cria um objeto CatalogIntegration que representa uma integração de catálogo nomeada my_catalog_integration para tabelas Iceberg que usam um armazenamento de objeto:
Snowflake Open Catalog¶
O código no exemplo a seguir cria um objeto CatalogIntegration que representa uma integração de catálogo nomeada my_catalog_integration para tabelas Iceberg que usam o Open Catalog com as propriedades especificadas:
Como obter detalhes de integração de catálogo¶
É possível obter informações sobre uma integração de catálogo chamando o método CatalogIntegrationResource.fetch, que retorna um objeto CatalogIntegration.
O código no exemplo a seguir obtém informações sobre uma integração de catálogo nomeada my_catalog_integration:
Integrações de catálogo de listagem¶
É possível listar integrações de catálogo usando o método CatalogIntegrationCollection.iter, que retorna um iterador PagedIter de objetos CatalogIntegration.
O código no exemplo a seguir lista integrações de catálogo cujos nomes começam com my e imprime o nome de cada uma:
Descarte de uma integração de catálogo¶
É possível descartar uma integração de catálogo com um objeto CatalogIntegrationResource.
O código no exemplo a seguir obtém o objeto de recurso de integração do catálogo my_catalog_integration e, em seguida, descarta a integração do catálogo.
Gerenciamento de integrações de notificação¶
É possível gerenciar integrações de notificação, que são objetos Snowflake que fornecem uma interface entre o Snowflake e serviços de mensagens de terceiros, como serviços de enfileiramento de mensagens em nuvem de terceiros, serviços de e-mail e webhooks. Para obter mais informações, consulte Notificações no Snowflake.
Nota
ALTER NOTIFICATION INTEGRATION não é compatível atualmente.
O Snowflake Python APIs representa integrações de notificação com dois tipos separados:
NotificationIntegration: Expõe as propriedades de uma integração de notificação, como nome e configurações de gancho de notificação.NotificationIntegrationResource: Expõe métodos que podem ser usados para buscar um objetoNotificationIntegrationcorrespondente e descartar a integração de notificação.
Criação da integração de notificação¶
Para criar uma integração de notificação, primeiro crie um objeto NotificationIntegration e, em seguida, crie um objeto NotificationIntegrationCollection a partir do objeto Root da API. Usando NotificationIntegrationCollection.create, adicione a nova integração de notificação ao Snowflake.
É possível criar uma integração de notificação para os seguintes tipos de serviço de mensagem.
E-mail¶
O código no exemplo a seguir cria um objeto NotificationIntegration que representa uma integração de notificação nomeada my_email_notification_integration com as propriedades NotificationEmail especificadas:
Webhooks¶
O código no exemplo a seguir cria um objeto NotificationIntegration que representa uma integração de notificação nomeada my_webhook_notification_integration com as propriedades NotificationWebhook especificadas:
Tópicos do Amazon SNS (saída)¶
O código no exemplo a seguir cria um objeto NotificationIntegration que representa uma integração de notificação nomeada my_aws_sns_outbound_notification_integration com as propriedades NotificationQueueAwsSnsOutbound especificadas:
Tópicos do Azure Event Grid (saída)¶
O código no exemplo a seguir cria um objeto NotificationIntegration que representa uma integração de notificação nomeada my_azure_outbound_notification_integration com as propriedades NotificationQueueAzureEventGridOutbound especificadas:
Tópicos do Azure Event Grid (entrada)¶
O código no exemplo a seguir cria um objeto NotificationIntegration que representa uma integração de notificação nomeada my_azure_inbound_notification_integration com as propriedades NotificationQueueAzureEventGridInbound especificadas:
Tópicos do Google Pub/Sub (saída)¶
O código no exemplo a seguir cria um objeto NotificationIntegration que representa uma integração de notificação nomeada my_gcp_outbound_notification_integration com as propriedades NotificationQueueGcpPubsubOutbound especificadas:
Tópicos do Google Pub/Sub (entrada)¶
O código no exemplo a seguir cria um objeto NotificationIntegration que representa uma integração de notificação nomeada my_gcp_inbound_notification_integration com as propriedades NotificationQueueGcpPubsubInbound especificadas:
Como obter detalhes de integração de notificação¶
É possível obter informações sobre uma integração de notificação chamando o método NotificationIntegrationResource.fetch, que retorna um objeto NotificationIntegration.
O código no exemplo a seguir obtém informações sobre uma integração de notificação chamada my_notification_integration:
Integrações de notificação de listagem¶
É possível listar integrações de notificação usando o método NotificationIntegrationCollection.iter, que retorna um iterador PagedIter de objetos NotificationIntegration.
O código no exemplo a seguir lista integrações de notificação cujos nomes começam com my e imprime o nome de cada uma:
Descarte de uma integração de notificação¶
É possível descartar uma integração de notificação com um objeto NotificationIntegrationResource.
O código no exemplo a seguir obtém o objeto de recurso de integração de notificação my_notification_integration e, em seguida, descarta a integração de notificação.