Używanie Unity Catalog z przesyłaniem strumieniowym o strukturze
Użyj Strukturalnego Przesyłania Strumieniowego z Unity Catalog, aby zarządzać ładem danych dla obciążeń przyrostowych i strumieniowych w usłudze Azure Databricks. W tym dokumencie opisano obsługiwane funkcjonalności i przedstawiono najlepsze praktyki dotyczące używania Unity Catalog i Strukturalnego Przesyłania Strumieniowego razem.
Jaką funkcjonalność Structured Streaming obsługuje Unity Catalog?
Unity Catalog nie dodaje żadnych bezpośrednich ograniczeń dla źródeł i ujść Przesyłania Strumieniowego z Ustrukturyzowaniem dostępnych w usłudze Azure Databricks. Model zarządzania danymi Unity Catalog umożliwia przesyłanie strumieniowe danych z zarządzanych i zewnętrznych tabel w Unity Catalog. Możesz również użyć zewnętrznych lokalizacji zarządzanych przez Unity Catalog do interakcji z danymi za pomocą URI magazynowania obiektów. Można zapisywać w tabelach zewnętrznych przy użyciu nazw tabel lub ścieżek plików. Musisz wchodzić w interakcje z tabelami zarządzanymi w Unity Catalog, używając nazwy tabeli.
Użyj lokalizacji zewnętrznych zarządzanych przez katalog Unity podczas określania ścieżek dla punktów kontrolnych strumieniowania strukturalnego. Aby dowiedzieć się więcej na temat bezpiecznego łączenia magazynu z Unity Catalog, zobacz Connect to cloud object storage and services using Unity Catalog.
Obsługa funkcji przesyłania strumieniowego ze strukturą różni się w zależności od uruchomionej wersji środowiska Databricks Runtime i tego, czy używasz przypisanego, czy współużytkowanego trybu dostępu do klastra. Szczegółowe informacje znajdziesz w ograniczeniach transmisji strumieniowej dla Unity Catalog.
Aby uzyskać kompleksową demonstrację użycia Structured Streaming na katalogu Unity, zobacz Samouczek: uruchamianie kompleksowego potoku analitycznego typu lakehouse.
Które możliwości Structured Streaming nie są obsługiwane w katalogu Unity?
Aby uzyskać listę funkcji Structured Streaming, które nie są obsługiwane w Unity Catalog, zobacz Ograniczenia przesyłania strumieniowego dla Unity Catalog.
odczytać widok Unity Catalog jako strumień
Ważne
Ta funkcja jest dostępna w publicznej wersji zapoznawczej.
W Databricks Runtime 14.1 i nowszym można użyć Strumieniowania Ustrukturyzowanego do wykonywania odczytów strumieniowych z widoków zarejestrowanych w Unity Catalog. Usługa Azure Databricks obsługuje tylko odczyty strumieniowe z widoków zdefiniowanych względem tabel delty.
Aby odczytać widok z użyciem Structured Streaming, podaj identyfikator widoku dla metody .table()
, jak w poniższym przykładzie:
df = (spark.readStream
.table("demoView")
)
Użytkownicy muszą mieć SELECT
uprawnienia w widoku docelowym.
Obsługiwane opcje konfigurowania odczytów przesyłanych strumieniowo względem widoków
Następujące opcje są obsługiwane podczas konfigurowania odczytów przesyłanych strumieniowo względem widoków:
maxFilesPerTrigger
maxBytesPerTrigger
ignoreDeletes
skipChangeCommits
withEventTimeOrder
startingTimestamp
startingVersion
Czytnik strumieniowy stosuje te opcje do plików i metadanych definiujących bazowe Tabele Delta.
Ważne
Operacje odczytu wykonywane względem widoków zdefiniowanych za pomocą UNION ALL
nie obsługują opcji withEventTimeOrder
i startingVersion
.
Obsługiwane operacje w widokach źródłowych
Nie wszystkie widoki obsługują odczyty przesyłane strumieniowo. Nieobsługiwane operacje w widokach źródłowych obejmują agregacje i sortowanie.
Poniższa lista zawiera opisy i przykładowe definicje widoku dla obsługiwanych operacji:
Projekt
Opis: Kontroluje uprawnienia na poziomie kolumny
Operator:
SELECT... FROM...
Przykładowa instrukcja:
CREATE VIEW project_view AS SELECT id, value FROM source_table
Filtr
Opis: Steruje uprawnieniami na poziomie wiersza
Operator:
WHERE...
Przykładowa instrukcja:
CREATE VIEW filter_view AS SELECT * FROM source_table WHERE value > 100
Wszystkie unii
Opis: Wyniki z wielu tabel
Operator:
UNION ALL
Przykładowa instrukcja:
CREATE VIEW union_view AS SELECT id, value FROM source_table1 UNION ALL SELECT * FROM source_table2
Uwaga
Nie można zmodyfikować definicji widoku, aby dodać lub zmienić tabele, do których odwołuje się widok, i użyć tego samego punktu kontrolnego przesyłania strumieniowego.
Ograniczenia
Obowiązują następujące ograniczenia:
Można przesyłać strumieniowo tylko z widoków zasilanych przez tabele delty. Widoki zdefiniowane względem innych źródeł danych nie są obsługiwane.
Musisz zarejestrować widoki w Unity Catalog.
Następujący wyjątek jest wyświetlany, jeśli przesyłasz strumieniowo z widoku z nieobsługiwanym operatorem:
UnsupportedOperationException: [UNEXPECTED_OPERATOR_IN_STREAMING_VIEW] Unexpected operator <operator> in the CREATE VIEW statement as a streaming source. A streaming view query must consist only of SELECT, WHERE, and UNION ALL operations.
W przypadku podania nieobsługiwanych opcji zostanie wyświetlony następujący wyjątek:
AnalysisException: [UNSUPPORTED_STREAMING_OPTIONS_FOR_VIEW.UNSUPPORTED_OPTION] Unsupported for streaming a view. Reason: option <option> is not supported.