Quantyca Real Time Inventory use case image
Scopri
Contesto

In diversi settori aziendali la velocità dei processi di decision-making è sempre più cruciale per il profitto dell’organizzazione: sfruttando un monitoraggio continuo della performance del core business basato su un’analisi dei dati in tempo reale, il management può prendere tempestivamente delle decisioni per massimizzare le entrate dai vari canali e mitigare le perdite dovute a iniziative errate o fattori esterni. 

Per le aziende digital native l’analisi in real time di fenomeni come il comportamento dei clienti nell’interazione con i touch point permette di migliorare in tempi rapidi l’efficacia di suggerimenti automatici all’utente, aumentando l’engagement e migliorando l’esperienza con i servizi offerti. Al contrario, la mancanza di tempestività dell’adattare o correggere un’iniziativa digitale verso il cliente finale può portare ad una perdita di appetibilità e di fiducia nel servizio con conseguenti perdite in termini di potenziali ricavi o sospensione delle sottoscrizioni. 

La possibilità di avere visibilità in tempo reale sull’andamento del business può essere un abilitatore di vantaggio competitivo anche per le aziende dei settori più tradizionali, come il retail, che possono avviare iniziative di marketing o campagne promozionali con molta più rapidità rispetto al passato, specialmente nei periodi dell’anno di saldi o eventi straordinari. 

Inoltre, la capacità di elaborare gli eventi di dominio in tempo reale è spesso un requisito necessario per supportare l’operatività del business stesso, come nel caso delle funzionalità di prevenzione di frode per gli istituti bancari sulle attività di on-banking o di calcolo in tempo reale dell’inventario per le aziende retail multicanale. 

Punti critici

Nella progettazione di architetture per l’elaborazione dei dati in tempo reale si deve far fronte ad alcuni aspetti tecnici importanti per l’efficacia della soluzione. Di seguito ne elenchiamo alcuni. 

Per supportare un caso d’uso di Real Time Analytics è fondamentale adottare una strategia di estrazione dei dati che consenta di rilevare il più possibile instantaneamente i nuovi record aggiunti o i record aggiornati nel sistema sorgente. Diverse sono le pratiche di offloading diffuse: nella scelta bisogna considerare diversi fattori, come l’impatto in termini di carico di lavoro addizionale che la soluzione scelta provoca sul sistema sorgente, la capacità di rilevare gli eventi di cancellazione di record, la necessità di ulteriori elaborazioni da operare sui record estratti e la possibilità di apportare modifiche al sistema sorgente o di installare componenti plugin o connettori di terze parti. 

Affinchè gli utilizzatori possano interrogare il dataset per analisi in tempo reale è necessario minimizzare il più possibile la latenza dall’estrazione dei dati alla loro predisposizione al consumo. Questo permette di ridurre la probabilità che i consumatori ricevano una versione non più aggiornata dei dati o sperimentino l’assenza di dati che invece si aspetterebbero di ricevere. La scelta delle componenti tecnologiche che compongono la soluzione di integrazione è un aspetto critico. 

Alcune trasformazioni richieste nei casi d’uso di Real Time Analytics, come il calcolo di somme, medie mobili o contatori, richiedono di conservare all’interno dell’applicazione lo stato corrente dell’elaborazione (ad esempio, nel caso di una somma calcolata in tempo reale, l’applicazione deve salvare il valore della somma all’istante corrente, a cui andrà ad applicare come addendo il valore del prossimo record in ingresso). La conservazione di tale stato richiede garanzie di persistenza, disponibilità elevata e tolleranza ai fallimenti, per assicurare la ripresa dell’operatività e la consistenza dei dati anche in seguito a riavvii. Inoltre, per avviare il sistema di Real Time Analytics, è fondamentale prevedere una strategia di inizializzazione, che permette di partire da uno stato iniziale determinato e applicare su di esso i calcoli sugli eventi in tempo reale (ad esempio, lo stato iniziale della giacenza di magazzino). 

Le soluzioni che supportano l’elaborazione di stream di eventi sono tendenzialmente caratterizzate da flussi di dati asincroni, che pongono diversi elementi di complessità rispetto ai tradizionali flussi batch: 

  • Consistenza eventuale: i flussi relativi ad entità di dominio logicamente correlate avvengono in modo asincrono e indipendente; pertanto, non è garantita la consistenza transazionale stretta che assicura di leggere in qualunque momento uno snapshot consistente dell’intero aggregato di entità di dominio 
  • Eventi in ritardo e ordinamento: è possibile che alcuni eventi vengano recepiti dall’applicazione di stream processing in ritardo rispetto alla finestra temporale di business a cui appartengono, sulla quale vengono spesso calcolati valori di aggregazione. Inoltre, per garantire la scalabilità della soluzione di integrazione si adottano architetture distribuite, che comportano la rinuncia all’ordinamento a livello globale degli eventi 
  • Semantica di delivery exactly-once: garantire che ogni evento sia ricevuto dalle applicazioni consumatori esattamente una e una sola volta, senza la possibilità di perdere eventi o creare duplicati.   

Soluzione

Real-time stream processing  

