Partager via


Développer des pipelines déclaratifs Spark Lakeflow avec des bundles de ressources Databricks

Les bundles de ressources Databricks, également appelés bundles, vous permettent de valider, déployer et exécuter des ressources Azure Databricks telles que des pipelines déclaratifs Spark Lakeflow. Voir Qu’est-ce que les offres groupées de ressources Databricks ?.

Cette page explique comment créer un bundle pour gérer par programme un pipeline. Consultez pipelines déclaratifs Lakeflow Spark. L’offre groupée est créée à l’aide du modèle de bundle par défaut Databricks Asset Bundles pour Python, qui définit un pipeline ETL et un travail pour l’exécuter. Vous validez, déployez et exécutez ensuite le pipeline déployé dans l’espace de travail Azure Databricks.

Conseil

Si vous avez des pipelines existants créés à l’aide de l’interface utilisateur Azure Databricks ou de l’API que vous souhaitez déplacer vers des bundles, vous devez les définir dans les fichiers de configuration d’un bundle. Databricks vous recommande de créer d’abord un bundle à l’aide des étapes ci-dessous, puis d’ajouter la configuration et d’autres sources au bundle. Consultez Récupérer une définition de pipeline existante à l’aide de l’interface utilisateur.

Spécifications

(Facultatif) Installer un module Python pour prendre en charge le développement local de pipelines

Databricks fournit un module Python pour faciliter le développement local du code des pipelines déclaratifs Spark Lakeflow en offrant la vérification de la syntaxe, la saisie semi-automatique et la vérification du type de données pendant que vous écrivez du code dans votre IDE.

Le module Python pour le développement local est disponible sur PyPi. Pour installer le module, consultez le stub Python pour DLT.

Étape 1 : Configurer l’authentification

Tout d’abord, configurez l’authentification entre l’interface CLI Databricks sur votre ordinateur de développement et votre espace de travail Azure Databricks. Cette page part du principe que vous souhaitez utiliser l’authentification utilisateur à machine OAuth (U2M) et un profil de configuration Azure Databricks correspondant nommé DEFAULT pour l’authentification.

Note

L’authentification U2M est appropriée pour tester ces étapes en temps réel. Pour les workflows entièrement automatisés, Databricks vous recommande d’utiliser à la place l’authentification OAuth machine à machine (M2M). Consultez les instructions de configuration de l’authentification M2M dans Autoriser l’accès au principal du service à Azure Databricks avec OAuth.

  1. Utilisez l’interface CLI Databricks pour lancer la gestion des jetons OAuth localement en exécutant la commande suivante pour chaque espace de travail cible.

    Dans la commande suivante, remplacez <workspace-url> par votre URL Azure Databricks par espace de travail, par exemple https://adb-1234567890123456.7.azuredatabricks.net.

    databricks auth login --host <workspace-url>
    
  2. L’interface CLI Databricks vous invite à enregistrer les informations que vous avez entrées en tant que profil de configuration Azure Databricks. Appuyez sur Enter pour accepter le nom de profil suggéré, ou saisissez le nom d’un nouveau profil ou d’un profil existant. Tout profil existant portant le même nom sera écrasé par les informations que vous avez saisies. Vous pouvez utiliser les profils pour changer rapidement de contexte d’authentification entre plusieurs espaces de travail.

    Pour obtenir la liste des profils existants, dans un autre terminal ou une autre invite de commandes, utilisez l’interface CLI Databricks pour exécuter la commande databricks auth profiles. Pour afficher les paramètres existants d’un profil spécifique, exécutez la commande databricks auth env --profile <profile-name>.

  3. Dans votre navigateur Web, suivez les instructions à l’écran pour vous connecter à votre espace de travail Azure Databricks.

  4. Pour afficher la valeur actuelle du jeton OAuth d’un profil et l’horodatage d’expiration à venir du jeton, exécutez l’une des commandes suivantes :

    • databricks auth token --host <workspace-url>
    • databricks auth token -p <profile-name>
    • databricks auth token --host <workspace-url> -p <profile-name>

    Si vous disposez de plusieurs profils avec la même valeur --host, vous devrez peut-être spécifier conjointement les options --host et -p pour aider Databricks CLI à retrouver les bonnes informations de token OAuth.

Étape 2 : Créer le bundle

Initialisez un bundle à l’aide du modèle de projet de bundle Python par défaut.

  1. Utilisez votre terminal ou invite de commandes pour basculer vers un répertoire sur votre ordinateur de développement local qui contiendra le bundle généré du modèle.

  2. Utilisez l’interface CLI Databricks pour exécuter la commande bundle init :

    databricks bundle init
    
  3. Pour Template to use, conservez la valeur par défaut de default-python en appuyant sur Enter.

  4. Pour Unique name for this project, conservez la valeur par défaut de my_project ou saisissez une valeur différente, puis appuyez sur Enter. Cela détermine le nom du répertoire racine de ce bundle. Ce répertoire racine est créé dans votre répertoire de travail actuel.

  5. Pour Include a job that runs a notebook, sélectionnez no, puis appuyez sur Enter. L'exemple de notebook lié à cette option ne contient pas de code de pipeline.

  6. Pour Include an ETL pipeline, conservez la valeur par défaut de yes en appuyant sur Enter. Cela ajoute un exemple de code de pipeline et une définition de pipeline.

  7. Pour Include a stub (sample) Python package, sélectionnez no, puis appuyez sur Enter.

  8. Pour Use serverless, sélectionnez yes, puis appuyez sur Enter. Cela indique à l’interface CLI Databricks de configurer votre bundle pour qu’il s’exécute sur le calcul sans serveur.

  9. Pour Default catalog for any tables created by this project [hive_metastore], entrez le nom d’un catalogue Unity Catalog existant.

  10. Pour Use a personal schema for each user working on this project., sélectionnez yes.

