Categorias:

Information Schema , Funções de tabela

TASK_HISTORY

Você pode usar esta função de tabela para consultar o histórico de utilização da tarefa dentro de um intervalo de datas especificado. A função retorna o histórico de uso de tarefas para toda a sua conta Snowflake, uma tarefa especificada ou um gráfico de tarefas.

Sintaxe

TASK_HISTORY(
      [ SCHEDULED_TIME_RANGE_START => <constant_expr> ]
      [, SCHEDULED_TIME_RANGE_END => <constant_expr> ]
      [, RESULT_LIMIT => <integer> ]
      [, TASK_NAME => '<string>' ]
      [, ERROR_ONLY => { TRUE | FALSE } ]
      [, ROOT_TASK_ID => '<string>'] )
Copy

Argumentos

Todos os argumentos são opcionais.

SCHEDULED_TIME_RANGE_START => constant_expr , . SCHEDULED_TIME_RANGE_END => constant_expr

Intervalo de tempo (no formato TIMESTAMP_LTZ), dos últimos 7 dias, nos quais a execução da tarefa foi agendada. Se o intervalo não ficar dentro dos últimos 7 dias, um erro é retornado.

  • Se SCHEDULED_TIME_RANGE_END não for especificado, a função retorna aquelas tarefas que já foram concluídas, que estão atualmente em execução ou que estão programadas para o futuro.

  • Se SCHEDULED_TIME_RANGE_END for CURRENT_TIMESTAMP, a função retorna aquelas tarefas que já foram concluídas ou estão atualmente em execução. Note que uma tarefa executada imediatamente antes da hora atual ainda pode ser identificada como programada.

  • Para consultar somente aquelas tarefas que já foram concluídas ou estão atualmente em execução, inclua WHERE query_id IS NOT NULL como um filtro. A coluna QUERY_ID na saída TASK_HISTORY só é preenchida quando uma tarefa começou a ser executada.

Nota

Se não for especificada a hora de início ou fim, as tarefas mais recentes são retornadas até o valor RESULT_LIMIT especificado.

RESULT_LIMIT => integer

Um número especificando o número máximo de linhas retornadas pela função.

Se o número de linhas correspondentes for maior que este limite, as execuções de tarefa com o carimbo de data/hora mais recente são devolvidas até o limite especificado.

Intervalo: 1 a 10000

Padrão: 100.

TASK_NAME => string

Uma cadeia de caracteres que não diferencia maiúsculas e minúsculas, especificando uma tarefa. Somente nomes de tarefas não qualificadas são suportados. Somente as execuções da tarefa especificada são retornadas. Observe que se várias tarefas tiverem o mesmo nome, a função retorna o histórico para cada uma dessas tarefas.

ERROR_ONLY => TRUE | FALSE

Quando definida como TRUE, esta função retorna apenas execuções de tarefas que falharam ou foram canceladas.

ROOT_TASK_ID =>string

Identificador exclusivo para a tarefa raiz em um gráfico de tarefas. Esta ID corresponde ao valor da coluna ID na saída SHOW TASKS para a mesma tarefa. Especifique ROOT_TASK_ID para mostrar o histórico da tarefa raiz e de quaisquer tarefas filhas que façam parte do gráfico de tarefas.

Notas de uso

  • Esta função retorna resultados apenas para a função ACCOUNTADMIN, o proprietário da tarefa ou uma função com o privilégio global MONITOR EXECUTION. Observe que a menos que uma função com o privilégio MONITOR EXECUTION também tenha o privilégio USAGE no banco de dados e esquema que armazena a tarefa, os valores DATABASE_NAME e SCHEMA_NAME na saída serão NULL.

  • Esta função retorna um máximo de 10.000 linhas, definido no valor do argumento RESULT_LIMIT. O valor padrão é 100. Para evitar esta limitação, use a exibição TASK_HISTORY (Account Usage).

  • Observe que quando a função TASK_HISTORY é consultada, seu nome de tarefa, intervalo de tempo e argumentos de limite de resultado são aplicados primeiro, seguido pela cláusula WHERE e LIMIT, respectivamente, se especificado. Além disso, a função TASK_HISTORY retorna registros em ordem decrescente SCHEDULED_TIME. As tarefas no estado SUCCEEDED, FAILED ou CANCELLED geralmente são agendadas mais cedo, portanto, geralmente são retornadas mais tarde nos resultados da pesquisa.

  • Na prática, se você tiver muitas tarefas em execução em sua conta, os resultados retornados pela função podem incluir menos tarefas concluídas do que o esperado ou apenas tarefas programadas. Para consultar o histórico de tarefas que já foram executadas, use uma combinação dos argumentos SCHEDULED_TIME_RANGE_START => constant_expr e SCHEDULED_TIME_RANGE_END => constant_expr.

  • Ao chamar uma função de tabela do Information Schema, a sessão deve ter um esquema INFORMATION_SCHEMA em uso ou o nome da função deve ser totalmente qualificado. Para obter mais informações, consulte Snowflake Information Schema.

  • Esta função pode retornar todas as execuções feitas nos últimos 7 dias ou a próxima execução programada dentro dos próximos 8 dias.

  • As tarefas executadas durante uma falha nos serviços de nuvem podem aparecer como entradas duplicadas nos resultados desta função. Durante uma falha nos serviços de nuvem, o Snowflake pode executar novamente uma tarefa, fazendo com que a tarefa tenha dois UUIDs com tarefas diferentes SCHEDULED_TIME. Exibição TASK_HISTORY exibe apenas o UUID final da tarefa reexecutada.

  • Todas as tarefas em uma execução de gráfico de tarefas mostram a mesma saída do histórico de tarefas.

