Condividi tramite


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.

Panoramica dei dati di streaming

Le organizzazioni hanno spesso diverse origini dati che generano simultaneamente messaggi, record o dati. La quantità di dati può variare da pochi byte a diversi megabyte (MB). I dati di streaming vengono generati in volumi elevati in modo continuo e incrementale che possono essere elaborati quasi in tempo reale. Questo tipo di dati include informazioni che le aziende usano per l'analisi in tempo reale e la visibilità su vari aspetti dell'azienda, ad esempio i log applicazioni, gli aggiornamenti della georilevazione, gli eventi e le letture dei sensori.

I dati di streaming hanno spesso le caratteristiche seguenti:

  • Integrità dei dati imperfetta: Gli errori temporanei nell'origine potrebbero causare elementi di dati mancanti. La natura continua del flusso può introdurre incoerenza dei dati. Pertanto, i sistemi di elaborazione e analisi dei flussi includono in genere la logica per la convalida dei dati per attenuare questi errori.

  • Flusso di dati continuo: Un flusso di dati non ha inizio o fine, quindi è necessario raccogliere costantemente i dati. Ad esempio, i log delle attività del server si accumulano finché il server è in funzione.

  • Formati di dati diversi: È possibile trasmettere i dati in più formati, ad esempio JSON, Avro e CSV. E può includere vari tipi di dati, ad esempio stringhe, numeri, date e tipi binari. I sistemi di elaborazione dei flussi devono gestire queste variazioni di dati.

  • Ordine dei dati sensibili al tempo: I singoli elementi in un flusso di dati contengono timestamp. E il flusso di dati stesso potrebbe essere sensibile al tempo e perdere valore dopo un momento specifico. In alcuni casi, è necessario mantenere l'ordine di elaborazione dati.

Opzioni tecnologico per l'elaborazione in tempo reale

Per facilitare la scelta della tecnologia corretta, questa sezione descrive le opzioni comuni in Azure, dall'inserimento al consumo. Ogni sottosezione evidenzia le tecnologie consigliate in base al loro ruolo all'interno del flusso di elaborazione dei dati.

Flusso di elaborazione dati ad alto livello

Diagramma che mostra il flusso di dati per la soluzione di elaborazione dati end-to-end.

Scaricare un file di Visio di questa architettura.

Produttori di streaming

I produttori di flussi generano e inseriranno i dati nei servizi di inserimento di Azure. Producono continuamente dati da origini come dispositivi IoT (Internet delle cose), log applicazioni o database.

I produttori di stream offrono i seguenti vantaggi:

  • Acquisire dati quasi in tempo reale. I produttori possono raccogliere continuamente dati da origini quali dispositivi IoT, interazioni utente e log applicazioni. I dati vengono trasmessi in servizi di Azure come Hub eventi di Azure o hub IoT di Azure.

  • Ottimizzare la velocità effettiva con l'invio in batch e la compressione. I producer possono inviare messaggi in batch e applicare la compressione per ridurre al minimo le dimensioni dei dati durante la trasmissione. Queste funzionalità migliorano l'efficienza.

  • Garantire una trasmissione affidabile con la gestione degli errori e tentativi. I produttori possono gestire interruzioni di rete o guasti del broker tramite tentativi automatici per garantire un recapito affidabile dei dati.

  • Garantire l'integrità dei dati con idempotenza. È possibile configurare i produttori affinché supportino il recapito esattamente una volta, il che impedisce i messaggi duplicati e garantisce un flusso di dati coerente.

Componenti

  • L'hub IoT inserisce i dati IoT. Offre funzionalità come la comunicazione bidirezionale, l'autenticazione del dispositivo e il buffer dei messaggi offline. È ideale per la gestione dei dispositivi IoT e dei relativi flussi di dati.

  • I produttori di Change Data Capture (CDC) includono database di Azure, ad esempio il database SQL di Azure e Azure Cosmos DB.

    Per accedere ai dati CDC, è possibile usare connettori, ad esempio Debezium per il database SQL o il feed di modifiche di Azure Cosmos DB. Questi connettori sono spesso ospitati in Funzioni di Azure o in ambienti del servizio app di Azure. Se si usa la funzionalità eventstream di Microsoft Fabric, non sono necessarie applicazioni separate, ad esempio Debezium, per connettere i produttori CDC ai consumer downstream.

  • Le applicazioni personalizzate come Debezium possono anche essere ospitate come applicazioni autonome in servizi gestiti, ad esempio il servizio Azure Kubernetes o gli ambienti del servizio app. Questo approccio offre maggiore controllo o personalizzazione.

Funzionalità generali

Capacità IoT Hub Produttori CDC Applicazioni personalizzate
Telemetria del dispositivo NO NO
Servizio gestito NO NO
Scalabilità

Inserimento di flussi

Produttori, ad esempio applicazioni Web e per dispositivi mobili, dispositivi IoT e sensori, generano continuamente dati. La pipeline di elaborazione dei flussi deve inserire in modo efficiente questi dati per l'analisi batch e in tempo reale.

Prendere in considerazione i fattori seguenti:

  • Velocità dei dati: Determinare come gestire i dati ad alta frequenza da più origini, che spesso variano in formato e dimensioni.

  • Scalabilità: Assicurarsi che il livello di inserimento possa essere ridimensionato in modo dinamico man mano che aumentano volume di dati, varietà e velocità.

  • Integrità e affidabilità dei dati: Evitare la perdita o la duplicazione dei dati durante la trasmissione.

Componenti

  • Hub eventi è un servizio di inserimento dati in tempo reale che può gestire milioni di eventi al secondo, che lo rende ideale per scenari con velocità effettiva elevata. Può essere ridimensionato in modo dinamico ed elaborare volumi elevati di dati con bassa latenza.

    Hub eventi supporta funzionalità come il partizionamento per l'elaborazione parallela e i criteri di conservazione dei dati. Si integra con servizi di Azure come Analisi di flusso di Azure, Infrastruttura, Azure Databricks e Funzioni di Azure. Hub eventi si integra anche con Apache Kafka ed è possibile eseguire carichi di lavoro Kafka esistenti senza apportare modifiche al codice.

  • Griglia di eventi è un servizio di routing eventi completamente gestito. Inserisce, distribuisce e reagisce agli eventi da varie origini, quindi è ideale per architetture basate su eventi in tempo reale. Gestisce in modo efficiente le notifiche degli eventi e si integra con servizi di Azure, applicazioni personalizzate e sistemi partner. Event Grid svolge un ruolo fondamentale nell'ingestione di flussi di dati.

  • Kafka in Azure HDInsight è un servizio Apache Kafka gestito per l'inserimento e l'elaborazione dei dati in tempo reale su larga scala. Usare questo servizio per acquisire e archiviare i dati di streaming da varie origini, ad esempio dispositivi IoT, log applicazioni e feed di social media. Questo servizio fornisce un controllo aggiuntivo di una configurazione Kakfa in un'infrastruttura gestita.

  • Apache Kafka in Confluent Cloud è un servizio Apache Kafka completamente gestito per l'inserimento di dati in tempo reale. Si integra con Azure per semplificare la distribuzione e il ridimensionamento. Questa soluzione include funzionalità come il registro degli schemi, ksqlDB per le query di flusso e la sicurezza a livello aziendale. Usare questa opzione se si usa l'ecosistema esteso di connettori e strumenti di elaborazione dei flussi di Confluent.

Funzionalità generali

Capacità Hub eventi Kafka in HDInsight Kafka su Confluent
Conservazione dei messaggi
Limite delle dimensioni dei messaggi 1 MB Configurabile Configurabile
Servizio gestito Infrastruttura gestita distribuita come servizio
Scalabilità automatica
Offerta partner NO NO
Modello di determinazione prezzi Basato sul livello Per ora del cluster Modelli di consumo

Elaborazione dei flussi

Questo passaggio prevede processi che trasformano i dati in tempo reale e filtrano, aggregano, arricchiscono o analizzano i dati inseriti.

Prendere in considerazione i fattori seguenti:

  • Elaborazione con stato e senza stato: Decidere se l'elaborazione dipende dai dati visualizzati in precedenza (con stato) o da eventi indipendenti (senza stato).

  • Gestione dell'ora dell'evento: Tenere conto degli scenari in cui è necessario elaborare i flussi di dati da più origini insieme, in particolare per i record in arrivo in ritardo.

  • Windowing: Usare finestre scorrevoli o a cascata per gestire aggregazioni e analisi basate sul tempo.

  • Tolleranza ai guasti: Assicurarsi che il sistema possa eseguire il ripristino da errori senza perdita di dati o errori di rielaborazione.

Componenti

  • Stream Analytics è un servizio gestito che utilizza un linguaggio di query basato su SQL per consentire l'analisi in tempo reale. Usare questo servizio per semplici attività di elaborazione, ad esempio il filtro, l'aggregazione e l'unione di flussi di dati. Si integra perfettamente con Hub Eventi, Hub IoT e Azure Blob Storage per input e output. Analisi di flusso si adatta meglio alle attività in tempo reale e a bassa complessità in cui è sufficiente una soluzione semplice e gestita con query basate su SQL.

  • Spark Structured Streaming è supportato da servizi come Fabric, Azure Databricks e Azure Synapse Analytics. Questi servizi offrono una piattaforma di analisi unificata basata su Apache Spark e possono gestire trasformazioni di dati complesse, pipeline di Machine Learning e carichi di lavoro di Big Data. Le API di streaming Spark supportano l'integrazione approfondita con Delta Lake per il controllo delle versioni e la coerenza dei dati.

  • Fabric eventstreams è una funzionalità di streaming di dati in tempo reale all'interno di Fabric, che è una piattaforma di analisi unificata. Eventstreams consente l'inserimento, l'elaborazione e l'integrazione senza problemi dei dati di streaming per l'analisi e le applicazioni in tempo reale. Gli utenti possono accedere ai flussi di eventi con competenze tecniche minime. Fornisce interfacce drag-and-drop per configurare pipeline di dati.

  • Funzioni di Azure è un servizio di calcolo serverless per l'elaborazione basata su eventi. È utile per le attività leggere, ad esempio la trasformazione dei dati o l'attivazione di flussi di lavoro basati su eventi in tempo reale. Le funzioni di Azure sono senza stato per impostazione predefinita. La funzionalità funzioni durevoli estende le funzionalità per supportare flussi di lavoro con stato per il coordinamento di eventi complessi.

