ソース間でのレコードのマッチング

この手順では、Interflow Match ステージを使用して、あるソースに含まれるレコードが別のソースのレコードにマッチするかどうかを特定する方法を説明します。第 1 のソースにはサスペクト レコードが含まれ、第 2 のソースには候補レコードが含まれます。このデータフローでは、レコードは別のソースのレコードにのみマッチングします。同じソース内でレコードがマッチングするかは確認されません。このデータフローは、レコードを一致するレコードのコレクションにグループ化し、そのコレクションを出力ファイルに書き込みます。

  1. Enterprise Designer で、新しいデータフローを作成します。
  2. 2 つのソース ステージをキャンバスにドラッグします。1 つのステージはサスペクト レコードのソースを参照するように設定し、もう 1 つのステージは候補レコードのソースを参照するように設定します。

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

  3. Match Key Generator ステージをキャンバスにドラッグし、ソース ステージの 1 つに接続します。

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

    Read from File in dataflow

    Match Key Generator は、レコードごとに非ユニーク キーを作成します。この非ユニーク キーは、潜在的な重複レコードのグループを特定するためにマッチング ステージで使用できます。マッチ キーを使用すると、レコードをマッチ キー別にグループ化し、各グループ内でのみレコードを比較できるので、マッチング プロセスが促進されます。

    注: 2 番目の Match Key Generator ステージは後で追加します。この段階では、キャンバスに必要なステージは 1 つだけです。
  4. Match Key Generator ステージをダブルクリックします。
  5. [追加] をクリックします。
  6. 各レコードのマッチ キーを生成するために使用するルールを定義します。
    表 1. Match Key Generator のオプション

    オプション名

    説明と有効値

    アルゴリズム

    マッチ キーの生成に使用するアルゴリズムを次の中から 1 つ指定します。

    Consonant (子音)
    指定したフィールドから子音を削除して返します。
    Double Metaphone
    文字の発音表記に基づくコードを返します。Double Metaphone は Metaphone アルゴリズムの改良版で、さまざまな言語に多数存在する不規則性を考慮しています。
    Koeln
    ドイツ語で発音される名前に、音声によってインデックスを付けます。同じ発音を持つ名前を同じ表現にエンコードできるので、綴りに小さな相違があっても、マッチさせることができます。結果は常に一連の数字です。特殊文字および空白は無視されます。このオプションは、Soundex の制限に対応するために作成されました。
    MD5
    128 ビットのハッシュ値を生成するメッセージ ダイジェスト アルゴリズム。このアルゴリズムは、データの一貫性の確認によく使用されます。
    Metaphone
    選択したフィールドを Metaphone コード化したキーを返します。Metaphone は、英語の発音を使用して単語をコード化するアルゴリズムです。
    Metaphone (スペイン語)
    選択したフィールドをスペイン語用に Metaphone コード化したキーを返します。この Metaphone アルゴリズムは、スペイン語の発音を使用して単語をコード化します。
    Metaphone 3
    Metaphone アルゴリズムおよび Double Metaphone アルゴリズムを、より正確な子音および内部母音の設定で改良したもので、単語または名前の一致性を高く、または低くして、音声ベースで語を検索できるようにします。Metaphone 3 では、音声エンコーディングの精度が 98% に向上しています。このオプションは、Soundex の制限に対応するために作成されました。
    Nysiis
    近似の発音と正確な綴りをマッチさせ、同じように発音される単語にインデックスを付ける、音声コード アルゴリズム。New York State Identification and Intelligence System の一部です。例えば、住民のデータベースで誰かの情報を探しているとします。その人物の名前は "John Smith" のように聞こえますが、実際の綴りは "Jon Smyth" です。"John Smith" の完全一致を探す検索を実行した場合、返される結果はありません。しかし、NYSIIS アルゴリズムを使用してデータベースにインデックスを作成し、再度 NYSIIS アルゴリズムを使用して検索した場合は、正しいマッチが返されます。なぜなら、"John Smith" と "Jon Smyth" は、このアルゴリズムによってどちらも "JAN SNATH" というインデックスが付けられているからです。
    Phonix
    100 を越える変換ルールを適用することによって、名前文字列を単一の文字またはいくつかの文字のシーケンスに前処理します。これらのルールのうち 19 個は文字がその文字列の先頭にある場合にのみ適用され、12 個はその文字列の中間にある場合にのみ適用され、28 個は文字列の終わりにある場合にのみ適用されます。変換された名前文字列は、開始文字とそれに続く 3 桁 (ゼロおよび重複する数字を削除) で構成されるコードにエンコードされます。このオプションは、Soundex の制限に対応するために作成されました。このオプションは複雑なため、Soundex より遅くなります。
    Sonnex
    このアルゴリズムは、文字の発音表記に基づいて、2 つのフランス語の文字列間の類似性を判断します。
    選択したフィールドを Sonnex コード化したキーを返します。
    Soundex
    選択したフィールドの Soundex コードを返します。Soundex は、単語の英語の発音に基づいて、固定長のコードを生成します。
    部分文字列
    選択したフィールドの指定した部分を返します。

    フィールド名

    選択したアルゴリズムを適用してマッチ キーを生成するフィールドを指定します。例えば、LastName というフィールドを選択し、Soundex アルゴリズムを選択した場合、Soundex アルゴリズムが LastName フィールドのデータに適用されて、マッチ キーが生成されます。

    開始位置

    指定したフィールド内での開始位置を指定します。すべてのアルゴリズムで開始位置を指定できるとは限りません。

    長さ

    開始位置から含める文字の数を指定します。すべてのアルゴリズムで長さを指定できるとは限りません。

    ノイズ文字の削除

    ハイフン、空白、その他の特殊文字等、英数字以外の文字を入力フィールドからすべて削除します。

    ソート入力

    入力フィールド内の文字または語をすべてアルファベット順にソートします。

    文字
    ユニーク ID を作成する前に、入力フィールドの文字値をソートします。
    ユニーク ID を作成する前に、入力フィールドの各語値をソートします。
  7. ルールの定義が終了したら、[OK] をクリックします。
  8. キャンバスで Match Key Generator ステージを右クリックして、[ステージのコピー] を選択します。
  9. キャンバスの空いている領域を右クリックし、[貼り付け] を選択します。
  10. Match Key Generator のコピーを他のソース ステージに接続します。

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

    Read from File in dataflow

    データフローには、まったく同じルールを使用して各ソースのマッチ キーを生成する 2 つの Match Key Generator ステージが含まれるようになりました。このデータフローが正しく機能するには、同じ設定の Match Key Generator ステージを用意することが不可欠です。

  11. Interflow Match ステージをキャンバスにドラッグし、各 Match Key Generator ステージをそれに接続します。

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

    Interflow Match in dataflow
  12. Interflow Match ステージをダブルクリックします。
  13. [ロードするマッチ ルール] フィールドで、定義済みのいずれかのマッチ ルールを選択します。このマッチ ルールはそのまま使用することも、必要に応じて変更することもできます。定義済みのいずれかのマッチ ルールを出発点として使用せずに、新しいマッチ ルールを作成する場合は、[新規作成] をクリックします。カスタム ルールは、データフローで 1 つだけ使用できます。
    注: Enterprise Designer の [データフロー オプション] 機能を使用すると、マッチ ルールを実行時に公開して設定できます。
  14. [グループ化] フィールドで、[マッチ キー] を選択します。

    同じマッチ キーを持つレコードがグループに配置されます。マッチ ルールがグループ内のレコードに適用されて、重複があるかどうかが確認されます。各レコードのマッチ キーは、この手順で先に設定した Generate Match Key ステージによって生成されます。

  15. 他のオプションの変更の詳細については、マッチ ルールの作成を参照してください。
  16. シンク ステージをキャンバスにドラッグし、Interflow Match ステージに接続します。

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

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

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

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

複数のソースからのレコードのマッチングの例

ダイレクト メールの会社で、メール拒否リストに載っているユーザを識別してダイレクト メールが送信されないようにします。1 つのファイルには受取人のリストがあり、もう 1 つのファイル (禁止ファイル) にはダイレクト マーケティング メールの受け取りを拒否している人のリストがあります。

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

Business scenario solution dataflow

Read from File ステージでメーリング リストからデータを読み込み、Read from File 2 ステージで禁止リストからデータを読み込みます。2 つの Match Key Generator ステージはまったく同じ設定なので、これらによって生成されるマッチ キーを Interflow Match で使用して、一致する可能性のあるグループを作成できます。Interflow Match はメーリング リストと禁止ファイルの両方にあるレコードを識別し、これらのレコードを重複としてマークします。Conditional Router は、ユニーク レコード (禁止リストで見つからなかったレコード) を Write to File に送信し、ファイルに書き込みます。Conditional Router ステージは他のすべてのレコードを Write to Null に送信して破棄します。