Aller au contenu principal

Convertir un pipeline en projet de bundle

Vous pouvez convertir un pipeline existant en un projet Declarative Automation Bundles. Les bundles vous permettent de définir et de gérer votre configuration de traitement de données Databricks dans un fichier YAML unique à contrôle de source, ce qui facilite la maintenance et permet un déploiement automatisé vers les environnements cibles.

Pour un tutoriel qui utilise les commandes databricks pipelines pour créer un projet de pipelines, puis déploie et exécute un pipeline, consultez Développer des pipelines avec des bundles d’automatisation déclaratifs.

Présentation du processus de conversion

Diagramme montrant les étapes spécifiques de conversion d'un pipeline existant en bundle

Les étapes à suivre pour convertir un pipeline existant en bundle sont :

  1. Assurez-vous d'avoir accès à un pipeline préalablement configuré que vous souhaitez convertir en bundle.
  2. Créez ou préparez un dossier (de préférence dans une hiérarchie gérée par la source) pour stocker le bundle.
  3. Générez une configuration pour le bundle à partir du pipeline existant, à l'aide de la CLI Databricks.
  4. Examinez la configuration du bundle générée pour vous assurer qu'elle est complète.
  5. Link the bundle au pipeline original.
  6. Déployez le pipeline vers un Workspace cible à l'aide de la configuration du bundle.

Exigences

Avant de vous start, vous devez avoir :

Étape 1 : Mettre en place un dossier pour votre projet de bundle

Vous devez avoir accès à un repository Git qui est configuré dans Databricks en tant que dossier Git. Vous créerez votre projet de bundle dans ce repository, ce qui appliquera le contrôle de code source et le rendra disponible à d'autres collaborateurs via un dossier Git dans le workspace Databricks correspondant. (Pour plus de détails sur les dossiers Git, consultez les dossiers Git Databricks.)

  1. Accédez à la racine du repository Git cloné sur votre machine locale.

  2. Dans un emplacement approprié de la hiérarchie des dossiers, créez un dossier spécifiquement pour votre projet de bundle. Par exemple :

    Bash
    mkdir -p ~/source/my-pipelines/ingestion/events/my-bundle
  3. Modifiez votre répertoire de travail actuel en ce nouveau dossier. Par exemple :

    Bash
    cd ~/source/my-pipelines/ingestion/events/my-bundle
  4. Initialisez un nouveau bundle en exécutant :

    Bash
    databricks bundle init

    Répondez aux invites. Une fois terminée, vous disposerez d’un fichier de configuration de projet nommé databricks.yml dans le nouveau dossier d’accueil de votre projet. Ce fichier est requis pour le déploiement de votre pipeline à partir de la ligne de commande. Pour plus de détails sur ce fichier de configuration, consultez la configuration des Declarative Automation Bundles.

Étape 2 : Générer la configuration du pipeline

À partir de ce nouveau répertoire dans l'arborescence des dossiers de votre repository Git cloné, exécutez la commande bundle generate de la CLI Databricks, en fournissant l'ID de votre pipeline comme <pipeline-id>:

Bash
databricks bundle generate pipeline --existing-pipeline-id <pipeline-id> --profile <profile-name>