Étape 3 : Explorer le bundle

Pour consulter les fichiers générés par le modèle, basculez vers le répertoire racine du bundle que vous venez de créer. Les fichiers particulièrement importants sont les suivants :

  • databricks.yml: ce fichier spécifie le nom programmatique du bundle, inclut des références aux fichiers du bundle, définit des variables de catalogue et de schéma et spécifie les paramètres des espaces de travail cibles.
  • resources/sample_job.yml et resources/<project-name>_etl_pipeline.yml: Ces fichiers définissent le travail qui contient une tâche d’actualisation du pipeline et les paramètres du pipeline. Pour plus d’informations sur les paramètres de pipeline, consultez pipeline.
  • src/: ce dossier contient les fichiers sources, les explorations et les transformations de l’exemple de pipeline.
  • tests/ et fixtures/: ces dossiers contiennent des exemples de tests unitaires pour le pipeline et les appareils pour les jeux de données.
  • README.md: ce fichier contient des informations supplémentaires sur la prise en main et l’utilisation de ce modèle groupé.

Étape 4 : Valider la configuration de l’offre groupée

Vérifiez maintenant si la configuration de l’offre groupée est valide.

  1. À partir du répertoire racine, utilisez l’interface CLI Databricks pour exécuter la bundle validate commande :

    databricks bundle validate
    
  2. Si un résumé de la configuration du bundle est renvoyé, la validation a réussi. Si des erreurs sont renvoyées, corrigez-les, puis répétez cette étape.

Étape 5 : Déployer le bundle sur l’espace de travail distant

Ensuite, déployez l’offre groupée sur votre espace de travail Azure Databricks distant et vérifiez le pipeline dans votre espace de travail.

  1. À partir de la racine du bundle, utilisez la CLI Databricks pour exécuter la commande bundle deploy :

    databricks bundle deploy --target dev
    

    Note

    Le modèle par défaut inclut un travail qui exécute le pipeline tous les jours, mais celui-ci est mis en pause dans le mode de déploiement cible dev. Consultez les modes de déploiement de Databricks Asset Bundle .

  2. Vérifiez que le paquet a été déployé :

    1. Dans la barre latérale de votre espace de travail Azure Databricks, cliquez sur Espace de travail.
    2. Cliquez dans le dossier Utilisateurs ><your-username>>.bundle et recherchez votre projet groupé.
  3. Vérifiez si votre pipeline a été créé :

    1. Dans la barre latérale de votre espace de travail Azure Databricks, cliquez sur Travaux & Pipelines.
    2. Vous pouvez, si vous le souhaitez, sélectionner les filtres Pipelines et Qui m'appartiennent.
    3. Cliquez sur [dev <your-username>] <project-name>_etl.

Si vous modifiez votre bundle après cette étape, vous devez répéter les étapes 4 à 5 pour vérifier que la configuration du bundle est toujours valide, puis redéployer le projet.

Étape 6 : Exécuter le pipeline déployé

À présent, déclenchez une exécution du pipeline dans votre espace de travail à partir de la ligne de commande.

  1. À partir du répertoire racine, utilisez l’interface CLI Databricks pour exécuter la bundle run commande, en remplaçant <project-name> par le nom de votre projet :

    databricks bundle run --target dev <project-name>_etl
    
  2. Copiez la valeur de Update URL qui s’affiche dans votre terminal et collez cette valeur dans votre navigateur pour ouvrir votre espace de travail Azure Databricks.

  3. Dans votre espace de travail Azure Databricks, une fois l’exécution du pipeline terminée, cliquez sur les vues matérialisées pour afficher les détails de chaque vue.

Si vous modifiez votre bundle après cette étape, vous devez répéter les étapes 4 à 6 pour vérifier que la configuration de votre bundle est toujours valide, redéployer le projet et exécuter le projet redéployé.

Étape 7 : Exécuter des tests

Enfin, utilisez cette fonction pytest pour exécuter des tests localement :

uv run pytest

Étape 8 : Nettoyer

Dans cette étape, vous supprimez le bundle déployé et le pipeline de votre espace de travail.

  1. À partir du répertoire racine, utilisez l’interface CLI Databricks pour exécuter la bundle destroy commande :

    databricks bundle destroy --target dev
    
  2. Lorsque vous êtes invité à détruire définitivement les ressources, le pipeline et les tables et vues gérés par le pipeline, tapez y et appuyez sur Enter.

  3. Si vous souhaitez également supprimer le bundle de votre ordinateur de développement, vous pouvez maintenant supprimer le répertoire du projet local.