Scegliere una piattaforma di analisi di flusso: confronto tra Apache Storm e Analisi di flusso di AzureChoosing a streaming analytics platform: comparing Apache Storm and Azure Stream Analytics

Azure offre diverse soluzioni per l'analisi dei flussi di dati: Analisi di flusso di Azure e Apache Storm in Azure HDInsight.Azure provides multiple solutions for analyzing streaming data: Azure Streaming Analytics and Apache Storm on Azure HDInsight. Entrambe le piattaforme di analisi offrono i vantaggi di una soluzione PaaS.Both analytics platforms provide the benefits of a PaaS solution. Tuttavia, le piattaforme presentano differenze significative nelle loro funzionalità, nonché nel modo in cui vengono configurate e gestite.But the platforms have some significant differences in their capabilities as well as in how you configure and manage them.

Questo articolo fornisce un confronto delle funzionalità che consente di scegliere tra Apache Storm e Analisi di flusso di Azure come piattaforma di analisi cloud.This article provides a side-by-side comparison of features to help you choose between Apache Storm and Azure Stream Analytics as a cloud analytics platform.

Funzionalità generaliGeneral features

Analisi di flusso di Azure Azure Stream Analytics

Apache Storm in HDInsight Apache Storm on HDInsight

Open source? Open source?

No.No. Analisi di flusso di Azure è un'offerta proprietaria Microsoft.Azure Stream Analytics is a Microsoft proprietary offering.

Sì.Yes. Apache Storm è una tecnologia concessa in licenza da Apache.Apache Storm is an Apache licensed technology.

Supporto tecnico Microsoft? Microsoft support?

Yes

Yes

Requisiti hardware Hardware requirements

Nessuno.None. Analisi di flusso di Azure è un servizio di Azure.Azure Stream Analytics is an Azure Service.

Nessuno.None. Apache Storm è un servizio di Azure.Apache Storm is an Azure Service.

Unità di livello superiore Top-level unit

Gli utenti distribuiscono e monitorano i processi di streaming.Users deploy and monitor streaming jobs.

Gli utenti distribuiscono e monitorano un intero cluster, che può ospitare più processi di Storm nonché altri carichi di lavoro (incluso il batch).Users deploy and monitor a whole cluster, which can host multiple Storm jobs as well as other workloads (including batch).

Prezzi Pricing

Il prezzo viene determinato dal volume dei dati elaborati e dal numero di unità di streaming necessarie per ogni ora di esecuzione del processo.Priced by volume of data processed and the number of streaming units required per hour that the job is running.

Per altre informazioni, vedere Prezzi di Analisi di flusso.For more information, see Stream Analytics Pricing.

L'unità di acquisto è basata su cluster e l'addebito avviene in base al tempo di esecuzione del cluster, indipendentemente dai processi distribuiti.The unit of purchase is cluster-based, and is charged based on the time the cluster is running, independent of jobs deployed.

Per altre informazioni, vedere Prezzi di HDInsight.For more information, see HDInsight pricing.

CreazioneAuthoring

Analisi di flusso di Azure Azure Stream Analytics

Apache Storm in HDInsight Apache Storm on HDInsight

Funzionalità: DSL SQL? Capabilities: SQL DSL?

Sì.Yes. Analisi di flusso di Azure fornisce un linguaggio simile a SQL per la creazione di trasformazioni.Stream Analytics provides a SQL-like language for creating transformations.

No.No. Gli utenti devono scrivere il codice in Java o C# o usare le API Trident.Users write code in Java or C#, or use Trident APIs.

Funzionalità: operatori temporali? Capabilities: Temporal operators?

Per impostazione predefinita sono supportati i join temporali e le aggregazioni finestra.Windowed aggregates and temporal joins are supported by default.

Gli operatori temporali devono essere implementati dall'utente.Temporal operators must be implemented by the user.

Esperienza di sviluppo Development experience

Gli utenti possono creare, eseguire il debug e monitorare i processi tramite il portale di Azure usando i dati di esempio derivati da Live Stream.Users can create, debug, and monitor jobs through the Azure portal, using sample data derived from a live stream.

Gli utenti che utilizzano .NET possono sviluppare, eseguire il debug e monitorare tramite Visual Studio.Users using .NET can develop, debug, and monitor through Visual Studio. Gli utenti che utilizzano Java o altri linguaggi possono usare l'IDE preferito.Users using Java or other languages can use the IDE of their choice.