Funzionalità generali

Capacità Analisi di flussi di dati Spark Structured Streaming (Fabric, Azure Databricks, Azure Synapse Analytics) Flussi di eventi dell'infrastruttura Funzioni di Azure
Elaborazione micro batch NO
Elaborazione basata su eventi NO NO
Elaborazione stato-centrica NO
Supporto per il punto di controllo NO
Interfaccia a basso codice NO NO
Modello di determinazione prezzi Unità di streaming SKU di Tessuto

Destinazioni di streaming

Dopo che il sistema elabora i dati, indirizza i dati a destinazioni o sink appropriati per l'archiviazione, l'ulteriore analisi o l'uso in applicazioni in tempo reale. Queste destinazioni possono includere database, data lake, strumenti di analisi o dashboard per la visualizzazione.

Prendere in considerazione i fattori seguenti:

  • Utilizzo e utilizzo dei dati: Usare Power BI per dashboard di analisi o report in tempo reale. Si integra bene con i servizi di Azure e offre visualizzazioni in tempo reale dei flussi di dati.

  • Requisiti di bassa latenza: Determinare se il sistema deve fornire analisi su flussi di dati in tempo reale, ad esempio i dati di telemetria dei dispositivi e i log applicazioni. Alcune applicazioni potrebbero anche richiedere una latenza ultra bassa per le letture e le scritture, rendendole adatte per l'analisi operativa o le applicazioni in tempo reale.

  • Scalabilità e volume: Valutare la necessità del carico di lavoro di inserire grandi volumi di dati, supportare formati di dati diversi e ridimensionare in modo efficiente e conveniente.

Componenti

  • Azure Data Lake Storage è una soluzione scalabile, distribuita e conveniente per l'archiviazione di dati non strutturati e semistrutturati. Supporta l'archiviazione su scala petabyte e carichi di lavoro a velocità effettiva elevata per l'archiviazione di grandi volumi di dati di streaming. Consente anche operazioni di lettura e scrittura veloci, che supportano l'analisi sui dati di streaming e sulle pipeline di dati in tempo reale.

  • Un eventhouse Fabric è un database KQL per l'analisi in tempo reale e l'esplorazione su dati basati su eventi, ad esempio dati di telemetria e log, dati temporali e dati IoT. Supporta l'inserimento di milioni di eventi al secondo con bassa latenza. Questa funzionalità consente l'accesso quasi istantaneo ai dati di streaming. Un eventhouse si integra profondamente con l'ecosistema Fabric. Consente agli utenti di eseguire query e analizzare immediatamente i dati di streaming usando strumenti come Power BI.

  • Azure Cosmos DB è un database NoSQL per l'archiviazione dei dati a bassa latenza, distribuita a livello globale e altamente scalabile. È compatibile con più API, ad esempio SQL, MongoDB, Cassandra, Table e Gremlin, che offre flessibilità per applicazioni diverse. Azure Cosmos DB offre una velocità effettiva elevata e può gestire grandi volumi di dati di streaming con prestazioni coerenti.

  • Il database SQL è un servizio di database relazionale completamente gestito basato sul cloud. Si basa sul motore di SQL Server. Offre quindi le funzionalità di un database SQL Server tradizionale con i vantaggi di scalabilità, affidabilità e riduzione del sovraccarico di gestione basato sul cloud.

Funzionalità generali

Capacità Archiviazione Data Lake Eventhouse dell'infrastruttura Azure Cosmos DB, un servizio di database distribuito globale di Microsoft SQL Base di dati
Archivio oggetti per utilizzo generico NO NO NO
Aggregazioni di dati in streaming NO NO NO
Letture e scritture a bassa latenza per i documenti JSON NO NO
Aggregazioni di dati strutturate per Power BI NO NO
Modello di determinazione prezzi Per GB o TB SKU di Tessuto Unità richiesta Unità di transazione di database (DTU) o vCore

Collaboratori

Microsoft gestisce questo articolo. I collaboratori seguenti hanno scritto questo articolo.

Autore principale:

Per visualizzare i profili LinkedIn non pubblici, accedere a LinkedIn.

Passaggi successivi

Esplorare i moduli di training seguenti: