Partager via


Que sont les packs de ressources Databricks ?

Databricks Asset Bundles est un outil qui permet de faciliter l’adoption des meilleures pratiques en matière d’ingénierie logicielle, notamment le contrôle de code source, la révision du code, les tests et la livraison continue (CI/CD), pour vos projets de données et d’IA. Les bundles permettent de décrire des ressources Databricks telles que des travaux, des pipelines et des notebooks en tant que fichiers sources. Ces fichiers sources fournissent une définition de bout en bout d’un projet, notamment la façon dont il doit être structuré, testé et déployé, ce qui facilite la collaboration sur des projets pendant le développement actif.

Les packs permettent d’inclure des métadonnées en même temps que les fichiers sources de votre projet. Lorsque vous déployez un projet à l’aide de regroupements, ces métadonnées sont utilisées pour approvisionner l’infrastructure et d’autres ressources. La collection de fichiers sources et de métadonnées de votre projet est ensuite déployée en tant que regroupement unique dans votre environnement cible. Un pack se compose des parties suivantes :

  • Configurations requises de l’infrastructure cloud et de l’espace de travail
  • Des fichiers sources, tels que des notebooks et des fichiers Python, qui incluent la logique métier
  • Des définitions et des paramètres pour des ressources Databricks, tels que des travaux Azure Databricks, des pipelines Delta Live Tables, des points de terminaison Service de modèle, des expériences MLflow et des modèles inscrits MLflow
  • Des tests unitaires et d’intégration

Le diagramme suivant fournit une vue générale d’un pipeline de développement et CI/CD avec des bundles :

Vue d’ensemble des bundles de ressources Databricks

Quand dois-je utiliser les regroupements de ressources Databricks ?

Les regroupements de ressources Databricks sont une approche IaC (Infrastructure-as-code) pour gérer vos projets Databricks. Utilisez-les lorsque vous souhaitez gérer des projets complexes où plusieurs contributeurs et automatisations sont essentiels, et l’intégration et le déploiement continus (CI/CD) sont requis. Étant donné que les regroupements sont définis et gérés par le biais de modèles et de fichiers YAML que vous créez et gérez en même temps que le code source, ils correspondent aux scénarios où IaC est une approche appropriée.

Voici quelques-uns des meilleurs scénarios pour les bundles :

  • Développez des données, analyses et projets ML dans un environnement basé sur l’équipe. Les packs peuvent vous permettre de vous organiser et de gérer efficacement divers fichiers sources. Ils garantissent une collaboration harmonieuse et des processus simplifiés.
  • Itérez plus rapidement sur des problèmes ML. Gérez des ressources de pipeline ML (telles que des formations et des travaux d’inférence par lots) en utilisant des projets ML qui suivent les meilleures pratiques de production dès le début.
  • Définissez des normes d’organisation pour de nouveaux projets en créant des modèles de pack personnalisés qui incluent des autorisations, des principaux de service et des configurations CI/CD par défaut.
  • Conformité réglementaire : dans les sections où la conformité réglementaire est une préoccupation significative, les packs peuvent permettre de conserver un travail d’infrastructure et un historique du code avec version. Cela facilite la gouvernance et permet de veiller à ce que les normes de conformité nécessaires soient satisfaites.

Comment fonctionnent les regroupements de ressources Databricks ?

Les métadonnées de regroupement sont définies à l’aide de fichiers YAML qui spécifient les artefacts, les ressources et la configuration d’un projet Databricks. Vous pouvez créer ce fichier YAML manuellement ou en générer un à l’aide d’un modèle de regroupement. Vous pouvez ensuite utiliser l’interface CLI Databricks pour valider, déployer et exécuter des regroupements à l’aide de ces fichiers YAML regroupés. Vous pouvez exécuter des projets regroupés à partir d’IDE, de terminaux ou directement dans Databricks. Cet article utilise le kit SDK Databricks CLI.

Vous pouvez créer des regroupements manuellement ou sur la base d’un modèle. L’interface CLI Databricks fournit des modèles par défaut pour des cas d’usage simples, mais pour des travaux plus spécifiques ou complexes, vous pouvez créer des modèles de pack personnalisés pour implémenter les meilleures pratiques de votre équipe et maintenir une cohérence des configurations courantes.

Pour plus d’informations sur la configuration YAML utilisée pour exprimer les regroupements de ressources Databricks, consultez Configurations des packs de ressources Databricks.

Configurer votre environnement pour utiliser des packs