Caratterizzate dalla presenza nell’architettura dati di una piattaforma di event streaming, che oltre a permettere di importare i dati in tempo reale dalle applicazioni sorgenti, offre un insieme di tool che abilitano la trasformazione continua di stream di eventi (real-time ETL) con framework SQL-like o librerie per i linguaggi di programmazione più comuni.

Queste soluzioni permettono di calcolare metriche e KPI mediamente complessi applicando la logica di calcolo evento per evento, mantenendo se necessario uno stato interno con il valore aggregato corrente. I risultati possono essere calcolati anche riferiti a finestre temporali rispetto al timestamp di generazione degli eventi e la scelta del particolare tipo di finestra (hopping, sliding, tumbling, session-based…) può variare da caso a caso. Il KPI di analisi calcolati dal motore di stream processing possono essere acceduti tramite interfacce API esposte dal framework stesso, che emettono i risultati in modalità push o pull, oppure scaricati in tempo reale su data store a bassa latenza di ingestion, da cui possono essere letti tramite tool di real time reporting. 
L’immagine seguente mostra un prospetto delle soluzioni di questo tipo. 
 

Rientrano in questa categoria le soluzioni che prevedono l’elaborazione analitica degli eventi tramite framework di stream processing quali Spark Streaming, Kafka Streams o Apache Flink. 
Nell’immagine seguente sono rappresentate le componenti principali di una piattaforma di event streaming. 

High-performance data store 

Le soluzioni di questo tipo prevedono invece di una componente più leggera di event messaging che funge da Fast Layer, per supportare l’ingestion in tempo reale dei dati estratti dalla sorgente sotto forma di eventi in un database ad alte performance computazionali, in cui la logica di calcolo delle metriche e dei KPI richiesti per l’analisi viene fatta a query-time in fase di recupero dei dati. 

Secondo questo schema i dati vengono importati nel database analitico senza pressochè alcuna trasformazione, dopodichè vengono sfruttate le funzionalità di ottimizzazione interna dello storage e delle query offerte dal database per assicurare una buona performance di lettura. I database più recenti mettono a disposizione numerose funzioni analitiche o di aggregazione che supportano sia dati strutturati sia semistrutturati e permettono calcoli anche su tipi di dati complessi, come quelli geometrici e geografici. 
L’immagine seguente mostra un prospetto delle soluzioni di questo tipo. 

Rientrano in questa categoria le soluzioni che sfruttano tecnologie come Apache Kafka o AWS Kinesis come fast layer e Snowflake, Google Big Query, AWS Redshift o Single Store come high-performance data store. 

Data Lakehouse 

Le soluzioni di questo tipo sono simili nel design rispetto a quelle che sfruttano le capacità analitiche di un High Performance Data Store, viste in precedenza. La differenza sta nel fatto che in questo caso i dati non vengono importati in un database analitico vero e proprio, ma vengono inseriti in un object store o un file system distribuito sotto forma di raw file testuali (JSON) o binari (ORC, Parquet, Avro), con modalità append e un approccio schema on read. 

Il parsing dello schema, così come l’applicazione delle logiche di calcolo analitiche vengono fatte a query time da parte di un query engine altamente ottimizzato per la lettura su un object store. Il query engine accede ai dati presenti nell’object store esterno tramite External Tables, che possono essere ottimizzate tramite la definizione di viste materializzate o dataset conservati in cache per migliorare ulteriormente le performance. 
L’immagine seguente mostra un prospetto delle soluzioni di questo tipo. 

Rientrano in questa categoria le soluzioni che sfruttano tecnologie come AWS S3, Azure Blob Storage, Google Cloud Storage o HDFS come object store e Databricks, Dremio, AWS Athena come high-performance query engine. 

Vantaggi

Fast Decision Making
la disponibilità dei dati in tempo reale per l’analisi permette di monitorare continuamente l’andamento del core business e di prendere decisioni strategiche o operative in tempi rapidi, anche sfruttando l’automazione, per migliorare il servizio offerto al cliente finale o le opportunità di profitto.
Supporto all'omnicanalità
la possibilità di elaborare i dati sotto forma di stream di eventi è un fattore chiave per integrare in modo trasparente e senza soluzione di continuità i dati provenienti da diversi canali e abilitare processi di business che richiedono un punto di contatto tra di essi (ad esempio, gestire un unico magazzino per il commercio online e per quello retail tradizionale).
Prevenzione del rischio
alcune applicazioni di Real Time Analytics, come il monitoraggio in tempo reale dei sistemi o le funzionalità di rilevamento di frodi mettono al riparo l’azienda dalla possibilità di perdere reputazione o quota parte del profitto, nonché evitare di dover rimborsare gli utenti o pagare sanzioni comminate dal regolatore.

Success Stories

Hai bisogno di una consulenza personalizzata? Contattaci per trovare la soluzione migliore!

Questo campo serve per la convalida e dovrebbe essere lasciato inalterato.

Entra a far parte del team Quantyca, facciamo squadra!

Siamo sempre alla ricerca di persone di talento da inserire nel team, scopri tutte le nostre posizioni aperte.

VEDI TUTTE LE POSIZIONI APERTE