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 SparkSessionelement . 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%ri %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.