マッチングの最適化
通常、マッチングはあらゆるデータ品質実装の中で最も時間のかかる操作の 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 です。この方法によってパフォーマンスは向上しますが、一部のマッチが検出されなくなることがあります。