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
, %r
och ) och %sql
celler 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.