この手順では、サスペクト レコードがファイルやデータベースなどのソースからのもので、候補レコードが他の関係のないレコードを含むデータベースにある場合に、レコードをマッチングする方法について説明します。このデータフローは、各入力レコードについて、データベースでそのレコードの候補をクエリした後、Transactional Match ステージを使用してレコードをマッチングします。最後に、データフローはマッチング レコードのコレクションを出力ファイルに書き込みます。
注: Transactional Match は、サスペクト レコードと候補レコードの照合のみを行います。Intraflow Match のように、サスペクト レコードと他のサスペクト レコードとの照合は行いません。
-
Enterprise Designer で、新しいデータフローを作成します。
-
ソース ステージをキャンバスにドラッグします。
-
ソース ステージをダブルクリックして設定します。ソース ステージの設定手順については、『データフロー デザイナー ガイド』を参照してください。
-
Candidate Finder ステージをキャンバスにドラッグし、それにソース ステージを接続します。
例えば、Read from File ソース ステージを使用している場合は、データフローは次のようになります。
Candidate Finder は、候補レコードを取得します。これらの候補レコードは、一連の潜在的なマッチとして、後のデータフローで Transactional Match によって評価されます。
-
キャンバスで Candidate Finder ステージをダブルクリックします。
-
[接続] フィールドで、クエリを実行して候補レコードを検索するデータベースを選択します。目的のデータベースがリストにない場合は、Management Console を開き、データベース接続を先に定義します。
-
[SQL] フィールドに、データフロー フィールドの 1 つの値に基づいて候補レコードを検索する SQLSELECT文を入力します。データフローのフィールドを参照するには、
${FieldName}
という形式を使用します。ここで、FieldName
は参照するフィールドの名前です。
例えば、LastName 列の値がデータフロー レコードの Customer_LastName フィールドと同じレコードをデータベースで検索する場合は、次のような SQL 文を作成します。
SELECT FirstName, LastName, Address, City, State, PostalCode
FROM Customer_Table
WHERE LastName = ${Customer_LastName};
-
[フィールド マップ] タブで、データベースの各列のデータが含まれるデータフローのフィールドを選択します。
[選択フィールド] 列はデータベースの列のリストで、[ステージ フィールド] はデータフローのフィールドのリストです。
-
[OK] をクリックします。
-
Transactional Match ステージをキャンバスにドラッグし、Candidate Finder ステージをそれに接続します。
例えば、Read from File 入力ステージを使用している場合は、データフローは次のようになります。
Transactional Match では、サスペクト レコードを、Candidate Finder ステージから返される候補レコードと照合します。Transactional Match では、マッチング ルールを使用して、サスペクト レコードを、同じ候補グループ番号 (Candidate Finder で割り当てられる番号) を持つすべての候補レコードと比較して、重複を識別します。
-
キャンバスで Transactional Match ステージをダブルクリックします。
-
[ロードするマッチ ルール] フィールドで、定義済みのいずれかのマッチ ルールを選択します。このマッチ ルールはそのまま使用することも、必要に応じて変更することもできます。 定義済みのいずれかのマッチ ルールを出発点として使用せずに、新しいマッチ ルールを作成する場合は、[新規作成] をクリックします。 カスタム ルールは、データフローで 1 つだけ使用できます。
注: Enterprise Designer の [データフロー オプション] 機能を使用すると、マッチ ルールを実行時に公開して設定できます。
-
他のオプションの変更の詳細については、マッチ ルールの作成を参照してください。
-
Transactional Match ステージの設定が終了したら、[OK] をクリックします。
-
シンク ステージをキャンバスにドラッグし、Transactional Match ステージに接続します。
例えば、Write to File シンク ステージを使用した場合、データフローは次のようになります。
-
シンク ステージをダブルクリックして設定します。
シンク ステージの設定方法については、『データフロー デザイナー ガイド』を参照してください。
2 つのデータ ソースのレコードをマッチングするデータフローが完成しました。
データベースに対するレコードのマッチングの例
ネット通販会社の営業部長は、オンラインの見込み客が既に購入履歴のある顧客なのか、新規の顧客なのかを確認したいと思っています。
以下のデータフロー サービスは、このビジネス シナリオの解決策を示しています。
このデータフローは、API 呼び出しまたは Web サービス呼び出しによって送られた見込み客データを評価するサービスです。顧客データベースの顧客データと照合してデータを評価し、見込み客が顧客かどうかを判定します。
Input ステージは、データフローが AddressLine1、City、Name、PostalCode、StateProvince の各入力フィールドを受け付けるように設定されています。[AddressLine1] と [Name] は、このテンプレートによるデータフロー処理のかなめとなるフィールドです。
Candidate Finder ステージで候補レコードを取得します。これらの候補レコードは、一連の潜在的なマッチとして、Transactional Match ステージで評価されます。
Transactional Match ステージは、サスペクト レコードを、Candidate Finder ステージから返された潜在的な候補レコードと照合します。Transactional Match では、マッチング ルールを使用して、サスペクト レコードを、同じ候補グループ番号 (Candidate Finder で割り当てられる番号) を持つすべての候補レコードと比較して、重複を識別します。この例では、Transactional Match は LastName と AddressLine1 を比較します。
Output ステージは、API または Web サービスの応答を使用してデータフローの結果を返します。