match
Description
L'action entityRes.match est le véritable détective de votre écosystème de données SAS Viya . Elle permet d'identifier et de regrouper (clonage ou clusteringLe clustering est une technique d'apprentissage non supervisé regroupant des données similaires en segments homogènes afin d'identifier des structures cachées sans étiquettes préalables.) des enregistrements qui font référence à la même entité du monde réel, même si les données sont légèrement différentes (fautes de frappe, abréviations, etc.). C'est un peu comme si vous organisiez une réunion de famille et que vous deviez deviner que 'J. Doe' et 'John Doe' sont en fait la même personne qui essaie d'éviter la corvée de vaisselle. Elle utilise des règles de correspondance précises pour attribuer un identifiant de clusterEnsemble de nœuds (machines) interconnectés, gérés par Kubernetes, qui collaborent pour exécuter les microservices et le moteur CAS de SAS Viya, assurant haute disponibilité et passage à l'échelle. unique (clusterId) à chaque groupe d'enregistrements liés.
Paramètres Clés
Préparation des données
Création de données de test pour la résolution d'entités
Nous créons une table avec des noms et des codes de correspondance (match codes) simulés pour tester le regroupement.
| 1 | DATA casuser.clients_source; |
| 2 | LENGTH Nom $20. Code_Nom $20. Code_Email $20.; |
| 3 | INPUT Nom $ Code_Nom $ Code_Email $; |
| 4 | DATALINES; |
| 5 | Dupont AAA111 EEE111 |
| 6 | Dupond AAA111 EEE222 |
| 7 | Dupont AAA111 EEE111 |
| 8 | Martin BBB222 EEE333 |
| 9 | Martine BBB222 EEE333 |
| 10 | ; |
| 11 | RUN; |
Exemples d'utilisation
Regroupement simple par nom
Cet exemple regroupe les clients en utilisant uniquement le match code du nom.
| 1 | PROC CAS; entityRes.match / inTable={name:"clients_source"}, matchRules={{rule:{{columns:{"Code_Nom"}}}}}, outTable={name:"clients_groupes", replace:true}; RUN; QUIT; |
Résultat Attendu :
Résolution multicritère avec sélection de colonnes
Ici, on définit deux règles : soit les noms correspondent, soit les emails correspondent. On ne garde que les colonnes nécessaires pour ne pas encombrer la mémoire (et l'esprit).
| 1 | PROC CAS; entityRes.match / inTable={name:"clients_source"}, clusterId="ID_UNIQUE_CLIENT", columns={"Nom"}, matchRules={{rule:{{columns:{"Code_Nom"}}}}, {rule:{{columns:{"Code_Email"}}}} text}, outTable={name:"entites_finales", replace:true}; RUN; QUIT; |