Categorias:

Information Schema , Funções de tabela

TASK_HISTORY

Esta função de tabela pode ser usada 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 utilização da tarefa para toda sua conta Snowflake ou para uma tarefa específica.

Nota

Esta função retorna a atividade da tarefa nos últimos 7 dias ou a próxima execução programada dentro dos próximos 8 dias.

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 } ] )
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 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.

Se o intervalo não ficar dentro dos últimos 7 dias, um erro é retornado.

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.

Notas de uso

  • Retorna resultados somente para a função ACCOUNTADMIN, o proprietário da tarefa (ou seja, a função com o privilégio OWNERSHIP para a 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 que são concluídas (isto é, com um estado SUCCEEDED, FAILED ou CANCELLED) tendem a ser programadas mais cedo, de modo que geralmente são retornadas mais tarde, em ordem nos resultados da busca.

    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, especialmente se o valor RESULT_LIMIT for relativamente baixo. Para consultar o histórico de tarefas que já foram executadas, o Snowflake recomenda usar uma combinação dos argumentos SCHEDULED_TIME_RANGE_START => constant_expr e/ou 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 detalhes, 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.

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 DAG de tarefas) está programada para começar a executar, partindo do princípio que a execução atual da tarefa autônoma ou DAG 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 DAG. 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 DAG que foi executado, ou que está programado para ser executado. Cada aumento incremental no valor representa uma ou mais modificações nas tarefas no DAG. 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 DAG 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 DAG. O valor de retorno é definido explicitamente chamando a função SYSTEM$SET_RETURN_VALUE pela tarefa predecessora.

SCHEDULED_FROM

TEXT

Mecanismo que motivou a execução da tarefa: SCHEDULE indica que a execução da tarefa foi iniciada pelo cronograma na definição da tarefa. EXECUTE TASK indica que a execução da tarefa foi iniciada por uma execução de da instrução EXECUTE TASK. Para execuções de tarefas filho em um DAG, 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. 1

QUERY_HASH_VERSION

NUMBER

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

QUERY_PARAMETERIZED_HASH

TEXT

O valor de hash calculado com base na consulta parametrizada. 1

QUERY_PARAMETERIZED_HASH_VERSION

NUMBER

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

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

Reserved for future use. The returned value for all rows is NULL.

1(1,2,3,4)

Esta coluna está presente somente quando o pacote de mudança de comportamento 2023_06 está ativado. Esta coluna faz parte do recurso hash de consulta.

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. Para alterar o número de linhas devolvidas, modifique o valor do argumento RESULT_LIMIT:

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.