- Categorias:
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 } ] )
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
a10000
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/ouSCHEDULED_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:
|
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. |
INSTANCE_ID |
NUMBER |
Identificador interno/gerado pelo sistema para a tarefa. |
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 é hora de época (em milissegundos). A combinação dos valores ROOT_TASK_ID e RUN_ID identifica uma execução específica de um DAG. . 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 programado original e SCHEDULED_TIME mostra o tempo de execução reprogramado. |
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_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 |
- 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;
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')));
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'));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 queRESULT_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.