Lorsque vous exécutez la commande generate, un fichier de configuration de bundle est créé pour votre pipeline dans le dossier resources du bundle et tous les artefacts référencés sont téléchargés dans le dossier src. Le --profile (ou l'indicateur -p) est facultatif, mais si vous avez un profil de configuration Databricks spécifique (défini dans votre fichier .databrickscfg créé lors de l'installation de l'interface de ligne de commande Databricks) que vous préférez utiliser au lieu du profil default, fournissez-le dans cette commande. Pour plus d'informations sur les profils de configuration Databricks, consultez les profils de configuration Databricks.

astuce

Si vous avez un projet Spark Declarative Pipelines (SDP) existant (il contient un fichier spark-pipeline.yml), vous pouvez copier ce projet de pipeline dans le dossier src du bundle, puis utiliser la commande databricks pipelines generate pour générer la configuration du bundle. Voir générer des pipelines Databricks.

Étape 3 : examiner les fichiers du projet groupé

Lorsque la commande bundle generate est terminée, elle aura créé deux nouveaux dossiers :

  • resources est le sous-répertoire du projet qui contient les fichiers de configuration du projet.
  • src est le dossier de projet où sont stockés les fichiers source, tels que les queries et les notebooks.

La commande crée également des fichiers supplémentaires :

  • *.pipeline.yml sous le sous-répertoire resources. Ce fichier contient la configuration et les paramètres spécifiques de votre pipeline.
  • Fichiers source tels que les requêtes SQL sous le sous-répertoire src, copiés de votre pipeline existant.
├── databricks.yml                            # Project configuration file created with the bundle init command
├── resources/
│ └── {your-pipeline-name.pipeline}.yml # Pipeline configuration
└── src/
└── {source folders and files...} # Your pipeline's declarative queries

Étape 4 : liez le pipeline de bundle à votre pipeline existant

Vous devez link, ou lier , la définition du pipeline dans le bundle à votre pipeline existant afin de le maintenir à jour à mesure que vous apportez des modifications. Pour ce faire, exécutez la commande de liaison de déploiement de bundle de la CLI Databricks :

Bash
databricks bundle deployment bind <pipeline-name> <pipeline-ID> --profile <profile-name>

<pipeline-name> est le nom du pipeline. Le nom doit être identique à la valeur de chaîne préfixée du nom de fichier pour la configuration du pipeline dans votre nouveau répertoire resources. Par exemple, si vous avez un fichier de configuration de pipeline nommé ingestion_data_pipeline.pipeline.yml dans votre dossier resources, vous devez fournir ingestion_data_pipeline comme nom de pipeline.

<pipeline-ID> est l'ID de votre pipeline. Il est identique à celui que vous avez copié dans le cadre des exigences de ces instructions.

Étape 5 : Déployer votre pipeline à l'aide de votre nouveau bundle

Maintenant, déployez votre bundle de pipeline vers votre workspace cible à l'aide de la CLI Databricks commande de déploiement de bundle:

Bash
databricks bundle deploy --target <target-name> --profile <profile-name>

L'indicateur --target est obligatoire et doit être défini sur une chaîne de caractères qui correspond à un nom de workspace cible configuré, tel que development ou production.

Si cette commande réussit, vous disposez maintenant de la configuration de votre pipeline dans un projet externe qui peut être chargé dans d'autres Workspaces et exécuté, et facilement partagé avec d'autres utilisateurs Databricks de votre compte.

Dépannage

Problème

Solutions

Erreur « databricks.yml introuvable » lors de l’exécution bundle generate

Actuellement, la commande bundle generate ne crée pas automatiquement le fichier de configuration du bundle (databricks.yml). Vous devez créer le fichier à l'aide de databricks bundle init ou manuellement.

Les paramètres de pipeline existants ne correspondent pas aux valeurs de la configuration YAML du pipeline généré.

L'ID du pipeline n'apparaît pas dans le fichier YML de configuration du bundle. Si vous remarquez d'autres paramètres manquants, vous pouvez les appliquer manuellement.

Problème

Solutions

Erreur « databricks.yml introuvable » lors de l’exécution bundle generate

Actuellement, la commande bundle generate ne crée pas automatiquement le fichier de configuration du bundle (databricks.yml). Vous devez créer le fichier à l'aide de databricks bundle init ou manuellement.

Les paramètres de pipeline existants ne correspondent pas aux valeurs de la configuration YAML du pipeline généré.

L'ID du pipeline n'apparaît pas dans le fichier YML de configuration du bundle. Si vous remarquez d'autres paramètres manquants, vous pouvez les appliquer manuellement.

Conseils pour la réussite

  • Utilisez toujours le contrôle de version. Si vous n'utilisez pas les dossiers Git Databricks, stockez les sous-répertoires et les fichiers de votre projet dans un repository Git ou un autre système de fichiers sous gestion de version.
  • Testez votre pipeline dans un environnement hors production (tel qu'un environnement « développement » ou « test ») avant de le déployer dans un environnement de production. Il est facile d'introduire une mauvaise configuration par accident.

Ressources supplémentaires

Pour plus d'informations sur l'utilisation de bundles pour définir et gérer le traitement des données, voir :