Techniques de définition de match keys

Un rapprochement efficace et efficient nécessite un bon équilibre entre précision et performances. En matière de rapprochement, l'approche la plus précise consisterait à analyser chaque enregistrement par rapport à tous les autres enregistrements, mais elle n'est pas pratique, car le nombre d'enregistrements à traiter entraînerait une lenteur inacceptable des performances. Il est préférable de limiter le nombre d'enregistrements impliqués dans le processus de rapprochement aux enregistrements les plus susceptibles de correspondre. Pour ce faire, vous pouvez utiliser des match keys. Une match key est une valeur créée pour chaque enregistrement à l'aide d'un algorithme que vous définissez vous-même. L'algorithme prend des valeurs de l'enregistrement et les utilise pour produire une valeur de match key, qui est ensuite stockée sous forme de nouveau champ dans l'enregistrement.

Par exemple, si l'enregistrement entrant est :

Prénom : Fred
Nom de famille : Mertz
Code postal : 21114-1687
Code de genre : M

Et que vous définissez une règle de match key qui génère une match key en combinant des données de l'enregistrement comme suit :

Champ de saisie Position de début Longueur
Code postal 1 5
Code postal 7 4
Nom de famille 1 5
Prénom 1 5
Code de genre 1 1

Alors, la clé serait :

211141687MertzFredM

Tous les enregistrements présentant la même match key sont placés dans un groupe de doublons. Le processus de rapprochement compare ensuite les enregistrements du groupe les uns aux autres pour identifier les rapprochements.

Pour créer une match key, si vous rapprochez des enregistrements via Interflow Match ou Intraflow Match, utilisez un stage Match Key Generator. Si vous rapprochez des enregistrements via Transactional Match, utilisez le stage Candidate Finder pour créer des groupes de doublons.
Remarque : Les instructions qui suivent peuvent être appliquées au clés Match Key Generator et aux requêtes Candidate Finder. Dans Candidate Finder, ces instructions indiquent la manière dont vous définissez l'instruction SELECT.

Taille de groupe de doublons et performances

La match key détermine la taille du groupe de doublons, et, par conséquent, les performances de votre flux de données. Si la taille du groupe de doublons double, le temps d'exécution double lui aussi. Par exemple, si vous définissez une match key qui produit un groupe de 20 enregistrements susceptibles de correspondre, le traitement prend deux fois plus de temps que si vous modifiez la match key pour que le groupe de doublons contienne seulement 10 enregistrements susceptibles de correspondre. L'inconvénient de réduire la règle de match key pour produire un groupe de doublons plus petit réside dans le fait que vous courez le risque d'exclure des enregistrements qui correspondent. Des règles de match key « lâches », en contrepartie, réduisent les chances d'exclusion d'enregistrements correspondants du groupe, mais augmentent la taille du groupe. Pour trouver le juste équilibre pour vos données, il est important de faire des tests avec différentes règles de match key à l'aide de données représentatives de celles que vous avez l'intention de traiter en production.

Densité

Lors de la conception d'une match key, il convient de tenir compte de la densité des données. La densité fait référence au degré auquel les données peuvent être distribuées sur l'ensemble des groupes doublons. Étant donné que les performances sont déterminées par le nombre de comparaisons à effectuer par le système, les match keys qui produisent un petit nombre de gros groupes de doublons ralentissent les performances par rapport aux match keys qui produisent un grand nombre de petits groupes de doublons.

Pour illustrer ce concept, prenons une situation dans laquelle vous avez un million d'enregistrements de noms et d'adresses à rapprocher. Vous pouvez définir une match key sur les trois premier octets du code postal et la première lettre du nom de famille. Si les enregistrements proviennent de l'ensemble des États-Unis, la match key produit un nombre satisfaisant de groupes de doublons, avec des performances probablement acceptables. En revanche, si tous les enregistrements proviennent de New York, les codes postaux commencent tous par « 100 » et vous aboutissez à, au plus, seulement 26 groupes de doublons. Cela produit de gros groupes de doublons contenant, en moyenne, quelque 38 000 enregistrements.

