Scegliere una tecnologia per l'elaborazione di flussi in Azure

Questo articolo mette a confronto le tecnologie disponibili per l'elaborazione di flussi in tempo reale in Azure.

L'elaborazione di flussi in tempo reale utilizza i messaggi provenienti da una coda o da un risorsa di archiviazione basata su file, li elabora e inoltra il risultato a un'altra coda di messaggi, a un archivio di file o a un database. L'elaborazione può includere operazioni di query, filtraggio e aggregazione sui messaggi. I motori per l'elaborazione di flussi devono essere in grado di utilizzare flussi di dati infiniti e generare risultati con una latenza minima. Per altre informazioni, vedere Elaborazione in tempo reale.

Opzioni disponibili per la scelta di una tecnologia per l'elaborazione in tempo reale

In Azure tutti gli archivi dati elencati di seguito soddisfano i requisiti di base per il supporto dell'elaborazione in tempo reale:

Criteri di scelta principali

Per gli scenari di elaborazione in tempo reale, rispondere prima di tutto a queste domande per scegliere il servizio adatto alle proprie esigenze:

  • Si preferisce adottare un approccio dichiarativo o imperativo per modificare la logica di elaborazione dei flussi?

  • È necessario il supporto predefinito per l'elaborazione temporale o windowing?

  • I dati arrivano in più formati oltre ad Avro, JSON o CSV? In caso affermativo, prendere in considerazione le opzioni che supportano qualsiasi formato tramite codice personalizzato.

  • È necessario aumentare la capacità di elaborazione oltre 1 GB al secondo? In caso affermativo, prendere in considerazione le opzioni che supportano la scalabilità in base alla dimensione del cluster.

Matrice delle funzionalità

Le tabelle seguenti contengono un riepilogo delle differenze principali in termini di funzionalità.

Funzionalità generali

Funzionalità Analisi di flusso di Azure HDInsight con Spark Streaming Apache Spark in Azure Databricks HDInsight con Storm Funzioni di Azure Processi Web del servizio app di Azure
Programmabilità SQL, JavaScript C#/F#, Java, Python, Scala C#/F#, Java, Python, R, Scala C#, Java C#, F#, Java, Node.js, Python C#, Java, Node.js, PHP, Python
Paradigma di programmazione Dichiarativa Dichiarativo e imperativo Dichiarativo e imperativo Programmazione imperativa Programmazione imperativa Programmazione imperativa
Modello di determinazione prezzi Unità di streaming Per ora del cluster Unità di Databricks Per ora del cluster Per esecuzione di funzione e utilizzo di risorse Per ora del piano di servizio app

Funzionalità di integrazione

Funzionalità Analisi di flusso di Azure HDInsight con Spark Streaming Apache Spark in Azure Databricks HDInsight con Storm Funzioni di Azure Processi Web del servizio app di Azure
Input Hub eventi di Azure, hub IoT di Azure, Archiviazione BLOB di Azure/ADLS Gen2 Hub eventi, hub IoT, Kafka, HDFS, BLOB del servizio di archiviazione, Azure Data Lake Store Hub eventi, hub IoT, Kafka, HDFS, BLOB del servizio di archiviazione, Azure Data Lake Store Hub eventi, hub IoT, BLOB del servizio di archiviazione, Azure Data Lake Store Binding supportati bus di servizio, code di Archiviazione, BLOB Archiviazione, Hub eventi, WebHook, Azure Cosmos DB, File
Sink Azure Data Lake Archiviazione Gen 1, Azure Esplora dati, Database di Azure per PostgreSQL, database SQL di Azure, Azure Synapse Analytics, Archiviazione BLOB e Azure Data Lake Gen 2, Hub eventi di Azure, Power BI, Archiviazione tabelle di Azure, code di bus di servizio di Azure, argomenti bus di servizio di Azure, Azure Cosmos DB, Funzioni di Azure HDFS, Kafka, BLOB Archiviazione, Azure Data Lake Store, Azure Cosmos DB HDFS, Kafka, BLOB Archiviazione, Azure Data Lake Store, Azure Cosmos DB Hub eventi, bus di servizio, Kafka Binding supportati bus di servizio, code di Archiviazione, BLOB Archiviazione, Hub eventi, WebHook, Azure Cosmos DB, File

Funzionalità di elaborazione

Funzionalità Analisi di flusso di Azure HDInsight con Spark Streaming Apache Spark in Azure Databricks HDInsight con Storm Funzioni di Azure Processi Web del servizio app di Azure
Supporto predefinito per elaborazione temporale/windowing No No
Formati dei dati di input Avro, JSON o CSV, con codifica UTF-8 Qualsiasi formato con codice personalizzato Qualsiasi formato con codice personalizzato Qualsiasi formato con codice personalizzato Qualsiasi formato con codice personalizzato Qualsiasi formato con codice personalizzato
Scalabilità Partizioni per query Limitata in base alle dimensioni del cluster Limitata in base alla configurazione di scalabilità del cluster Databricks Limitata in base alle dimensioni del cluster Elaborazione parallela di un massimo di 200 istanze di app per le funzioni Limitata dalla capacità del piano di servizio app
Supporto per la gestione di eventi di arrivo in ritardo e con ordine non corretto No No

Collaboratori

Questo articolo viene gestito da Microsoft. Originariamente è stato scritto dai seguenti contributori.

Autore principale:

Passaggi successivi