Esplorare Apache Spark Structured Streaming

Completato

Apache Spark è un framework di elaborazione distribuita concepito per l'analisi dei dati su larga scala. È possibile usare Spark in Microsoft Azure nei servizi seguenti:

  • Microsoft Fabric
  • Azure Databricks

Spark consente di eseguire codice (in genere scritto in Python, Scala o Java) in parallelo tra più nodi del cluster, così da elaborare in modo efficiente volumi molto grandi di dati. Spark può essere usato sia per l'elaborazione batch che per l'elaborazione streaming.

Spark Structured Streaming

Per elaborare i dati di streaming in Spark, è possibile usare la libreria Spark Structured Streaming, che fornisce un'API (Application Programming Interface) per l'inserimento, l'elaborazione e l'output dei risultati da flussi perpetui di dati.

Spark Structured Streaming si basa su una struttura estremamente comune di Spark denominata dataframe, in cui è incapsulata una tabella di dati. L'API Spark Structured Streaming viene usata per leggere i dati da un'origine dati in tempo reale, ad esempio un hub Kafka, un archivio file o una porta di rete, all'interno di un dataframe "senza limiti", in cui vengono continuamente inseriti nuovi dati provenienti dal flusso. Quindi, viene definita una query nel dataframe che seleziona, proietta o aggrega i dati, spesso in finestre temporali. I risultati della query generano un altro dataframe, che può essere salvato definitivamente per l'analisi o per un'ulteriore elaborazione.

Il diagramma dei dati di streaming viene scritto in un dataframe, su cui viene eseguita una query per creare un altro dataframe per l'analisi.

Spark Structured Streaming è un'ottima scelta per eseguire l'analisi in tempo reale in caso sia necessario incorporare i dati di streaming in un data lake basato su Spark o in un archivio di dati analitici.

Nota

Per altre informazioni su Spark Structured Streaming, vedere la Guida alla programmazione di Spark Structured Streaming.

Delta Lake

Delta Lake è un livello di archiviazione open source che aggiunge il supporto per la coerenza transazionale, l'applicazione dello schema e altre funzionalità comuni di data warehousing in Data Lake Storage. Inoltre, unifica l'archiviazione dei dati di streaming e batch e può essere usato in Spark per definire le tabelle relazionali necessarie per l'elaborazione batch e streaming. In caso di impiego per l'elaborazione streaming, è possibile usare una tabella Delta Lake come origine dello streaming per eseguire query sui dati in tempo reale o come un sink in cui scrivere un flusso di dati.

I runtime di Spark in Microsoft Fabric e Azure Databricks includono il supporto per Delta Lake.

La combinazione di Delta Lake e Spark Structured Streaming fornisce un'ottima soluzione in caso sia necessario riassumere i dati elaborati in streaming o in batch in un data lake che si trova dietro uno schema relazionale per l'esecuzione di analisi e query basate su SQL.

Nota

Per altre informazioni su Delta Lake, vedere le Tabelle Lakehouse e Delta Lake.