Używanie wykazu aparatu Unity ze strukturalnym przesyłaniem strumieniowym
Użyj przesyłania strumieniowego ze strukturą z wykazem aparatu Unity, aby zarządzać ładem danych dla obciążeń przyrostowych i przesyłanych strumieniowo w usłudze Azure Databricks. W tym dokumencie opisano obsługiwane funkcje i przedstawiono najlepsze rozwiązania dotyczące używania wykazu aparatu Unity i przesyłania strumieniowego ze strukturą.
Jakie funkcje przesyłania strumieniowego ze strukturą obsługuje katalog aparatu Unity?
Wykaz aparatu Unity nie dodaje żadnych jawnych limitów dla źródeł przesyłania strumieniowego ze strukturą i ujść dostępnych w usłudze Azure Databricks. Model nadzoru danych wykazu aparatu Unity umożliwia przesyłanie strumieniowe danych z zarządzanych i zewnętrznych tabel w wykazie aparatu Unity. Możesz również użyć lokalizacji zewnętrznych zarządzanych przez wykaz aparatu Unity do interakcji z danymi przy użyciu identyfikatorów URI magazynu 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 wykazie aparatu Unity przy użyciu nazwy tabeli.
Użyj lokalizacji zewnętrznych zarządzanych przez wykaz aparatu Unity podczas określania ścieżek dla punktów kontrolnych przesyłania strumieniowego ze strukturą. Aby dowiedzieć się więcej na temat bezpiecznego łączenia magazynu z wykazem aparatu Unity, zobacz Connect to cloud object storage and services using Unity Catalog (Nawiązywanie połączenia z magazynem obiektów w chmurze i usługami przy użyciu wykazu aparatu Unity).
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. Aby uzyskać szczegółowe informacje, zobacz Ograniczenia przesyłania strumieniowego dla wykazu aparatu Unity.
Aby zapoznać się z kompleksową demonstracją przy użyciu przesyłania strumieniowego ze strukturą w wykazie aparatu Unity, zobacz Samouczek: uruchamianie kompleksowego potoku analizy typu lakehouse.
Jakie funkcje przesyłania strumieniowego ze strukturą nie są obsługiwane w katalogu aparatu Unity?
Aby uzyskać listę funkcji przesyłania strumieniowego ze strukturą, które nie są obsługiwane w wykazie aparatu Unity, zobacz Ograniczenia przesyłania strumieniowego dla wykazu aparatu Unity.
Odczytywanie widoku wykazu aparatu Unity jako strumienia
Ważne
Ta funkcja jest dostępna w publicznej wersji zapoznawczej.
W środowisku Databricks Runtime 14.1 lub nowszym można użyć przesyłania strumieniowego ze strukturą do wykonywania odczytów strumieniowych z widoków zarejestrowanych w wykazie aparatu Unity. Usługa Azure Databricks obsługuje tylko odczyty strumieniowe z widoków zdefiniowanych względem tabel delty.
Aby odczytać widok ze strukturą przesyłania strumieniowego, podaj identyfikator widoku .table()
do metody, 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 przesyłania strumieniowego stosuje te opcje do plików i metadanych definiujących bazowe tabele delty.
Ważne
Odczyty względem widoków zdefiniowanych za pomocą UNION ALL
polecenia 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:
Strumieniowo można przesyłać strumieniowo tylko z widoków wspieranych przez tabele delty. Widoki zdefiniowane względem innych źródeł danych nie są obsługiwane.
Musisz zarejestrować widoki w wykazie aparatu Unity.
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.