Registro de mensagens no Snowflake Scripting¶
É possível registrar mensagens de um manipulador de procedimento armazenado escrito no Script Snowflake usando a função SYSTEM$LOG, SYSTEM$LOG_<nível> (para Script Snowflake) do Snowflake. Quando você configura uma tabela de eventos para armazenar entradas de log, o Snowflake armazena na tabela as entradas de log geradas pelo seu código do manipulador.
Antes de fazer o registro a partir do código, certifique-se de que o nível de registro em log esteja definido para que as mensagens desejadas sejam armazenadas na tabela de eventos. Para obter mais informações, consulte Definição de níveis para registro, métricas e rastreamento.
Nota
Antes de começar a registrar mensagens, é necessário configurar uma tabela de eventos. Para obter mais informações, consulte Visão geral da tabela de evento.
Você pode acessar as mensagens de log executando um comando SELECT na tabela de eventos. Para obter mais informações, consulte Visualização de mensagens de log.
Para obter informações gerais sobre como configurar o registro e recuperar mensagens no Snowflake, consulte Registro de mensagens de funções e procedimentos.
Exemplo de Snowflake Scripting¶
O código no exemplo a seguir usa a função SYSTEM$LOG para registrar mensagens em cada um dos níveis suportados. Observe que uma mensagem registrada a partir do código que processa uma linha de entrada será registrada para cada linha processada pelo manipulador. Se o manipulador for executado em uma tabela grande, isso poderá resultar em um grande número de mensagens na tabela de eventos.
Como adicionar automaticamente mensagens de log sobre blocos e trabalhos secundários¶
Você pode registrar automaticamente as seguintes informações adicionais sobre a execução de um procedimento armazenado do Snowflake Scripting:
BEGIN/END de um bloco Snowflake Scripting.
BEGIN/END de uma solicitação de trabalho secundário.
O registro em log automático é destinado aos seguintes casos de uso:
Você deseja gerar as mensagens de log adicionais sem modificar o corpo do procedimento armazenado.
Você deseja obter informações abrangentes sobre a execução do procedimento armazenado.
Você deseja ter mais visibilidade da execução do procedimento armazenado para facilitar o desenvolvimento e a depuração sem adicionar manualmente o código de registro no procedimento.
Para registrar automaticamente essas mensagens do Snowflake Scripting para um procedimento armazenado, defina o parâmetro AUTO_EVENT_LOGGING para o procedimento armazenado como LOGGING ou ALL usando o comando ALTER PROCEDURE. Quando você define esse parâmetro como ALL, eventos de rastreamento adicionais também são emitidos automaticamente para o procedimento armazenado.
Importante
As informações adicionais são adicionadas à tabela de eventos somente se o LOG_LEVEL efetivo estiver definido como TRACE. Para obter mais informações, consulte Definição de níveis para registro, métricas e rastreamento.
Por exemplo, crie uma tabela simples e insira os dados:
Em seguida, crie um procedimento armazenado chamado auto_event_logging_sp. Esse procedimento armazenado de exemplo atualiza uma linha da tabela e, em seguida, consulta a tabela:
Os exemplos a seguir definem o parâmetro AUTO_EVENT_LOGGING para o procedimento armazenado:
Chame o procedimento armazenado:
Consulte na tabela de eventos as mensagens registradas pelo procedimento armazenado denominado auto_event_logging_sp. Para cada mensagem, imprima o carimbo de data/hora, o nível de log e o texto da mensagem.