サプライチェーンのITランドスケープはほとんど常に複雑です。実際、サプライチェーンは自然に複数のアクター、複数のサイト、複数のシステムなどを含みます。その結果、サプライチェーンにおけるデータ駆動型の洞察を構築することは、ITランドスケープの多様性のために課題です。供給チェーンの分析は、ゴミ入りゴミ出しの問題のためにしばしば無意味な結果をもたらします。

Lokadでは、ITランドスケープとそれに属するデータセットを徹底的に調査する手法を開発しています。さらに、調査操作自体を容易にするためのいくつかの技術も開発しています。この記事では、私たちの調査手法の一部である「シャノンエントロピー」に基づく手順を詳しく説明します。私たちは、大規模なサプライチェーンの取り組みにおいて、エントロピー分析を成功裏に活用しています。

私たちの調査プロセスは、サプライチェーンの取り組みに関連すると理解されているすべてのデータベーステーブルを見直すことから始まります。サプライチェーンは複雑であり、そのためにサプライチェーンを操作するITシステムもこの複雑さを反映しています。さらに、ITシステムは数十年にわたって進化してきた可能性があり、複雑さの層がこれらのシステムを覆い尽くす傾向があります。その結果、1つのテーブルに数十の列(つまり、データベース用語でのフィールド)があることは珍しくありません。

大規模なサプライチェーンでは、異なるフィールドの総数が10,000を超える状況が観察されています。エントロピー分析を活用することで、そのうちの半分の列を即座に除外し、残りの作業量を大幅に減らすことができます。

そのような多くの列に対処することは大きな作業です。問題はデータ処理能力ではありません。クラウドコンピューティングと適切なデータストレージを使用すれば、数千の列を比較的簡単に処理することができます。真の課題は、すべてのフィールドを理解することです。経験則として、フィールドの適切なドキュメンテーションには、興味深いユースケースやエッジケースがカバーされている場合、約1ページのスペースが必要です。データの適切なドキュメンテーションがないと、データの意味論が失われ、データ上で実行される複雑な分析は大量のゴミ入りゴミ出しの問題に直面する可能性が非常に高くなります。したがって、10,000のフィールドでは、10,000ページのマニュアルを作成する必要があり、本当に膨大な努力が必要です。

しかし、私たちは、これらの大規模なITシステムには大量の無駄なデータが含まれていることも観察しています。フィールドの数は非常に多く見えるかもしれませんが、実際にはシステムに含まれるすべての列が意味のあるデータを含んでいるわけではありません。極端な場合、列は完全に空であるか、定数であり、したがって何の情報も含んでいません。一部のフィールドは実際には空であるため、すぐに除外することができます。しかし、完全に空のフィールドは実際には非常にまれです。時には、列内の唯一の非定数情報は、システムがオンになった日のものであり、その後再利用されることはありませんでした。真に空のフィールドは比較的まれですが、退化したフィールドは非常に多いことが通常観察されます。これらのフィールドには、ほとんどデータが含まれておらず、製品目的でこのデータを活用するための合理的なしきい値を下回っています。

例えば、100万行以上の「PurchaseOrders」というテーブルには、「Incoterms」という列がありますが、そのうちの100行のみが空でなく、さらにそのすべての行は5年以上前のものであり、90行には「thisisatest」というエントリが含まれています。この場合、Incotermsフィールドは明らかに退化しており、このデータを理解しようとする意味はありません。しかし、単純なSQLフィルタでは、このような列を退化したものとして識別することができません。

したがって、退化した列を特定するためのツールが必要です。シャノンエントロピーは優れた候補です。シャノンエントロピーは、メッセージに含まれる情報の量を測定する数学的なツールです。エントロピーはシャノン単位で測定され、これは情報の「ビット」に似た測定単位です。列自体に含まれる値をメッセージとして扱うことで、シャノンエントロピーは列に含まれる情報の測定値をシャノン単位で表します。

これらのことが非常に理論的に聞こえるかもしれませんが、この洞察を実践に落とし込むことは非常に簡単です。Envisionが提供するentropy()アグリゲータを使用するだけです。以下の小さなスクリプトは、Envisionを使用して3つのフィールドを持つテーブルのエントロピー分析を行う方法を示しています。

read "data.csv" as T[*]
show table "List of entropies" with
  entropy(T.Field1)
  entropy(T.Field2)
  entropy(T.Field3)

エントロピーが0.1未満のフィールドは、退化した列の非常に良い指標です。エントロピーが0.01未満の場合、列は退化していることが保証されます。

当社の経験から、エントロピーの測定に基づく初期のフィルタリングを行うことで、興味の対象から最初のフィールドの1/3から2/3が確実に除外されることがわかりました。時間と労力の節約は非常に大きいです。大規模なサプライチェーンプロジェクトでは、この分析によって数年分の時間が節約されます。

エントロピーのフィルタリングの副作用として、ITシステムの(再)発見に関連するITの疲労感が軽減されることがわかりました。実際、退化したフィールドの調査は通常非常に疲れる作業です。フィールドが使用されていない場合、またはもはや使用されていない場合があり、フィールドが本当に退化しているのか、それともサプライチェーンプロセスで重要ながらも不明瞭な役割を果たしているのか、誰も確信を持っては言えません。サプライチェーンの複雑さのため、使用されていないと断言できる人物はほとんどいません。エントロピーのフィルタリングにより、私たちを追いかけ回すことが保証されている最悪の違反者がすぐに除外されます。