Obliczanie ograniczeń trybu dostępu w ramach Unity Catalog
Uwaga
Zmieniono nazwy trybów dostępu. Tryb dostępu współdzielonego jest teraz Standard. Tryb dostępu pojedynczego użytkownika jest teraz Dedykowany i można go przypisać do jednego użytkownika lub grupy. Dostęp do grupy jest dostępny w publicznej wersji zapoznawczej.
Usługa Databricks zaleca używanie standardowego trybu dostępu (dawniej trybu dostępu współdzielonego) dla większości obciążeń. W tym artykule opisano ograniczenia i wymagania dotyczące poszczególnych sposobów dostępu w Unity Catalog. Aby uzyskać szczegółowe informacje na temat trybów dostępu, zobacz Tryby dostępu.
Usługa Databricks zaleca używanie zasad obliczeniowych w celu uproszczenia opcji konfiguracji dla większości użytkowników. Zobacz Tworzenie zasad obliczeniowych i zarządzanie nimi.
Uwaga
Tryby dostępu współdzielonego bez izolacji oraz przekazywanie poświadczeń to starsze tryby dostępu, które nie obsługują Unity Catalog.
Ważne
Skrypty inicjowania i biblioteki mają różne wsparcie dla trybów dostępu i wersji środowiska Databricks Runtime. Zobacz Gdzie można zainstalować skrypty inicjowania? oraz biblioteki przypisane do zasobów obliczeniowych.
Ograniczenia trybu dostępu dedykowanego w katalogu Unity
Tryb dedykowanego dostępu w Unity Catalog ma następujące ograniczenia. ** Są to dodatkowe ograniczenia oprócz ogólnych ograniczeń dla wszystkich trybów dostępu w katalogu Unity. Zobacz Ogólne ograniczenia katalogu Unity.
Szczegółowe ograniczenia kontroli dostępu dla dedykowanego trybu dostępu Unity Catalog
W środowisku Databricks Runtime 15.3 lub nowszym szczegółowa kontrola dostępu w obliczeniach pojedynczego użytkownika nie jest obsługiwana. Szczególnie:
- Nie można uzyskać dostępu do tabeli z filtrem wierszy lub maską kolumny.
- Nie można uzyskać dostępu do widoków dynamicznych .
- Aby odczytać z dowolnego widoku, musisz mieć
SELECT
we wszystkich tabelach i widokach, do których odnosi się dany widok.
Aby wykonywać zapytania dotyczące widoków dynamicznych, widoki, na których nie masz SELECT
w podstawowych tabelach i widokach, oraz tabele z filtrami wierszy lub maskami kolumn, użyj jednej z następujących opcji:
- Magazyn SQL.
- Obliczaj ze standardowym trybem dostępu.
- Obliczenia w dedykowanym trybie dostępu na Databricks Runtime 15.4 LTS lub nowszym.
Środowisko Databricks Runtime 15.4 LTS i nowsze obsługują szczegółową kontrolę dostępu na komputerze użytkownika pojedynczego. Aby skorzystać z filtrowania danych dostępnego w środowisku Databricks Runtime 15.4 LTS lub nowszym, sprawdź, czy obszar roboczy jest włączony dla obliczeń bezserwerowych.
Przetwarzanie bezserwerowe obsługuje filtrowanie danych, co umożliwia dostęp do widoku bez konieczności stosowania uprawnień do bazowych tabel i widoków. Ponieważ przetwarzanie bezserwerowe obsługuje filtrowanie danych, w przypadku używania obliczeń pojedynczego użytkownika do wykonywania zapytań dotyczących widoków może być naliczane opłaty za przetwarzanie bezserwerowe. Aby uzyskać więcej informacji, zobacz kontrola dostępu o wysokiej szczegółowości do dedykowanego przetwarzania (dawniej przetwarzanie pojedynczego użytkownika).
Przesyłanie strumieniowe tabeli i ograniczenia zmaterializowanego widoku dla trybu dedykowanego dostępu w ramach Unity Catalog
W środowisku Databricks Runtime 15.3 i poniżej nie można używać obliczeń pojedynczego użytkownika do wykonywania zapytań dotyczących tabel utworzonych przy użyciu potoku DLT, w tym tabel przesyłania strumieniowego i zmaterializowanych widoków, jeśli te tabele są własnością innych użytkowników. Użytkownik, który tworzy tabelę, jest właścicielem.
Aby wykonywać zapytania dotyczące tabel przesyłania strumieniowego i zmaterializowanych widoków utworzonych przez bibliotekę DLT i należących do innych użytkowników, użyj jednego z następujących elementów:
- Magazyn SQL.
- Obliczenia w standardowym trybie dostępu na Databricks Runtime 13.3 LTS lub nowszym.
- Obliczenia z trybem dedykowanego dostępu na środowisku Databricks Runtime 15.4 LTS lub nowszym.
Obszar roboczy musi być również włączony dla obliczeń bezserwerowych. Aby uzyskać więcej informacji, zobacz sekcję szczegółowe kontrole dostępu do dedykowanych zasobów obliczeniowych (dawniej jako obliczenia pojedynczego użytkownika).
ograniczenia przesyłania strumieniowego dla dedykowanego trybu dostępu Unity Catalog
- Asynchroniczne punkty kontrolne nie są obsługiwane w środowisku Databricks Runtime 11.3 LTS i poniżej.
-
StreamingQueryListener
wymaga środowiska Databricks Runtime 15.1 lub nowszego do używania poświadczeń lub interakcji z obiektami zarządzanymi przez Unity Catalog na potrzeby obliczeń pojedynczego użytkownika.
Ograniczenia standardowego trybu dostępu w katalogu Unity
Standardowy tryb dostępu w katalogu Unity ma następujące ograniczenia. Są one dodatkiem do ogólnych ograniczeń dla wszystkich trybów dostępu katalogu Unity. Zobacz Ogólne ograniczenia katalogu Unity.
- Databricks Runtime ML i biblioteka Spark Machine Learning Library (MLlib) nie są obsługiwane.
- Zadania przesyłane za pomocą platformy Spark nie są obsługiwane. Zamiast tego użyj zadania JAR .
- Narzędzia DBUtils i inni klienci, którzy bezpośrednio odczytują dane z magazynu w chmurze, są obsługiwane tylko w przypadku korzystania z lokalizacji zewnętrznej w celu uzyskania dostępu do lokalizacji magazynu. Zobacz Tworzenie lokalizacji zewnętrznej w celu połączenia magazynu w chmurze z usługą Azure Databricks.
- W środowisku Databricks Runtime 13.3 lub nowszym pojedyncze wiersze nie mogą przekraczać 128 MB.
- Katalog główny DBFS i punkty montowania nie obsługują FUSE.
- Kontenery niestandardowe nie są obsługiwane.
Obsługa językowa dla dla standardowego trybu dostępu Unity Catalog
- Język R nie jest obsługiwany.
- Język Scala jest obsługiwany w środowisku Databricks Runtime 13.3 lub nowszym.
- W Databricks Runtime 15.4 LTS i nowszym wszystkie biblioteki Java lub Scala (pliki JAR) połączone z Databricks Runtime są dostępne przy obliczeniach w trybach dostępu Unity Catalog.
- W przypadku środowiska Databricks Runtime 15.3 lub starszego w środowisku obliczeniowym korzystającym ze standardowego trybu dostępu ustaw konfigurację Spark
spark.databricks.scala.kernel.fullClasspath.enabled
natrue
.
ograniczenia interfejsu API Spark i wymagania dotyczące standardowego trybu dostępu w Unity Catalog
- API RDD nie są obsługiwane.
- Kontekst Spark (
sc
)spark.sparkContext
isqlContext
nie jest obsługiwany dla Scali w żadnym środowisku Databricks Runtime ani dla Pythona w Databricks Runtime 14.0 lub późniejszym.- Databricks zaleca używanie zmiennej
spark
do interakcji z instancjąSparkSession
. - Następujące
sc
funkcje również nie są obsługiwane:emptyRDD
,range
,init_batched_serializer
,parallelize
,pickleFile
,textFile
,wholeTextFiles
,binaryFiles
,binaryRecords
,sequenceFile
,newAPIHadoopFile
,newAPIHadoopRDD
,hadoopFile
,hadoopRDD
,union
,runJob
,setSystemProperty
,uiWebUrl
,stop
,setJobGroup
,setLocalProperty
,getConf
.
- Databricks zaleca używanie zmiennej
- Następujące operacje interfejsu API Scala Dataset wymagają środowiska Databricks Runtime 15.4 LTS lub nowszego:
map
,mapPartitions
,foreachPartition
,flatMap
,reduce
ifilter
. - Właściwość konfiguracji Spark
spark.executor.extraJavaOptions
nie jest obsługiwana.
ograniczenia i wymagania dotyczące standardowego trybu dostępu katalogu Unity dla funkcji UDF
Funkcje zdefiniowane przez użytkownika (UDF) mają następujące ograniczenia dotyczące standardowego trybu dostępu:
- Funkcje UDF zdefiniowane przez użytkownika w Hive nie są obsługiwane.
-
applyInPandas
imapInPandas
wymagają środowiska Databricks Runtime w wersji 14.3 lub nowszej. - Funkcje UDF w PySpark nie mogą uzyskać dostępu do folderów Git, plików obszaru roboczego ani woluminów w celu zaimportowania modułów w środowisku Databricks Runtime 14.2 i starszych.
- Scala skalarne funkcje zdefiniowane przez użytkownika wymagają środowiska Databricks Runtime 14.2 lub nowszego. Inne funkcje UDF i UDAF języka Scala nie są obsługiwane.
- W środowisku Databricks Runtime 14.2 i starszym użycie niestandardowej wersji
grpc
,pyarrow
lubprotobuf
w funkcji UDF PySpark przy użyciu bibliotek o zakresie notesu lub zakresie klastra nie jest obsługiwane, ponieważ zainstalowana wersja jest zawsze preferowana. Aby znaleźć wersję zainstalowanych bibliotek, zobacz sekcję Środowisko systemowe w informacjach o wydaniu dla danej wersji środowiska Databricks Runtime.
- Skalarne UDF w języku Python i UDF Pandas wymagają środowiska Databricks Runtime 13.3 LTS lub nowszego.
- Nieskalowane funkcje UDF, w tym UDAF, UDTF języka Python i Pandas na Spark, wymagają środowiska Databricks Runtime 14.3 LTS lub nowszego.
Zobacz funkcje definiowane przez użytkownika (UDFs) w katalogu Unity.
Ograniczenia przesyłania strumieniowego i wymagania dotyczące standardowego trybu dostępu Unity Catalog
Uwaga
Niektóre z wymienionych opcji Kafki mają ograniczoną obsługę podczas użycia w obsługiwanych konfiguracjach na Azure Databricks. Wszystkie wymienione ograniczenia platformy Kafka obowiązują zarówno w przypadku przetwarzania wsadowego, jak i strumieniowego. Zobacz Przetwarzanie strumieniowe przy użyciu platform Apache Kafka i Azure Databricks.
- Nie można używać formatów
statestore
istate-metadata
do zapytań o stan dla stanowych zapytań strumieniowych. -
transformWithState
,transformWithStateInPandas
oraz powiązane interfejsy API nie są obsługiwane. - W przypadku języka Scala
foreach
wymaga środowiska Databricks Runtime 16.1 lub nowszego.foreachBatch
iflatMapGroupsWithState
wymagają środowiska Databricks Runtime 16.2 lub nowszego. - W przypadku języka Python
foreachBatch
zmiany zachowania w środowisku Databricks Runtime 14.0 lub nowszym są następujące:-
print()
polecenia zapisują dane wyjściowe w dziennikach sterowników. - Nie można uzyskać dostępu do modułu
dbutils.widgets
podrzędnego wewnątrz funkcji. - Wszystkie pliki, moduły lub obiekty, do których odwołuje się funkcja, muszą być serializowalne i dostępne na platformie Spark.
-
- W przypadku języka Scala
from_avro
wymaga środowiska Databricks Runtime w wersji 14.2 lub nowszej. -
applyInPandasWithState
wymaga środowiska Databricks Runtime 14.3 LTS lub nowszego. - Praca ze źródłami gniazd nie jest obsługiwana.
-
sourceArchiveDir
musi znajdować się w tej samej lokalizacji zewnętrznej co źródło, gdy używaszoption("cleanSource", "archive")
ze źródłem danych zarządzanym przez Unity Catalog. - W przypadku źródeł i ujść platformy Kafka następujące opcje nie są obsługiwane:
kafka.sasl.client.callback.handler.class
kafka.sasl.login.callback.handler.class
kafka.sasl.login.class
kafka.partition.assignment.strategy
- Następujące opcje platformy Kafka są obsługiwane w środowisku Databricks Runtime 13.3 LTS i nowszym, ale nieobsługiwane w środowisku Databricks Runtime 12.2 LTS. Można określić tylko zewnętrzne lokalizacje zarządzane przez Unity Catalog dla tych opcji:
kafka.ssl.truststore.location
kafka.ssl.keystore.location
- W przypadku języka Scala
StreamingQueryListener
wymaga środowiska Databricks Runtime 16.1 lub nowszego. - W przypadku języka Python
StreamingQueryListener
wymaga środowiska Databricks Runtime 14.3 LTS lub nowszego, aby używać poświadczeń lub wchodzić w interakcje z obiektami zarządzanymi przez Unity Catalog na zasobach obliczeniowych z użyciem standardowego trybu dostępu.
Ograniczenia dostępu do sieci i systemu plików oraz wymagania dotyczące standardowego trybu dostępu Unity Catalog
- Należy uruchomić polecenia na węzłach obliczeniowych jako użytkownik o niskim poziomie uprawnień, który ma zakaz dostępu do wrażliwych części systemu plików.
- W środowisku Databricks Runtime 11.3 LTS i poniżej można tworzyć połączenia sieciowe tylko z portami 80 i 443.
- Nie można nawiązać połączenia z usługą metadanych wystąpienia ani z usługą Azure WireServer.
ogólne ograniczenia dotyczące Unity Catalog
Następujące ograniczenia dotyczą wszystkich trybów dostępu z obsługą katalogu Unity.
Ograniczenia dotyczące przesyłania strumieniowego w Unity Catalog
- Tryb ciągłego przetwarzania platformy Apache Spark nie jest obsługiwany. Zobacz Ciągłe przetwarzanie w przewodniku programowania Spark Structured Streaming.
Zobacz również ograniczenia strumieniowania dla dedykowanego trybu dostępu Unity Catalog i ograniczenia strumieniowania oraz wymagania dotyczące standardowego trybu dostępu Unity Catalog.
Aby uzyskać więcej informacji na temat strumieniowania przy użyciu Unity Catalog, zobacz Using Unity Catalog with Structured Streaming.