Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
yureshino
Product and Topic Expert
Product and Topic Expert

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

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

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


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

インテリジェントルックアップの特徴

ユーザーマッピングのためのインタラクティブな環境
直感的なノーコードUIでマッピングとマッピングルールを効率的に作成します。
結果はすぐに表示され、データはそのまま取得されます。

ルールによるマッピングの自動化
マッピングをルールによって自動的に作成します。必要に応じてマッピングを追加や細かく編集できます

マッピングは一度作成したら、何度も利用できる
すべての自動および手動マッピングは「ペアリングテーブル」に保持されます
インプットテーブルにデータが追加されると、マッピングが自動適用されます

SAP Datasphereのテーブルとして利用可能
マッチングの結果はData Builderの他のオブジェクトと同様に使用可能

 

通常のJOIN(結合)ではデータが照合できない!

本ブログではSAP顧客でよく求められるレポート、製品別および顧客別の売上高レポートを作成していきます。この会社では、2つの別々のチャネルで営業や販売を行っています:
①  顧客、受注および在庫がERPを通じて管理される店内販売
② 別のデータベースで管理されているECサイト

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

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

ERP_CustomersERP_Customers

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

EC_CustomersEC_Customers

電子メール、顧客名や他の属性に基づいた通常のJOIN(結合)では一部の顧客しか一致しません。
データが一致しない顧客があり、多くのデータは手作業で照合する必要があります

 

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

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

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

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

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

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

EC_IDはペアリング列EC_IDはペアリング列

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

リターン列リターン列

ルール#1を定義

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

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

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

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

2024-04-23_14-37-35.png

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

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

2024-04-23_14-38-34.png

ルール#1で一致しなかった1499レコードをルール#2に流し込みます:名前(漢字)、名前(ふりがな)、性別であいまい一致のルールを設定しています。
あいまい一致を設定する場合、[プロパティ]タブ内で一致しきい値を設定できます。
スコアが95%を超えると’自動一致’、スコアが88%を超えると’手動レビュー’に設定しています。
→ 5000人のECサイト顧客の内の23%は、名前と性別に基づいてERPの顧客と自動的に照合されます。

2024-04-23_14-43-43.png

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

2024-04-23_14-45-17.png

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

例えば、下記のスクリーンショットではECサイト顧客の「榊原 薫」に一致するERP顧客が2人います。
つまり同姓同名の顧客がERPに登録されています。したがって、両方の一致スコアは100%です。名前のみに基づいた一致処理の制約が顕著に表れています。
幸いなことに、異なる都道府県に住んでいて、異なる電話番号を持っています。
この例では、連絡先の情報に基づいて見分けることができます。

2024-04-23_14-47-30.png

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

2024-04-23_14-48-40.png

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

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

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

2024-04-23_14-58-27.png

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

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

複数2024-04-23_17-38-30.png

結果を確認する

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

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

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

2024-04-23_15-00-59.png

インテリジェントルックアップの結果をファクトで使用


インテリジェントルックアップ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する

ビューのセマンティックタイプをファクトに設定し、利用のために公開をonにします。

2024-04-23_16-12-38.png

分析モデルを作成」をクリックし分析モデルを作成します

2024-04-23_16-11-52.png

 

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

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

13-12.png

14-8.png

最後に

インテリジェントルックアップは多くの方を悩ませているデータ統合の課題:共通のキーを持たないデータの結合を可能にする機能です。

一つのフローの中でいくつもの照合ルールを設計できるため、自動化とエンドユーザーの意思決定のバランスを取ったデータ結合が可能です。

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

参考
Intelligent Lookup Documentation in SAP Help Portal

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