見込み客が顧客かどうかの判定

このデータフロー テンプレートでは、入力ファイル内の見込み客データを顧客データベース内の顧客データと比較して、既に顧客である見込み客を洗い出す方法を示します。これはサービス データフローです。つまり、このデータフローは API または Web サービスを介してアクセスできます。

ビジネス シナリオ

ネット通販会社の営業部長は、オンラインの見込み客が既に購入履歴のある顧客なのか、新規の顧客なのかを確認したいと思っています。

以下のデータフロー サービスは、このビジネス シナリオの解決策を示しています。



このデータフロー テンプレートは Enterprise Designer で使用できます。[ファイル] > [新規作成] > [データフロー] > [テンプレートから作成] に移動し、[ProspectMatching] を選択します。このデータフローでは、Advanced Matching モジュールと Universal Name モジュールが必要です。

このデータフローでは、入力ファイルに含まれる各レコードに対して次の処理を行います。

入力

このテンプレートで選択される入力フィールドは、[AddressLine1]、[City]、[Name]、[PostalCode]、および [StateProvince] です。[AddressLine1] と [Name] は、このテンプレートによるデータフロー処理のかなめとなるフィールドです。

Name Parser

このテンプレートでは、Name Parser ステージを Parse Personal Name という名前で呼びます。Parse Personal Name ステージでは、名前フィールドがチェックされ、Spectrum™ Technology Platform 名前データベース ファイルに格納されている名前データと比較されます。この比較結果に基づいて、名前データが [First]、[Middle]、[Last] の各名前フィールドに分割され、エンティティ タイプと性別がすべての名前に割り当てられます。また、名前データに加えて、パターン認識も使用されます。

このテンプレートでは、Parse Personal Name ステージは次のように設定されています。

  • [個人名をパース] が選択され、[企業名をパース] が選択されていません。このようにオプションを設定すると、名が評価されて性別、順序、および句読文字が判別されますが、企業名の評価は実行されません。
  • [性別判定ソース] はデフォルトに設定されています。たいていのケースで、デフォルトは性別の判定に最適な設定であり、さまざまな名前に対応できます。ただし、特定のカルチャーに属する名前を処理する場合は、そのカルチャーを選択します。特定のカルチャーを選択すると、名前の性別が適切に判定される確率が高くなります。例えば、デフォルトのままで設定した場合、Jean という名前は女性と判定されます。しかし、[フランス系] を選択した場合は、男性と判定されます。
  • 順序は [正順序] に設定されています。名前フィールドの順序は、[敬称]、[名]、[ミドル ネーム]、[姓]、[接尾語] となります。
  • [ピリオドを残す] は選択されていません。名前データに含まれる句読文字は残されません。

Candidate Finder

Candidate Finder ステージは、Transactional Match ステージと組み合わせて使用します。

Candidate Finder ステージで候補レコードを取得します。これらの候補レコードは、一連の潜在的なマッチとして、Transactional Match ステージで評価されます。また、Candidate Finder では、データの書式によって、サスペクト レコード、候補レコード、またはその両方のレコードの名前や住所のパーシングが必要となる場合もあります。

Candidate Finder を設定する際に、クエリの実行に使用するデータベース接続を選択します。Management Console で設定されたいずれかの接続を選択できます。リストにないデータベースに接続するには、Management Console でそのデータベースへの接続を設定してから Candidate Finder をいったん閉じ、再び開いて接続リストの内容を更新します。

SQL クエリを定義するために、Candidate Finder オプション ビューのテキスト ボックスに有効な SQL SELECT 文を入力できます。例えば、データベース内の Customer_Table というテーブルに以下の列があるとします。

Customer_Table

Cust_Name

Cust_Address

Cust_City

Cust_State

Cust_Zip

注: 有効な SQL SELECT 文を入力できますが、Select * はこのコントロールには無効です。

データベースからこれらの行をすべて取得するには、次のようなクエリを作成します。

select Cust_Name, Cust_Address, Cust_City, Cust_State, Cust_Zip from Customer_Table; 

