Izolacja notesu
Izolacja notesu odnosi się do widoczności zmiennych i klas między notesami. Usługa Azure Databricks obsługuje dwa typy izolacji:
- Izolacja zmiennych i klas
- Izolacja sesji platformy Spark
Uwaga
Usługa Azure Databricks zarządza izolacją użytkowników przy użyciu trybów dostępu skonfigurowanych w klastrach.
- Brak udostępnionej izolacji: wielu użytkowników może używać tego samego klastra. Użytkownicy współdzielą poświadczenia ustawione na poziomie klastra. Nie są wymuszane żadne mechanizmy kontroli dostępu do danych.
- Pojedynczy użytkownik: tylko nazwany użytkownik może używać klastra. Wszystkie polecenia są uruchamiane z uprawnieniami tego użytkownika. Listy ACL tabel w magazynie metadanych Hive nie są wymuszane. Ten tryb dostępu obsługuje rozwiązanie Unity Catalog.
- Udostępnione: wielu użytkowników może używać tego samego klastra. Użytkownicy są w pełni odizolowani od siebie, a każdy użytkownik uruchamia polecenia z własnymi uprawnieniami. Listy ACL tabel w magazynie metadanych Hive są wymuszane. Ten tryb dostępu obsługuje rozwiązanie Unity Catalog.
Izolacja zmiennych i klas
Zmienne i klasy są dostępne tylko w bieżącym notesie. Na przykład dwa notesy dołączone do tego samego klastra mogą definiować zmienne i klasy o tej samej nazwie, ale te obiekty są odrębne.
Aby zdefiniować klasę widoczną dla wszystkich notesów dołączonych do tego samego klastra, zdefiniuj klasę w komórce pakietu. Następnie możesz uzyskać dostęp do klasy przy użyciu w pełni kwalifikowanej nazwy, która jest taka sama jak uzyskiwanie dostępu do klasy w dołączonej bibliotece Scala lub Java.
Izolacja sesji platformy Spark
Każdy notes dołączony do klastra ma wstępnie zdefiniowaną zmienną o nazwie spark
, która reprezentuje SparkSession
element . SparkSession
jest punktem wejścia do korzystania z interfejsów API platformy Spark, a także ustawiania konfiguracji środowiska uruchomieniowego.
Izolacja sesji platformy Spark jest domyślnie włączona. Możesz również użyć globalnych widoków tymczasowych do udostępniania widoków tymczasowych między notesami. Zobacz CREATE VIEW (TWORZENIE WIDOKU). Aby wyłączyć izolację sesji platformy Spark, ustaw wartość spark.databricks.session.share
na true
w konfiguracji platformy Spark.
Ważne
Ustawienie spark.databricks.session.share
wartości true powoduje przerwanie monitorowania używanego zarówno przez komórki notesu przesyłania strumieniowego, jak i zadania przesyłania strumieniowego. Szczególnie:
- Wykresy w komórkach przesyłania strumieniowego nie są wyświetlane.
- Zadania nie blokują tak długo, jak strumień jest uruchomiony (po prostu kończą się "pomyślnie", zatrzymując strumień).
- Strumienie w zadaniach nie są monitorowane pod kątem zakończenia. Zamiast tego należy ręcznie wywołać metodę
awaitTermination()
. - Wywołanie polecenia Create a new visualization on streaming DataFrames (Tworzenie nowej wizualizacji w obiektach DataFrame przesyłania strumieniowego) nie działa.
Komórki, które wyzwalają polecenia w innych językach (czyli komórki korzystające z , , %python
%r
i %sql
) i komórki zawierające inne notesy (czyli komórki używające %scala
%run
) są częścią bieżącego notesu. W związku z tym komórki te znajdują się w tej samej sesji co inne komórki notesu. Z kolei przepływ pracy notesu uruchamia notes z izolowanym SparkSession
, co oznacza, że widoki tymczasowe zdefiniowane w tym notesie nie są widoczne w innych notesach.