Déployer des objets de projet dbt¶
In dbt Projects on Snowflake, deploying a dbt project object means copying your dbt project code into Snowflake to create the object or update it with a new
version. You do this with Snowsight, CREATE DBT PROJECT or ALTER DBT PROJECT SQL commands, or the snow dbt deploy command in
the Snowflake CLI.
Déployer un objet de projet dbt à l’aide de Snowsight¶
Deploying a dbt project object in Snowsight takes the dbt code in your workspace and creates a new or updates an existing dbt project object.
Pour déployer un objet de projet dbt dans Snowsight, exécutez la commande dbt deps, puis suivez les étapes suivantes :
Connectez-vous à Snowsight.
Dans le menu de navigation, sélectionnez Projects » Workspaces.
Dans le menu Workspaces, sélectionnez l’espace de travail qui contient votre projet dbt.
Vérifiez que vos fichiers dbt sont au bon endroit.
Pour vérifier que tout fonctionne correctement, exécutez la commande
dbt compile,dbt runou dbt build, comme suit :Sous l’éditeur d’espace de travail, ouvrez l’onglet Output pour que vous puissiez voir stdout après avoir exécuté des commandes dbt à partir de l’espace de travail.
Dans la barre de menu au-dessus de l’éditeur d’espace de travail, vérifiez que le bon Project et le bon Profile sont sélectionnés.
Dans la liste de commandes, sélectionnez dbt compile,
dbt runou dbt build, puis cliquez sur le bouton d’exécution. Cette étape analyse votre projet.
Dans le coin supérieur droit de votre espace de travail, sélectionnez Connect, puis sélectionnez l’un des éléments suivants :
Deploy dbt project pour vous connecter à un nouveau projet dbt. Lors du premier déploiement, cela crée un objet de projet dbt au niveau du schéma.
Existing dbt deployment to connect to an existing dbt project. Deploying adds a new version to the existing dbt project object (equivalent to
ALTER DBT PROJECT … ADD VERSION FROM 'snow://workspace/…/versions/last').
Dans la fenêtre contextuelle Deploy dbt project, sélectionnez les éléments suivants :
Sous Select location, sélectionnez votre base de données et votre schéma.
Under Select or Create dbt project, select Create dbt project.
Saisissez un nom et une description.
Optionally, enter a default target to choose which profile will be used for compilation and subsequent runs (for example, prod). The target of a dbt project object execution can still be overridden with
--targetinARGS.En option, sélectionnez Run dbt deps, puis sélectionnez votre intégration d’accès externe pour exécuter
dbt depsautomatiquement pendant le déploiement.
Sélectionnez Deploy.
L’onglet Output affiche la commande s’exécutant sur Snowflake, qui est similaire à l’exemple suivant :
Le menu Connect affiche maintenant le nom de l’objet de projet dbt que vous avez créé, avec les options suivantes :
Redeploy dbt project: Updates the dbt project object with the current workspace version of the project by using ALTER. This increments the version of the dbt project object by one. For more information, see Versions for dbt project objects and files.
Disconnect : Déconnecte l’espace de travail de l’objet de projet dbt, mais ne supprime pas l’objet de projet dbt.
Edit project : Met à jour le commentaire, la cible par défaut et l’intégration d’accès externe pour l‘objet de projet dbt.
View project : Ouvre l’objet de projet dbt dans l’explorateur d’objets, où vous pouvez voir la commande CREATE DBT PROJECT pour l’objet de projet dbt et l’historique d’exécution du projet.
Create schedule: Provides options for you to create a task that runs the dbt project object on a schedule. For more information, see Schedule execution of dbt project objects on Snowflake.
View schedules : Ouvre une liste de planifications (tâches) qui exécutent l’objet de projet dbt, avec la possibilité d’afficher les détails des tâches dans l’explorateur d’objets.
Optionally, confirm your dbt project object exists by running the SHOW DBT PROJECTS command in a worksheet, for example:
Déployer un objet de projet dbt à l’aide de commandes SQL¶
Les commandes CREATE DBT PROJECT et ALTER DBT PROJECT copient les fichiers spécifiés dans la clause FROM de l’instruction pour créer et ajouter de nouvelles versions à un objet de projet dbt, respectivement.
La commande CREATE DBT PROJECT crée un nouvel objet avec une seule version initiale (par exemple, VERSION$1), comme illustré ci-dessous.
La commande ALTER DBT PROJECT crée une nouvelle version dans l’objet existant avec un numéro de version unique et incrémenté (par exemple, VERSION$2, VERSION$3, etc.).
Déployer un objet de projet dbt à l’aide de Snowflake CLI¶
La commande snow dbt deploy charge des fichiers locaux dans une zone de préparation temporaire et crée un nouvel objet de projet dbt, le met à jour en produisant une nouvelle version, ou le recrée complètement. Un projet dbt valide doit contenir deux fichiers :
dbt_project.yml: Un fichier de configuration dbt standard qui spécifie le profil à utiliser.profiles.yml: Une définition du profil de connexion dbt référencée dansdbt_project.yml.profiles.yamldoit définir la base de données, le rôle, le schéma et le type.Par défaut, dbt Projects on Snowflake utilise votre schéma cible (
target.schema) spécifié à partir de votre environnement dbt ou de votre profil dbt. Contrairement au comportement dbt Core, le schéma cible spécifié dans le fichierprofiles.ymldoit exister avant que vous ne créiez votre projet dbt pour qu’il puisse être correctement compilé ou exécuté.
Les exemples suivants montrent comment utiliser la commande déploiement snow dbt :
Déployez un objet de projet dbt nommé
jaffle_shop:Déployez un projet nommé
jaffle_shopà partir d’un répertoire spécifié et créez ou ajoutez une nouvelle version selon que l’objet de projet dbt existe déjà ou non :Deploy a project named
jaffle_shopfrom a specified directory using a custom profiles directory, a specific dbt version, and enabling external access integrations:Deploy a project named
jaffle_shopand set a specific version for the dbt project object:
Emplacements des fichiers sources¶
The dbt project object source files can be in any one of the following locations:
Une zone de préparation de référentiel Git, par exemple :
'@my_db.my_schema.my_git_repository_stage/branches/my_branch/path/to/dbt_project_or_projects_parent'Pour plus d’informations sur la création d’un objet de référentiel Git dans Snowflake qui connecte un référentiel Git à un espace de travail pour dbt Projects on Snowflake, voir Créer un espace de travail connecté à votre dépôt Git. Pour plus d’informations sur la création et la gestion d’un objet de référentiel Git et d’une zone de préparation sans utiliser d’espace de travail, voir Utilisation d’un référentiel Git dans Snowflake et CREATE GIT REPOSITORY.
Une zone de préparation de projet dbt existante, par exemple :
'snow://dbt/my_db.my_schema.my_existing_dbt_project_object/versions/last'The version specifier is required and can be
last(as shown in the previous example),first, or the specifier for any existing version in the formversion$<num>. For more information, see Versions for dbt project objects and files.Une zone de préparation interne nommée, par exemple :
'@my_db.my_schema.my_internal_named_stage/path/to/dbt_projects_or_projects_parent'Les zones de préparation d’utilisateur internes et les zones de préparation de table ne sont pas prises en charge.
Un espace de travail pour dbt sur Snowflake, par exemple :
'snow://workspace/user$.public."my_workspace_name"/versions/live/path/to/dbt_projects_or_projects_parent'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.
The version specifier is required and can be
last,first,live, or the specifier for any existing version in the formversion$<num>. For more information, see Versions for dbt project objects and files.