Isolering av notebook-filer

Isolering av notebook-filer syftar på synligheten för variabler och klasser mellan notebook-filer. Azure Databricks stöder två typer av isolering:

  • Variabel- och klassisolering
  • Spark-sessionsisolering

Kommentar

Azure Databricks hanterar användarisolering med hjälp av åtkomstlägen som konfigurerats i kluster.

  • Ingen isolering delas: Flera användare kan använda samma kluster. Användare delar autentiseringsuppgifter som angetts på klusternivå. Inga kontroller för dataåtkomst tillämpas.
  • Enskild användare: Endast den namngivna användaren kan använda klustret. Alla kommandon körs med användarens behörigheter. Tabell-ACL:er i Hive-metaarkivet tillämpas inte. Det här åtkomstläget stöder Unity Catalog.
  • Delad: Flera användare kan använda samma kluster. Användarna är helt isolerade från varandra och varje användare kör kommandon med sina egna privilegier. Tabell-ACL:er i Hive-metaarkivet tillämpas. Det här åtkomstläget stöder Unity Catalog.

Variabel- och klassisolering

Variabler och klasser är endast tillgängliga i den aktuella notebook-filen. Två notebook-filer som är kopplade till samma kluster kan till exempel definiera variabler och klasser med samma namn, men dessa objekt är distinkta.

Om du vill definiera en klass som är synlig för alla notebook-filer som är kopplade till samma kluster definierar du klassen i en paketcell. Sedan kan du komma åt klassen med hjälp av dess fullständigt kvalificerade namn, vilket är detsamma som att komma åt en klass i ett bifogat Scala- eller Java-bibliotek.

Spark-sessionsisolering

Varje notebook-fil som är kopplad till ett kluster har en fördefinierad variabel med namnet spark som representerar en SparkSession. SparkSession är startpunkten för att använda Spark-API:er samt ställa in körningskonfigurationer.

Spark-sessionsisolering är aktiverat som standard. Du kan också använda globala tillfälliga vyer för att dela tillfälliga vyer mellan notebook-filer. Se SKAPA VY. Om du vill inaktivera Spark-sessionsisolering anger du spark.databricks.session.share till true i Spark-konfigurationen.

Viktigt!

Inställningen spark.databricks.session.share true bryter övervakningen som används av både strömmande notebook-celler och strömmande jobb. Specifikt:

  • Graferna i strömmande celler visas inte.
  • Jobb blockeras inte så länge en dataström körs (de slutför bara "lyckat" och stoppar strömmen).
  • Flöden i jobb övervakas inte för uppsägning. I stället måste du anropa awaitTermination()manuellt .
  • Att anropa Skapa en ny visualisering för strömmande DataFrames fungerar inte.

Celler som utlöser kommandon på andra språk (dvs. celler med hjälp av %scala, %python, %roch ) och %sqlceller som innehåller andra notebook-filer (dvs. celler som använder %run) är en del av den aktuella notebook-filen. Dessa celler är alltså i samma session som andra notebook-celler. Däremot kör ett notebook-arbetsflöde en notebook-fil med en isolerad SparkSession, vilket innebär att tillfälliga vyer som definierats i en sådan notebook-fil inte visas i andra notebook-filer.