# Multi-passマッチング

連続するtMatchGroupコンポーネントを使用してジョブをデザインし、異なる複数のブロッキングキーをベースにデータパーティションを作成できます。

前のパスで定義したマスターレコードを現在のtMatchGroupコンポーネントの入力として再利用するというのが、Multi-passマッチングの背景にある考え方です。Multi-passマッチングは、ブロッキングキーの間にコリレーションがほとんどない場合に、より有効です。たとえば、カラム"country"をブロッキングキーとして、カラム"city"をもう1つのブロッキングキーとして定義することには、関連性がありません。ブロッキングキー"city"に対して行われる比較はすべて、ブロッキングキー"country"に対しても行われるからです。

シンプルVSRマッチャーアルゴリズムでMulti-passマッチングを使用する場合、サイズ1のマスターレコード(どのレコードにもマッチングしなかったレコード)のみが、あらゆるサイズのマスターレコードと比較されます。少なくとも2つの子からそれぞれ取得された2つのマスターレコードの間で、比較は全く行われません。

次の例では、顧客データベース内で都市または郵便番号が同じである重複を見つけようとしています。この場合、連続する2つのtMatchGroupを使ってデータパーティションを処理できます。このデータセットにはレコードが4つ含まれています。最初のtMatchGroupコンポーネントにはZipCodeカラムに対してブロッキングキーが1つあり、2番目のtMatchGroupコンポーネントにはcityカラムに対してブロッキングキーが1つあると想定されています。name属性はマッチングキーとして使用されます。

| id | [Name] (名前) | [city] (都市) | zipCode |
| --- | --- | --- | --- |
| 1 | John Doe | Nantes | 44000 |
| 2 | John B. Doe | Nantes | \_ |
| 3 | Jon Doe | Nantes | 44000 |
| 4 | John Doe | Nantes | \_ |

ZipCodeカラムにある\_という記号は、空のデータを表します。レコード2と4にはZipCodeが提供されていません。

最初のパスの後で、レコード1と3がグルーピングされ、レコード2と4がグルーピングされます。これらのグループでは、レコード1とレコード2がマスターレコードです。

2番目のtMatchGroupでは、最初のパスからのマスターレコードであるレコード1とレコード2のみが比較されます。グループサイズが厳密に1よりも大きいため、これらは比較されません。そのため、入力レコードが保存される順序が非常に重要です。

以下の結果が返されます。

| id | [Name] (名前) | [city] (都市) | zipCode | GID | GRP\_SIZE | MASTER | SCORE | GRP\_QUALITY |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 1 | John Doe | Nantes | 44000 | 0 | 2 | true | 1.0 | 0.875 |
| 3 | Jon Doe | Nantes | 44000 | 0 | 0 | false | 0.85 | 0 |
| 2 | John B. Doe | Nantes | \_ | 1 | 2 | true | 1.0 | 0.727 |
| 4 | John Doe | Nantes | \_ | 1 | 0 | false | 0.72 | 0 |

ZipCodeカラムにある\_という記号は、空のデータを表します。ZipCodeが入力されていないため、レコード2とレコード4のZipCodeカラムは空です。

同じパラメーターおよび[Most common] (最も一般的)なサバイバーシップ機能を使用してT-Swooshアルゴリズムを実行すると、以下の結果が返されます。

| id | [Name] (名前) | [city] (都市) | zipCode | GID | GRP\_SIZE | MASTER | SCORE | GRP\_QUALITY |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 1 | John Doe | Nantes | 44000 | 0 | 4 | true | 1.0 | 0.727 |
| 1 | John Doe | Nantes | 44000 | 0 | 0 | true | 0.875 | 0 |
| 3 | Jon Doe | Nantes | 44000 | 0 | 0 | false | 0.875 | 0 |
| 2 | John B. Doe | Nantes | \_ | 0 | 0 | true | 0.72 | 0 |
| 4 | John Doe | Nantes | \_ | 1 | 0 | false | 0.72 | 0 |

ZipCodeカラムにある\_という記号は、空のデータを表します。ZipCodeが入力されていないため、レコード2とレコード4のZipCodeカラムは空です。