Gerenciamento de alertas Snowflake com Python¶
É possível usar o Python para gerenciar alertas Snowflake, que podem ser definidos para executar periodicamente uma ação sob condições específicas, com base nos dados do Snowflake. Para obter mais informações sobre alertas, consulte Configuração de alertas com base em dados no Snowflake.
Nota
ALTER ALERT não é compatível atualmente.
O Snowflake Python APIs representa alertas com dois tipos separados:
Alert
: Expõe as propriedades de um alerta, como nome, condição, ação e cronograma.AlertResource
: Expõe métodos que podem ser usados para buscar um objetoAlert
correspondente, executar o alerta e descartar o alerta.
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:
from snowflake.core import Root
from snowflake.snowpark import Session
session = Session.builder.config("connection_name", "myconnection").create()
root = Root(session)
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.
Como criar um alerta¶
Para criar um alerta, primeiro crie um objeto Alert
e, em seguida, crie um objeto AlertCollection
a partir do objeto Root
da API. Usando AlertCollection.create
, adicione o novo alerta ao Snowflake.
O código no exemplo a seguir cria um objeto Alert
que representa um alerta nomeado my_alert
em sua conta:
from snowflake.core.alert import Alert, MinutesSchedule
root.alerts.create(Alert(
name="my_alert",
condition="SELECT 1",
action="SELECT 2",
schedule=MinutesSchedule(minutes=1),
comment="test comment"
))
O código cria uma variável AlertCollection
chamada alerts
e usa AlertCollection.create
para criar um novo alerta no Snowflake.
Como obter detalhes de alerta¶
É possível obter informações sobre um alerta chamando o método AlertResource.fetch
, que retorna um objeto Alert
.
O código no exemplo a seguir obtém informações sobre um alerta chamado my_alert
:
my_alert = root.alerts["my_alert"].fetch()
print(my_alert.to_dict())
Alertas de listagem¶
É possível listar alertas usando o método AlertCollection.iter
, que retorna um iterador PagedIter
de objetos Alert
.
O código no exemplo a seguir lista alertas cujos nomes começam com my
e, em seguida, imprime o nome de cada um. Este exemplo também define o parâmetro opcional show_limit=5
para limitar o número de resultados para 5
:
alerts_iter = root.alerts.iter(like="my%", show_limit=5)
for alert_obj in alerts_iter:
print(alert_obj.name)
Execução das operações de alerta¶
É possível executar operações de alerta comuns, como executar e descartar alertas, com um objeto AlertResource
.
Para demonstrar algumas operações que você pode realizar com um recurso de alerta, o código no exemplo a seguir faz o seguinte:
Busca o objeto de recurso de alerta
my_alert
.Executa o alerta.
Descarta o alerta.
my_alert_res = root.alerts["my_alert"]
my_alert_res.execute()
my_alert_res.drop()