- Categorias:
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>'] )
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
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.
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
eSCHEDULED_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:
|
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:
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_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 |
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;
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.
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'));
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));