Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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ść:
-
create_sink(): Tworzy nazwany odbiornik obsługiwanego typu (Delta, Kafka, AEH lub niestandardowe źródło danych Python). Dostępne tylko w Python. Zobacz Korzystanie z ujść w potokach. -
foreach_batch_sink(): dekoruje funkcję Python uruchamianą dla każdej mikrosadowej danych przesyłanych strumieniowo. Zapewnia maksymalną elastyczność dla niestandardowej logiki zapisu. Zobacz Use ForEachBatch to write to arbitrary data sinks in pipelines (Używanie funkcji ForEachBatch do zapisywania w dowolnych ujściach danych w potokach). -
foreach_sink(): Dekoruje funkcję języka Python lub przyjmuje obiekt writer, który jest uruchamiany dla każdego wiersza danych strumieniowych. Zobacz Użyj ujściaForEachdo zapisywania każdego wiersza w potokach.
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_flowiupdate_flowmogą zapisywać do ujść.create_auto_cdc_flowa 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.