Udostępnij za pośrednictwem


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.