Analisi dell'entropia per la scoperta del sistema IT supply chain
Il panorama IT delle supply chain è quasi sempre complesso. Infatti, per sua natura, le supply chain coinvolgono molteplici attori, molteplici siti, molteplici sistemi, ecc. Di conseguenza, costruire insight basati sui dati nelle supply chain è una sfida a causa dell’enorme eterogeneità del panorama IT. Troppe volte, le analisi della supply chain producono risultati insensati proprio a causa dei problemi intrinseci del garbage in, garbage out.
Da Lokad, abbiamo non solo sviluppato una metodologia che esamina a fondo il panorama IT e i dataset al suo interno, ma abbiamo anche creato alcune tecnologie per facilitare le operazioni di indagine. In questo post, descriviamo un passaggio della nostra metodologia di indagine, che si basa sull entropia di Shannon. Abbiamo sfruttato con successo l’analisi dell’entropia per diverse iniziative su larga scala delle supply chain.
Il nostro processo di indagine inizia esaminando tutte le tabelle di database considerate rilevanti per l’iniziativa di supply chain. Le supply chain sono complesse e, di conseguenza, i sistemi IT che le gestiscono riflettono questa complessità. Inoltre, i sistemi IT potrebbero essersi evoluti per diversi decenni, e strati di complessità tendono a dominare tali sistemi. Di conseguenza, non è raro identificare decine di tabelle di database, ognuna con decine di colonne, cioè campi, nel linguaggio dei database.
Per le supply chain di grandi dimensioni, abbiamo osservato situazioni in cui il numero totale di campi distinti supera i 10.000. Sfruttando l’analisi dell’entropia, siamo in grado di eliminare immediatamente la metà delle colonne, riducendo così in maniera significativa l’ammontare del lavoro residuo.
Gestire un numero così elevato di colonne è un’impresa notevole. Il problema non sono le capacità di elaborazione dei dati: con il cloud computing e un’adeguata capacità di memorizzazione, è relativamente semplice processare migliaia di colonne. La vera sfida è dare un senso a tutti quei campi. Come regola empirica, stimiamo che una buona documentazione di un campo occupa circa una pagina, quando vengono trattati casi d’uso interessanti ed eccezioni. Senza una documentazione adeguata dei dati, i semantici dei dati si perdono, e le probabilità sono molto alte che qualsiasi analisi complessa sui dati soffra di enormi problemi di garbage in, garbage out. Pertanto, con 10.000 campi, siamo di fronte alla produzione di un manuale di 10.000 pagine, che richiede uno sforzo davvero monumentale.
Tuttavia, abbiamo osservato che quei grandi sistemi IT contengono anche una massa notevole di elementi superflui. Sebbene il numero grezzo di campi appaia molto elevato, in pratica non significa che ogni colonna presente nel sistema contenga dati significativi. Al limite, la colonna potrebbe essere completamente vuota o costante e, quindi, non contenere alcuna informazione. Alcuni campi possono essere immediatamente scartati perché effettivamente vuoti. Tuttavia, abbiamo osservato che i campi completamente vuoti sono in realtà piuttosto rari. A volte, l’unica informazione non costante nella colonna risale al giorno in cui il sistema è stato attivato; il campo non è mai più stato riutilizzato. Sebbene i campi veramente vuoti siano relativamente rari, di solito osserviamo che i campi degenerati sono estremamente numerosi. Questi campi contengono colonne con quasi nessun dato, ben al di sotto di una soglia ragionevole per sfruttare tali dati a fini produttivi.
Ad esempio, una tabella PurchaseOrders
contenente oltre un milione di righe potrebbe avere una colonna Incoterms
non vuota in sole 100 righe; inoltre, tutte quelle righe hanno più di cinque anni, e 90 righe contengono l’entry thisisatest
. In questo caso, il campo Incoterms è chiaramente degenerato, e non ha senso nemmeno cercare di dare un senso a questi dati. Tuttavia, un filtro SQL ingenuo non riuscirà a identificare tale colonna come degenerata.
Pertanto, è necessario uno strumento per identificare le colonne degenerative. Si è scoperto che l’entropia di Shannon è un candidato eccellente. L’entropia di Shannon è uno strumento matematico per misurare la quantità di informazione contenuta in un messaggio. L’entropia viene misurata in Shannons, un’unità di misura simile ai bit di informazione. Trattando i valori presenti nella colonna stessa come messaggio, l’entropia di Shannon ci fornisce una misura dell’informazione contenuta nella colonna espressa in Shannons.
Sebbene tutto ciò possa sembrare altamente teorico, mettere in pratica questo concetto è estremamente semplice. Tutto ciò che serve è utilizzare l’aggregatore entropy()
fornito da Envision. Il piccolo script di seguito illustra come possiamo utilizzare Envision per produrre l’analisi dell’entropia di una tabella con 3 campi.
read "data.csv" as T[*]
show table "List of entropies" with
entropy(T.Field1)
entropy(T.Field2)
entropy(T.Field3)
Qualsiasi campo associato a un’entropia inferiore a 0.1 è un ottimo indicatore di una colonna degenerata. Se l’entropia è inferiore a 0.01, la colonna è garantitamente degenerata.
La nostra esperienza indica che eseguire un filtro iniziale basato sulle misurazioni dell’entropia elimina in maniera affidabile tra un terzo e due terzi dei campi iniziali dall’ambito di interesse. I risparmi in termini di tempo e sforzi sono molto significativi: per i grandi progetti della supply chain, parliamo di anni-uomo risparmiati grazie a questa analisi.
Abbiamo scoperto inavvertitamente un effetto collaterale positivo del filtro basato sull’entropia: riduce la fatica IT associata alla (ri)scoperta dei sistemi IT. Infatti, indagare su un campo degenerato si rivela tipicamente un compito estenuante. Poiché il campo non viene usato - a volte non viene più utilizzato - nessuno è davvero sicuro se il campo sia veramente degenerato o se svolga un ruolo critico, seppur oscuro, nei processi della supply chain. A causa delle complessità delle supply chain, spesso non c’è nessuno che possa affermare con certezza che un determinato campo non venga utilizzato. Il filtro basato sull’entropia elimina immediatamente i peggiori responsabili, evitando così lunghe ricerche infruttuose.