- Categorias:
Funções do sistema (Informações do sistema)
SYSTEM$GET_DBT_LOG¶
Retorna os logs da execução especificada para um dbt Projects on Snowflake.
Use essa função com a função DBT_PROJECT_EXECUTION_HISTORY para acessar artefatos e logs dbt programaticamente.
Sintaxe¶
SYSTEM$GET_DBT_LOG ( '<query_id>' )
Argumentos¶
query_idID da consulta da execução para a qual você deseja os logs.
Retornos¶
A função retorna as últimas mil linhas do arquivo dbt.log. Para obter os logs completos, baixe o arquivo compactado ZIP.
Para obter mais informações e exemplos, consulte Acesso programático a artefatos e logs do dbt.
Requisitos de controle de acesso¶
Esta função inclui apenas execuções de espaços de trabalho e projetos dbt nos quais você tem os seguintes privilégios:
OWNERSHIP ou USAGE em espaços de trabalho
OWNERSHIP, USAGE ou MONITOR em projetos dbt
O privilégio USAGE no banco de dados e no esquema pai é necessário para executar operações em qualquer objeto de um esquema. Observe que uma função com privilégio concedido em um esquema permite que essa função resolva o esquema. Por exemplo, uma função com privilégio CREATE concedido em um esquema pode criar objetos nesse esquema sem também ter USAGE concedido nesse esquema.
Para instruções sobre como criar uma função personalizada com um conjunto específico de privilégios, consulte Criação de funções personalizadas.
Para informações gerais sobre concessões de funções e privilégios para executar ações de SQL em objetos protegíveis, consulte Visão geral do controle de acesso.
Notas de uso¶
Esta função do sistema funciona apenas em objetos de projeto dbt; ela não está disponível para espaços de trabalho.
IDs de consulta gerados a partir de CREATE DBT PROJECT ou ALTER DBT PROJECT … ADD VERSION não são compatíveis com esta função do sistema.
Consultas diretas do conteúdo do arquivo (por exemplo, Exemplos de consulta) não são compatíveis.
Se
query_idfor NULL ou não for uma execução dbt, você receberá um erro.Os resultados do projeto dbt ficam disponíveis por até 14 dias.
Os logs poderão não estar disponíveis se uma execução expirar, for cancelada ou falhar antes do upload dos arquivos. Nesses casos, as execuções aparecem como
UNHANDLED ERRORno histórico do dbt, e essas entradas podem não incluir logs.Você não pode usar essa função para obter logs de execuções em andamento, pois o arquivo de logs só fica disponível após a conclusão da execução.
Exemplos¶
O exemplo a seguir pesquisa a execução mais recente do projeto dbt para MY_DBT_PROJECT usando DBT_PROJECT_EXECUTION_HISTORY e, em seguida, busca os logs de execução do dbt para essa execução usando SYSTEM$GET_DBT_LOG, para que você possa inspecionar o que aconteceu durante a execução.
--Look up the most recent dbt Project execution
SET latest_query_id = (SELECT query_id
FROM TABLE(INFORMATION_SCHEMA.DBT_PROJECT_EXECUTION_HISTORY())
WHERE OBJECT_NAME = 'MY_DBT_PROJECT'
ORDER BY query_end_time DESC LIMIT 1);
--Get the dbt run logs for the most recent dbt Project execution
SELECT SYSTEM$GET_DBT_LOG($latest_query_id);
============================== 15:14:53.100781 | 46d19186-61b8-4442-8339-53c771083f16 ==============================
[0m15:14:53.100781 [info ] [Dummy-1 ]: Running with dbt=1.9.4
...
[0m15:14:58.198545 [debug] [Dummy-1 ]: Command `cli run` succeeded at 15:14:58.198121 after 5.19 seconds
Para obter mais informações, consulte Acesso programático a artefatos e logs do dbt.