Vous pouvez calculer le nombre maximal de comparaisons effectuées pour chaque groupe de doublons à l'aide de la formule suivante :

N * (N-1) / 2

N est le nombre d'enregistrements du groupe de doublons.

Ainsi, si vous disposez de 26 groupes de doublons contenant chacun 38 000 enregistrements, le nombre maximal de comparaisons effectuées est d'environ 18,7 milliards. Voici comment ce nombre est calculé :

Tout d'abord, déterminez le nombre maximal de comparaisons par groupe de doublons :

38,000 * (38,000-1) / 2 = 721,981,000

Ensuite, multipliez ce nombre par le nombre de groupes de doublons :

721,981,000 * 26 = 18,771,506,000

Si, au lieu de cela, il existait 100 valeurs uniques pour les trois premiers octets du code postal, vous disposeriez de 2 600 groupes de doublons contenant en moyenne 380 enregistrements. Dans ce cas, le nombre maximal de comparaisons serait de 187 millions, à savoir, 100 fois moins. Ainsi, si les enregistrements proviennent uniquement de New York, vous pouvez envisager d'utiliser les quatre, voire les cinq premiers octets du code postal pour la match key, afin de produire davantage de groupes de doublons et de réduire le nombre de comparaisons. Il se peut que vous manquiez quelques rapprochements, mais, en revanche, le temps d'exécution sera considérablement réduit.

En réalité, une match key comme celle utilisée dans cet exemple ne donne pas des groupes de doublons de taille égale, à cause des variations des données. Par exemple, beaucoup plus de personnes portent un nom de famille qui commence par la lettre « S » que par la lettre « X ». C'est pourquoi vous devez vous efforcer de réduire la taille des plus gros groupes de doublons. Un groupe de doublons comptant 100 000 enregistrements est 10 fois plus gros qu'un groupe de doublons en comptant 10 000, mais il nécessite 100 fois plus de comparaisons et prend 100 fois plus de temps. Par exemple, imaginons que vous utilisiez cinq octets de code postal et six octets du champ AddressLine1 pour votre match key. En apparence, cette match key semble relativement satisfaisante. Le problème, ce sont les adresses de boîte postale. Même si la plupart des groupes de doublons sont d'une taille acceptable, il existera quelques très gros groupes de doublons avec des clés comme 10002PO BOX contenant un très grand nombre d'enregistrements. Pour diviser les gros groupes de doublons, vous pouvez modifier votre match key pour qu'elle comprenne les deux premiers chiffres du numéro de boîte postale.

Alignement de la match key sur la règle de rapprochement

Pour obtenir les résultats les plus précis, vous devez concevoir la match key de sorte qu'elle fonctionne bien avec la règle de rapprochement avec laquelle vous comptez l'utiliser. Pour ce faire, vous devez tenir compte de la définition de la règle de rapprochement.
  • La match key doit inclure tous les champs requis par la règle de rapprochement pour obtenir une correspondance exacte.
  • La match key doit utiliser le même type d'algorithme que celui utilisé dans la règle de rapprochement. Par exemple, si vous concevez une match key à utiliser avec une règle de rapprochement qui emploie un algorithme phonétique, la match key doit elle aussi utiliser un algorithme phonétique.
  • La match key doit être créée à l'aide des données de tous les champs utilisés dans la règle de rapprochement.
  • Imaginez l'impact sur la match key s'il manque des données d'un ou de plusieurs des champs utilisés dans la règle de rapprochement. Par exemple, imaginons que vous utilisiez l'initiale du deuxième prénom dans la match key et que vous disposiez d'un enregistrement pour John A. Smith et d'un autre pour John Smith. Vous avez configuré la règle de rapprochement de sorte qu'elle ignore les valeurs vierges du champ du deuxième prénom. C'est pourquoi, suivant votre règle de rapprochement, ces deux enregistrements correspondent. Cependant, étant donné que la match key utilise l'initiale du deuxième prénom, les deux enregistrements aboutissent dans deux groupes de doublons différents et ne sont pas comparés l'un à l'autre, annulant ainsi l'effet souhaité de votre règle de rapprochement.