Supporto per il debug Debugging support

Lo stato dei processi di base e i log delle operazioni sono disponibili per facilitare il debug.Basic job status and operations logs are available to help debug. Analisi di flusso di Azure attualmente non consente agli utenti di specificare il tipo o la quantità di contenuto inclusi nei log (ad esempio, la modalità dettagliata).Stream Analytics currently does not let users specify what content or how much content is included in the logs (i.e., verbose mode).

Sono disponibili log dettagliati.Detailed logs are available. Gli utenti possono accedere ai log in Visual Studio o accedendo al cluster e accedendo direttamente ai log.Users can access logs in Visual Studio or by logging in to the cluster and accessing the logs directly.

Estensibilità tramite codice personalizzato? Extensibility using custom code?

Supporto parziale con UDF JavaScript.Partially support with JavaScript UDFs. Per ulteriori informazioni, vedere Integrazione UDF di JavaScript.For more information, see JavaScript UDF integration.

Sì.Yes. Gli utenti possono scrivere codice personalizzato in C#, Java o qualsiasi altro linguaggio supportato in Storm.Users can write custom code in C#, Java, or any other language supported on Storm.

Origini dati (input) e outputData sources (inputs) and outputs


Analisi di flusso di Azure Azure Stream Analytics

Apache Storm in HDInsight Apache Storm on HDInsight

Origini dati di input Input data sources

Hub eventi di Azure e Archiviazione BLOB di Azure.Azure Event Hubs and Azure Blob storage.

I connettori sono disponibili per l'Hub eventi di Azure, Bus di servizio di Microsoft Azure, Kafka e altro ancora.Connectors are available for Azure Event Hubs, Azure Service Bus, Kafka, and more. Gli utenti possono creare connettori aggiuntivi con codice personalizzato.Users can create additional connectors using custom code.

Formati di dati di input Input data formats

Avro, JSON, CSVAvro, JSON, CSV

Gli utenti possono implementare tutti i formati utilizzando codice personalizzato.Users can implement any format using custom code.

Output Outputs

Un processo di streaming può avere più output.A streaming job can have multiple outputs. Output supportati: Hub eventi di Azure, Archiviazione BLOB di Azure, Archiviazione tabelle di Azure, Azure SQL DB e Power BI.Supported outputs are Azure Event Hubs, Azure Blob storage, Azure Table storage, Azure SQL DB, and Power BI.

Storm supporta più output in una topologia e ogni output può avere una logica personalizzata per l'elaborazione downstream.Storm supports many outputs in a topology, and each output can have custom logic for downstream processing. Storm include connettori predefiniti per Power BI, Hub eventi di Azure, Archiviazione BLOB di Azure, Azure Cosmos DB, SQL e HBase.Storm includes connectors for Power BI, Azure Event Hubs, Azure Blob storage, Azure Cosmos DB, SQL, and HBase. Gli utenti possono creare connettori aggiuntivi con codice personalizzato.Users can create additional connectors using custom code.

Formati di codifica dei dati Data-encoding formats

Dati devono essere formattati usando UTF-8.Data must be formatted using UTF-8.

Gli utenti possono implementare tutti i formati di codifica dei dati usando codice personalizzato.Users can implement any data encoding format using custom code.

Gestione e operazioniManagement and operations

Analisi di flusso di Azure Azure Stream Analytics

Apache Storm in HDInsight Apache Storm on HDInsight

Modello di distribuzione dei processi Job deployment model

Portale di Azure, PowerShell e API REST.Azure portal, PowerShell, and REST APIs.

Portale di Azure, PowerShell, Visual Studio e API REST.Azure portal, PowerShell, Visual Studio, and REST APIs.

Monitoraggio (statistiche, contatori e così via) Monitoring (stats, counters, etc.)

Il monitoraggio viene implementato tramite il portale di Azure e le API REST.Monitoring is implemented using Azure portal and REST APIs. Gli utenti possono inoltre configurare gli avvisi di Azure.Users can also configure Azure alerts.

Il monitoraggio viene implementato tramite l'interfaccia utente di Storm e le API REST.Monitoring is implemented using the Storm UI and REST APIs.

Scalabilità Scalability

