Aller au contenu principal

Tâche dbt pour les jobs

Utilisez la tâche dbt pour configurer et exécuter des projets dbt sur Databricks.

important

Lorsque les tâches dbt s’exécutent, Databricks injecte le DBT_ACCESS_TOKEN pour le principal configuré dans le champ Exécuter en tant que .

Exigences

Le principal configuré dans le champ **Exécuter en tant que** doit disposer :

  • Peut utiliser sur le SQL Warehouse qui exécute le SQL généré par dbt.
  • Les privilèges Unity Catalog dont vos modèles dbt ont besoin. Par exemple, USE CATALOG et USE SCHEMA sur le catalogue et le schéma cibles, et SELECT ou MODIFY sur les objets que les modèles lisent et écrivent.

Configurer une tâche dbt

Ajoutez une tâche dbt depuis l'onglet tab dans l'interface utilisateur des jobs en procédant comme suit :

  1. Cliquez sur Icône Plus. Ajouter une tâche .

  2. Saisissez un nom dans le champ Nom de la tâche .

  3. Dans le menu déroulant Type , sélectionnez dbt.

  4. Dans le menu déroulant Source , vous pouvez sélectionner Workspace pour utiliser un projet dbt situé dans un dossier de Workspace Databricks ou Fournisseur Git pour un projet situé dans un repository Git distant.

    • Si vous sélectionnez **Workspace**, utilisez le navigateur de fichiers fourni pour sélectionner le **répertoire du projet**.

    • Si vous sélectionnez fournisseur Git , cliquez sur Modifier pour saisir les informations Git pour le repository du projet. Consultez Utiliser Git avec les Lakeflow Jobs.

      Si votre projet n’est pas dans le répertoire racine du repo, utilisez le champ Répertoire du projet pour en spécifier le chemin.

  5. Les zones de texte commandes dbt default aux commandes « dbt deps », « dbt seed » et « dbt run ». Les commandes fournies s’exécutent dans l’ordre séquentiel. Ajoutez, supprimez ou modifiez ces champs si nécessaire pour votre flux de travail. Voir les commandes dbt.

  6. Dans SQL Warehouse , sélectionnez un SQL Warehouse pour exécuter le SQL généré par dbt. Le menu déroulant SQL Warehouse n'affiche que les SQL Warehouses serverless et Pro.

  7. Précisez un catalogue de warehouse . Si non défini, la valeur par défaut du Workspace est utilisée.

  8. Spécifiez un schéma de warehouse . Par default, le schéma default est utilisé.

  9. Choisissez **dbt CLI compute** pour exécuter dbt Core. Databricks recommande d’utiliser un compute serverless pour les jobs ou un compute Jobs classique configuré avec un cluster à un seul nœud.

  10. Spécifiez une version dbt-databricks pour la tâche.

    Si vous utilisez le compute Serverless, utilisez le champ Environnement et bibliothèques pour sélectionner, modifier ou ajouter un nouvel environnement. Voir Configurer l'environnement Serverless.

    Pour toutes les autres configurations de compute, le champ **Bibliothèques dépendantes** est renseigné à dbt-databricks>=1.0.0,<2.0.0 par default. Supprimez ce paramètre et Icône Plus. ajoutez une bibliothèque PyPi pour pin une version.

remarque

Databricks vous recommande d'épingler vos tâches dbt à une version spécifique du package dbt-databricks pour garantir que la même version est utilisée pour les exécutions de développement et de production. Databricks recommande la version 1.6.0 ou supérieure du package dbt-databricks.

  1. (Facultatif) Pour configurer les nouvelles tentatives, les threshold de durée d'exécution ou de backlog de streaming, ou les notifications, consultez Paramètres de tâches avancés.

  2. Cliquez sur Enregistrer la tâche .

Pour modifier, cloner, désactiver ou supprimer cette tâche, consultez Configurer et modifier les tâches dans Lakeflow Jobs.

commandes dbt

Le champ **commandes dbt** vous permet de spécifier les commandes à exécuter à l'aide de l'interface de ligne de commande (CLI) dbt. Pour plus de détails sur le dbt CLI, consultez la documentation dbt.

Consultez la documentation dbt pour connaître les commandes prises en charge par la version de dbt spécifiée.

Transmettre des options aux commandes dbt

La syntaxe de sélection des nœuds dbt vous permet de spécifier les ressources à inclure ou à exclure dans une exécution particulière. Des commandes telles que run et build acceptent des flags, notamment --select et --exclude. Consultez la documentation de présentation de la syntaxe dbt pour une description complète.

Des indicateurs de configuration supplémentaires contrôlent la manière dont dbt exécute votre projet. Consultez la colonne **Options de ligne de commande** dans la documentation officielle de dbt pour une liste des flags disponibles.

Certains indicateurs prennent des arguments positionnels. Certains arguments d'indicateur sont des chaînes. Consultez la documentation dbt pour des exemples et des explications.

Transmettre des variables aux commandes dbt

Utilisez le flag --vars pour transmettre des valeurs statiques ou dynamiques aux commandes dans les champs commandes dbt .

Vous transmettez un JSON délimité par des guillemets simples à --vars. Toutes les clés et valeurs du JSON doivent être délimitées par des guillemets doubles, comme dans l'exemple suivant :

dbt run --vars '{"volume_path": "/Volumes/path/to/data", "date": "2024/08/16"}'

Exemples de commandes dbt paramétrées

Vous pouvez référencer les valeurs de tâche, les paramètres de Job et les paramètres de Job dynamiques lorsque vous travaillez avec dbt. Les valeurs sont substituées en texte brut dans le champ **commandes dbt** avant l'exécution de la commande. Pour plus d'information sur le passage de valeurs entre les tâches ou le référencement des métadonnées de Job, consultez Paramétrer les Jobs.

Ces exemples supposent que les paramètres de Job suivants ont été configurés :

Nom du paramètre

Valeur du paramètre

volume_path

/Volumes/path/to/data

table_name

my_table

select_clause

--select "tag:nightly"

dbt_refresh

--full-refresh

Nom du paramètre

Valeur du paramètre

volume_path

/Volumes/path/to/data

table_name

my_table

select_clause

--select "tag:nightly"

dbt_refresh

--full-refresh

Voici les exemples valides pour faire référence à ces paramètres :

dbt run '{"volume_path": "{{job.parameters.volume_path}}"}'
dbt run --select "{{job.parameters.table_name}}"
dbt run {{job.parameters.select_clause}}
dbt run {{job.parameters.dbt_refresh}}
dbt run '{"volume_path": "{{job.parameters.volume_path}}"}' {{job.parameters.dbt_refresh}}

Vous pouvez également référencer des parameters dynamiques et des valeurs de tâches, comme dans les exemples suivants :

dbt run --vars '{"date": "{{job.start_time.iso_date}}"}'
dbt run --vars '{"sales_count": "{{tasks.sales_task.values.sales_count}}"}'

Ressources supplémentaires