Che cos'è lo streaming dei dati?
Lo streaming dei dati è un flusso continuo e costante di dati generati ed elaborati. Ciò è possibile grazie alla tecnologia di elaborazione dei flussi, che consente di gestire, memorizzare, analizzare e quindi agire sui flussi di dati in tempo reale. Lo streaming dei dati può essere chiamato anche event stream processing o dati in streaming (che la maggior parte di noi conosce bene, grazie a Netflix).
Per comprendere meglio lo streaming dei dati, è meglio partire dal concetto stesso di streaming. Lo streaming si riferisce a un flusso continuo di dati che non ha un punto di partenza o di arrivo. Questo flusso costante di dati può essere utilizzato senza doverlo scaricare. È simile al flusso di un fiume. Tanti piccoli ruscelli, affluenti e corpi idrici che scorrono a velocità e intensità diverse per confluire in un unico fiume, senza inizio né fine dalla tua posizione privilegiata.
Allo stesso modo, i flussi di dati provengono da una serie di fonti in numerosi formati e intensità di volume. Queste fonti possono essere app, dispositivi in rete, file di registro dei server, attività online di vario tipo e dati basati sulla posizione. Tutte queste fonti possono essere raccolte in tempo reale per formare un'unica fonte principale per analisi dei dati in tempo reale e informazioni.
Un esempio di streaming dei dati è un'app di ride-sharing. Se si effettua una prenotazione su Uber o Lyft, si viene abbinati a un autista in tempo reale e l'app è in grado di dire quanto è lontano da noi e quanto tempo ci vorrà per arrivare a destinazione in base ai dati sul traffico in tempo reale. Altri esempi di dati in streaming sono le compravendite di azioni in tempo reale e la gestione dell'inventario al dettaglio.

Come funzionano i dati in streaming
Il concetto di elaborazione dei dati non è nuovo. Nei primi anni, le infrastrutture legacy erano più facilmente strutturate perché i dati venivano generati da un numero molto minore di fonti. Si potevano creare intere strutture in modo da lavorare sulla specificità e sull'unificazione dei dati e delle strutture di origine.
I dati moderni, tuttavia, provengono da un numero infinito di fonti, che possono essere qualsiasi cosa, compresi sensori hardware, server, dispositivi personali, app e browser internet. Ciò rende impossibile regolare o imporre una struttura per i dati o consentire il controllo dell'intensità e della frequenza dei dati generati.
Per poter gestire i moderni flussi di dati, è necessario che le applicazioni siano in grado di analizzarli ed elaborarli un pacchetto alla volta, in sequenza. Ogni pacchetto di dati generato dovrà avere anche la fonte e la marca temporale, il che aiuta le applicazioni a lavorare con i flussi di dati.
Le applicazioni utilizzate per lavorare con i flussi di dati necessitano di due funzioni principali: archiviazione ed elaborazione. Per quanto riguarda l'archiviazione, il software deve essere in grado di registrare flussi enormi di dati in sequenza e in modo coerente. Per quanto riguarda l'elaborazione, il software deve essere in grado di gestire l'interazione con l'archiviazione, il consumo dei dati memorizzati, l'analisi dei dati memorizzati e l'esecuzione dei calcoli richiesti sui dati.
Esistono diverse considerazioni e sfide legate alla creazione di flussi di dati e oggi esistono una serie di piattaforme e strumenti che le organizzazioni possono utilizzare per aiutare le aziende a costruire la loro infrastruttura di dati in streaming. I flussi di dati svolgono un ruolo fondamentale nei big data e costituiscono la base per le analisi in tempo reale, l'integrazione dei dati e l'inserimento dati.
Come l'elaborazione batch legacy si differenzia dai flussi in tempo reale
Rispetto ai primi metodi di elaborazione dei dati batch legacy, i moderni flussi in tempo reale possono essere molto diversi. Nell'elaborazione batch legacy, i dati vengono raccolti in batch, dopodiché vengono elaborati, archiviati o analizzati a seconda delle esigenze. Nello streaming di dati, il flusso di dati in ingresso è continuo e viene elaborato in tempo reale. Non si attende l'arrivo dei dati in batch.
Oggi i dati fluiscono in flussi costanti e si presentano in una varietà di volumi e formati, da decine di luoghi e dal cloud, in locale o persino da un cloud ibrido. I metodi di elaborazione dei dati tradizionali sono diventati nel complesso obsoleti nelle situazioni attuali. Oggi le organizzazioni utilizzano flussi di dati in tempo reale, aggiornati al millisecondo, il che offre alle aziende un'ampia gamma di modi per trasformare il proprio metodo di lavoro.
Vantaggi dello streaming dei dati
Di seguito un'analisi di come i dati in streaming possono essere applicati a sostegno di situazioni lavorative del mondo reale.
Allarme avanzato
Il vantaggio immediato e più ovvio delle capacità fornite dallo streaming dei dati è il modo in cui aiuta la streaming analytics. Il feedback è immediato quando si verifica un evento, un'anomalia o una tendenza. Il sistema di allerta non è un aspetto unico dello streaming, ma il semplice fatto che chi riceve gli avvisi possa reagire immediatamente lo rende importante. Questo può avvenire perché, a differenza dell'elaborazione batch, non c'è alcun ritardo dal punto di vista tecnologico. Ecco alcuni esempi di come può funzionare il sistema di allerta:
- Nel caso della sicurezza informatica, lo streaming dei dati può essere utilizzato per segnalare comportamenti fuori dalla norma nel corso di un'indagine. Un gran numero di ambienti di sicurezza informatica sta optando per il machine learning per aiutare a identificare comportamenti potenzialmente sospetti non appena si verificano in una rete. L'uso di visualizzazioni di allerta insieme ai risultati del machine learning è il modo migliore per consentire a un ampio gruppo di analisti informatici di rilevare le minacce. In questo modo un'azienda può espandere la propria rete di sicurezza a una gamma più ampia di persone rispetto ai soli esperti di sicurezza e agli sviluppatori.
- Anche il settore della vendita al dettaglio trae immensi vantaggi dagli avvisi. Ogni negozio dà priorità a cose diverse e i team informatici dovrebbero avere delle priorità per le quali il codice può essere personalizzato. I dati in streaming possono essere utilizzati per rilevare situazioni come la scarsità di scorte o l'interesse insolitamente elevato dei clienti. Gli strumenti analitici vengono attivati per inviare avvisi al personale non tecnico piuttosto che a quello tecnico, consentendo così di ottenere risposte positive laddove è più importante: in negozio.
Utilizzo dell'analisi storica e del flusso di dati in tandem
Esistono numerose situazioni in cui i dati storici vengono utilizzati insieme all'analisi dei dati in tempo reale per fornire alle organizzazioni un quadro più completo della loro attività. Il caso d'uso migliore per spiegarlo è la valutazione del rischio per le istituzioni finanziarie. I processi tengono conto dell'intero ciclo di transazioni, da quelle passate, già eseguite, a quelle presenti, che comportano modifiche, trasferimenti o chiusure.
Quando si contestualizza un evento commerciale, ciò significa che i dati sulle transazioni dell'evento aiuteranno gli organizzatori a comprendere i modelli applicabili al loro più ampio insieme di portafogli. Le informazioni raccolte dall'analisi dei dati storici e in tempo reale in questa situazione possono fare la differenza tra il successo e una perdita ingente per gli eventi futuri.
Vantaggi nella creazione di record completi
In quasi tutti gli aspetti della vita quotidiana, aziendale e non, l'Internet delle cose (IoT) è la strada da seguire e viene già utilizzata da molte organizzazioni. Tuttavia, l'unico grande problema è che più record identici possono essere generati da dati in streaming, con conseguente duplicazione delle informazioni. Sebbene sia essenziale tenere traccia dell'origine dei dati, le stesse informazioni si ripetono più volte. Con migliaia di punti di origine, ciò può diventare rapidamente problematico e rendere ridondanti molti dati. Per rendere l'utilizzo dell'IoT un'opzione più praticabile, è possibile inserire tutte le informazioni ripetitive in un'unica tabella di ricerca. L'unione del flusso di dati con la tabella di ricerca consente di creare un record completo senza il problema della ripetizione.
Possiamo vedere un esempio di questa soluzione in azione su una piattaforma petrolifera, con le informazioni ripetitive del nome del produttore e della località. Inserendo questi due dati in una tabella di ricerca e unendola al flusso di dati con una chiave, ad esempio "manu_id", si risparmia una grande quantità di spazio per i dati. Questa chiave può essere utilizzata per determinare se l'ubicazione influisce su vari aspetti come l'usura, le prestazioni, i requisiti di manutenzione aggiuntivi e altro ancora. L'uso di una tabella di ricerca consente di ridurre notevolmente il tempo non produttivo.
Dati analitici che non si possono trovare altrove
Attualmente si registra un interesse e uno sviluppo senza precedenti per le tecnologie di streaming. Ciò è dovuto ai progressi tecnologici e alla consapevolezza che l'analisi dei dati in streaming apporta un immenso valore commerciale. Le aziende che sono alla ricerca del loro prossimo vantaggio sulla concorrenza si rivolgeranno allo streaming dei dati per ottenere insight che non sono in grado di generare con i loro attuali approcci all'analisi. Alcune delle aree in cui questa tecnologia ha applicazioni vantaggiose più evidenti sono:
- Utilizzo dei dati di localizzazione
- Fraud Detection
- Operazioni di borsa in tempo reale
- Marketing, vendite e analisi dei dati aziendali
- Monitoraggio e analisi dell'attività dei clienti o degli utenti
- Monitoraggio e reportistica dei sistemi IT interni
- Assistenza nel monitoraggio dei registri
- Gestione delle informazioni e degli eventi sulla sicurezza (SIEM)
- Inventario di vendita al dettaglio e di magazzino su più canali
- Miglioramento dell'abbinamento di ride sharing
- Combinazione di dati da utilizzare nell'analisi basata sul machine learning e sull'intelligenza artificiale
- Apertura di nuove strade all'analisi predittiva
Sfide nella creazione di applicazioni di streaming dei dati
Come per la maggior parte dei sistemi tecnologici, anche lo streaming dei dati presenta una serie di sfide. Ecco una panoramica di alcune delle difficoltà associate alla realizzazione di applicazioni di streaming di dati:
Scalabilità in un ambiente di lavoro
In caso di guasto del sistema, i dati di registro provenienti da ogni dispositivo possono passare da una velocità di invio di kilobit al secondo a megabit al secondo. In caso di aggregazione, la velocità di invio può avvenire in gigabit al secondo. L'aumento necessario della capacità, delle risorse e dei server richiesti, con l'ampliamento di queste applicazioni e l'aumento della quantità di dati grezzi generati, deve avvenire istantaneamente. Progettare applicazioni in grado di estendersi in ambienti di lavoro che trasmettono dati in streaming è un lavoro impegnativo che richiede di prendere in considerazione molti processi diversi e simultanei.
L'importanza delle sequenze
La determinazione della sequenza dei dati in un flusso di dati non è un problema da poco. La sequenza dei dati all'interno di un flusso di dati è fondamentale per l'utilizzo da parte delle applicazioni. Se gli sviluppatori stanno cercando di risolvere un problema con un'applicazione di chat bot, la sequenza della conversazione è importante per determinare dove le cose potrebbero andare male. Ogni riga dell'analisi aggregata dei registri deve essere in sequenza. Il problema di solito deriva da discrepanze nella sequenza del pacchetto di dati generato e nella sequenza in cui il pacchetto di dati raggiunge il punto di destinazione. Possono anche esserci differenze nelle marche temporali e negli orologi dei dispositivi che generano i dati.
Mantenere coerenza e durevolezza
Uno dei problemi più difficili nell'elaborazione dei dati in streaming è la loro coerenza e il loro accesso. I dati generati sono spesso distribuiti in più centri dati sparsi per il mondo. È possibile che quando si accede a un centro dati, questo sia già stato utilizzato e reso ridondante in un altro. La durevolezza dei dati quando si lavora con flussi di dati nel cloud è una sfida costante per gli sviluppatori.
Tolleranza ai guasti e garanzia dei dati
Quando si lavora con l'elaborazione di dati in streaming su sistemi distribuiti, è importante considerare sia la tolleranza ai guasti che la garanzia dei dati. Quando i dati provengono da numerose fonti e sedi, in una serie di formati e volumi diversi, i sistemi organizzativi devono essere orientati a prevenire le interruzioni che possono derivare da un singolo punto di guasto. Questi sistemi devono essere in grado di memorizzare flussi massicci di dati in modo duraturo. Garantire ciò non è un compito facile.
Qualsiasi interruzione nel flusso costante di dati danneggia anche il sistema. Se questo non è in grado di memorizzare le informazioni interrotte e di recuperarle, l'intero sistema si trova a sostenere un pesante fardello di dati in ritardo.

Il futuro dei dati in streaming
L'uso di software-as-a-service, di applicazioni mobili e basate su Internet e l'uso della scienza dei dati e dell'analisi avanzata hanno registrato e continuano a registrare una rapida crescita e un rapido interesse da parte di un ampio spettro di organizzazioni. Quasi tutte le aziende di medie e grandi dimensioni hanno una qualche forma di progetto di streaming dei dati in corso o in preparazione. Tutto ciò si basa sul desiderio di essere all'avanguardia e di analizzare i percorsi dei clienti, i dati clickstream e molti altri casi d'uso che possono generare resoconti utili.
Un tempo lo streaming dei dati era concentrato su un gruppo ristretto di persone all'interno di un'organizzazione, principalmente ingegneri e data scientist. Questi professionisti lavoravano con serie di competenze incredibilmente complesse e su flussi come Spark, Flink, MapReduce e Scala. Lavoravano in tandem con analisti aziendali e professionisti della business intelligence, tutti con l'obiettivo primario di eseguire query SQL su database relazionali.
Con l'inizio del nuovo anno, questa situazione è destinata a cambiare. Con un numero sempre maggiore di aziende che si affidano a fonti di streaming, gli utenti aziendali vorranno poter lavorare con i dati in streaming come fanno con altri insiemi di dati, sotto forma di pannelli di controllo interattivi e di analisi ad hoc, proprio come farebbero i team di sviluppo software. In questo modo i dati saranno più accessibili a tutte le persone, al di là delle gerarchie dell'organizzazione.