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.
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:
-
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).
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_flowmoże zapisywać do ujść;create_auto_cdc_flowi 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.