Caricare ed elaborare i dati in modo incrementale con i flussi dichiarativi di Lakeflow Spark

I dati vengono elaborati nelle pipeline tramite flussi. Ogni flusso è costituito da una query e, in genere, da una destinazione. Il flusso elabora la query, sia in batch che in modo incrementale come flusso di dati verso la destinazione. Un flusso si trova all'interno di una pipeline in Lakeflow Spark Declarative Pipelines.

In genere, i flussi vengono definiti automaticamente quando si crea una query in una pipeline che aggiorna una destinazione, ma è anche possibile definire in modo esplicito flussi aggiuntivi per un'elaborazione più complessa, ad esempio l'aggiunta a una singola destinazione da più origini.

Aggiornamenti

Un flusso viene eseguito ogni volta che la sua pipeline definita viene aggiornata. Il flusso creerà o aggiornerà le tabelle con i dati più recenti disponibili. A seconda del tipo di flusso e dello stato delle modifiche apportate ai dati, l'aggiornamento può eseguire un aggiornamento incrementale, che elabora solo nuovi record o esegue un aggiornamento completo, che rielabora tutti i record dall'origine dati.

Flussi predefiniti e flussi aggiunti

Quando si crea una query in una pipeline che aggiorna una destinazione, viene definito automaticamente un flusso predefinito . Per una tabella di streaming, il flusso predefinito è un flusso di accodamento che aggiunge nuove righe con ogni aggiornamento e ha lo stesso nome della destinazione. La creazione di un flusso e della destinazione in un singolo passaggio è il modo più comune per usare le pipeline ed è possibile usarla per inserire o trasformare i dati.

È anche possibile definire i flussi separatamente da una destinazione, che consente a più flussi di aggiungere dati a una singola destinazione. Ciò è utile quando è necessario:

  • Aggiungere origini di streaming che aggiungono dati a una tabella di streaming esistente senza richiedere un aggiornamento completo.
  • Eseguire il backfill di una tabella di streaming con dati cronologici mancanti.
  • Combinare dati da più origini senza usare una UNION clausola .

Per esempi di creazione di flussi predefiniti ed espliciti, vedere Usare i flussi nelle pipeline dichiarative di Lakeflow Spark.

Tipi di flussi

I flussi predefiniti per le tabelle di streaming e le viste materializzate sono flussi di aggiunta. È anche possibile creare flussi da leggere da origini dati change data capture . Nella tabella seguente vengono descritti i diversi tipi di flussi.

Tipo di flusso Descrizione
Append I flussi di accodamento sono il tipo di flusso più comune, in cui i nuovi record nell'origine vengono scritti nella destinazione con ogni aggiornamento. Corrispondono alla modalità append nello streaming strutturato. È possibile aggiungere il ONCE flag , che indica una query batch i cui dati devono essere inseriti nella destinazione una sola volta, a meno che la destinazione non venga completamente aggiornata. Qualsiasi numero di flussi di aggiunta può scrivere in una destinazione specifica.
I flussi predefiniti (creati con la tabella di streaming di destinazione o la vista materializzata) avranno lo stesso nome della destinazione. Altri obiettivi non hanno flussi predefiniti.
CDC Auto (precedentemente applica modifiche) Un flusso CDC automatico inserisce una query contenente dati CDC (Change Data Capture). I flussi CDC automatici possono essere diretti solo a tabelle di streaming e la sorgente deve essere una sorgente di streaming (anche nel caso dei flussi ONCE). Più flussi CDC automatici possono essere destinati a una singola tabella di streaming. Una tabella di streaming che funge da destinazione per un flusso CDC automatico può essere destinata solo ad altri flussi CDC automatici.
Per ulteriori informazioni sui dati CDC, consultare Le API AUTO CDC: semplificare l'acquisizione dei dati di modifica con le pipeline.
Aggiornamento (anteprima pubblica) Update flows producono aggregati di streaming globali senza watermark verso un sink, emettendo solo i record modificati in ogni batch.
I flussi di aggiornamento sono disponibili solo in Python. Vedere update_flow.

Risorse aggiuntive

Per altre informazioni sui flussi e sul relativo uso, vedere gli argomenti seguenti: