Ujścia w potokach lakeflow

Domyślnie przepływy potoku zapisują wyniki w tabelach Delta zarządzanych przez Unity Catalog, zwykle są to tabele strumieniowe lub widoki materializowane. Ujścia to alternatywny element docelowy danych wyjściowych, który umożliwia zapisywanie przekształconych danych w miejscach docelowych poza magazynem zarządzanym przez usługę Databricks, takich jak usługi przesyłania strumieniowego zdarzeń lub niestandardowe magazyny danych.

Definiujesz sink za pomocą jednego z API sink, a następnie odwołujesz się do niego jako do target w definicji update_flow lub append_flow.

Kiedy należy używać ujściów

Usługa Databricks zaleca używanie ujścia, gdy trzeba:

  • Twórz operacyjne przypadki użycia o niskich opóźnieniach, takie jak wykrywanie oszustw, analityka w czasie rzeczywistym lub rekomendacje dla klientów, w których dane muszą trafiać do szyny komunikatów zamiast do pamięci masowej w chmurze. W przypadku obciążeń wymagających opóźnień rzędu milisekund zobacz Korzystanie z trybu czasu rzeczywistego w potokach Lakeflow.
  • Zapisywanie przekształconych danych do tabel zarządzanych przez zewnętrzną instancję Delta, w tym tabel zarządzanych przez Unity Catalog oraz tabel zewnętrznych.
  • Wykonywanie odwrotnego ETL do systemów zewnętrznych, na przykład przez zapisywanie przetworzonych danych z powrotem do topików Apache Kafka w celu wykorzystania poza usługą Azure Databricks.
  • Zapisywać w formacie, który nie jest natywnie obsługiwany przez Azure Databricks, przy użyciu niestandardowych źródeł danych w Pythonie.

Typy ujścia

Potoki obsługują następujące typy ujścia:

Typ ujścia Description
Ujścia tabeli delty Zapisywać do zarządzanych lub zewnętrznych tabel Delta w Unity Catalog. Określ ścieżkę pliku lub w pełni kwalifikowaną nazwę tabeli.
Ujścia platformy Apache Kafka Zapisuj do tematów Apache Kafka przy użyciu łącznika Kafka dołączonego do środowiska uruchomieniowego potoku.
Ujścia usługi Azure Event Hubs Zapisuj do Azure Event Hubs przy użyciu interfejsu Kafka. Używa tych samych opcji co konektory wyjściowe Kafka.
Niestandardowe sinki Pythona Zapisuj do dowolnego magazynu danych przy użyciu niestandardowego źródła danych w języku Python zarejestrowanego za pomocą spark.dataSource.register.
ForEachBatch zlewy Zastosuj niestandardową logikę w języku Python do każdej mikropartii danych strumieniowych. Używaj tego, gdy musisz zapisywać dane do wielu miejsc docelowych, wykonywać operacje upsert lub korzystać z miejsc docelowych, które natywnie nie obsługują zapisu strumieniowego.
ForEach zlewy Stosuj niestandardową logikę Python do każdego wiersza danych strumieniowych. Używaj, gdy musisz zapisać każdy rekord w miejscu docelowym, które nie ma wbudowanego odbiornika, na przykład zewnętrznego API lub magazynu klucz-wartość.

Interfejsy API odbiorników

Potoki mają trzy API do tworzenia ujść:

Wszystkie trzy typy zlewów są określane jako append_flow, update_flow lub target.

Ograniczenia

  • Ujścia są dostępne tylko w Python. Język SQL nie jest obsługiwany.
  • Obsługiwane są tylko zapytania przesyłane strumieniowo. Zapytania wsadowe nie są obsługiwane.
  • Tylko append_flow i update_flow mogą zapisywać do ujść. create_auto_cdc_flow a inne typy przepływu nie są obsługiwane.
    • Przepływy aktualizacji nie obsługują ujść tabel Delta Lake.
  • Oczekiwania potoku nie są obsługiwane w przypadku ujścia.
  • Uruchomienie pełnego odświeżania nie powoduje wyczyszczenia wcześniej zapisanych danych w ujściach.

Dodatkowe zasoby