Udostępnij za pośrednictwem


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.