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>' )
Copy

Argumentos

query_id

ID 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

A operação em um objeto de esquema requer pelo menos um privilégio no banco de dados pai e um privilégio no esquema pai.

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_id for 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 ERROR no 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);
Copy
============================== 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.