Utilisez l’interface CLI Databricks pour déployer facilement des packs à partir de la ligne de commande. Vous pouvez vérifier si l’interface CLI Databricks est installée et la version actuelle que vous utilisez en exécutant la commande suivante :

databricks --version

Remarque

La version 0.218.0 ou ultérieure de l’interface CLI Databricks est requise. Pour installer l’interface CLI Databricks, consultez Installer ou mettre à jour l’interface CLI Databricks.

Après avoir installé l’interface CLI Databricks, vérifiez que vos espaces de travail Databricks distants sont configurés correctement. Les regroupements nécessitent que la fonctionnalité de fichiers d’espace de travail soit activée, car elle prend en charge l’utilisation de fichiers autres que les notebooks Databricks, tels que les fichiers .py et .yml. Si vous utilisez Databricks Runtime version 11.2 (ou ultérieure), cette fonctionnalité doit être activée par défaut.

Authentification

Databricks fournit plusieurs méthodes d’authentification. Databricks vous recommande d’utiliser une des méthodes suivantes pour vous authentifier :

  • Pour les scénarios d’authentification avec assistance, comme des workflows manuels où vous utilisez votre navigateur web pour vous connecter à votre espace de travail Azure Databricks cible (quand vous y êtes invité par l’interface CLI Databricks), utilisez l’authentification d’utilisateur à machine (U2M) OAuth. Cette méthode est idéale pour expérimenter les tutoriels de prise en main des packs de ressources Databricks ou pour le développement rapide de packs.
  • Pour les scénarios d’authentification sans assistance, Comme des workflows entièrement automatisés dans lesquels vous n’avez pas la possibilité d’utiliser votre navigateur web pour vous connecter à votre espace de travail Azure Databricks cible à ce moment-là, utilisez l’authentification de machine à machine (M2M) OAuth. Cette méthode nécessite l’utilisation de principaux de service Azure Databricks et est idéale pour utiliser des packs Databricks avec des systèmes CI/CD comme GitHub.

Pour l’authentification U2M OAuth, procédez comme suit :

  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 d’espace de travail Azure Databricks, 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 entrez le nom d’un profil nouveau ou existant. Tout profil existant portant le même nom est remplacé par les informations que vous avez entrées. Vous pouvez utiliser des 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 voir 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 voir la valeur du jeton OAuth actuel d’un profil et l’horodatage de l’expiration à venir du jeton, exécutez 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 avez plusieurs profils avec la même valeur pour --host, il peut être nécessaire de spécifier les options --host et -p ensemble pour permettre à l’interface CLI Databricks de trouver les informations du jeton OAuth correspondant.

Vous pouvez utiliser le nom de ce profil de configuration de la manière suivante chaque fois que vous validez, déployez, exécutez ou détruisez des packs :

  • Avec l’option de ligne de commande -p <profile-name>, ajoutée aux commandes databricks bundle validate, databricks bundle deploy, databricks bundle run ou databricks bundle destroy. Consultez Développement des bundles de ressources Databricks.
  • Comme valeur du mappage du profile dans le mappage du workspace de plus haut niveau du fichier de configuration du pack (bien que Databricks vous recommande d’utiliser le mappage du host défini sur l’URL de l’espace de travail Azure Databricks au lieu du mappage du profile, car il rend vos fichiers de configuration de pack plus portables). Consultez la couverture du mappage de profile dans un espace de travail.
  • Si le nom du profil de configuration est DEFAULT, il est utilisé par défaut lorsque l’option de ligne de commande -p <profile-name> ou le mappage profile (ou host) n’est pas spécifié.

Pour l’authentification M2M OAuth, procédez comme suit :

  1. Suivez les instructions de configuration de l’authentification OAuth M2M. Consultez Utiliser un principal de service pour s’authentifier auprès d’Azure Databricks.

  2. Installez l’interface CLI Databricks sur la ressource de calcul cible de l’une des manières suivantes :

  3. Définissez les variables d’environnement suivantes sur la ressource de calcul comme suit :

    • DATABRICKS_HOST, défini sur l’URL par espace de travail Azure Databricks, par exemple https://adb-1234567890123456.7.azuredatabricks.net.
    • DATABRICKS_CLIENT_ID, définie sur la valeur de l’ID d’application du principal de service Azure Databricks.
    • DATABRICKS_CLIENT_SECRET, définie sur la valeur du Secret OAuth du principal de service Azure Databricks.

    Pour définir ces variables d’environnement, consultez la documentation du système d’exploitation de votre ressource de calcul cible ou de votre système CI/CD.

