Isolation des notebooks

L’isolation des notebooks fait référence à la visibilité des variables et des classes entre les notebooks. Azure Databricks prend en charge deux types d’isolation :

  • Isolation des variables et des classes
  • Isolation de la session Spark

Notes

Azure Databricks gère l’isolation utilisateur à l’aide des modes d’accès configurés sur les clusters.

  • Aucune isolation partagée : plusieurs utilisateurs peuvent utiliser le même cluster. Les utilisateurs partagent les informations d’identification définies au niveau du cluster. Aucun contrôle d’accès aux données n’est appliqué.
  • Utilisateur unique : seul l'utilisateur nommé peut utiliser le cluster. Toutes les commandes sont exécutées avec les privilèges de cet utilisateur. Les listes de contrôle d’accès de table du metastore Hive ne sont pas appliquées. Ce mode d’accès prend en charge Unity Catalog.
  • Partagé : plusieurs utilisateurs peuvent utiliser le même cluster. Les utilisateurs sont totalement isolés les uns des autres, et chacun exécute les commandes avec ses propres privilèges. Les listes de contrôle d’accès de table du metastore Hive sont appliquées. Ce mode d’accès prend en charge Unity Catalog.

Isolation des variables et des classes

Les variables et les classes ne sont disponibles que dans le notebook actuel. Par exemple, deux notebooks attachés au même cluster peuvent définir des variables et des classes portant le même nom, mais ces objets sont distincts.

Pour définir une classe qui est visible pour tous les notebooks attachés au même cluster, définissez la classe dans une cellule de package. Vous pouvez ensuite accéder à la classe en utilisant son nom complet, ce qui revient à accéder à une classe dans une bibliothèque Scala ou Java attachée.

Isolation de la session Spark

Chaque notebook attaché à un cluster a une variable prédéfinie nommée spark qui représente une SparkSession. SparkSession est le point d’entrée pour l’utilisation des API Spark et la définition des configurations d’exécution.

L’isolation de la session Spark est activée par défaut. Vous pouvez également utiliser des affichages temporaires globaux pour partager des affichages temporaires entre les notebooks. Voir CRÉER UNE VUE. Pour désactiver l’isolation de session Spark, définissez spark.databricks.session.share sur true dans la configuration Spark.

Important

Définir spark.databricks.session.share sur true interrompt le monitoring utilisé par les cellules de notebook de streaming et les travaux de streaming. Plus précisément :

  • Les graphiques des cellules de diffusion en continu ne sont pas affichés.
  • Les travaux ne sont pas bloqués tant qu’un flux est en cours d’exécution (ils se terminent simplement « correctement », arrêtant le flux).
  • Les flux dans les travaux ne sont pas surveillés pour vérifier l’arrêt. Au lieu de cela, vous devez appeler awaitTermination() manuellement.
  • L’appel de la commande Créer une visualisation sur des DataFrames de streaming ne fonctionne pas.

Les cellules qui déclenchent des commandes dans d’autres langages (c’est-à-dire, des cellules utilisant %scala, %python, %r et %sql) et des cellules qui incluent d’autres notebooks (c’est-à-dire des cellules utilisant %run) font partie du notebook actuel. Par conséquent, ces cellules se trouvent dans la même session que les autres cellules du notebook. En revanche, un flux de travail de notebook exécute un notebook avec un SparkSession isolé, ce qui signifie que les affichages temporaires définis dans ce notebook ne sont pas visibles dans les autres notebooks.