Die IT-Landschaft von supply chains ist nahezu immer komplex. In der Tat beinhalten supply chains naturgemäß mehrere Akteure, mehrere Standorte, mehrere Systeme etc. Infolgedessen ist es aufgrund der schieren Heterogenität der IT-Landschaft eine Herausforderung, datengesteuerte Erkenntnisse in supply chains zu gewinnen. Allzu oft liefern supply chain analytics unsinnige Ergebnisse, genau aufgrund von “garbage in, garbage out”-Problemen.

Bei Lokad haben wir nicht nur eine Methode entwickelt, die die IT-Landschaft und die darin enthaltenen Datensätze gründlich untersucht, sondern auch einige Technologien geschaffen, welche die Untersuchungsvorgänge selbst erleichtern. In diesem Beitrag erläutern wir einen Schritt unserer Untersuchungmethodik, die auf Shannon-Entropie basiert. Wir haben die Entropieanalyse erfolgreich für mehrere groß angelegte supply chain Initiativen genutzt.

Unser Untersuchungsprozess beginnt damit, alle Datenbanktabellen zu überprüfen, die als relevant für die supply chain Initiative angesehen werden. Supply chains sind komplex und folglich spiegeln die IT-Systeme, die die supply chains betreiben, diese Komplexität wider. Darüber hinaus könnten sich die IT-Systeme über mehrere Jahrzehnte hinweg entwickelt haben, wobei Schichten von Komplexität sich in diesen Systemen ansammeln. Infolgedessen ist es nicht ungewöhnlich, dutzende von Datenbanktabellen zu identifizieren, wobei jede Tabelle dutzende von Spalten, d.h. Felder in der Datenbankterminologie, enthält.

Bei großen supply chains haben wir Situationen beobachtet, in denen die Gesamtanzahl unterschiedlicher Felder über 10.000 liegt. Durch den Einsatz der Entropieanalyse können wir sofort die Hälfte der Spalten aus dem Blickfeld entfernen und dadurch den verbleibenden Arbeitsaufwand erheblich reduzieren.

Mit so vielen Spalten umzugehen, ist eine gewaltige Aufgabe. Das Problem sind nicht die Datenverarbeitungsfähigkeiten: Mit cloud computing und angemessenem Datenspeicher ist es relativ einfach, Tausende von Spalten zu verarbeiten. Die wahre Herausforderung besteht darin, all diese Felder sinnvoll zu interpretieren. Als Faustregel schätzen wir, dass eine gut geschriebene Dokumentation eines Feldes etwa eine Seite beansprucht, wenn interessante Anwendungsfälle und Randfälle abgedeckt werden. Ohne eine ordnungsgemäße Dokumentation der Daten geht Daten-Semantik verloren, und es ist sehr wahrscheinlich, dass jede komplexe Analyse der Daten unter massiven “garbage in, garbage out”-Problemen leidet. Somit stehen wir vor der Erstellung eines 10.000-seitigen Handbuchs, was einen wirklich monumentalen Aufwand erfordert.

Dennoch haben wir festgestellt, dass diese großen IT-Systeme auch eine enorme Menge an Ballast mit sich führen. Zwar erscheint die rohe Anzahl der Felder sehr hoch, in der Praxis bedeutet dies jedoch nicht, dass jede in dem System gefundene Spalte sinnvolle Daten enthält. Im Extremfall kann eine Spalte völlig leer oder konstant sein und somit keinerlei Informationen enthalten. Einige Felder können sofort verworfen werden, da sie tatsächlich leer sind. Allerdings haben wir beobachtet, dass vollständig leere Felder tatsächlich ziemlich selten sind. Manchmal stammt die einzige nicht-konstante Information in der Spalte vom Tag der Inbetriebnahme des Systems; das Feld wurde danach nie wiederverwendet. Während wirklich leere Felder relativ selten sind, stellen wir in der Regel fest, dass degenerierte Felder extrem zahlreich sind. Diese Felder enthalten Spalten mit nahezu keinen Daten, weit unterhalb einer vernünftigen Schwelle, um diese Daten für produktive Zwecke zu nutzen.

Beispielsweise könnte eine PurchaseOrders-Tabelle, die über eine Million Zeilen enthält, eine Incoterms-Spalte haben, die in nur 100 Zeilen nicht leer ist; darüber hinaus sind alle diese Zeilen älter als fünf Jahre, und 90 Zeilen enthalten den Eintrag thisisatest. In diesem Fall ist das Feld Incoterms eindeutig degeneriert, und es macht keinen Sinn, überhaupt zu versuchen, diese Daten zu interpretieren. Dennoch wird ein naiver SQL-Filter eine solche Spalte nicht als degeneriert identifizieren.

Daher wird ein Werkzeug zur Identifizierung degenerierter Spalten benötigt. Es stellt sich heraus, dass die Shannon-Entropie ein ausgezeichneter Kandidat ist. Die Shannon-Entropie ist ein mathematisches Werkzeug zur Messung der Menge an Information, die in einer Nachricht enthalten ist. Die Entropie wird in Shannons gemessen, einer Maßeinheit, die den bits der Information ähnelt. Indem man die in der Spalte gefundenen Werte selbst als Nachricht betrachtet, liefert die Shannon-Entropie einen Maßstab für die in der Spalte enthaltene Information, ausgedrückt in Shannons.

Obwohl das alles höchst theoretisch klingen mag, ist es äußerst einfach, diesen Einblick in die Praxis umzusetzen. Es genügt, den von Envision bereitgestellten Aggregator entropy() zu verwenden. Das kleine Skript unten veranschaulicht, wie wir Envision nutzen können, um die Entropieanalyse einer Tabelle mit 3 Feldern durchzuführen.

read "data.csv" as T[*]
show table "Liste der Entropien" with
  entropy(T.Field1)
  entropy(T.Field2)
  entropy(T.Field3)

Jedes Feld, dessen Entropie unter 0,1 liegt, ist ein sehr guter Indikator für eine degenerierte Spalte. Liegt die Entropie unter 0,01, ist die Spalte garantiert degeneriert.

Unsere Erfahrung zeigt, dass eine anfängliche Filterung auf Basis von Entropiemessungen zuverlässig zwischen einem Drittel und zwei Dritteln der anfänglich betrachteten Felder aus dem Interessensbereich eliminiert. Die eingesparte Zeit und der Aufwand sind erheblich: Bei großen supply chain Projekten sprechen wir von eingesparten Mannsjahren dank dieser Analyse.

Wir haben unbeabsichtigt einen positiven Nebeneffekt der Entropie-Filterung entdeckt: Sie verringert die IT-Ermüdung, die mit der (Wieder-)Erkundung der IT-Systeme verbunden ist. Tatsächlich erweist sich die Untersuchung eines degenerierten Feldes typischerweise als eine ermüdende Aufgabe. Da das Feld nicht verwendet wird – manchmal überhaupt nicht mehr – ist niemand so recht sicher, ob das Feld tatsächlich degeneriert ist oder ob es eine kritische, wenn auch obskure, Rolle in den supply chain Prozessen spielt. Aufgrund der Komplexität von supply chains gibt es häufig niemanden, der mit Sicherheit bestätigen kann, dass ein bestimmtes Feld nicht genutzt wird. Die Entropie-Filterung eliminiert sofort die schlimmsten Übeltäter, die uns garantiert auf eine falsche Fährte führen würden.