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.

Ujścia są używane z przepływami dołączania. Definiujesz sink przy użyciu jednego z interfejsów API sinka, a następnie odwołujesz się do niego jako elementu target w definicji 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.
Odbiorniki ForEachBatch 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.

Interfejsy API odbiorników

Potoki udostępniają dwa interfejsy API do tworzenia ujścia:

Oba typy sinków są określane jako target elementu append_flow.

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 może zapisywać do ujść; create_auto_cdc_flow i inne typy przepływów nie są obsługiwane.
  • 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