Développer votre premier pack de ressources Databricks

Le moyen le plus rapide de démarrer le développement regroupé consiste à utiliser un modèle. Créez votre premier pack avec la commande bundle init Cli Databricks sans aucune option. Cela présente un choix de modèles de pack par défaut fournis par Databricks et pose une série de questions pour initialiser des variables de projet.

databricks bundle init

Les organisations peuvent également créer des modèles de pack personnalisés pour définir leurs normes. Celles-ci peuvent inclure des autorisations, des principaux de service et une configuration CI/CD personnalisée par défaut. Consultez Modèles de packs de ressources Databricks.

Après avoir initialisé votre projet, utilisez la commande bundle validate pour valider votre pack avant de la déployer dans vos espaces de travail.

databricks bundle validate

Vous créez en général un pack sur un ordinateur de développement local avec un IDE et la version 0.218.0 ou ultérieure de l’interface CLI Databricks. Ces outils vous permettent de créer, valider, déployer et exécuter un pack. Consultez Développement des bundles de ressources Databricks.

Vous pouvez modifier un regroupement dans un espace de travail Azure Databricks après l’ajout du regroupement dans Git en tirant parti de l’intégration de dossier Git Databricks. Toutefois, vous ne pouvez pas tester ou déployer un pack à partir d’un espace de travail. Vous pouvez utiliser votre IDE local à la place pour les tests et CI/CD pour les déploiements.

Étapes suivantes

Tâches courantes

Utilisez les articles suivants pour effectuer des tâches courantes pour les packs de ressources Databricks.

Article Utilisez cet article lorsque vous souhaitez…
Développement des bundles de ressources Databricks Découvrez comment créer, valider, déployer et exécuter un bundle en créant un fichier databricks.yml et en utilisant l’interface CLI Databricks pour exécuter les commandes databricks bundle validate, databricks bundle deploy et databricks bundle run.
Configurations de pack de ressources Databricks Créez le fichier d’un fichier databricks.yml et d’autres fichiers de configuration de packs associés qui sont conformes à la syntaxe YAML pour les configurations des packs.
Authentification pour les packs de ressources Databricks Configurer un projet groupé pour l’authentification Azure Databricks.
Développer une tâche sur Azure Databricks à l’aide des packs de ressources Databricks Créez, déployez et exécutez un pack pour un travail Azure Databricks.
Développer des pipelines Delta Live Tables avec des bundles de ressources Databricks Créez, déployez et exécutez un pack pour un pipeline Delta Live Tables.
Bundles de ressources Databricks pour les piles MLOps Créez, déployez et exécutez un pack pour une pile MLOps.
Dépendances de bibliothèque de packs de ressources Databricks Installez les bibliothèques qu’un pack doit exécuter sur tous les clusters Azure Databricks associés.
Modes de déploiement du pack de ressources Databricks Utilisez des modes de déploiement des packs tels que development et production pour activer ou désactiver automatiquement des comportements de déploiement courants tels que la suspension ou l’annulation de planifications et de déclencheurs associés.
Modèles de bundle de ressources Databricks Utilisez un modèle pour rendre la création de types spécifiques d’offres groupées plus rapides, plus faciles et avec des résultats plus cohérents et reproductibles.
Définir les autorisations pour les ressources dans les groupes d'actifs Databricks Appliquez des niveaux d’autorisations d’accès granulaires aux utilisateurs, aux groupes et aux principaux de service pour des ressources groupées spécifiques.
Définir de manière dynamique les paramètres d’artefact dans les packs de ressources Databricks Combinez ou remplacez des paramètres spécifiques pour les artefacts d’un pack.
Exécuter un workflow CI/CD avec un pack de ressources Databricks et GitHub Actions Déployez ou exécutez un pack en réponse à un événement de flux de travail GitHub spécifique, tel qu’une demande de tirage ou une fusion.
Remplacer les paramètres des clusters dans les packs de ressources Databricks Combinez ou remplacez des paramètres spécifiques pour les clusters dans un pack.
Ajouter des tâches à des travaux dans les packs de ressources Databricks Ajoutez une tâche à un travail dans un bundle.
Remplacer les paramètres des tâches de travail dans les packs de ressources Databricks Combinez ou remplacez des paramètres spécifiques pour les tâches de travail dans un pack.
Développer un fichier wheel Python à l’aide de packs de ressources Databricks Générez, déployez et appelez des fichiers wheel Python dans un pack.

Plus de ressources