Saída

A função retorna as seguintes colunas:

Nome da coluna

Tipo de dados

Descrição

QUERY_ID

TEXT

ID da instrução SQL executada pela tarefa. Pode ser unido com a exibição QUERY_HISTORY para detalhes adicionais sobre a execução da instrução ou procedimento armazenado.

NAME

TEXT

Nome da tarefa.

DATABASE_NAME

TEXT

Nome do banco de dados que contém a tarefa.

SCHEMA_NAME

TEXT

Nome do esquema que contém a tarefa.

QUERY_TEXT

TEXT

Texto da instrução SQL.

CONDITION_TEXT

TEXT

O texto da condição de WHEN que a tarefa avalia ao determinar se ela deve ser executada.

STATE

TEXT

Status da tarefa:

  • SCHEDULED: agendado para execução.

  • EXECUTING: atualmente em execução.

  • SUCCEEDED: execução bem-sucedida.

  • FAILED: execução falhou.

  • FAILED_AND_AUTO_SUSPENDED: a tarefa falhou e foi suspensa automaticamente.

  • CANCELLED: execução cancelada.

  • SKIPPED: indica que uma execução de tarefa começou, mas o parâmetro opcional WHEN na definição de tarefa retornou um valor FALSE; portanto, a execução não retomou o warehouse (se a tarefa usar recursos de computação gerenciados pelo cliente) ou executou o código SQL na definição da tarefa.

ERROR_CODE

NUMBER

Código de erro, se a instrução tiver retornado um erro.

ERROR_MESSAGE

TEXT

Mensagem de erro, se a instrução tiver retornado um erro.

SCHEDULED_TIME

TIMESTAMP_LTZ

Hora em que a tarefa está/estava programada para começar a execução. Note que fazemos o melhor para assegurar uma precisão absoluta, mas só garantimos que as tarefas não sejam executadas antes do horário programado.

QUERY_START_TIME

TIMESTAMP_LTZ

Hora em que a consulta na definição da tarefa começou a ser executada, ou NULL se SCHEDULED_TIME estiver no futuro ou se a execução programada atual ainda não tiver começado. Este carimbo de data/hora se alinha à hora de início da consulta retornada por QUERY_HISTORY.

NEXT_SCHEDULED_TIME

TIMESTAMP_LTZ

Hora em que a tarefa autônoma ou raiz (em um Gráficos da tarefa de tarefas) está programada para começar a execução, partindo do princípio que a execução atual da tarefa autônoma ou gráfico de tarefas iniciada na hora de SCHEDULED_TIME terminará no devido tempo.

COMPLETED_TIME

TIMESTAMP_LTZ

Tempo em que a tarefa foi concluída, ou NULL se SCHEDULED_TIME estiver no futuro ou se a tarefa ainda estiver em execução.

ROOT_TASK_ID

TEXT

Identificador exclusivo para a tarefa raiz em um gráfico de tarefas. Esta ID corresponde ao valor da coluna ID na saída SHOW TASKS para a mesma tarefa.

GRAPH_VERSION

NUMBER

Número inteiro que identifica a versão do gráfico de tarefas que foi executado ou que está programado para ser executado. Cada aumento incremental no valor representa uma ou mais modificações nas tarefas no gráfico de tarefas. Se a tarefa raiz for recriada (usando CREATE OR REPLACE TASK), então o número da versão é reiniciado a partir de 1.

RUN_ID

NUMBER

Hora em que a tarefa autônoma ou raiz em um Gráficos da tarefa está/estava originalmente programada para começar a execução. O formato é a hora da época (em milissegundos). . . Horário programado original refere-se a raros casos em que o sistema pode reprogramar a mesma tarefa para ser executada em um horário diferente a fim de tentar novamente ou reequilibrar a carga. Se isso acontecer, RUN_ID mostra o tempo de execução original programado e SCHEDULED_TIME mostra o tempo de execução reprogramado. . . Observe que RUN_ID pode não ser um identificador exclusivo para a tarefa/gráfico atual executado antes da nova tentativa. Você pode usar a coluna GRAPH_RUN_GROUP_ID como substituto de RUN_ID.