ただし、トランザクションをデータベース内のすべての行にマッチさせようとするユーザはほとんどいないでしょう。必要な候補レコードのみを返すには、置換変数を使って WHERE 節を追加します。置換変数を指定すると、Candidate Selection エンジンによって変数がサスペクト レコードの実データで置換されます。

置換変数を使うには、${FieldName} のようにフィールド名をカッコで囲み、その直前にドル記号を付けます。例えば、次のクエリを実行すると、サスペクト レコード内の PostalCode の値に Cust_Zip の値が一致するレコードのみが返されます。

select Cust_Name, Cust_Address, Cust_City, Cust_State,Cust_Zip 
from Customer_Table 
where Cust_Zip = ${PostalCode}; 

次に必要な作業は、データベース内の列名が [Component Field] の名前に正確に一致しない場合にそのデータベース列をステージ フィールドにマッピングすることです。名前が正確に一致する列は、対応するステージ フィールドに自動的にマッピングされます。選択フィールド (データベース内の列) を使って、ステージ フィールド (データフローで定義されたフィールド名) にマッピングする必要があります。

ここでも、上記の例と同じ Customer_Table を想定します。

Customer_Table

Cust_Name

Cust_Address

Cust_City

Cust_State

Cust_Zip

これらのレコードをデータベースから取得するには、列名を、Transactional Match ステージおよびデータフロー内の他のステージで使われるフィールド名にマッピングする必要があります。例えば、Cust_Address は AddressLine1 にマッピングし、Cust_Zip は PostalCode にマッピングします。

  1. Candidate Finder オプション ビューの [選択フィールド] の下でドロップダウン リストを選択します。次に、データベース列 Cust_Zip を選択します。
  2. [ステージ フィールド] の下でドロップダウン リストを選択します。次に、マッピングするフィールドを選択します。

例えば、Cust_Zip を Postal Code にマッピングするには、最初に選択フィールドで Cust_Zip を選択してから、対応するステージ フィールドの行で PostalCode を選択します。

このフィールド マッピング方法のほかに、特殊な書式を SQL クエリで使う方法でも同様のマッピングを実行できます。具体的には、列名に続けてステージ フィールドの名前をカッコで囲んで指定するという書式を使います。この方法を使うと、選択フィールドが、対応するステージ フィールドに自動的にマッピングされます。

この代替方法で前の例のクエリを書き直すと、以下のようになります。

select Cust_Name {Name}, Cust_Address {AddressLine1}, 
 Cust_City {City}, Cust_State {StateProvince}, 
 Cust_Zip {PostalCode} 
from Customer 
where Cust_Zip = ${PostalCode}; 

Transactional Match

Transactional Match ステージは、Candidate Finder ステージと組み合わせて使用します。

Transactional Match ステージでは、サスペクト レコードを、Candidate Finder ステージから返される潜在的な候補レコードと照合できます。

Transactional Match では、マッチング ルールを使用して、サスペクト レコードを、同じ候補グループ番号 (Candidate Finder で割り当てられる番号) を持つすべての候補レコードと比較して、重複を識別します。候補レコードが重複の場合は、コレクション番号が割り当てられ、そのマッチ レコード タイプに重複が設定され、その候補レコードが書き出されます。グループ内のマッチしない候補にはコレクション番号 0 が割り当てられ、そのラベルにユニークが設定され、その候補が書き出されます。

このテンプレートでは、LastName および AddressLine1 の比較を実行するカスタム マッチング ルールを作成します。

マッチング階層を作成する際は、以下のガイドラインに従ってください。

  • 親ノード名は一意な名前でなければなりません。フィールドにすることはできません。
  • 子フィールドは、Spectrum™ Technology Platform のデータ タイプ フィールドである必要があります。つまり、1 つ以上のステージを通じて使用できるフィールドでなければなりません。
  • 親の下のすべての子は、同じ論理演算子を使用する必要があります。コネクタを結合するには、まず中間の親ノードを作成する必要があります。
  • 親ノードのしきい値を子のしきい値より低くすることはできません。
  • 親ノードにしきい値がなくてもかまいません。

Output

このテンプレートはサービスなので、すべての使用可能なフィールドを出力に送信します。必要に応じて出力を制限できます。