Cosa sono e differenza tra Stream processing e Batch processing

Cosa sono e differenza tra Stream processing e Batch processing

Che cos’è lo stream processing?

Lo stream processing (in italiano elaborazione del flusso) è la pratica di agire su una serie di dati al momento della creazione dei dati. Storicamente, i professionisti dei dati utilizzavano l’elaborazione in tempo reale per parlare in generale di dati che venivano elaborati con la frequenza necessaria per un particolare caso d’uso. Ma con l’avvento e l’adozione di tecnologie e framework di stream processing, insieme alla diminuzione dei prezzi per la RAM, lo stream processing viene utilizzata in un modo più specifico.

Lo stream processing spesso comporta più attività sulla serie di dati in ingresso (il flusso di dati), che possono essere eseguiti in serie, in parallelo o entrambi. Questo flusso di lavoro è denominato pipeline di stream processing, che include la generazione dei dati, l’elaborazione dei dati e la consegna dei dati a una posizione finale.

Le azioni che lo stream processing esegue sui dati includono aggregazioni (ad es. calcoli come somma, media, deviazione standard), analisi (ad es. previsione di un evento futuro in base a modelli nei dati), trasformazioni (ad es. modifica di un numero in un formato data), arricchimento (ad esempio, combinazione del punto dati con altre fonti di dati per creare più contesto e significato) e importazione (ad esempio, inserimento dei dati in un database).

Come funziona di stream processing?

Lo stream processing viene spesso applicata ai dati generati come una serie di eventi, come i dati provenienti da sensori IoT, sistemi di elaborazione dei pagamenti e registri di server e applicazioni. I paradigmi comuni includono publisher/subscriber (comunemente indicato come pub/sub) e source/sink. I dati e gli eventi vengono generati da un editore o da una fonte e consegnati a un’applicazione di stream processing, dove i dati possono essere aumentati, testati contro algoritmi di rilevamento delle frodi o altrimenti trasformati, prima che l’applicazione invii il risultato a un sottoscrittore o a un sink. Dal punto di vista tecnico, le fonti e i sink comuni includono Apache Kafka, repository di big data come Hadoop, socket TCP e griglie di dati in memoria come Hazelcast IMDG .

Differenza tra Stream processing e Batch processing

Storicamente, i dati venivano generalmente elaborati in batch (batch processing) in base a una pianificazione oa una soglia predefinita (ad es. ogni notte all’una, ogni cento righe o ogni volta che il volume raggiunge i due megabyte). Ma il ritmo dei dati è accelerato e i volumi si sono gonfiati, e ci sono molti casi d’uso per i quali l’elaborazione batch semplicemente non è sufficiente.

Lo stream processing è diventata un must per le applicazioni moderne. Le aziende si sono rivolte a tecnologie che rispondono ai dati nel momento in cui vengono creati per una varietà di casi d’uso e applicazioni, esempi dei quali tratteremo di seguito.

Lo stream processing consente alle applicazioni di rispondere a nuovi eventi di dati nel momento in cui si verificano. Anziché raggruppare i dati e raccoglierli a un intervallo predeterminato, le applicazioni di Stream processing e Batch processing raccolgono ed elaborano i dati immediatamente non appena vengono generati.

Cosa sono e differenza tra Stream processing e Batch processing

Casi d’uso di esempio

I casi d’uso in genere coinvolgono dati di eventi generati da un’azione e sui quali un’azione dovrebbe verificarsi immediatamente. I casi d’uso comuni per stream processing in tempo reale includono:

  • Rilevamento di frodi e anomalie in tempo reale. Uno dei maggiori fornitori di carte di credito al mondo è stato in grado di ridurre le svalutazioni per frode di 800 milioni di dollari all’anno, grazie al rilevamento di frodi e anomalie alimentato dallo stream processing. I ritardi nell’elaborazione della carta di credito sono dannosi per l’esperienza sia del cliente finale che del negozio che tenta di elaborare la carta di credito (e di qualsiasi altro cliente in linea). Storicamente, i fornitori di carte di credito eseguivano i loro lunghi processi di rilevamento delle frodi in modo batch dopo la transazione. Con lo stream processing, non appena fai scorrere la tua carta, sono in grado di eseguire algoritmi completi per riconoscere e bloccare addebiti fraudolenti e attivare avvisi per addebiti anomali che meritano un’ulteriore ispezione, senza far aspettare i loro clienti (non fraudolenti).
  • Analisi perimetrale dell’Internet of Things (IoT). Le aziende manifatturiere, petrolifere e del gas e dei trasporti, così come quelle che progettano città intelligenti ed edifici intelligenti, sfruttano lo stream processing per stare al passo con i dati di miliardi di “cose”. Un esempio di analisi dei dati IoT è il rilevamento di anomalie nella produzione che indicano che i problemi devono essere risolti per migliorare le operazioni e aumentare i rendimenti. Con lo stream processing in tempo reale, un produttore può riconoscere che una linea di produzione sta presentando troppe anomalie mentre si verifica (invece di trovare un intero lotto difettoso dopo il turno del giorno). Possono riconoscere enormi risparmi e prevenire enormi sprechi mettendo in pausa la linea per riparazioni immediate.
  • Personalizzazione, marketing e pubblicità in tempo reale. Con lo stream processing in tempo reale, le aziende possono offrire esperienze contestuali personalizzate per i propri clienti. Questo può includere uno sconto per qualcosa che hai aggiunto a un carrello su un sito web ma non hai acquistato immediatamente, una raccomandazione per connetterti con un amico appena registrato su un sito di social media o una pubblicità per un prodotto simile a quello che hai appena visto.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *