Partager via


Développer un emploi avec les Databricks Asset Bundles

Les bundles de ressources Databricks, également appelés bundles, contiennent les artefacts que vous souhaitez déployer et les paramètres des ressources Azure Databricks telles que les travaux que vous souhaitez exécuter et vous permettent de valider, déployer et exécuter par programmation. 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 travail. Consultez les offres d'emploi Lakeflow. Le bundle est créé à l’aide du modèle de bundle par défaut Databricks Asset Bundles pour Python, qui se compose d’un notebook et de la définition d’une tâche à exécuter. Vous validez, déployez et exécutez ensuite le travail déployé dans l’espace de travail Azure Databricks.

Conseil

Si vous avez des travaux existants qui ont été créés à l’aide de l’interface utilisateur ou de l’API Lakeflow Jobs 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 en suivant les étapes ci-dessous et de vérifier s’il fonctionne. Vous pouvez ensuite ajouter des définitions supplémentaires de travaux, des notebooks et d’autres sources à ce bundle. Consultez Récupérer une définition de travail existante à l’aide de l’interface utilisateur.

Si vous souhaitez créer un bundle à partir de zéro, consultez Créer un bundle manuellement.

Spécifications

É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 terminal ou une invite de commandes distinct, 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 : Initialiser 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 yes, puis appuyez sur Enter.

  6. Pour Include an ETL pipeline, sélectionnez no, puis appuyez sur Enter.

  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.job.yml: ce fichier spécifie les paramètres du travail, y compris une tâche de notebook par défaut. Pour plus d’informations sur les paramètres de travail, consultez travail.
  • src/: ce dossier contient les fichiers sources du travail.
  • src/sample_notebook.ipynb: ce notebook lit un exemple de tableau.
  • tests/: ce dossier contient des exemples de tests unitaires.
  • README.md: ce fichier contient des informations supplémentaires sur la prise en main et l’utilisation de ce modèle groupé.

Conseil

Vous pouvez définir, combiner et remplacer les paramètres des nouveaux clusters de tâches dans des packages à l’aide des techniques décrites dans Substitution avec les paramètres cibles.

É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 le travail sur votre espace de travail Azure Databricks distant et vérifiez le travail 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
    
  2. Vérifiez que le notebook a été déployé :

    1. Dans la barre latérale de votre espace de travail Azure Databricks, cliquez sur Espace de travail.
    2. Cliquez sur le dossier Utilisateurs ><your-username>> .bundle ><project-name>> dev > fichiers > src. Le notebook doit se trouver dans ce dossier.
  3. Vérifiez si la tâche a été créée :

    1. Dans la barre latérale de votre espace de travail Azure Databricks, cliquez sur Travaux & Pipelines.
    2. Vous pouvez aussi sélectionner les filtres Travaux et Je suis le propriétaire.
    3. Cliquez sur [dev <your-username>] sample_job.
    4. Cliquez sur l’onglet Tâches . Il devrait y avoir une notebook_task.

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 travail déployé

À présent, déclenchez une exécution du travail 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 :

    databricks bundle run --target dev sample_job
    
  2. Copiez la valeur de Run URL qui s’affiche dans votre terminal et collez cette valeur dans votre navigateur pour ouvrir votre espace de travail Azure Databricks. Voir Afficher et exécuter un travail créé avec les Databricks Asset Bundles

  3. Dans votre espace de travail Azure Databricks, une fois que le travail est terminé avec succès et que la barre de titre devient verte, cliquez sur la tâche correspondante pour voir les résultats.

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

Au cours de cette étape, vous supprimerez le notebook déployé et le travail 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é à supprimer définitivement tous les fichiers et répertoires de l’espace de travail, 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.