La scalabilità è determinata dal numero di unità di streaming (SUs) per ogni processo.Scalability is determined by the number of Streaming Units (SUs) for each job. Ogni unità di streaming elabora fino a 1 MB al secondo, con un massimo di 50 unità.Each Streaming Unit processes up to 1 MB/second, with a maximum 50 units. Per ulteriori informazioni, vedere Ridimensionare i processi di Analisi di flusso di Azure per aumentare la velocità effettiva dell'elaborazione dei flussi di dati.For more information, see Scale to increase throughput.

La scalabilità è determinata dal numero di nodi del cluster HDInsight Storm.Scalability is determined by the number of nodes in the HDInsight Storm cluster. Il limite superiore al numero di nodi è definito dalla quota di Azure dell'utente.The top limit on the number of nodes is defined by the user's Azure quota.

Limiti di elaborazione dei dati Data processing limits

Gli utenti possono aumentare l'elaborazione dati o ottimizzare i costi aumentando o diminuendo il numero di unità di streaming, con un limite superiore di 1 GB al secondo.Users can increase data processing or optimize costs by increasing or decreasing the number of Streaming Units, with an upper limit of 1 GB/second.

Gli utenti possono scalare le dimensioni cluster per aumentarle o diminuirle.Users can scale cluster size up or down.

Arresto/ripresa Stop/Resume

Arrestare e riprendere dall'ultimo punto di arresto.Stop and resume from last place stopped.

Arrestare e riprendere dall'ultimo punto di arresto in base al limite.Stop and resume from last place stopped based on a watermark.

Aggiornamento del servizio e del framework Service and framework update

Applicazione di patch automatica senza tempi di inattività.Automatic patching with no downtime.

Applicazione di patch automatica senza tempi di inattività.Automatic patching with no downtime.

Continuità aziendale grazie a un servizio a disponibilità elevata con contratti di servizio garantiti Business continuity through a Highly Available Service with guaranteed SLAs

  • Tempo di attività per il contratto di servizio del 99,9%SLA of 99.9% uptime
  • Ripristino automatico in caso di erroriAuto-recovery from failures
  • Ripristino predefinito degli operatori temporali con statoBuilt-in recovery of stateful temporal operators

Tempo di attività per il contratto di servizio del 99,9% del cluster Storm.SLA of 99.9% uptime of the Storm cluster.

Apache Storm è una piattaforma di streaming a tolleranza di errore.Apache Storm is a fault-tolerant streaming platform. Tuttavia, è responsabilità dell'utente assicurare che i processi di streaming vengano eseguiti senza interruzioni.However, it is the user's responsibility to ensure that streaming jobs run uninterrupted.

Funzionalità avanzateAdvanced features

Analisi di flusso di Azure Azure Stream Analytics

Apache Storm in HDInsight Apache Storm on HDInsight

Gestione di eventi di arrivo in ritardo e con ordine non corretto Late arrival and out-of-order event handling

Criteri configurabili predefiniti per riordinare e rilasciare gli eventi o modificare l'ora degli eventi.Built-in configurable policies can reorder events, drop events, or adjust event time.

Gli utenti devono deve implementare la logica per gestire questo scenario.Users must implement logic to handle this scenario.

Dati di riferimento Reference data

Dati di riferimento sono disponibili dall'archiviazione BLOB di Azure con un massimo di 100 MB di cache in memoria.Reference data is available from Azure Blob storage with a maximum of 100 MB of in-memory cache. I dati di riferimento vengono aggiornati dal servizio.Reference data is refreshed by the service.

Nessun limite alle dimensioni dei dati.No limits on data size. I connettori sono disponibili per HBase, Azure Cosmos DB, SQL Server e Azure.Connectors are available for HBase, Azure Cosmos DB, SQL Server, and Azure. Gli utenti possono creare connettori aggiuntivi con codice personalizzato.Users can create additional connectors using custom code. I dati di riferimento devono essere aggiornati con un codice personalizzato.Reference data must be refreshed using custom code.

Integrazione con Machine Learning Integration with Machine Learning

I modelli di Azure Machine Learning pubblicati possono essere configurati come funzioni durante la creazione dei processi.Published Azure Machine Learning models can be configured as functions during job creation. Per altre informazioni, vedere Scalabilità per le funzioni di Machine Learning.For more information, see Scale for Machine Learning functions.

Disponibile tramite i bolt di Storm.Available through Storm Bolts.