Se connecter à dbt Core
Cette page explique ce qu'est dbt, comment installer dbt Core et comment se connecter. La version hébergée de dbt, appelée dbt Cloud, est également disponible. Pour plus d'information, consultez Connecter à dbt Cloud.
Qu'est-ce que dbt ?
dbt (data build tool) est un environnement de développement pour la transformation des données par l'écriture d'instructions de sélection. dbt transforme ces instructions de sélection en tables et en vues. dbt compile votre code en SQL brut, puis exécute ce code sur la base de données spécifiée dans Databricks. dbt prend en charge les modèles de codage collaboratif et les bonnes pratiques, y compris le contrôle de version, la documentation et la modularité.
dbt n'extrait ni ne charge de données. dbt se concentre uniquement sur l'étape des transformations, en utilisant une architecture « transformer après le chargement ». dbt suppose que vous avez déjà une copie de vos données dans votre base de données.
dbt Core vous permet d'écrire du code dbt dans l'IDE de votre choix sur votre machine de développement locale, puis d'exécuter dbt à partir de la ligne de commande. dbt Core inclut la Command Line Interface (CLI) dbt. Le dbt CLI est gratuit et open source.
dbt Core (et dbt Cloud) peuvent utiliser des repository Git hébergés. Pour plus d'informations, voir Création d'un projet dbt et Utilisation d'un projet existant sur le site web de dbt.
Prérequis d'installation
Avant d'installer dbt Core, vous devez installer les éléments suivants sur votre machine de développement locale :
- Python 3.7 ou version ultérieure
- Un utilitaire pour créer des environnements virtuels Python (tel que pipenv)
Vous avez également besoin de l'un des éléments suivants pour vous authentifier :
-
(Recommandé) dbt Core activé en tant qu'application OAuth dans votre compte. C'est activé par default.
(Facultatif) IdP personnalisé pour la connexion dbt, voir Configurer la SSO dans Databricks.
-
Un jeton d'accès personnel
En tant que bonne pratique de sécurité, lorsque vous vous authentifiez avec des outils automatisés, des systèmes, des scripts et des applications, Databricks vous recommande d'utiliser des jetons OAuth.
Si vous utilisez l'authentification par jeton d'accès personnel, Databricks recommande d'utiliser des jetons d'accès personnels appartenant aux Service Principal plutôt qu'aux utilisateurs du Workspace. Pour créer des jetons pour les Service Principals, consultez Gérer les jetons pour un Service Principal.
Étape 1 : Installer l'adaptateur dbt Databricks
Nous vous recommandons d’utiliser un * environnement virtuel Python * car il isole les versions de package et les dépendances de code dans cet environnement spécifique, indépendamment des versions de package et des dépendances de code dans d’autres environnements. Cela permet de réduire les incohérences inattendues des versions de package et les collisions de dépendances de code.
Databricks recommande la version 1.8.0 ou supérieure du package dbt-databricks.
Si votre machine de développement locale utilise l'un des systèmes d'exploitation suivants, vous devez d'abord effectuer des étapes supplémentaires : CentOS, MacOS, Ubuntu, Debian et Windows. Consultez la section « Votre système d'exploitation a-t-il des prérequis ? » de Utiliser pip pour installer dbt sur le site web de dbt Labs.
Étape 2 : Créez un projet dbt et spécifiez et testez les paramètres de connexion.
Créer un dbt projet (une collection de répertoires et de fichiers associés nécessaires pour utiliser dbt). Vous configurez ensuite vos profils de connexion, qui contiennent les paramètres de connexion à un compute Databricks, à un SQL warehouse, ou aux deux. Pour renforcer la sécurité, les projets et profils dbt sont stockés par default à des emplacements distincts.
-
L'environnement virtuel étant toujours activé, exécutez la commande dbt init avec le nom du projet. Cette procédure d'exemple crée un projet nommé
my_dbt_demo.Bashdbt init my_dbt_demo -
Lorsque vous êtes invité à choisir une base de données
databricksouspark, saisissez le numéro correspondant àdatabricks. -
Lorsque l'on vous demande une valeur
host, procédez comme suit :- Pour un compute, saisissez la valeur **Hostname du serveur** à partir de l' Options avancées, JDBC/ODBC tab pour votre compute Databricks.
- Pour un SQL Warehouse, saisissez la valeur **Server Hostname** de l'onglet Connection Details de votre SQL Warehouse.
-
Lorsque vous êtes invité à saisir une valeur
http_path, faites ce qui suit :- Pour un compute, entrez la valeur du chemin HTTP à partir de la tab Options avancées, JDBC/ODBC de votre compute Databricks.
- Pour un SQL Warehouse, entrez la valeur HTTP Path de l'onglet Détails de la connexion de votre SQL Warehouse.
-
Pour choisir un type d'authentification, entrez le nombre qui correspond à
use oauth(recommandé) ouuse access token. -
Si vous avez choisi
use access tokencomme type d'authentification, saisissez la valeur de votre jeton d'accès personnel Databricks.
En tant que bonne pratique de sécurité lorsque vous vous authentifiez avec des outils, des systèmes, des scripts et des applications automatisés, Databricks vous recommande d'utiliser des jetons OAuth.
Si vous utilisez l'authentification par jeton d'accès personnel, Databricks recommande d'utiliser des jetons d'accès personnels appartenant aux Service Principal plutôt qu'aux utilisateurs du Workspace. Pour créer des jetons pour les Service Principals, consultez Gérer les jetons pour un Service Principal.
-
Lorsque vous êtes invité à saisir la valeur du
desired Unity Catalog optionparameter, entrez le nombre qui correspond àuse Unity Catalogounot use Unity Catalog. -
Si vous choisissez d'utiliser Unity Catalog, saisissez la valeur souhaitée pour
cataloglorsque vous y êtes invité. -
Saisissez les valeurs souhaitées pour
schemaetthreadslorsque vous y êtes invité. -
dbt écrit vos entrées dans un fichier
profiles.yml. L'emplacement de ce fichier est répertorié dans la sortie de la commandedbt init. Vous pouvez également lister cet emplacement ultérieurement en exécutant la commandedbt debug --config-dir. Vous pouvez ouvrir ce fichier maintenant pour examiner et vérifier son contenu.Si vous avez choisi
use oauthcomme type d'authentification, ajoutez votre profil d'authentification machine-à-machine (M2M) ou utilisateur-à-machine (U2M) àprofiles.yml.Voici un exemple de fichier
profiles.ymlavec le profilaws-oauth-u2mspécifié. Spécifieraws-oauth-u2mpourtargetdéfinit le profil U2M comme le profil d’exécution par default utilisé par dbt.my_dbt_demo:
outputs:
aws-oauth-u2m:
catalog: uc_demos
host: "xxx.cloud.databricks.com"
http_path: "/sql/1.0/warehouses/9196548d010cf14d"
schema: databricks_demo
threads: 1
type: databricks
auth_type: oauth
target: aws-oauth-u2mDatabricks ne recommande pas de spécifier les secrets directement dans
profiles.yml. Plutôt, définissez l'ID client et le secret client comme variables d'environnement. -
Confirmez les détails de la connexion en exécutant la commande
dbt debugsur le répertoiremy_dbt_demo.Si vous avez choisi
use oauthcomme type d'authentification, vous êtes invité à vous connecter avec votre fournisseur d'identité.
Avant de commencer, vérifiez que votre compute ou votre SQL Warehouse est en cours d'exécution.
Vous devriez voir une sortie similaire à ce qui suit :
cd my_dbt_demo
dbt debug
...
Configuration:
profiles.yml file [OK found and valid]
dbt_project.yml file [OK found and valid]
Required dependencies:
- git [OK found]
Connection:
...
Connection test: OK connection ok
Étapes suivantes
- Créez, exécutez et testez des modèles dbt Core localement. Consultez le tutoriel dbt Core.
- Exécutez les projets dbt Core en tant que tâches de Job Databricks. Voir Utiliser les transformations dbt dans les Lakeflow Jobs.