RETURN_VALUE

TEXT

Valor definido para a tarefa precedente em um gráfico de tarefas. O valor de retorno é definido explicitamente chamando a função SYSTEM$SET_RETURN_VALUE pela tarefa predecessora.

SCHEDULED_FROM

TEXT

Uma das opções:

  • SCHEDULE: a tarefa foi agendada para execução normalmente, conforme descrito nas cláusulas SCHEDULE ou AFTER de CREATE TASK.

  • EXECUTE TASK: a tarefa foi agendada para execução usando EXECUTE TASK.

  • MANUAL RETRY: a tarefa foi agendada para execução usando EXECUTE TASK … RETRY LAST.

Para execuções de tarefas filho em um gráfico de tarefas, a coluna retorna o mesmo valor que a execução da tarefa raiz.

ATTEMPT_NUMBER

NUMBER

Número inteiro que representa o número de tentativas de execução desta tarefa. Inicialmente um.

CONFIG

TEXT

Exibe a configuração do nível do gráfico se definido para a tarefa raiz, caso contrário, exibe NULL.

QUERY_HASH

TEXT

O valor de hash calculado com base no texto canônico SQL.

QUERY_HASH_VERSION

NUMBER

A versão da lógica usada para calcular QUERY_HASH.

QUERY_PARAMETERIZED_HASH

TEXT

O valor de hash calculado com base na consulta parametrizada.

QUERY_PARAMETERIZED_HASH_VERSION

NUMBER

A versão da lógica usada para calcular QUERY_PARAMETERIZED_HASH.

GRAPH_RUN_GROUP_ID

NUMBER

Identificador para a execução do gráfico. Quando uma execução de gráfico tem várias execuções de tarefas, cada execução de tarefa mostrará o mesmo GRAPH_RUN_GROUP_ID. A combinação de GRAPH_RUN_GROUP_ID e ATTEMPT_NUMBER pode ser usada para identificar exclusivamente uma execução de gráfico.

BACKFILL_INFO

OBJECT

Reservado para uso futuro. O valor retornado para todas as linhas é NULL.

Exemplos

Recuperar as 100 execuções mais recentes da tarefa (concluída, ainda em execução ou programada no futuro) na conta. Observe que o número máximo de linhas retornadas pela função é limitado a 100 por padrão:

SELECT *
  FROM TABLE(INFORMATION_SCHEMA.TASK_HISTORY())
  ORDER BY SCHEDULED_TIME;
Copy

Recuperar o histórico de execução de tarefas na conta dentro de um bloco de tempo especificado de 30 minutos nos últimos 7 dias:

SELECT *
  FROM TABLE(INFORMATION_SCHEMA.TASK_HISTORY(
    SCHEDULED_TIME_RANGE_START=>TO_TIMESTAMP_LTZ('2018-11-9 12:00:00.000 -0700'),
    SCHEDULED_TIME_RANGE_END=>TO_TIMESTAMP_LTZ('2018-11-9 12:30:00.000 -0700')));
Copy

Recuperar as 10 execuções mais recentes de uma tarefa específica (concluída, ainda em execução ou programada no futuro) programada dentro da última hora:

SELECT *
  FROM TABLE(INFORMATION_SCHEMA.TASK_HISTORY(
    SCHEDULED_TIME_RANGE_START=>DATEADD('hour',-1,current_timestamp()),
    RESULT_LIMIT => 10,
    TASK_NAME=>'mytask'));
Copy

Nota

Para recuperar somente as tarefas que estão concluídas ou ainda em execução, filtrar a consulta usando WHERE query_id IS NOT NULL. Note que este filtro é aplicado depois que RESULT_LIMIT já reduz os resultados retornados, portanto a consulta poderia retornar 9 tarefas se 1 tarefa fosse agendada mas ainda não tivesse começado.

Recupere o histórico de execução de todas as tarefas no gráfico de tarefas da tarefa raiz especificada.

SELECT *
  FROM TABLE(INFORMATION_SCHEMA.TASK_HISTORY(ROOT_TASK_ID=>'d4b89013-c942-465c-bcb8-e7037a932b04'));
Copy

Recupere o histórico de execução de todas as tarefas no gráfico de tarefas da tarefa raiz consultada mais recentemente:

DESC TASK my_task
SET task_id=(SELECT "id" FROM TABLE(RESULT_SCAN(LAST_QUERY_ID())));
SELECT *
  FROM TABLE(INFORMATION_SCHEMA.TASK_HISTORY(ROOT_TASK_ID=>$task_id));
Copy