データベースに対するレコードのマッチング

この手順では、サスペクト レコードがファイルやデータベースなどのソースからのもので、候補レコードが他の関係のないレコードを含むデータベースにある場合に、レコードをマッチングする方法について説明します。このデータフローは、各入力レコードについて、データベースでそのレコードの候補をクエリした後、Transactional Match ステージを使用してレコードをマッチングします。最後に、データフローはマッチング レコードのコレクションを出力ファイルに書き込みます。

注: Transactional Match は、サスペクト レコードと候補レコードの照合のみを行います。Intraflow Match のように、サスペクト レコードと他のサスペクト レコードとの照合は行いません。
  1. Enterprise Designer で、新しいデータフローを作成します。
  2. ソース ステージをキャンバスにドラッグします。
  3. ソース ステージをダブルクリックして設定します。ソース ステージの設定手順については、『データフロー デザイナー ガイド』を参照してください。
  4. Candidate Finder ステージをキャンバスにドラッグし、それにソース ステージを接続します。

    例えば、Read from File ソース ステージを使用している場合は、データフローは次のようになります。

    Read from File in dataflow

    Candidate Finder は、候補レコードを取得します。これらの候補レコードは、一連の潜在的なマッチとして、後のデータフローで Transactional Match によって評価されます。

  5. キャンバスで Candidate Finder ステージをダブルクリックします。
  6. [接続] フィールドで、クエリを実行して候補レコードを検索するデータベースを選択します。目的のデータベースがリストにない場合は、Management Console を開き、データベース接続を先に定義します。
  7. [SQL] フィールドに、データフロー フィールドの 1 つの値に基づいて候補レコードを検索する SQL SELECT 文を入力します。データフローのフィールドを参照するには、${FieldName} という形式を使用します。ここで、FieldName は参照するフィールドの名前です。

    例えば、LastName 列の値がデータフロー レコードの Customer_LastName フィールドと同じレコードをデータベースで検索する場合は、次のような SQL 文を作成します。

    SELECT FirstName, LastName, Address, City, State, PostalCode 
    FROM Customer_Table 
    WHERE LastName = ${Customer_LastName};
  8. [フィールド マップ] タブで、データベースの各列のデータが含まれるデータフローのフィールドを選択します。

    [選択フィールド] 列はデータベースの列のリストで、[ステージ フィールド] はデータフローのフィールドのリストです。

  9. [OK] をクリックします。
  10. Transactional Match ステージをキャンバスにドラッグし、Candidate Finder ステージをそれに接続します。

    例えば、Read from File 入力ステージを使用している場合は、データフローは次のようになります。

    Read from File in dataflow

    Transactional Match では、サスペクト レコードを、Candidate Finder ステージから返される候補レコードと照合します。Transactional Match では、マッチング ルールを使用して、サスペクト レコードを、同じ候補グループ番号 (Candidate Finder で割り当てられる番号) を持つすべての候補レコードと比較して、重複を識別します。

  11. キャンバスで Transactional Match ステージをダブルクリックします。
  12. [ロードするマッチ ルール] フィールドで、定義済みのいずれかのマッチ ルールを選択します。このマッチ ルールはそのまま使用することも、必要に応じて変更することもできます。定義済みのいずれかのマッチ ルールを出発点として使用せずに、新しいマッチ ルールを作成する場合は、[新規作成] をクリックします。カスタム ルールは、データフローで 1 つだけ使用できます。
    注: Enterprise Designer の [データフロー オプション] 機能を使用すると、マッチ ルールを実行時に公開して設定できます。
  13. 他のオプションの変更の詳細については、マッチ ルールの作成を参照してください。
  14. Transactional Match ステージの設定が終了したら、[OK] をクリックします。
  15. シンク ステージをキャンバスにドラッグし、Transactional Match ステージに接続します。

    例えば、Write to File シンク ステージを使用した場合、データフローは次のようになります。

    Write to File in dataflow
  16. シンク ステージをダブルクリックして設定します。

    シンク ステージの設定方法については、『データフロー デザイナー ガイド』を参照してください。

2 つのデータ ソースのレコードをマッチングするデータフローが完成しました。

データベースに対するレコードのマッチングの例

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

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

Dataflow solution to business scenario

このデータフローは、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 サービスの応答を使用してデータフローの結果を返します。