Créer un algorithme de correspondance personnalisé - 7.0

Data matching

author
Talend Documentation Team
EnrichVersion
7.0
EnrichProdName
Talend Big Data Platform
Talend Data Fabric
Talend Data Management Platform
Talend Data Services Platform
Talend MDM Platform
Talend Real-Time Big Data Platform
task
Création et développement > Systèmes tiers > Composants Data Quality > Composants de rapprochement > Composants de rapprochement de données
Gouvernance de données > Systèmes tiers > Composants Data Quality > Composants de rapprochement > Composants de rapprochement de données
Qualité et préparation de données > Systèmes tiers > Composants Data Quality > Composants de rapprochement > Composants de rapprochement de données
EnrichPlatform
Studio Talend

Le composant tRecordMatching vous permet d'utiliser un algorithme de mise en correspondance personnalisé afin d'obtenir les résultats dont vous avez besoin.

Un algorithme de mise en correspondance personnalisé est écrit manuellement et stocké dans un fichier .jar (archive Java). Talend fournit un exemple de fichier .jar sur la base duquel vous pouvez créer votre propre fichier. Pour ce faire, procédez comme suit :

Pour plus d'informations concernant les technologies supportées par Talend, consultez .

Procédure

  1. Dans Eclipse, effectuez un check out sur le projet SVN test.mydistance :
  2. Dans ce projet, naviguez jusqu'à la classe Java nommée MyDistance.Java. http://talendforge.org/svn/top/trunk/test.mydistance/src/main/java/org/talend/mydistance//
  3. Ouvrez ce fichier contenant le code suivant :package org.talend.mydistance; import org.talend.dataquality.record.linkage.attribute.AbstractAttributeMatcher; import org.talend.dataquality.record.linkage.constant.AttributeMatcherType; /** * @author scorreia * * Example of Matching distance. */ public class MyDistance extends AbstractAttributeMatcher { /* * (non-Javadoc) * * @see org.talend.dataquality.record.linkage.attribute.IAttributeMatcher#getMatchType() */ @Override public AttributeMatcherType getMatchType() { // a custom implementation should return this type AttributeMatcherType.custom return AttributeMatcherType.CUSTOM; } /* * (non-Javadoc) * * @see org.talend.dataquality.record.linkage.attribute.IAttributeMatcher#getMatching Weight(java.lang.String, * java.lang.String) */ @Override public double getWeight(String arg0, String arg1) { // Here goes the custom implementation of the matching distance between the two given strings. // the algorithm should return a value between 0 and 1. // in this example, we consider that 2 strings match if their first 4 characters are identical // the arguments are not null (the check for nullity is done by the caller) final int max = 4; int nbIdenticalChar = Math.min(max, Math.min(arg0.length(), arg1.length())); for (int c = 0; c < max; c++) { if (arg0.charAt(c) != arg1.charAt(c)) { nbIdenticalChar = c; break; } } return (max - nbIdenticalChar) / ((double) max); } }
  4. Dans ce fichier, saisissez le nom de la classe de l'algorithme personnalisé que vous créez afin de remplacer le nom par défaut. Le nom par défaut est MyDistance et vous pouvez le trouver dans la ligne : public class MyDistance implements IAttributeMatcher.
  5. A la place de l'algorithme par défaut dans le fichier, saisissez l'algorithme que vous souhaitez créer. L'algorithme par défaut se présente comme suit : final int max = 4; int nbIdenticalChar = Math.min(max, Math.min(arg0.length(), arg1.length())); for (int c = 0; c < max; c++) { if (arg0.charAt(c) != arg1.charAt(c)) { nbIdenticalChar = c; break; } } return (max - nbIdenticalChar) / ((double) max);
  6. Sauvegardez vos modifications.
  7. Via Eclipse, exportez ce nouveau fichier .jar.

Résultats

Cet algorithme personnalisé est prêt à être utilisé par le composant tRecordMatching.