Catégories :

Fonctions système (Informations système)

SYSTEM$GET_DBT_LOG

Renvoie les journaux pour l’exécution spécifiée d’un dbt Projects on Snowflake.

Utilisez cette fonction avec la fonction DBT_PROJECT_EXECUTION_HISTORY pour accéder aux artefacts et aux journaux dbt par programmation.

Syntaxe

SYSTEM$GET_DBT_LOG ( '<query_id>' )
Copy

Arguments

query_id

ID de requête de l’exécution pour laquelle vous souhaitez des journaux.

Renvoie

La fonction renvoie les 1 000 dernières lignes du fichier dbt.log. Pour les journaux complets, téléchargez le fichier ZIP d’archive.

Pour plus d’informations et d’exemples, voir Accéder aux artefacts et aux journaux dbt de manière programmatique.

Exigences en matière de contrôle d’accès

Cette fonction comprend uniquement les exécutions à partir d’espaces de travail et de projets dbt pour lesquels vous disposez des privilèges suivants :

  • OWNERSHIP ou USAGE pour les espaces de travail

  • OWNERSHIP, USAGE ou MONITOR pour les projets dbt

Le privilège USAGE relatif à la base de données et au schéma parents est exigé pour effectuer des opérations sur tout objet d’un schéma. Notez qu’un rôle doté d’un privilège quelconque sur un schéma permet à ce rôle de résoudre le schéma. Par exemple, un rôle doté du privilège CREATE sur un schéma peut créer des objets sur ce schéma sans également avoir le privilège USAGE attribué sur ce schéma.

Pour obtenir des instructions sur la création d’un rôle personnalisé avec un ensemble spécifique de privilèges, voir Création de rôles personnalisés.

Pour des informations générales sur les rôles et les privilèges accordés pour effectuer des actions SQL sur des objets sécurisables, voir Aperçu du contrôle d’accès.

Notes sur l’utilisation

  • Cette fonction système fonctionne uniquement sur les objets de projet dbt ; elle n’est pas disponible pour les espaces de travail.

  • Les IDs de requête générés depuis CREATE DBT PROJECT ou ALTER DBT PROJECT … ADD VERSION ne sont pas pris en charge pour cette fonction système.

  • L’interrogation directe du contenu de fichiers (par exemple, Exemples de requête) n’est pas prise en charge.

  • Si query_id est NULL ou n’est pas une exécution dbt, vous obtiendrez une erreur.

  • Les résultats du projet dbt sont disponibles pour un maximum de 14 jours.

  • Les journaux peuvent être indisponibles si une exécution expire, est annulée ou échoue avant le chargement des fichiers. Dans ce cas, les exécutions apparaissent comme UNHANDLED ERROR dans l’historique dbt, et ces entrées peuvent ne pas inclure de journaux.

  • Vous ne pouvez pas utiliser cette fonction pour obtenir des journaux sur les exécutions en cours, car le fichier des journaux n’est disponible qu’une fois l’exécution terminée.

Exemples

L’exemple suivant recherche la dernière exécution de projet dbt pour MY_DBT_PROJECT utilisant DBT_PROJECT_EXECUTION_HISTORY puis récupère les journaux d’exécution dbt pour cette exécution à l’aide de SYSTEM$GET_DBT_LOG, afin que vous puissiez vérifier ce qu’il s’est passé pendant l’exécution.

--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

Pour plus d’informations, voir Accéder aux artefacts et aux journaux dbt de manière programmatique.