Ações de início de ciclo para orçamentos¶
Você pode configurar um orçamento para chamar automaticamente um procedimento armazenado quando o ciclo orçamentário é reiniciado. O ciclo é reiniciado quando os gastos são redefinidos para 0 no início do período mensal do orçamento. Isso permite que você execute ações automatizadas no início de cada período de orçamento, como habilitar warehouses novamente ou enviar notificações sobre o novo ciclo.
As ações de início de ciclo são úteis principalmente para limpar ou reverter ações que foram acionadas por ações personalizadas durante o ciclo orçamentário anterior.
Ao definir uma ação de início de ciclo, você especifica o procedimento armazenado a ser chamado e os argumentos a serem passados para ele. O procedimento armazenado é executado automaticamente toda vez que o ciclo orçamentário é reiniciado.
Requisitos do procedimento armazenado¶
O procedimento armazenado que é chamado por uma ação de início de ciclo deve atender aos seguintes requisitos:
O procedimento deve ser executado com os direitos do proprietário, não com os direitos do autor da chamada. Para obter mais informações, consulte Procedimentos armazenados com direitos do chamador e direitos do proprietário.
O procedimento não pode levar mais de 30 minutos para ser concluído.
O procedimento não pode ter um argumento OUTPUT.
Crie seu procedimento para processar as chamadas várias vezes sem causar efeitos duplicados ou não intencionais.
Os argumentos necessários do procedimento devem ser de um dos seguintes tipos de dados:
Depois de criar um procedimento armazenado que atenda a esses requisitos, você deverá conceder ao aplicativo SNOWFLAKE o privilégio USAGE no procedimento e nos respectivos banco de dados e esquema pai. Por exemplo, se o nome totalmente qualificado do procedimento armazenado é code_db.sch1.reset_resources, execute os seguintes comandos:
Nota
Se você atualizar o procedimento armazenado depois de adicioná-lo como uma ação de início de ciclo, deverá conceder novamente o privilégio USAGE no procedimento para o aplicativo SNOWFLAKE.
Definir uma ação de início de ciclo para um orçamento¶
Você pode definir uma ação de início de ciclo por orçamento (seja o orçamento da conta ou um personalizado). Uma ação de início de ciclo consiste nos seguintes componentes:
Procedimento armazenado: Uma referência ao procedimento a ser chamado quando o ciclo orçamentário é reiniciado.
Argumentos: Uma matriz de argumentos a ser passada para o procedimento armazenado.
Para definir uma ação de início de ciclo para um orçamento, chame o método SET_CYCLE_START_ACTION na instância do orçamento. Por exemplo, o código a seguir define uma ação de início de ciclo que chama o procedimento armazenado reset_resources quando o ciclo orçamentário é reiniciado:
Para um exemplo completo que inclui a criação do procedimento armazenado chamado pela ação de início de ciclo, consulte Exemplo estendido.
Remover uma ação de início de ciclo de um orçamento¶
Para remover uma ação de início de ciclo de um orçamento, chame o método REMOVE_CYCLE_START_ACTION na instância do orçamento:
Exemplo estendido¶
O exemplo a seguir demonstra como escrever um procedimento armazenado chamado por uma ação de início de ciclo, conceder os privilégios necessários no procedimento e definir a ação de início de ciclo para o orçamento.
Crie um procedimento armazenado que esteja em conformidade com todos os requisitos:
Conceda privilégios no procedimento armazenado para o aplicativo SNOWFLAKE:
Defina a ação de início de ciclo para o orçamento:
Solução de problemas das ações de início de ciclo¶
Se uma ação de início de ciclo não estiver funcionando como esperado, use os métodos a seguir para diagnosticar o problema.
Monitorar a execução da ação de início de ciclo¶
O Snowflake usa uma tarefa para executar a ação de início de ciclo. Essa tarefa é chamada _budget_cycle_start_task. Para verificar o status de execução da tarefa de ação de início de ciclo para uma instância de orçamento, execute a seguinte consulta. Substitua budget_name pelo nome do seu orçamento.
Solução de problemas das ações que não são acionadas¶
Se uma ação de início de ciclo não estiver sendo acionada quando esperado, verifique os seguintes problemas comuns. Suponha que seu orçamento personalizado seja budget_db.sch1.my_budget.
Procedimento armazenado ou privilégios alterados
Verifique se o procedimento armazenado chamado pela ação de início de ciclo ainda é válido e se o aplicativo SNOWFLAKE ainda tem os privilégios necessários. Você pode verificar os privilégios executando:
O orçamento não está ativado*
Somente para orçamentos de conta, verifique se o orçamento está ativado chamando o método GET_CONFIG e verificando o campo is_active.
Nenhuma ação de início de ciclo foi configurada
Verifique se uma ação de início de ciclo foi configurada para o orçamento:
O ciclo orçamentário ainda não foi reiniciado
A ação de início de ciclo é acionada somente quando o ciclo orçamentário é reiniciado. Verifique quando o ciclo atual começou e terminará para determinar quando o próximo acionamento ocorrerá.