マッチングの最適化

通常、マッチングはあらゆるデータ品質実装の中で最も時間のかかる操作の 1 つであり、できる限り効率的にマッチングを実行することが重要になります。マッチング結果とパフォーマンスは、常にバランスが保たれています。ファイル内の各レコードをそれ以外のすべてのレコードと比較する場合、すべてのマッチを確実に特定できます。しかし、データ量が増大すると、このアプローチは持続できなくなります。例えば、100 万レコードからなる入力ファイルがある場合、各レコードをそれ以外のすべてのレコードとマッチングすると、各マッチ ルールを評価するのにほぼ 1 兆回の比較が必要になります。

ファイル内の大部分のレコードがマッチしない場合、この問題を解決する一般的なアプローチは、マッチ キーを定義して、同じマッチ キーを持つレコードとのみ比較することです。適切なマッチ キーを定義することが、マッチング エンジンのパフォーマンスに影響を与える最も重要な変数です。適切なマッチ キーを定義するには、マッチング エンジンがレコードをどのように処理するか、および使用可能なオプションについて理解する必要があります。

デフォルトのマッチング方法では、マッチ キュー内のレコードをすべて比較して、最大数のマッチを特定します。そのため、この方法はしばしば最も時間のかかるマッチング方法になります。デフォルトのマッチング方法では、マッチ キュー内の先頭のレコードがサスペクト レコードになります。次のレコードが比較され、マッチした場合は重複として書き出されます。マッチしない場合はサスペクトとして追加され、次のレコードが 2 つのアクティブなサスペクトと比較されます。次のマッチ キューを考えてみましょう。

ユニーク ID マッチ キー
1 123A
2 123A
3 123A
4 123A
5 123A
6 123A
7 123A
8 123A
9 123A
10 123A

まず、レコード 2 がレコード 1 と比較されます。マッチしない場合、レコード 2 はサスペクトとして追加されます。次に、レコード 3 がレコード 1 および 2 と比較されます。以降も同様です。マッチング レコードが存在しない場合、比較の総回数は 45 回になります。マッチするレコードがある場合、比較回数はそれより少なくります。サイズ N のマッチ キューの場合、比較の最大回数は N×(N-1)÷2 です。キュー サイズが小さい場合は目立ちませんが、キュー サイズが増大すると、影響が大きくなります。例えば、キュー サイズ 100 の場合の比較回数は 4,450 回で、キュー サイズが 500 の場合の比較回数は 124,750 回です。

適切なマッチ キーの定義

適切なマッチ キーを定義するには、以下の点を考慮してください。

  • 覚えておくべき最も重要な点は、大部分のレコードはマッチしないということです。したがって、マッチする可能性のあるレコードのみを比較したいと考えます。
  • 同じマッチ キーを持つレコードのみを比較します。
  • パフォーマンスは重要な検討事項です。
    • マッチ キーにより、マッチ キューのサイズが決定されます。
    • 一定のレコード数では、マッチ キュー サイズが倍になると、実行時間も倍になります。
    • "厳格" なマッチ キーによって、パフォーマンスが向上します。"厳格" なマッチ キーは限定的なマッチ キーで、多数のフィールドからの多数の文字で構成されます。
    • "あいまい" なマッチ キーによって、マッチ数が増加する場合があります。"あいまい" なマッチ キーはそれほど限定的ではないマッチ キーで、少数のフィールドからの少数の文字で構成されます。

パフォーマンスとマッチ結果のバランスを見出す

パフォーマンスと結果のバランスをうまく保つには、マッチ ルールとデータの密度について検討してください。

  • マッチ ルールに関して、以下の点を考慮してください。
    • 完全一致を必要とするフィールドをマッチ キーに含めることができます。
    • マッチ ルールに適したキーを作成してください。例えば、発音表記に関するマッチ ルールでは、発音表記に関するマッチ キーが適していると考えられます。
    • 多くの場合、マッチ キーはマッチングするすべてのフィールドの一部で構成されます。
    • 欠落しているデータが及ぼす影響に注意してください。
  • データ密度に関して、以下のことを考慮してください。
    • 例えば、住所マッチングにおいて、すべてのレコードがある国のデータセットではなくある 1 つの町にある場合、マッチ キーはより厳格になる可能性があります。
    • 平均ではなく最大のマッチ キューを検討してください。Match Summary Report を精査して、最大マッチ キューを判断します。
  • Transactional Match を使用する場合、同じ考慮事項が Candidate Finder の SELECT 文にも当てはまります。

Express マッチ キー

一般的なファイルでは、大部分の重複レコードが完全に、またはほぼ完全に一致します。Express マッチ キーを定義すると、マッチング エンジンが Experss マッチ キーを最初に比較して、2 つのレコードが重複かどうかを判断できます。これにより、フィールド レベルのマッチ ルールをすべて評価する必要はなくなるので、パフォーマンスを大幅に向上させることができます。

Intraflow Match の方法

デフォルトの Intraflow Match マッチング方法では、同じマッチ キーを持つすべてのレコードが比較されます。マッチ キューのサイズが N の場合、デフォルトの方法では N−1 から N×(N−1) までのいずれかの回数の比較が実行されます。すべてのレコードがマッチした場合、比較回数は N-1 です。レコードがまったくマッチしなかった場合、比較回数は N×(N−1) です。たいていの場合、比較回数はこの範囲の後半部分のどこかの値になります。

パフォーマンスが優先事項である場合は、デフォルトの方法ではなく、スライディング ウィンドウ マッチング方法の使用を検討してください。スライディング ウィンドウ マッチング方法では、各レコードを次の W レコード (W はウィンドウ サイズ) と比較します。ファイル サイズが N の場合、スライディング ウィンドウ方法で実行される比較回数は最大で N×W です。この方法によってパフォーマンスは向上しますが、一部のマッチが検出されなくなることがあります。