Skip to Content
Personal Insights
Author's profile photo Maxime Simon

SAP Data Warehouse Cloud インテリジェントルックアップ:日本語で共通項目を持たないデータの結合

SAP Data Warehouse Cloudはビジネスユーザーを対象としたクラウドネイティブのデータウェアハウスです。使いやすいUX、組織内のシンプルなデータ共有とコラボレーション、そしてData Marketplaceを介したエコシステムや外部とのコラボレーションに焦点を当てることによる独自の強みです。ユーザーはSAPソースと非SAPソースの両方からのデータをシームレスに統合し、SAP Analytics Cloudを使用してデータを簡単に視覚化し、業務に活用できます。

SAP Data Warehouse Cloudのデータマーケットプレイスでは、数回のクリックで組織内部のデータと外部データを結合するというデータの使い方が可能になります:例えば自社のビジネス指標を外部のマーケット指標と比較することや、サプライヤーのデータを自社のデータと合わせて活用するなどの革新的なユースケースが実現できます。

ただし、データが簡単にSAP Data Marketplaceから入手できたとしても、データ結合の課題が残ります。自分のデータを新しく取得したデータソースと結合することは、それ自体が課題です。関連させたいデータがきれいに整っていないと、直接結合はできません。多くの場合、ほとんどの労力がデータの準備と結合で費やされます。

インテリジェントルックアップはSAP Data Warehouse Cloud のユーザーに共通のキーを持たないデータのマッチング環境を提供する機能です。

  • ユーザーマッピングのためのインタラクティブな環境
    直感的なノーコードUIでマッピングとマッピングルールを効率的に作成します。
    結果はすぐに表示され、データはそのまま取得されます。
  • ルールによるマッピングの自動化
    マッピングをルールによって自動的に作成します。必要に応じてマッピングを追加や細かく編集できます
  • マッピングは一度作成し、何度も利用できる
    すべての自動および手動マッピングは「ペアリングテーブル」に保持されます
    インプットテーブルにデータが追加されると、マッピングが自動適用されます
  • SAP Data Warehouse Cloudのテーブルとして利用可能
    マッチングの結果はData Builderの他のオブジェクトと同様に使用可能

インテリジェントルックアップ 英語デモ

従来の結合で解決できない問題

本ブログではSAP顧客でよく求められるレポート、製品別および顧客別の売上高レポートを作成していきます。ただし、2つの別々のチャネルで営業しています:

  • 顧客、受注および在庫がERPを通じて管理される店内販売
  • 別のデータベースで管理されているECサイト

顧客データや販売データはそれぞれ異なるデータベースに記録されています。つまり、チャンネル横断の販売レポートを作成するための共通顧客キーが存在しないということです。

店内販売の得意先マスタデータはERP_Customersテーブルで保持されています。CUSTOMERID項目のほか、漢字の顧客名、ひらがな、性別、年齢、連絡先情報が含まれています。

ERP_Customers

ECサイトの顧客マスターデータはEC_Customersテーブルで保持されています。EC_IDがERPCUSTOMERIDフィールドと一致しません。また、漢字の顧客名、ひらがな、性別、年齢、連絡先情報が含まれています。

EC_Customers

電子メール、顧客名や他の属性に基づいた従来の結合では一部の顧客しか一致しません。
多くの顧客名は手作業で照合する必要がある、あるいはまったく照合できない顧客が残ります。

インテリジェントルックアップで問題を解決

インテリジェントルックアップでは、レコードを照合するルールを定義してから、結果をレビューして処理することで、エンティティを反復的に結合できます。

ルールを連続的に複数追加することも可能です:インプットテーブルのレコードとルックアップテーブルのレコードの一致状況を記録するテーブル(一致テーブル)を裏で繰り返し構築することにより、新しいアプローチであいまい結合の問題を解決します。

 

インプットテーブル&ルックアップテーブルの追加

インテリジェントルックアップはSAP Data Warehouse Cloudのデータビルダーで扱える標準オブジェクトです、グラフィカルビューやSQLビューと同様に、モデリングで使用できます。

新規のインテリジェントルックアップを作成した後、空のテンプレートキャンバスが表示されます。 先ずインプットテーブルとペアリング列を選びます。
ペアリング列は、ルックアップテーブルのレコードを一意に識別するためのインプットテーブルの列です:ペアリング列の値はルックアップテーブルのレコードとの結合に使われます。

EC_Customersはインプットテーブルです –  EC_IDはペアリング列です

次に、ユーザーはルックアップテーブルと出力する列を選びます。インテリジェントルックアップの目的は、インプットテーブルのすべてのレコードをルックアップテーブルのレコードと一致させることです。今回のブログではERP_Customersテーブルをルックアップテーブルとして設定し、11列すべてをリターン列として追加します。

ERP_Customersはルックアップテーブルです –  11列をアウトプットします

ルール#1を定義

インプットテーブルとルックアップテーブルを設定すると、マッチングルールをキャンバスに追加できるようになります。マッチングパターン以下の二つから選べます:

  • 完全一致:インプットテーブルの列とルックアップテーブルの列の値の完全一致を必要とします
  • あいまい一致:1 つまたは複数の文字列の列を検索して、一致を判断するためのしきい値を設定します

インテリジェントルックアップをデプロイして実行しますと:ペアリングテーブル、一致ロジック、およびインプットテーブル+ペアリングテーブル+ルックアップテーブルを結合したアウトプットテーブルが裏で展開されます。

