Sink nelle pipeline dichiarative di Lakeflow Spark

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:

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_flow può scrivere nei sink; create_auto_cdc_flow e 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.

Risorse aggiuntive