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.
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:
- Analisi di flusso di Azure
- HDInsight con Spark Streaming
- Apache Spark in Azure Databricks
- Funzioni di Azure
- WebJobs di Azure App Service
- API Apache Kafka Streams
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:
Preferisci adottare un approccio dichiarativo o imperativo per creare la logica di elaborazione dei flussi?
Hai bisogno di supporto integrato per l'elaborazione temporale o la finestratura?
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 GBps? 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
Capacità | Analisi di flusso di Azure | HDInsight con Spark Streaming | Apache Spark in Azure Databricks | Funzioni di Azure | WebJobs di Azure App Service |
---|---|---|---|---|---|
Programmabilità | SQL, JavaScript | C#/F#, Java, Python, Scala | C#/F#, Java, Python, R, Scala | C#, F#, Java, Node.js, Python | C#, Java, Node.js, PHP, Python |
Paradigma di programmazione | Dichiarativa | Combinazione di dichiarativo e imperativo | Combinazione di dichiarativo e imperativo | Imperativo | Imperativo |
Modello di determinazione prezzi | Unità di streaming | Costo del nodo al minuto | Unità di Databricks | Per l'esecuzione delle funzioni e l'utilizzazione delle risorse | Per ora del piano di servizio App |
Funzionalità di integrazione
Capacità | Analisi di flusso di Azure | HDInsight con Spark Streaming | Apache Spark in Azure Databricks | Funzioni di Azure | WebJobs di Azure App Service |
---|---|---|---|---|---|
Ingressi | Hub eventi di Azure, hub IoT di Azure, archiviazione BLOB di Azure/Data Lake Storage Gen2 | Event Hub, IoT Hub, Kafka, HDFS, Blob di Archiviazione, Azure Data Lake Store | Event Hubs, Hub IoT, Kafka, HDFS, Blob di archiviazione, Azure Data Lake Store | Associazioni supportate | Bus di servizio, Code di archiviazione, Archiviazione Blob, Hub eventi, WebHooks, Azure Cosmos DB, File |
Lavabi | Azure Data Lake Storage Gen 1, Azure Data Explorer, Database di Azure per PostgreSQL, Azure SQL Database, Azure Synapse Analytics, Blob storage e Azure Data Lake Gen 2, Hub eventi di Azure, Power BI, Azure Table storage, Azure Service Bus queues, Azure Service Bus topics, Azure Cosmos DB, Funzioni di Azure | HDFS, Kafka, Blob di archiviazione, Azure Data Lake Store, Azure Cosmos DB | HDFS, Kafka, Blob di archiviazione, Azure Data Lake Store, Azure Cosmos DB | Associazioni supportate | Bus di servizio, Code di archiviazione, Archiviazione Blob, Hub eventi, WebHooks, Azure Cosmos DB, File |
Funzionalità di elaborazione
Capacità | Azure Stream Analytics | HDInsight con Spark Streaming | Apache Spark su Azure Databricks | Funzioni di Azure | WebJobs di Azure App Service |
---|---|---|---|---|---|
Supporto integrato per elaborazione temporale e finestre temporali | Sì | Sì | Sì | No | No |
Formati dei dati in ingresso | Avro, JSON o CSV, con codifica UTF-8 | Qualsiasi formato con codice personalizzato | Qualsiasi formato usando codice personalizzato. Qualsiasi formato usando codice personalizzato | Qualsiasi formato con codice personalizzato | |
Scalabilità | Partizioni di query | Limitata in base alle dimensioni del cluster | Limitata in base alla configurazione di scalabilità del cluster Databricks | Elaborazione parallela di un massimo di 200 istanze di app per le funzioni | Limitata dalla capacità del piano di servizio di App |
Supporto per la gestione di eventi con arrivo in ritardo e in ordine errato | Sì | Sì | Sì | No | No |
Collaboratori
Questo articolo viene gestito da Microsoft. Originariamente è stato scritto dai seguenti contributori.
Autore principale:
- Zoiner Tejada | CEO e architetto
Passaggi successivi
- Panoramica del Servizio App
- Esplorare Funzioni di Azure
- Introduzione all'uso di Analisi di flusso di Azure
- Eseguire trasformazioni avanzate dei dati di streaming
- Configurare i cluster in HDInsight
- Usare Apache Spark in Azure Databricks