今回のブログでは最初のマッチングルールを電子メールの完全一致として定義しています。ルール#1のデプロイ後、70%のレコードが一致します:このルールにより、ERPで電子メールで参照されている5000のEコマース顧客の70%を特定できています。

電子メールで一致しなかった1499レコード

ルール#2で、ルール#1で一致しなかったレコードのみ処理

インテリジェントルックアップではマッチしなかったレコードを別のルールに流し込むことができます。

ルール#1で一致しなかった1499レコードをルール#2に流し込みます:名前(漢字)、名前(ふりがな)、性別であいまい一致のルールを設定しています。

あいまい一致を設定する場合、[プロパティ]タブ内で一致しきい値を設定できます。
スコアが95%を超えると’自動一致’、スコアが88%を超えると’手動レビュー’に設定しています。

→ 5000人のECサイト顧客の内の23%は、名前と性別に基づいてERPの顧客と自動的に照合されます。

1156件のレコードが漢字の顧客名、ひらがな、性別に基づいたあいまいで自動一致しました

[レビュー]タブに切り替えると、承認が必要なレコードをレビューできます。
各レコードをクリックし、提案された候補から承認/却下できます。

ユーザーによる承認が必要な217件のレコード

[複数]タブで、レビューのしきい値を超えたマッチが2つ以上あるレコードが表示されます。ユーザーは候補リストから適切なレコードを選ぶことができます。

例えば、下記のスクリーンショットではECサイト顧客の榊原 薫に一致するERP顧客が2人います。
つまり同姓同名の顧客がERPに登録されています。したがって、両方の一致スコアは100%です。名前のみに基づいた一致処理の制約が顕著に表れています。

幸いなことに、異なる都道府県に住んでいて、異なる電話番号を持っています。
この例では、連絡先の情報に基づいて見分けることができます。

101件のレコードに複数のマッチがあります。一部の顧客に同姓同名の人もいます。

最後に、25件のレコードは、名前と性別だけでは一致させることができませんでした。[不一致]タブで確認できます。

ルールを追加し、残ったレコードをマッチさせます

ルール#2で一致しなかったレコードをマッチさせていきます。

固定電話の完全一致、また携帯電話の完全一致、2つのルールで順番にマッチさせています。
最終的にはマッチできないレコードを2件まで減らすことができました。最後の2件はマッチさせることができないので、分析から除外するしかありません。.

ルール#2で複数のレコードと一致したレコードを自動的に処理させていきます。

都道府県、固定電話番号、携帯電話番号を含めたあいまい一致を設定します:その結果101件のレコードのうち、66件は自動的に一致し、35件はまだ複数のマッチがあるため、手動で承認します。

35件のレコードにはまだ複数のマッチがあり、手動で承認します

結果を確認

今回ご紹介した手順で、処理する必要のあるレコード数を5.000から100未満に減らすことができしました。残ったレコードをユーザーが手動で一致させると、今後インプットテーブルが更新されるときに、インテリジェントルックアップが自動的に結合してくれます:名寄せの手間は一度だけで良いです。レポートを作る度にデータを確認する必要がなくなります。

アウトプットのプロパティでは下記を設定できます:

  • 不一致レコードを含む:一致しなかったレコードを含めるか除外するか選択可能です。一致しなかったレコードを含める場合、ルックアップ列の値はデフォルトでNULLに設定されます。別の固定の値を割り当てることもできます。
  • ”不一致レコード”列を含む:一致しなかったレコードに対してTrue、一致したレコードはFalseのBOOLEAN列を追加できます。後工程で、各レコードが一致したかどうかを区別できるようにします。

インテリジェントルックアップの結果

インテリジェントルックアップの結果をグラフィカルビューで使用

インテリジェントルックアップERP_EC_Matchの結果に基づいて、2つの販売経路(店舗販売とECサイト販売)からのすべての注文をグラフィカルビューERP_EC_GraphViewで結合します。

  1. JOIN#1:ERPの注文のヘッダーとアイテムを結合します。
  2. JOIN#2:インテリジェントルックアップをJOIN#1の結果と結合して、顧客に関する情報を追加します。
  3. JOIN#3:ECサイトの注文のヘッダーとアイテムを結合します。
  4. JOIN#4:インテリジェントルックアップをJOIN#3の結果と結合して、顧客に関する情報を追加します。
  5. 両方のデータセットをUNIONする

ビューのセマンティックタイプを分析データセットに設定することで分析ツールに公開します。

SAP Analytics Cloudで結合したデータを可視化

ついに目標を達成することができます:両方の販売経路を含めた製品別および顧客別の売上高レポートが作れます!

販売経路別の顧客ごとの売上高販売経路別の製品ごとの売上高

最後に

インテリジェントルックアップは多くの方を悩ませているデータ統合の難題、共通のキーを持たないデータの結合、を解決する新しい方法です

ユーザーがレコードを自動的に照合するか、ユーザー自身がレコードを見て判断することができる環境です。自由に一つのフローでいくつもの照合ルールを設計できるようにすることで、自動化とエンドユーザー中心の意思決定の間でバランスが取れます。

そして、新しいデータがインプットテーブルに追加されると、苦労して一致させた作業は繰り返す必要がありません:一致したレコードはすべて、ユーザーの介入なしに自動的に再利用されます。データが追加されればされるほどに価値が高まる再利用可能な統合の仕組みを作成することができます。

最後まで読んでいただきありがとうございました。

Maxime SIMON

Assigned Tags

      Be the first to leave a comment
      You must be Logged on to comment or reply to a post.