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.
Che cos'è la modalità in tempo reale?
La modalità in tempo reale è un tipo di trigger per Structured Streaming che consente l'elaborazione dei dati a bassa latenza con latenza end-to-end inferiore a cinque millisecondi. Usare la modalità in tempo reale per i carichi di lavoro operativi che richiedono una risposta immediata ai dati di streaming, ad esempio il rilevamento delle frodi e la personalizzazione in tempo reale.
La modalità in tempo reale è disponibile anche nelle pipeline dichiarative di Lakeflow Spark. Vedi Usare la modalità in tempo reale nelle pipeline dichiarative di Lakeflow Spark.
Come la modalità in tempo reale raggiunge una bassa latenza
La modalità in tempo reale migliora l'architettura di esecuzione tramite:
- Esecuzione di batch a esecuzione prolungata (il valore predefinito è cinque minuti), in cui il sistema elabora i dati man mano che diventa disponibile nell'origine.
- Pianificazione simultanea di tutte le fasi della query. Ciò richiede che il numero di slot di attività disponibili sia uguale o maggiore del numero di attività di tutte le fasi di un batch.
- Trasferimento di dati tra le fasi non appena vengono prodotti, mediante uno shuffle in streaming.
Tra un batch e l'altro, Structured Streaming salva lo stato di avanzamento tramite checkpoint e pubblica le metriche. La durata del batch influisce sulla frequenza di checkpoint:
- Per i batch più lunghi, il checkpoint si verifica meno frequentemente, il che significa riesecuzioni più lunghe in caso di errore e ritardata disponibilità delle metriche.
- Per batch più brevi, il checkpoint si verifica più frequentemente, che può influire sulla latenza.
Azure Databricks consiglia di eseguire il benchmarking della modalità in tempo reale rispetto al carico di lavoro di destinazione per trovare l'intervallo di trigger appropriato.
Quando usare la modalità in tempo reale
Selezionare la modalità in tempo reale quando il caso d'uso richiede:
- Latenza secondaria: applicazioni che devono rispondere ai dati entro millisecondi. Ad esempio, bloccare o contrassegnare una transazione con carta di credito in tempo reale se un punteggio di frode supera una soglia in base a posizioni insolite, dimensioni elevate delle transazioni o modelli di spesa rapidi.
- Processo decisionale operativo: sistemi che attivano azioni immediate in base ai dati in ingresso. Ad esempio, il recapito di un messaggio promozionale quando i dati clickstream mostrano che un utente ha esplorato un prodotto, offrendo uno sconto se acquista entro i prossimi 15 minuti.
- Elaborazione continua: carichi di lavoro in cui i dati devono essere elaborati non appena arrivano, anziché in batch periodici.
Usare la modalità micro-batch (il trigger predefinito per lo streaming strutturato) quando il caso d'uso richiede:
- Elaborazione analitica: pipeline ETL, trasformazioni dei dati e implementazioni dell'architettura medallion in cui i requisiti di latenza vengono misurati in secondi o minuti.
- Ottimizzazione dei costi: i carichi di lavoro in cui non è necessaria la latenza al secondo secondario, perché la modalità in tempo reale richiede risorse di calcolo dedicate.
- Ripristino più rapido: carichi di lavoro che richiedono checkpoint frequenti per ridurre al minimo il tempo di riproduzione dopo un errore.
Supporto e limitazioni delle funzionalità
Per un elenco completo di ambienti, linguaggi, tipi di calcolo, origini, sink, operatori e limitazioni note, vedere Informazioni di riferimento sulla modalità in tempo reale.
Risorse aggiuntive
- Configurare la modalità in tempo reale
- Esercitazione: Eseguire un carico di lavoro di streaming in tempo reale
- Esempi di modalità in tempo reale
- Ottimizzare e monitorare le prestazioni delle query in modalità in tempo reale
- Informazioni di riferimento sulla modalità in tempo reale
- Concetti di Structured Streaming
- Usare la modalità in tempo reale nelle pipeline dichiarative di Lakeflow Spark