Condividi tramite


Introduzione alla modalità in tempo reale

Importante

Questa funzionalità è in Anteprima Pubblica.

La modalità in tempo reale abilita lo streaming a bassa latenza con una latenza end-to-end inferiore a cinque millisecondi, rendendola ideale per carichi di lavoro operativi come il rilevamento delle frodi e la personalizzazione in tempo reale. Questa esercitazione illustra come configurare la prima query di streaming in tempo reale usando un semplice esempio.

Per informazioni concettuali sulla modalità in tempo reale, quando usarla e sulle funzionalità supportate, vedere Modalità in tempo reale in Structured Streaming.

Requisiti

Annotazioni

Se non si hanno privilegi di creazione di calcolo classici, contattare l'amministratore dell'area di lavoro per creare un cluster in modalità in tempo reale usando la configurazione nel passaggio 1.

Passaggio 1: Creare un calcolo classico per la modalità in tempo reale

La modalità in tempo reale richiede una configurazione di calcolo classica specifica per ottenere una latenza ultra bassa. Queste impostazioni assicurano che le attività vengano eseguite simultaneamente in tutte le fasi e i dati vengano elaborati continuamente man mano che arrivano, anziché in batch.

Per creare un ambiente di calcolo classico configurato correttamente:

  1. Nell'area di lavoro di Azure Databricks fare clic su Calcolo nella barra laterale.

  2. Fare clic su Crea calcolo.

  3. Immetti un nome.

  4. Selezionare Databricks Runtime 17.1 o versione successiva.

  5. Cancella accelerazione Foton (la modalità in tempo reale non supporta Photon).

  6. Deselezionare Abilita scalabilità automatica (la modalità in tempo reale richiede una dimensione fissa del cluster).

  7. In Prestazioni avanzate, deseleziona 'Usa istanze spot' (le istanze spot possono causare interruzioni).

  8. Fare clic su Opzioni avanzate per espandere impostazioni aggiuntive.

  9. In Modalità di accesso selezionare Dedicato (in precedenza: Utente singolo).

  10. In Configurazione di Spark aggiungere la configurazione seguente:

    spark.databricks.streaming.realTimeMode.enabled true
    
  11. Fare clic su Crea calcolo.

Passaggio 2: Creare un notebook

I notebook offrono un ambiente interattivo per lo sviluppo e il test di query di streaming. Si utilizza questo notebook per scrivere query in tempo reale e visualizzare i risultati che si aggiornano continuamente.

Per creare un notebook:

  1. Fare clic su Nuovo nella barra laterale, quindi su Notebook.
  2. Nel menu a discesa per il calcolo, selezionare il calcolo creato nel passaggio 1.
  3. Selezionare Python o Scala come linguaggio predefinito.

Passaggio 3: Eseguire una query in modalità in tempo reale

Copiare e incollare il codice seguente in una cella del notebook ed eseguirlo. In questo esempio viene utilizzata un'origine di frequenza, che genera righe a una velocità specificata e visualizza i risultati in tempo reale.

Annotazioni

La funzione display che utilizza il trigger realTime è disponibile in Databricks Runtime 17.1 e versioni successive.

Python

inputDF = (
  spark
  .readStream
  .format("rate")
  .option("numPartitions", 2)
  .option("rowsPerSecond", 1)
  .load()
)
display(inputDF, realTime="5 minutes", outputMode="update")

Scala

import org.apache.spark.sql.streaming.Trigger
import org.apache.spark.sql.streaming.OutputMode

val inputDF = spark
  .readStream
  .format("rate")
  .option("numPartitions", 2)
  .option("rowsPerSecond", 1)
  .load()
display(inputDF, trigger=Trigger.RealTime(), outputMode=OutputMode.Update())

Dopo aver eseguito il codice, viene visualizzata una tabella che viene aggiornata in tempo reale man mano che vengono generate nuove righe. Nella tabella vengono visualizzate una timestamp colonna e una value colonna che viene incrementata con ogni riga.

Informazioni sul codice

Il codice precedente illustra i componenti essenziali di una query di streaming in tempo reale. Le tabelle seguenti illustrano i parametri chiave e il relativo controllo:

Python

Parametro Descrizione
format("rate") Usa l'origine della frequenza, un'origine predefinita che genera righe a una velocità configurabile. Ciò è utile per il test senza dipendenze esterne.
numPartitions Imposta il numero di partizioni per i dati generati.
rowsPerSecond Controlla il numero di righe generate al secondo.
realTime="5 minutes" Abilita la modalità in tempo reale. L'intervallo specifica la frequenza di avanzamento dei checkpoint della query. Intervalli più lunghi significano meno frequenti checkpoint, ma potenzialmente più lunghi tempi di ripristino dopo gli errori.
outputMode="update" La modalità in tempo reale richiede la modalità di aggiornamento dell'output.

Scala

Parametro Descrizione
format("rate") Usa l'origine della frequenza, un'origine predefinita che genera righe a una velocità configurabile. Ciò è utile per il test senza dipendenze esterne.
numPartitions Imposta il numero di partizioni per i dati generati.
rowsPerSecond Controlla il numero di righe generate al secondo.
Trigger.RealTime() Abilita la modalità in tempo reale con l'intervallo di checkpoint predefinito. È anche possibile specificare un intervallo, ad esempio Trigger.RealTime("5 minutes").
OutputMode.Update() La modalità in tempo reale richiede la modalità di aggiornamento dell'output.

Quello che stai vedendo

Quando si esegue la query, la display funzione crea una tabella che viene aggiornata in tempo reale quando l'origine della frequenza genera nuove righe. Ogni riga contiene:

  • timestamp: ora in cui la riga è stata generata dall'origine della frequenza
  • value: contatore che aumenta in modo monotonico con ogni nuova riga

La tabella viene aggiornata continuamente con una latenza minima, dimostrando come la modalità in tempo reale elabora i dati non appena diventa disponibile. Questo è il vantaggio principale della modalità in tempo reale: la possibilità di visualizzare e agire sui dati immediatamente anziché attendere l'elaborazione batch.

Cosa si è appreso

La prima query di streaming in tempo reale è stata configurata ed eseguita correttamente. Ora si è appreso come:

  • Configurare il calcolo classico con le impostazioni necessarie per la modalità in tempo reale (cluster dedicato, Photon disabilitato, scalabilità automatica disabilitata, configurazione spark)
  • Abilitare l'elaborazione in tempo reale usando il realTime trigger
  • Usare la display funzione per lo sviluppo interattivo e il test
  • Verificare che la query sia in esecuzione in modalità in tempo reale osservando gli aggiornamenti continui

Siete pronti per creare pipeline di produzione in tempo reale con Kafka, Kinesis e altre origini supportate. Per altre informazioni sullo streaming strutturato, vedere Concetti relativi allo streaming strutturato.

Passaggi successivi

Dopo aver eseguito la prima query in tempo reale, esplorare queste risorse per creare applicazioni di streaming di produzione: