Data is king. Anche se non è una voce dello stato patrimoniale, uno degli asset di maggior valore che una azienda possiede sono i suoi dati. Sui dati si basano analisi, budget, decisioni, e questi dati sono dispersi in azienda nei posti più vari: database gestionali, file Excel, JSON di flussi IoT e via dicendo.
Non stupisce che una delle maggiori preoccupazioni dei CIO sia di trovare il modo più efficace per fruire di questi dati, aggregarli in modo significativo, ed estrarre da essi i KPI (Key Performance Indicator) che possano guidare il management a prendere le migliori decisioni a beneficio degli stakeholder. Affrontare questa sfida senza un adeguato strumento di Business Intelligence (BI) è sempre più arduo.
Come orientarsi tra le varie soluzioni di BI
Avvicinarsi per la prima volta al variegato mondo delle proposte di Business Intelligence può essere disorientante. Si viene messi di fronte a molteplici scelte, spesso tra opzioni molto differenti tra loro. Occorre perciò analizzare le proprie esigenze per capire su quale soluzione orientarsi.
La prima considerazione da fare riguarda i tipi e la quantità di dati da aggregare per estrarre i KPI di interesse: se i dati provengano da un’unica sorgente (il database del gestionale) o da fonti eterogenee tra loro (file No-SQL, CSV, JSON); se le dimensioni dei dati siano di pochi gigabyte o se l’unità di misura sia il terabyte; se i dati risiedano on premise oppure in cloud.
Occorre anche analizzare gli ambiti da cui si vuole estrarre i dati, ossia se appartengono a un processo ben definito (ad esempio, contabilità industriale) oppure se provengono da diversi contesti (produzione, ciclo attivo, sensori di macchinari, ecc.).
Una volta recuperate queste informazioni si può iniziare a valutare il software da utilizzare e analizzare come costruire la pipeline più adatta per la tipologia di dati.
Costruire una pipeline BI
Una pipeline BI è il flusso che permette di aggregare i dati dalle diverse sorgenti e presentarli sotto forma di cruscotti o indicatori di performance.
Il primo step della pipeline è la definizione del dataset, passaggio che a seconda delle tipologie di dati può risultare più o meno complesso.
Solitamente, la definizione di un dataset richiede operazioni strutturate di ETL, ossia Extraction, Transformation e Loading, con cui si intende quel processo per mezzo del quale i dati vengono letti dalle sorgenti di origine e rielaborati in modo da poter essere modellati in tabelle di tipo stella o snowflake.
Questo processo può richiedere anche lo sviluppo di connettori, se le origini dati sono particolarmente ricercate e non sono supportati dai più diffusi tool ETL, oppure la configurazione di un data gateway, se i dati risiedono on premise e il software BI che deve fruirli è situato in cloud.
Nel caso occorra configurare un gateway dati locale, occorre anche fare considerazioni di bilanciamento del carico di lavoro sulla intranet e di consumo risorse sui server dati del gestionale locale, per evitare che durante le operazioni di sincronizzazione si creino picchi di consumi di RAM, CPU e banda di rete che risulterebbero fastidiosi per gli operatori collegati al sistema.
Una volta costruito il dataset, si avrà a disposizione sul software BI la base dati sopra cui costruire il livello di presentation, ossia l’interfaccia visiva che permetterà al data scientist di costruire i cruscotti ed elaborare i KPI che permetteranno ai key user di effettuare le loro interrogazioni e consultare gli indicatori pertinenti ai loro processi.
Quando passare al Machine Learning?
Una volta consolidata la pipeline, i key user inizieranno ad utilizzare lo strumento BI e a formulare richieste di interrogazione sul dataset.
Qualche volta, queste richieste tenderanno ad assumere un aspetto orientato più al forecasting che al consolidamento di valori storici. Un sales manager potrebbe essere interessato alle previsioni di vendita per una determinata area, oppure un ingegnere di produzione potrebbe voler conoscere una stima per il prossimo anno del consumo di una materia prima.
Fare fronte a queste richieste con un cruscotto BI, per quanto dettagliato e basato su un ricco campionamento di informazioni, potrebbe rivelarsi arduo. Quando il data scientist si accorge di ricevere un crescente numero di richieste orientate al previsionale, potrebbe decidere che i semplici strumenti di Business Intelligence non sono in grado di venire incontro alle esigenze dell’azienda, e valutare l’adozione di un approccio di tipo Machine Learning.
Come scegliere la soluzione di Machine Learning
Un’azienda che già lavora con un consolidato software di BI, potrebbe valutare di beneficiare della pipeline già in uso per velocizzare l’integrazione della soluzione di Machine Learning.
Questa soluzione è fattibile relativamente agli strumenti impiegati per sviluppare lo step di ETL: un gateway di dati che si limita a trasportare le informazioni in cloud offre poco valore aggiunto, mentre una soluzione basata su script Python potrebbe essere una buona base di partenza per risparmiare tempo di sviluppo lato Machine Learning.
Un altro fattore è l’apertura all’integrazione del software BI impiegato: alcune piattaforme BI sono predisposte alla fruizione dei dataset per mezzo di API o scripting, e facilitano l’integrazione di codice personalizzato per trasformare i dati in tensori.
E se facessi tutto in Python?
Nella fase di analisi iniziale, è forte la tentazione di creare una soluzione interamente personalizzata, impiegando un ambiente di programmazione predisposto all’analisi dati, come R o Python. Lo sviluppo di una soluzione proprietaria, sebbene offra innegabili vantaggi, non è esente da aree di attenzione.
Python offre ottime librerie per gestire ETL e presentazione dei dati, ma è privo degli automatismi e degli aiuti offerti dall’interfaccia di un software commerciale. A meno che non si disponga di budget molto cospicui per le personalizzazioni, la soluzione migliore di solito risiede nell’adottare un software commerciale con un proprio linguaggio di scripting (come DAX) o predisposto all’integrazione con script esterni o API.