Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Per impostazione predefinita, i flussi di pipeline scrivono i risultati nelle tabelle Delta gestite in Unity Catalog, in genere sotto forma di tabelle di streaming o viste materializzate. I sink sono una destinazione di output alternativa che consente di scrivere dati trasformati in destinazioni esterne all'archiviazione gestita da Databricks, ad esempio servizi di streaming di eventi o archivi dati personalizzati.
I recettori sono utilizzati con i flussi di aggiunta. Definisci un sink tramite una delle API di sink, quindi farvi riferimento come a target nella definizione append_flow.
Quando utilizzare i sink
Databricks consiglia di usare i sink quando è necessario:
- Creare casi d'uso operativi con bassa latenza, ad esempio il rilevamento delle frodi, l'analisi in tempo reale o le raccomandazioni dei clienti, in cui i dati devono passare a un bus di messaggi anziché all'archiviazione cloud. Per i carichi di lavoro che richiedono latenza in millisecondi, vedere Usare la modalità in tempo reale nelle pipeline dichiarative di Lakeflow Spark.
- Scrivere dati trasformati in tabelle gestite da un'istanza Delta esterna, incluse le tabelle gestite e esterne di Unity Catalog.
- Eseguire l'ETL inverso in sistemi esterni, ad esempio riscrivendo i dati elaborati nei topic di Apache Kafka per l'uso al di fuori di Azure Databricks.
- Scrivere in un formato non supportato nativamente da Azure Databricks, usando origini dati personalizzate di Python.
Tipi di sink
Le pipeline supportano i tipi di sink seguenti:
| Tipo di lavello | Description |
|---|---|
| Sink di tabella Delta | Scrivere nelle tabelle Delta gestite o esterne di Unity Catalog. Specificare un percorso di file o un nome di tabella completo. |
| Sink di Apache Kafka | Scrivi nei topic di Apache Kafka utilizzando il connettore Kafka incluso nel runtime della pipeline. |
| Sink di Hub eventi di Azure | Scrivere in Hub eventi di Azure usando l'interfaccia Kafka. Usa le stesse opzioni dei sink Kafka. |
| sink personalizzati di Python | Scrivere in qualsiasi archivio di dati tramite un'origine dati Python personalizzata registrata con spark.dataSource.register. |
| Sink ForEachBatch | Applicare logica di Python personalizzata a ogni micro batch di dati di streaming. Da usare quando è necessario scrivere in più destinazioni, eseguire upsert o usare destinazioni che non supportano nativamente la scrittura in streaming. |
API Sink
Le pipeline offrono due API per la creazione di sink:
-
create_sink(): Crea un sink con nome di un tipo supportato (Delta, Kafka, AEH o un'origine dati personalizzata Python). Disponibile solo in Python. Vedere Usare sink nelle pipeline. -
foreach_batch_sink(): decora una funzione Python eseguita per ogni micro batch di dati di streaming. Offre la massima flessibilità per la logica di scrittura personalizzata. Vedere Usare ForEachBatch per scrivere in sink di dati arbitrari nelle pipeline.
Entrambi i tipi di sink sono indicati come target di un append_flow.
Limitations
- I sink sono disponibili solo in Python. SQL non è supportato.
- Sono supportate solo le query di streaming. Le query batch non sono supportate.
- Solo
append_flowpuò scrivere nei sink;create_auto_cdc_flowe altri tipi di flusso non sono supportati. - Le aspettative relative alla pipeline non sono supportate per i sink.
- L'esecuzione di un aggiornamento completo non comporta la pulizia dei dati scritti in precedenza nei sink.