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é.
EXECUTE DBT PROJECT [ IF EXISTS ] <name>
[ ARGS = '[ <dbt_command> ] [ --<dbt_cli_option> <option_value_1> [ ... ] ] [ ... ]' ]
[ PROJECT_ROOT = '<subdirectory_path>' ]
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.
EXECUTE DBT PROJECT [ IF EXISTS ] [ FROM WORKSPACE <name> ]
[ ARGS = '[ <dbt_command> ] [ --<dbt_cli_option> <option_value_1> [ ... ] [ ... ] ]' ]
[ PROJECT_ROOT = '<subdirectory_path>' ]
Paramètres requis¶
name
Lors 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
public
de 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 [ ... ] [ ... ] ]'
Spécifie la commande dbt et les options de ligne de commande prises en charge à exécuter lors de l’exécution du projet dbt. Il s’agit d’une chaîne littérale qui doit être conforme à la syntaxe et aux exigences des commandes CLI dbt.
Si aucune valeur n’est spécifiée, le projet dbt s’exécute avec la commande dbt et les options de ligne de commande spécifiées dans la définition de l’objet du projet dbt. Si vous spécifiez les options CLI dbt sans spécifier de commande dbt, la commande
run
dbt s’exécute par défaut.Important
Les arguments que vous spécifiez explicitement dans une commande EXECUTE DBT PROJECT remplacent tous les DEFAULT_ARGS spécifiés dans la définition du PROJECT DBT.
Par défaut : aucune valeur
PROJECT_ROOT = 'subdirectory_path'
Spécifie le chemin de sous-répertoire vers le fichier:file:
dbt_project.yml
dans l’objet de projet dbt ou l’espace de travail.Si aucune valeur n’est spécifiée, le projet dbt s’exécute avec le fichier
dbt_project.yml
dans le répertoire racine de l’objet de projet dbt.Si aucun fichier
dbt_project.yml
n’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 |
---|---|
|
|
|
Tout message d’exception renvoyé par l’exécution du projet dbt. Si le projet dbt s’exécute avec succès, la chaîne |
|
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 |
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.
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
Exécuter et tester des projets dbt à l’aide de tâches de production
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.
EXECUTE DBT PROJECT my_database.my_schema.my_dbt_project
ARGS = '--select simple_customers combined_bookings prepped_data --target dev';
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.
EXECUTE DBT PROJECT my_database.my_schema.my_dbt_project
ARGS = '--select simple_customers combined_bookings prepped_data --target prod';
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 DBT PROJECT my_database.my_schema.my_dbt_project
ARGS = 'run --select simple_customers+ --target dev';
Commande d’exécution par défaut spécifiant un projet de sous-répertoire avec exécution par défaut et DEFAULT ARGS à partir de la définition de l’objet de projet dbt¶
Pour un objet de projet dbt contenant des sous-répertoires pour trois projets dbt, exécutez une commande run
dbt pour le projet dbt dans le sous-répertoire project2
. La commande d’exécution est supposée, et la commande cible le profil dev
, qui a été spécifié à l’aide des DEFAULT ARGS dans la définition du PROJECT DBT.
EXECUTE DBT PROJECT my_database.my_schema.my_parent_dbt_project PROJECT_ROOT = 'project2';
Exécuter et tester des projets dbt à l’aide de tâches de production¶
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.
CREATE OR ALTER TASK my_database.my_schema.run_dbt_project
WAREHOUSE = my_warehouse
SCHEDULE = '6 hours'
AS
EXECUTE DBT PROJECT my_database.my_schema.my_dbt_project args='run --target prod';
CREATE OR ALTER TASK change_this.public.test_dbt_project
WAREHOUSE = my_warehouse
AFTER run_dbt_project
AS
EXECUTE DBT PROJECT my_database.my_schema.my_dbt_project args='test --target prod';