Scegliere una piattaforma di analisi di flusso: confronto tra Apache Storm e Analisi di flusso di Azure

Azure offre diverse soluzioni per l'analisi dei flussi di dati: Analisi di flusso di Azure e Apache Storm in Azure HDInsight. Entrambe le piattaforme di analisi offrono i vantaggi di una soluzione PaaS. Tuttavia, le piattaforme presentano differenze significative nelle loro funzionalità, nonché nel modo in cui vengono configurate e gestite.

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.

Funzionalità generali

Analisi di flusso di Azure

Apache Storm in HDInsight

Open source?

No. Analisi di flusso di Azure è un'offerta proprietaria Microsoft.

Sì. Apache Storm è una tecnologia concessa in licenza da Apache.

Supporto tecnico Microsoft?

Requisiti hardware

Nessuno. Analisi di flusso di Azure è un servizio di Azure.

Nessuno. Apache Storm è un servizio di Azure.

Unità di livello superiore

Gli utenti distribuiscono e monitorano i processi di streaming.

Gli utenti distribuiscono e monitorano un intero cluster, che può ospitare più processi di Storm nonché altri carichi di lavoro (incluso il batch).

Prezzi

Il prezzo viene determinato dal volume dei dati elaborati e dal numero di unità di streaming necessarie per ogni ora di esecuzione del processo.

Per altre informazioni, vedere Prezzi di Analisi di flusso.

L'unità di acquisto è basata su cluster e l'addebito avviene in base al tempo di esecuzione del cluster, indipendentemente dai processi distribuiti.

Per altre informazioni, vedere Prezzi di HDInsight.

Creazione

Analisi di flusso di Azure

Apache Storm in HDInsight

Funzionalità: DSL SQL?

Sì. Analisi di flusso di Azure fornisce un linguaggio simile a SQL per la creazione di trasformazioni.

No. Gli utenti devono scrivere il codice in Java o C# o usare le API Trident.

Funzionalità: operatori temporali?

Per impostazione predefinita sono supportati i join temporali e le aggregazioni finestra.

Gli operatori temporali devono essere implementati dall'utente.

Esperienza di sviluppo

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.

Gli utenti che utilizzano .NET possono sviluppare, eseguire il debug e monitorare tramite Visual Studio. Gli utenti che utilizzano Java o altri linguaggi possono usare l'IDE preferito.

Supporto per il debug

Lo stato dei processi di base e i log delle operazioni sono disponibili per facilitare il 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).

Sono disponibili log dettagliati. Gli utenti possono accedere ai log in Visual Studio o accedendo al cluster e accedendo direttamente ai log.

Estensibilità tramite codice personalizzato?

Supporto parziale con UDF JavaScript. Per ulteriori informazioni, vedere Integrazione UDF di JavaScript.

Sì. Gli utenti possono scrivere codice personalizzato in C#, Java o qualsiasi altro linguaggio supportato in Storm.

Origini dati (input) e output


Analisi di flusso di Azure

Apache Storm in HDInsight

Origini dati di input

Hub eventi di Azure e Archiviazione BLOB di Azure.

I connettori sono disponibili per l'Hub eventi di Azure, Bus di servizio di Microsoft Azure, Kafka e altro ancora. Gli utenti possono creare connettori aggiuntivi con codice personalizzato.

Formati di dati di input

Avro, JSON, CSV

Gli utenti possono implementare tutti i formati utilizzando codice personalizzato.

Output

Un processo di streaming può avere più output. Output supportati: Hub eventi di Azure, Archiviazione BLOB di Azure, Archiviazione tabelle di Azure, Azure SQL DB e Power BI.

Storm supporta più output in una topologia e ogni output può avere una logica personalizzata per l'elaborazione downstream. Storm include connettori predefiniti per Power BI, Hub eventi di Azure, Archiviazione BLOB di Azure, Azure Cosmos DB, SQL e HBase. Gli utenti possono creare connettori aggiuntivi con codice personalizzato.

Formati di codifica dei dati

Dati devono essere formattati usando UTF-8.

Gli utenti possono implementare tutti i formati di codifica dei dati usando codice personalizzato.

Gestione e operazioni

Analisi di flusso di Azure

Apache Storm in HDInsight

Modello di distribuzione dei processi

Portale di Azure, PowerShell e API REST.

Portale di Azure, PowerShell, Visual Studio e API REST.

Monitoraggio (statistiche, contatori e così via)

Il monitoraggio viene implementato tramite il portale di Azure e le API REST. Gli utenti possono inoltre configurare gli avvisi di Azure.

Il monitoraggio viene implementato tramite l'interfaccia utente di Storm e le API REST.

Scalabilità

La scalabilità è determinata dal numero di unità di streaming (SUs) per ogni processo. Ogni unità di streaming elabora fino a 1 MB al secondo, con un massimo di 50 unità. Per ulteriori informazioni, vedere Ridimensionare i processi di Analisi di flusso di Azure per aumentare la velocità effettiva dell'elaborazione dei flussi di dati.

La scalabilità è determinata dal numero di nodi del cluster HDInsight Storm. Il limite superiore al numero di nodi è definito dalla quota di Azure dell'utente.

Limiti di elaborazione dei dati

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.

Gli utenti possono scalare le dimensioni cluster per aumentarle o diminuirle.

Arresto/ripresa

Arrestare e riprendere dall'ultimo punto di arresto.

Arrestare e riprendere dall'ultimo punto di arresto in base al limite.

Aggiornamento del servizio e del framework

Applicazione di patch automatica senza tempi di inattività.

Applicazione di patch automatica senza tempi di inattività.

Continuità aziendale grazie a un servizio a disponibilità elevata con contratti di servizio garantiti

  • Tempo di attività per il contratto di servizio del 99,9%
  • Ripristino automatico in caso di errori
  • Ripristino predefinito degli operatori temporali con stato

Tempo di attività per il contratto di servizio del 99,9% del cluster Storm.

Apache Storm è una piattaforma di streaming a tolleranza di errore. Tuttavia, è responsabilità dell'utente assicurare che i processi di streaming vengano eseguiti senza interruzioni.

Funzionalità avanzate

Analisi di flusso di Azure

Apache Storm in HDInsight

Gestione di eventi di arrivo in ritardo e con ordine non corretto

Criteri configurabili predefiniti per riordinare e rilasciare gli eventi o modificare l'ora degli eventi.

Gli utenti devono deve implementare la logica per gestire questo scenario.

Dati di riferimento

Dati di riferimento sono disponibili dall'archiviazione BLOB di Azure con un massimo di 100 MB di cache in memoria. I dati di riferimento vengono aggiornati dal servizio.

Nessun limite alle dimensioni dei dati. I connettori sono disponibili per HBase, Azure Cosmos DB, SQL Server e Azure. Gli utenti possono creare connettori aggiuntivi con codice personalizzato. I dati di riferimento devono essere aggiornati con un codice personalizzato.

Integrazione con Machine Learning

I modelli di Azure Machine Learning pubblicati possono essere configurati come funzioni durante la creazione dei processi. Per altre informazioni, vedere Scalabilità per le funzioni di Machine Learning.

Disponibile tramite i bolt di Storm.