EXECUTE DBT PROJECT¶
Exécute l’objet de projet dbt spécifié ou le projet dbt dans un espace de travail Snowflake en utilisant la commande dbt et les options de ligne de commande spécifiées.
- Voir aussi :
CREATE DBT PROJECT, ALTER DBT PROJECT, DESCRIBE DBT PROJECT, DROP DBT PROJECT, SHOW DBT PROJECTS
Syntaxe¶
Exécute l’objet de projet dbt avec le nom spécifié.
Syntaxe des variantes¶
Exécute le projet dbt qui est enregistré dans un espace de travail avec le nom d’espace de travail spécifié. L’utilisateur qui possède l’espace de travail doit être l’utilisateur qui exécute cette variante de commande.
Paramètres requis¶
nameLors de l’exécution d’un objet de projet dbt, spécifie le nom de l’objet de projet dbt à exécuter.
Lors de l’exécution d’un projet dbt en utilisant l’option FROM WORKSPACE, spécifie le nom de l’espace de travail pour dbt Projects on Snowflake. Le nom de l’espace de travail est toujours spécifié en référence au schéma
publicde la base de données personnelle de l’utilisateur, indiqué par le signeuser$.Il est recommandé de mettre le nom de l’espace de travail entre guillemets doubles, car les noms d’espace de travail sont sensibles à la casse et peuvent contenir des caractères spéciaux.
L’exemple suivant montre une référence de nom d’espace de travail :
user$.public."My dbt Project Workspace"
Paramètres facultatifs¶
ARGS = '[ dbt_command ] [ --dbt_cli_option option_value_1 [ ... ] [ ... ] ]'Specifies the dbt command and supported command-line options to use when the dbt project object executes. This is a literal string that must conform to the syntax and requirements of dbt CLI commands.
If no value is specified, the dbt project object executes with the dbt command and command-line options specified in the dbt project object definition. If you specify dbt CLI options without specifying a dbt command, the dbt
runcommand executes by default.Par défaut : aucune valeur
DBT_VERSION = 'version_number'Specifies a version for the dbt project object.
Default: When you execute a dbt project object, the system uses the default version you specified when creating the dbt project object. If none was specified, the system uses
1.9.4by default.Pour plus d’informations, voir Versions dbt Core prises en charge pour dbt Projects on Snowflake.
PROJECT_ROOT = 'subdirectory_path'Spécifie le chemin de sous-répertoire vers le fichier
dbt_project.ymldans l’objet de projet dbt ou l’espace de travail. Ce paramètre n’est pris en charge que lors de l’exécution d’un projet dbt en utilisant l’option FROM WORKSPACE.If no value is specified, the dbt project object executes with the
dbt_project.ymlfile in the root directory of the dbt project object.Si aucun fichier
dbt_project.ymln’existe dans le répertoire racine ou dans le sous-répertoire PROJECT_ROOT, une erreur se produit.Par défaut : aucune valeur
Sortie¶
Colonne |
Description |
|---|---|
|
|
|
Any exception message returned by the dbt project execution. If the dbt project object executes successfully, the string |
|
La sortie standard renvoyée par l’exécution du projet dbt. |
|
L’URL de l’archive de sortie qui contient les fichiers de sortie de l’exécution du projet dbt. Cela inclut les fichiers journaux et les artefacts que dbt écrit sur le répertoire |
Exigences en matière de contrôle d’accès¶
Un rôle utilisé pour exécuter cette commande SQL doit avoir au moins l’un des privilèges suivants définis au minimum ainsi :
Privilège |
Objet |
|---|---|
USAGE |
projet dbt |
Pour effectuer une opération sur un objet dans un schéma, il est nécessaire de disposer d’au moins un privilège sur la base de données parente et d’au moins un privilège sur le schéma parent.
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.
Note
La commande dbt spécifiée dans EXECUTE DBT PROJECT s’exécute avec les privilèges du role spécifié dans le bloc outputs du fichier profiles.yml des projets. Les opérations sont en outre limitées aux seuls privilèges accordés à l’utilisateur Snowflake appelant EXECUTE DBT PROJECT. L’utilisateur et le rôle spécifiés doivent tous deux disposer des privilèges requis pour utiliser l”warehouse, effectuer des opérations sur les database et schema spécifiés dans le fichier profiles.yml du projet, et effectuer des opérations sur tous les autres objets Snowflake que le modèle dbt spécifie.
Exemples¶
Commande d’exécution par défaut avec cible et modèles spécifiés
Commande d’exécution explicite avec modèles en aval spécifiés
Commande d’exécution par défaut avec cible et modèles spécifiés¶
Exécutez une run dbt ciblant le profile dev dans le fichier dbt_project.yml dans le répertoire racine de l’objet de projet dbt et sélectionnant trois modèles dans le DAG du projet. Aucune commande run n’est explicitement spécifiée et n’est exécutée par défaut.
Commande de test explicite avec cible et modèles spécifiés¶
Exécutez une commande test dbt ciblant le profil prod dans le fichier dbt_project.yml dans le répertoire racine de l’objet de projet dbt et sélectionnant trois modèles dans le DAG du projet.
Commande d’exécution explicite avec modèles en aval spécifiés¶
Exécutez une commande run dbt ciblant le profil dev dans le fichier dbt_project.yml et sélectionnant tous les modèles en aval du modèle simple_customers utilisant la notation + dbt.
Execute and test dbt project objects using production tasks¶
Créez une tâche pour une cible de dbt de production qui exécute une commande run sur un intervalle de six heures. Créez ensuite une tâche qui exécute la commande test dbt après la fin de chaque tâche run dbt. La commande EXECUTE DBT PROJECT pour chaque tâche cible le profil prod dans le fichier dbt_project.yml dans le répertoire racine de l’objet de projet dbt.
Remplacer la version épinglée du projet au moment de l’exécution à des fins de test ou de besoins temporaires¶
my_dbt_project is pinned to 1.9.4. This execution overrides the dbt project object’s default 1.9.4 version: