Intégration de dépôts pour Git

Notes

la prise en charge des fichiers arbitraires dans Databricks Repos est désormais en version préliminaire publique. Pour plus d’informations, consultez utiliser des fichiers non-Notebook dans une Azure Databricks référentiel et importer des modules python et R.

pour prendre en charge les meilleures pratiques en matière de développement de code de science des données et d’ingénierie, Databricks Repos offre une intégration au niveau du référentiel avec les fournisseurs Git. Vous pouvez développer du code dans un bloc-notes Azure Databricks et le synchroniser avec un référentiel git distant. Databricks Repos vous permet d’utiliser les fonctionnalités Git, telles que le clonage d’un référentiel distant, la gestion des branches, le push et l’extraction des modifications, et la comparaison visuelle des différences lors de la validation.

Databricks Repos fournit également une API que vous pouvez intégrer à votre pipeline CI/CD. Par exemple, vous pouvez mettre à jour un référentiel Databricks par programmation afin qu’il dispose toujours de la version de code la plus récente.

Databricks Repos fournit des fonctionnalités de sécurité telles que les listes d’autorisation pour contrôler l’accès aux dépôts Git et la détection de secrets de texte clair dans le code source.

Lorsque la journalisation d’audit est activée, les événements d’audit sont consignés lorsque vous interagissez avec un référentiel Databricks. Par exemple, un événement d’audit est consigné lorsque vous créez, mettez à jour ou supprimez un référentiel Databricks, lorsque vous répertoriez toutes les dépôts de Databricks associés à un espace de travail, et lorsque vous synchronisez les modifications entre vos Databricks référentiel et git remote.

Pour plus d’informations sur les meilleures pratiques pour le développement de code à l’aide de Databrickss, consultez meilleures pratiques pour l’intégration de pensions avec des flux de travail ci/CD.

Configuration requise

Azure Databricks prend en charge les fournisseurs GIT suivants :

  • GitHub
  • BitBucket
  • GitLab
  • Azure DevOps

Le serveur git doit être accessible à partir de Azure Databricks. Azure Databricks ne prend pas en charge les serveurs git privés, tels que les serveurs git derrière un VPN.

la prise en charge des fichiers arbitraires dans Databricks Repos est disponible dans Databricks Runtime 8,4 et versions ultérieures.

Configurez votre intégration git avec Azure Databricks

  1. cliquez sur User Settings IconParamètres dans votre espace de travail Azure Databricks et sélectionnez User Paramètres dans le menu.

  2. dans la page Paramètres de l' utilisateur , accédez à l’onglet intégration Git .

  3. suivez les instructions pour l’intégration avec GitHub, Bitbucket Cloud, GitLabou Azure DevOps.

    par Azure DevOps, si vous n’entrez pas de mot de passe d’application ou de jeton, l’intégration Git utilise votre jeton de Azure Active Directory par défaut. si vous entrez un jeton d’accès personnel Azure DevOps, l’intégration Git l’utilise à la place.

  4. si l’authentification unique SAML est activée dans votre organisation dans GitHub, assurez-vous que vous avez autorisé votre jeton d’accès personnel pour l’authentification unique.

Activer la prise en charge des fichiers arbitraires dans Databricks Repos

Important

Cette fonctionnalité est disponible en préversion publique.

outre la synchronisation des blocs-notes avec un référentiel Git distant, les fichiers dans Repos vous permettent de synchroniser n’importe quel type de fichier, tel que des fichiers .py , des fichiers de données au .csv format ou ou des fichiers de .json.yaml configuration. Vous pouvez importer et lire ces fichiers dans un référentiel Databricks. Vous pouvez également afficher et modifier des fichiers texte bruts dans l’interface utilisateur.

Si la prise en charge de cette fonctionnalité n’est pas activée, vous verrez toujours des fichiers non-Notebook dans votre référentiel, mais vous ne pourrez pas les utiliser.

Configuration requise

pour travailler avec des fichiers non-notebook dans Databricks Repos, vous devez exécuter Databricks Runtime 8,4 ou version ultérieure.

Activer les fichiers dans Repos

Un administrateur peut activer cette fonctionnalité comme suit :

  1. Accéder à la Console d’administration.
  2. cliquez sur l’onglet Paramètres de l’espace de travail .
  3. dans la section avancé , cliquez sur les fichiers dans Repos basculer.
  4. Cliquez sur Confirmer.
  5. Actualisez votre navigateur.

en outre, la première fois que vous accédez à un référentiel après l’activation des fichiers dans Repos, vous devez ouvrir la boîte de dialogue Git. Une boîte de dialogue s’affiche indiquant que vous devez effectuer une opération d’extraction pour synchroniser les fichiers non-Notebook dans le référentiel. Sélectionnez accepter et extraire pour synchroniser les fichiers. En cas de conflit de fusion, une autre boîte de dialogue s’affiche pour vous permettre d’ignorer vos modifications conflictuelles ou de pousser vos modifications vers une nouvelle branche.

Cloner un référentiel git distant

Vous pouvez cloner un référentiel git distant et travailler sur vos blocs-notes ou fichiers dans Azure Databricks. Vous pouvez créer des blocs-notes, modifier des blocs-notes et d’autres fichiers, et synchroniser avec le référentiel distant. Vous pouvez également créer des branches pour votre travail de développement. Pour certaines tâches, vous devez travailler dans votre fournisseur git, tel que la création d’une demande de tirage, la résolution de conflits, la fusion ou la suppression de branches ou la relocalisation d’une branche.

  1. cliquez sur Repos IconRepos dans la barre latérale.

  2. Cliquez sur Ajouter référentiel.

    Add repo

  3. Dans la boîte de dialogue Ajouter un référentiel , cliquez sur cloner les référentiel git distants et entrez l’URL du référentiel. Sélectionnez votre fournisseur git dans le menu déroulant, modifiez éventuellement le nom à utiliser pour le référentiel Databricks, puis cliquez sur créer. Le contenu du référentiel distant est cloné sur le référentiel Databricks.

    Clone from repo

Utiliser des blocs-notes dans un Azure Databricks référentiel

Pour créer un nouveau bloc-notes ou dossier dans un référentiel, cliquez sur la flèche vers le bas en regard du nom du référentiel, puis sélectionnez créer un bloc-notes ou créer un dossier dans le menu.

Repo create menu

Pour déplacer un bloc-notes ou un dossier de votre espace de travail vers un référentiel, accédez au bloc-notes ou au dossier, puis sélectionnez déplacer dans le menu déroulant :

Move object

Dans la boîte de dialogue, sélectionnez le référentiel vers lequel vous souhaitez déplacer l’objet :

Move repo

vous pouvez importer un fichier SQL ou Python en tant que bloc-notes Azure Databricks à une seule cellule.

  • ajoutez la ligne -- Databricks notebook source de commentaire en haut d’un fichier SQL.
  • Ajoutez la ligne # Databricks notebook source de commentaire en haut d’un fichier Python.

Utiliser des fichiers non-Notebooks dans un Azure Databricks référentiel

Cette section explique comment ajouter des fichiers à un référentiel et afficher et modifier des fichiers.

Important

Cette fonctionnalité est disponible en préversion publique.

Configuration requise

Databricks Runtime 8,4 ou version ultérieure.

Créer un fichier

La méthode la plus courante pour créer un fichier dans un référentiel consiste à cloner un référentiel git. Vous pouvez également créer un nouveau fichier directement à partir du référentiel Databricks. Cliquez sur la flèche orientée vers le bas en regard du nom de référentiel, puis sélectionnez créer un fichier dans le menu.

repos create file

Charger un fichier

pour télécharger un fichier à partir de votre système local, cliquez sur la flèche orientée vers le bas en regard du nom du référentiel, puis sélectionnez Télécharger fichier (s). Vous pouvez faire glisser des fichiers dans la boîte de dialogue ou cliquer sur Parcourir pour sélectionner des fichiers.

repos upload file

Modifier un fichier

pour modifier un fichier dans un référentiel, cliquez sur son nom dans le navigateur Repos. Le fichier s’ouvre et vous pouvez le modifier. Les modifications sont enregistrées automatiquement.

Refactoriser du code

La meilleure pratique pour le développement de code consiste à modulariser le code afin qu’il puisse être facilement réutilisé. Vous pouvez créer des fichiers python personnalisés dans un référentiel et mettre le code de ces fichiers à la disposition d’un bloc-notes à l’aide de l' import instruction. Pour obtenir un exemple, consultez le bloc-notes exemple.

Pour Refactoriser le code du bloc-notes en fichiers réutilisables :

  1. à partir de l’interface utilisateur Repos, créez une nouvelle branche.
  2. Créez un nouveau fichier de code source pour votre code.
  3. Ajoutez des instructions d’importation python au bloc-notes pour que le code de votre nouveau fichier soit disponible pour le bloc-notes.
  4. Validez et envoyez vos modifications à votre fournisseur git.

Accéder aux fichiers d’un référentiel par programmation

Vous pouvez lire par programmation des fichiers de données de petite taille dans un référentiel, tels que .csv.json des fichiers ou, directement à partir d’un bloc-notes. Vous ne pouvez pas créer ou modifier des fichiers à partir d’un bloc-notes par programmation.

import pandas as pd
df = pd.read_csv("./data/winequality-red.csv")
df

Vous pouvez utiliser Spark pour accéder aux fichiers dans un référentiel. Spark requiert des chemins de fichiers absolus pour les données de fichier. Le chemin d’accès absolu d’un fichier dans un référentiel est file:/Workspace/Repos/<user_folder>/<repo_name>/file .

Vous pouvez copier le chemin d’accès absolu ou relatif vers un fichier dans un référentiel à partir du menu déroulant en regard du fichier :

file drop down menu

L’exemple ci-dessous montre l’utilisation de {os.getcwd()} pour obtenir le chemin d’accès complet.

import os
spark.read.format("csv").load(f"file:{os.getcwd()}/my_data.csv")

Exemple de bloc-notes

Ce Notebook présente des exemples d’utilisation de fichiers arbitraires dans les pensions.

Exemples de fichiers arbitraires dans le bloc-notes exemple

Obtenir le notebook

Utiliser des modules python et R

Important

Cette fonctionnalité est disponible en préversion publique.

Configuration requise

Databricks Runtime 8,4 ou version ultérieure.

Importer des modules python et R

Le répertoire de travail actuel de votre référentiel et Notebook est automatiquement ajouté au chemin d’accès Python. Lorsque vous travaillez dans la racine référentiel, vous pouvez importer des modules à partir du répertoire racine et de tous les sous-répertoires.

Pour importer des modules à partir d’un autre référentiel, vous devez ajouter ce référentiel à sys.path . Par exemple :

import sys
sys.path.append("/Workspace/Repos/<user-name>/<repo-name>")

# to use a relative path
import sys
import os
sys.path.append(os.path.abspath('..'))

Vous importez des fonctions à partir d’un module dans un référentiel comme vous le feriez à partir d’un module enregistré en tant que bibliothèque de clusters ou bibliothèque à portée de bloc-notes :

Python

from sample import power
power.powerOfTwo(3)

R

source("sample.R")
power.powerOfTwo(3)

Importer des blocs-notes python Azure Databricks

Pour faire la distinction entre un fichier python standard et un Azure Databricks Notebook en langage Python exporté au format de code source, Databricks ajoute la ligne # Databricks Notebook source en haut du fichier de code source du bloc-notes.

Lorsque vous importez le bloc-notes, Azure Databricks le reconnaît et l’importe en tant que bloc-notes, et non en tant que module Python.

Si vous souhaitez importer le bloc-notes en tant que module Python, vous devez modifier le bloc-notes dans un éditeur de code et supprimer la ligne # Databricks Notebook source . La suppression de cette ligne convertit le bloc-notes en fichier python standard.

Règles de priorité d’importation

Lorsque vous utilisez une import instruction dans un bloc-notes dans un référentiel, la bibliothèque du référentiel est prioritaire sur une bibliothèque ou une roulette portant le même nom que celui installé sur le cluster.

Autoreload pour les modules python

Lors du développement de code Python, si vous modifiez plusieurs fichiers, vous pouvez utiliser les commandes suivantes dans n’importe quelle cellule pour forcer le rechargement de tous les modules.

%load_ext autoreload
%autoreload 2

Synchroniser avec un référentiel git distant

Pour effectuer une synchronisation avec git, utilisez la boîte de dialogue git. La boîte de dialogue git vous permet d’extraire les modifications de votre référentiel git distant et de transmettre et valider les modifications. Vous pouvez également modifier la branche sur laquelle vous travaillez ou créer une nouvelle branche.

Important

Ouvrir la boîte de dialogue git

Vous pouvez accéder à la boîte de dialogue git à partir d’un Notebook ou du navigateur des pensions.

  • Dans un bloc-notes, cliquez sur le bouton en haut à gauche du bloc-notes qui identifie la branche git actuelle.

    Git dialog button on notebook

  • Dans le navigateur de pensions, cliquez sur le bouton à droite du nom référentiel :

    Git dialog button in repo browser

    Vous pouvez également cliquer sur la flèche vers le bas en regard du nom de référentiel, puis sélectionner git... dans le menu.

    Repos menu 2

Extraire les modifications du référentiel git distant

Pour extraire les modifications du référentiel git distant, cliquez Pull dans la boîte de dialogue git. Les blocs-notes et les autres fichiers sont mis à jour automatiquement vers la dernière version de votre référentiel distant.

Pour obtenir des instructions sur la résolution des conflits de fusion, consultez conflits de fusion .

Conflits de fusion

Pour résoudre un conflit de fusion, vous devez ignorer les modifications en conflit ou valider les modifications apportées à une nouvelle branche, puis les fusionner dans la branche de fonctionnalité d’origine à l’aide d’une demande de tirage (pull request).

  1. en cas de conflit de fusion, l’interface utilisateur de Repos affiche un avis vous permettant d’annuler l’extraction ou de résoudre le conflit. Si vous sélectionnez résoudre le conflit à l’aidede la demande de tirage, une boîte de dialogue s’affiche pour vous permettre de créer une nouvelle branche et de valider vos modifications.

    resolve conflict dialog

  2. Lorsque vous cliquez sur valider dans une nouvelle branche, un avis s’affiche avec un lien : créer une requête de tirage pour résoudre les conflits de fusion. Cliquez sur le lien pour ouvrir votre fournisseur git.

    merge conflict create PR message

  3. Dans votre fournisseur git, créez le PR, résolvez les conflits et fusionnez la nouvelle branche dans la branche d’origine.

  4. revenez à l’interface utilisateur Repos. Utilisez la boîte de dialogue git pour extraire les modifications du référentiel git vers la branche d’origine.

Valider et envoyer (push) les modifications au référentiel git distant

Lorsque vous avez ajouté de nouveaux blocs-notes ou fichiers, ou modifié des blocs-notes ou des fichiers existants, la boîte de dialogue git met en évidence les modifications.

git dialog

Ajoutez un résumé requis des modifications, puis cliquez sur Commit Push pour envoyer ces modifications au référentiel git distant.

Si vous n’avez pas l’autorisation de valider sur la branche par défaut, par exemple main , main et utilisez votre interface de fournisseur git pour créer une demande de tirage (pull request) pour la fusionner dans la branche par défaut.

Notes

  • Les résultats ne sont pas inclus dans une validation de bloc-notes. Tous les résultats sont effacés avant l’établissement de la validation.
  • Pour obtenir des instructions sur la résolution des conflits de fusion, consultez fusionner les conflits.

Créer une branche

Vous pouvez créer une nouvelle branche basée sur une branche existante à partir de la boîte de dialogue git :

Git dialog new branch

Contrôler l’accès à Databricks Repos

Gérer les autorisations

Lorsque vous créez un référentiel, vous avez la possibilité de gérer l’autorisation. Cela vous permet d’effectuer des opérations git ou de modifier le référentiel distant. Vous pouvez cloner des référentiels distants publics sans informations d’identification git (jeton d’accès personnel et nom d’utilisateur). Pour modifier un référentiel distant public, ou pour cloner ou modifier un référentiel distant privé, vous devez disposer d’un nom d’utilisateur et d’un jeton d’accès personnel du fournisseur git avec des autorisations en lecture et en écriture pour le dépôt distant.

Utiliser les listes d’autorisation

Un administrateur peut limiter les réapprovisionnements distants que les utilisateurs peuvent valider et pousser.

  1. Accéder à la Console d’administration.
  2. cliquez sur l’onglet Paramètres de l’espace de travail .
  3. dans la section avancé , cliquez sur le bouton activer Repos liste verte d’URL Git .
  4. Cliquez sur Confirmer.
  5. dans le champ en regard de Repos liste verte d’url Git : vide, entrez une liste séparée par des virgules de préfixes d’url.
  6. Cliquez sur Enregistrer.

Les utilisateurs peuvent uniquement valider et envoyer des dépôts Git qui commencent par l’un des préfixes d’URL que vous spécifiez. Le paramètre par défaut est « liste vide », ce qui désactive l’accès à tous les dépôts. pour autoriser l’accès à tous les référentiels, désactivez Repos liste verte d’URL Git.

Notes

  • La liste que vous enregistrez remplace l’ensemble existant de préfixes d’URL enregistrés.
  • La prise en compte des modifications peut prendre environ 15 minutes.

Détection des secrets

Repos analyse le code des id de clé d’accès qui commencent par le préfixe AKIA et avertit l’utilisateur avant d’effectuer la validation.

API Repos

le point de terminaison de mise à jour d’API Repos vous permet de mettre à jour un référentiel vers la version la plus récente d’une branche Git spécifique ou d’une balise. Cela vous permet de mettre à jour le référentiel avant d’exécuter un travail sur un bloc-notes dans le référentiel. pour plus d’informations, consultez Repos l’API 2,0.

Intégration de Terraform

Vous pouvez gérer les dépôts dans une configuration entièrement automatisée à l’aide du fournisseur Databricks Terraform et databricks_repo:

resource "databricks_repo" "this" {
  url = "https://github.com/user/demo.git"
}

Meilleures pratiques pour l’intégration de pensions avec des flux de travail CI/CD

Cette section présente les meilleures pratiques pour l’intégration des Databrickss dans votre flux de travail CI/CD. L’illustration suivante montre une vue d’ensemble des étapes.

Best practices overview

Flux de travail d’administration

Repos avoir des dossiers de niveau utilisateur et des dossiers de niveau supérieur non-utilisateur. Les dossiers de niveau utilisateur sont créés automatiquement lorsque les utilisateurs clonent un référentiel distant pour la première fois. Vous pouvez considérer les dépôts des dossiers utilisateur comme des « extractions locales » qui sont individuelles pour chaque utilisateur et où les utilisateurs apportent des modifications à leur code.

Configurer des dossiers référentiel de niveau supérieur

Les administrateurs peuvent créer des dossiers de niveau supérieur non-utilisateur. Le cas d’utilisation le plus courant pour ces dossiers de niveau supérieur consiste à créer des dossiers de développement, intermédiaires et de production qui contiennent des pensions pour les versions ou les branches appropriées pour le développement, la mise en lots et la production. Par exemple, si votre entreprise utilise la branche principale pour la production, le dossier production contient des dépôts configurés pour être au niveau de la branche principale.

En général, les autorisations sur ces dossiers de niveau supérieur sont en lecture seule pour tous les utilisateurs non administrateurs au sein de l’espace de travail.

Top-level repo folders

Configurer l’automatisation git pour mettre à jour des dépôts lors de la fusion

pour vous assurer que les dépôts sont toujours à la dernière version, vous pouvez configurer l’automatisation Git pour appeler l' API Repos. dans votre fournisseur Git, configurez l’automatisation qui, après chaque fusion réussie d’une demande de tirage dans la branche principale, appelle le point de terminaison de l’API Repos sur le référentiel approprié dans le dossier Production pour ramener ce référentiel à la version la plus récente.

par exemple, sur GitHub cela peut être accompli avec des Actions GitHub. pour plus d’informations, consultez l' API Repos.

Flux de travail du développeur

dans votre dossier utilisateur dans Repos, clonez votre référentiel distant. Une meilleure pratique consiste à créer une branche de fonctionnalité, ou à sélectionner une branche créée précédemment, pour votre travail, au lieu de valider directement et d’envoyer des modifications à la branche principale. Vous pouvez apporter des modifications, valider et transmettre les modifications dans cette branche. Lorsque vous êtes prêt à fusionner votre code, créez une requête de tirage et suivez les processus de vérification et de fusion dans Git.

Voici un exemple de flux de travail.

Configuration requise

Ce flux de travail nécessite que vous ayez déjà configuré votre intégration git.

Notes

Databricks recommande que chaque développeur travaille sur sa propre branche de fonctionnalités. Le partage de branches de fonctionnalités entre les développeurs peut entraîner des conflits de fusion, qui doivent être résolus à l’aide de votre fournisseur git. Pour plus d’informations sur la résolution des conflits de fusion, consultez fusionner les conflits.

Workflow

  1. Clonez votre référentiel git existant dans votre espace de travail Databricks.
  2. utilisez l’interface utilisateur Repos pour créer une branche de fonctionnalité à partir de la branche principale. Cet exemple utilise une fonctionnalité de branche de fonctionnalité unique -b pour des raisons de simplicité. Vous pouvez créer et utiliser plusieurs branches de fonctionnalités pour effectuer votre travail.
  3. Apportez vos modifications aux blocs-notes Databricks et aux fichiers du référentiel.
  4. Validez et envoyez vos modifications à votre fournisseur git.
  5. Les collègues peuvent maintenant cloner le référentiel git dans leur propre dossier utilisateur.
    1. En travaillant sur une nouvelle branche, un collègue apporte des modifications aux blocs-notes et aux fichiers du référentiel.
    2. Le collègue valide et pousse ses modifications au fournisseur git.
  6. Pour fusionner les modifications d’autres branches ou rebaser la branche de fonctionnalité, vous devez utiliser la ligne de commande git ou un IDE sur votre système local. ensuite, dans l’interface utilisateur Repos, utilisez la boîte de dialogue Git pour extraire les modifications dans la branche feature-b du référentiel Databricks.
  7. Lorsque vous êtes prêt à fusionner votre travail avec la branche principale, utilisez votre fournisseur git pour créer une demande de tirage pour fusionner les modifications de la fonctionnalité-b.
  8. dans l’interface utilisateur Repos, extrayez les modifications apportées à la branche principale.

Workflow de travail de production

Vous pouvez faire pointer des travaux directement vers des blocs-notes dans des pensions. Lorsqu’un travail démarre une exécution, il utilise la version actuelle du code dans le référentiel.

si l’automatisation est configurée comme décrit dans workflow d’administration, chaque fusion réussie appelle l’API Repos pour mettre à jour le référentiel. Par conséquent, les tâches qui sont configurées pour exécuter du code à partir d’un référentiel utilisent toujours la version la plus récente disponible lors de la création de l’exécution du travail.

Conseils de migration

Important

Cette fonctionnalité est disponible en préversion publique.

Si vous utilisez des %run commandes pour mettre des fonctions python ou R définies dans un Notebook à la disposition d’un autre bloc-notes ou si vous installez des .whl fichiers personnalisés sur un cluster, envisagez d’inclure ces modules personnalisés dans un référentiel Databricks. De cette façon, vous pouvez synchroniser vos blocs-notes et autres modules de code en vous assurant que votre Notebook utilise toujours la version appropriée.

Migrer à partir de %run commandes

%run les commandes vous permettent d’inclure un bloc-notes dans un autre, et sont souvent utilisées pour rendre la prise en charge du code python ou R disponible pour un Notebook. Dans cet exemple, un bloc-notes nommé power.py comprend le code ci-dessous.

# This code is in a notebook named "power.py".
def n_to_mth(n,m):
  print(n, "to the", m, "th power is", n**m)

Vous pouvez ensuite rendre les fonctions définies dans power.py disponibles dans un autre bloc-notes à l’aide d’une %run commande :

# This notebook uses a %run command to access the code in "power.py".
%run ./power
n_to_mth(3, 4)

à l’aide de fichiers dans Repos, vous pouvez importer directement le module qui contient le code Python et exécuter la fonction.

from power import n_to_mth
n_to_mth(3, 4)

Migrer à partir de l’installation de fichiers python personnalisés .whl

Vous pouvez installer .whl des fichiers personnalisés sur un cluster, puis les importer dans un bloc-notes attaché à ce cluster. Pour le code qui est fréquemment mis à jour, ce processus est fastidieux et sujet aux erreurs. les fichiers de Repos vous permettent de conserver ces fichiers Python dans le même référentiel avec les blocs-notes qui utilisent le code, en veillant à ce que votre notebook utilise toujours la version appropriée.

Pour plus d’informations sur l’empaquetage de projets Python, consultez ce didacticiel.

Limitations et questions fréquentes

Dans cette section :

Les modifications entrantes effacent l’état du bloc-notes

Les opérations git qui modifient le code source du bloc-notes entraînent la perte de l’état de l’Notebook, y compris les résultats des cellules, les commentaires, l’historique des révisions et les widgets. Par exemple, l’extraction git peut modifier le code source d’un bloc-notes. Dans ce cas, les pensions Databricks doivent remplacer le bloc-notes existant pour importer les modifications. La validation git et l’envoi ou la création d’une nouvelle branche n’affectent pas le code source du bloc-notes, de sorte que l’état du Notebook est conservé dans ces opérations.

Perte possible de l’expérience MLflow

Le flux de travail suivant entraîne la suppression définitive d’une expérience MLflow.

  1. Exécutez une expérience MLflow dans un Notebook dans la branche A. L’expérience est enregistrée dans MLflow.
  2. Basculez vers la branche B qui ne contient pas le bloc-notes. Une boîte de dialogue s’affiche indiquant que le bloc-notes a été supprimé.
  3. Lorsque vous revenez à la branche A, le bloc-notes existe toujours, mais l’expérience n’existe plus.

Que se passe-t-il si un travail commence à s’exécuter sur un bloc-notes alors qu’une opération git est en cours ?

À tout moment pendant qu’une opération git est en cours, certains blocs-notes du référentiel peuvent avoir été mis à jour alors que d’autres n’en ont pas. Cela peut entraîner un comportement imprévisible.

Supposons, par exemple, que le Notebook A appelle le bloc-notes Z à l’aide d’une %run commande. Si un travail en cours d’exécution au cours d’une opération git démarre la version la plus récente du bloc-notes a, mais que le bloc-notes Z n’a pas encore été mis à jour, la %run commande du Notebook a peut démarrer l’ancienne version z du bloc-notes. Au cours de l’opération git, les États du bloc-notes ne sont pas prévisibles et le travail peut échouer ou exécuter le bloc-notes A et le bloc-notes Z à partir de différentes validations.

Comment puis-je exécuter des fichiers de bloc-notes non Databricks dans un référentiel ? Par exemple, un .py fichier ?

Vous pouvez utiliser l'une des options suivantes :

Puis-je créer des dossiers de niveau supérieur qui ne sont pas des dossiers utilisateur ?

Oui, les administrateurs peuvent créer des dossiers de niveau supérieur en une seule profondeur. Repos ne prend pas en charge les niveaux de dossiers supplémentaires.

Repos prend-il en charge la signature GPG des validations ?

Non.

Comment et où les jetons GitHub sont-ils stockés dans Azure Databricks ? Qui auriez-vous accès à partir de Azure Databricks ?

  • Les jetons d’authentification sont stockés dans le plan de contrôle Azure Databricks, et un Azure Databricks employé peut uniquement accéder via des informations d’identification temporaires qui sont auditées.
  • Azure Databricks enregistre la création et la suppression de ces jetons, mais pas leur utilisation. Azure Databricks a une journalisation qui effectue le suivi des opérations git qui peuvent être utilisées pour auditer l’utilisation des jetons par l’application Azure Databricks.
  • GitHub Enterprise audite l’utilisation des jetons. D’autres services git peuvent également avoir un audit du serveur git.

Repos prend-il en charge les serveurs Git sur site ou auto-hébergés ?

Non.

Repos prend-il en charge les sous-modules Git ?

Non. Vous pouvez cloner un référentiel qui contient des sous-modules git, mais le sous-module n’est pas cloné.

Repos prend-il en charge SSH ?

Non, uniquement HTTPs.

Repos prend-il en charge les .gitignore fichiers ?

Oui. Si vous ajoutez un fichier à votre référentiel et que vous ne souhaitez pas qu’il soit suivi par git, créez un .gitignore fichier ou utilisez un clone à partir de votre référentiel distant et ajoutez le nom de fichier, y compris l’extension.

.gitignore fonctionne uniquement pour les fichiers qui ne sont pas déjà suivis par git. Si vous ajoutez un fichier déjà suivi par git à un .gitignore fichier, le fichier est toujours suivi par git.

Puis-je extraire la version la plus récente d’un référentiel à partir de git avant d’exécuter un travail sans compter sur un outil d’orchestration externe ?

Non. En général, vous pouvez l’intégrer en tant que pré-validation sur le serveur git afin que chaque transmission vers une branche (main/Prod) met à jour le référentiel de production.

Puis-je extraire des .ipynb fichiers ?

Oui. Le fichier est rendu au .json format, et non au format du bloc-notes.

Si une bibliothèque est installée sur un cluster et qu’une bibliothèque portant le même nom est incluse dans un dossier au sein d’un référentiel, quelle bibliothèque est importée ?

La bibliothèque dans le référentiel est importée.

Existe-t-il des limites sur la taille d’un référentiel ou le nombre de fichiers ?

Databricks n’impose pas de limite sur la taille d’un référentiel. Les branches de travail sont limitées à 200 Mo. Les fichiers individuels sont limités à 100 Mo.

Databricks recommande que le nombre total de blocs-notes et de fichiers dans un référentiel ne dépasse pas 2000.

Vous pouvez recevoir un message d’erreur si ces limites sont dépassées. Vous pouvez également recevoir une erreur de délai d’attente sur le clone initial du référentiel, mais l’opération peut se terminer en arrière-plan.

Repos prend-il en charge la fusion de branche ?

Non. Databricks vous recommande de créer une demande de tirage (pull request) et de la fusionner par le biais de votre fournisseur git.

Le contenu des dépôts Databricks est-il chiffré ?

Le contenu des dépôts est chiffré par Azure Databricks à l’aide d’une clé par défaut. Le chiffrement utilisant Activer les clés gérées par le client pour les services managés n’est pas pris en charge.

Puis-je supprimer une branche d’un Azure Databricks référentiel ?

Non. Pour supprimer une branche, vous devez travailler dans votre fournisseur git.

Où est stocké le contenu Databricks référentiel ?

Le contenu d’un référentiel est temporairement cloné sur le disque dans le plan de contrôle. Azure Databricks fichiers de bloc-notes sont stockés dans la base de données du plan de contrôle, tout comme les blocs-notes dans l’espace de travail principal. Les fichiers non-Notebook peuvent être stockés sur disque pendant 30 jours maximum.

comment puis-je désactiver Repos dans mon espace de travail ?

procédez comme suit pour désactiver Repos pour Git dans votre espace de travail.

  1. Accéder à la Console d’administration.
  2. cliquez sur l’onglet Paramètres de l’espace de travail .
  3. dans la section avancé , cliquez sur le bouton bascule Repos .
  4. Cliquez sur Confirmer.
  5. Actualisez votre navigateur.

La prise en charge de Azure Data Factory (ADF) Repos-t-elle ?

Oui.

fichiers dans Repos limitations

Important

Cette fonctionnalité est disponible en préversion publique.

  • dans Databricks Runtime 10,1 et versions antérieures, les fichiers de Repos ne sont pas compatibles avec Spark Streaming. pour utiliser Spark Streaming sur un cluster exécutant Databricks Runtime 10,1 ou une versions antérieures, vous devez désactiver les fichiers dans Repos sur le cluster. Définissez la configuration Spark .
  • Les lectures de fichiers natives sont prises en charge dans les blocs-notes Python et R. Les lectures de fichiers natives ne sont pas prises en charge dans les blocs-notes Scala, mais vous pouvez utiliser des blocs-notes Scala avec DBFS comme vous le faites aujourd’hui.
  • La vue diff de la boîte de dialogue git n’est pas disponible pour les fichiers.
  • Seuls les fichiers encodés texte sont affichés dans l’interface utilisateur. Pour afficher les fichiers dans Azure Databricks, les fichiers ne doivent pas dépasser 10 Mo.
  • Vous ne pouvez pas créer ou modifier un fichier à partir de votre bloc-notes.
  • Vous pouvez uniquement exporter des blocs-notes. Vous ne pouvez pas exporter de fichiers non-Notebook à partir d’un référentiel.

Résolution des problèmes

Message d’erreur : Invalid credentials

Essayez ce qui suit :

  • vérifiez que les paramètres de l’onglet intégration git (utilisateur Paramètres git integration) sont corrects.

    • Vous devez entrer le nom d’utilisateur et le jeton du fournisseur git. Les intégrations git héritées ne nécessitaient pas de nom d’utilisateur. vous devrez donc peut-être ajouter un nom d’utilisateur pour travailler avec des pensions.
  • Vérifiez que vous avez sélectionné le bon fournisseur git dans la boîte de dialogueajouter un référentiel.

  • Vérifiez que votre jeton d’accès personnel ou votre mot de passe d’application dispose de l’accès référentiel approprié.

  • Si l’authentification unique est activée sur votre fournisseur git, autorisez vos jetons pour l’authentification unique.

  • Testez votre jeton avec la ligne de commande git. Ces deux options doivent fonctionner :

    git clone https://<username>:<personal-access-token>@github.com/<org>/<repo-name>.git
    
    git clone -c http.sslVerify=false -c http.extraHeader='Authorization: Bearer <personal-access-token>' https://agile.act.org/
    

Message d’erreur : la connexion sécurisée n’a pas pu être établie en raison de problèmes SSL

<link>: Secure connection to <link> could not be established because of SSL problems

Cette erreur se produit si votre serveur git n’est pas accessible à partir de Azure Databricks. Les serveurs git privés ne sont pas pris en charge.

message d’erreur : Azure Active Directory informations d’identification

  Encountered an error with your Azure Active Directory credentials. Please try logging out of Azure Active Directory and logging back in.

Cette erreur peut se produire si votre équipe a récemment été déplacée vers à l’aide d’une stratégie d’authentification multifacteur (MFA) pour Azure Active Directory. pour résoudre ce problème, vous devez vous déconnecter de Azure Active Directory en accédant à portal.azure.com et en déconnectant. Lorsque vous vous reconnectez, vous devez recevoir l’invite d’utilisation de l’authentification multifacteur pour vous connecter.

Si cela ne fonctionne pas, essayez de vous déconnecter complètement de tous les services Azure avant d’essayer de vous reconnecter.

Erreurs de délai d’expiration

Les opérations coûteuses telles que le clonage d’un grand référentiel ou l’extraction d’une grande branche peuvent atteindre des erreurs de dépassement de délai, mais l’opération peut se terminer en arrière-plan. Vous pouvez également réessayer plus tard si l’espace de travail était surchargé à la fois.

Erreurs 404

Si vous recevez une erreur 404 lorsque vous essayez d’ouvrir un fichier non-Notebook, patientez quelques minutes, puis réessayez. Il y a un délai de quelques minutes entre le moment où l’espace de travail est activé et le moment où l’application webapp récupère l’indicateur de configuration.

resource not found erreurs après l’extraction de fichiers non-Notebooks dans un référentiel Databricks

Cette erreur peut se produire si vous n’utilisez pas Databricks Runtime 8,4 ou une version ultérieure. Un cluster exécutant Databricks Runtime 8,4 ou version ultérieure est requis pour travailler avec des fichiers non-Notebook dans un référentiel.

Erreurs suggérant le reclonage

There was a problem with deleting folders. The repo could be in an inconsistent state and re-cloning is recommended.

Cette erreur indique qu’un problème s’est produit lors de la suppression de dossiers du référentiel. Cela peut rendre le référentiel dans un état incohérent, où les dossiers qui auraient dû être supprimés existent toujours. Si cette erreur se produit, Databricks recommande de supprimer et de recloner le référentiel pour réinitialiser son état.

Unable to set repo to most recent state. This may be due to force pushes overriding commit history on the remote repo. Repo may be out of sync and re-cloning is recommended.

Cette erreur indique que l’État Git local et distant est divergent. Cela peut se produire lorsqu’un push forcé sur le distant se substitue aux validations récentes qui existent toujours sur le référentiel local. Databricks ne prend pas en charge la réinitialisation matérielle dans Repos et recommande la suppression et le reclonage du référentiel si cette erreur se produit.

mes fichiers d’administration activés dans Repos, mais les fichiers attendus ne s’affichent pas après le clonage d’un dépôt distant ou l’extraction de fichiers dans un référentiel existant

  • Vous devez actualiser votre navigateur et redémarrer votre cluster pour récupérer la nouvelle configuration.
  • Votre cluster doit exécuter Databricks Runtime 8,4 ou version ultérieure.