Extraire les doublons d'une base de donnée?
truster
Messages postés
10
Statut
Membre
-
Gtld Messages postés 25 Statut Membre -
Gtld Messages postés 25 Statut Membre -
Bonjour,
Nous venons de racheter une société concurrente et je dois fusionner les bases de données clients extraits des outils de CRM. De nombreuses sociétés, contacts, … sont les mêmes, mais ne sont pas saisis de la même manière. Il y en a plus de 8000 en tout, comment faire pour identifier ceux qui sont peut-être les mêmes.
Merci à vous.
Nous venons de racheter une société concurrente et je dois fusionner les bases de données clients extraits des outils de CRM. De nombreuses sociétés, contacts, … sont les mêmes, mais ne sont pas saisis de la même manière. Il y en a plus de 8000 en tout, comment faire pour identifier ceux qui sont peut-être les mêmes.
Merci à vous.
A voir également:
- Extraire les doublons d'une base de donnée?
- Extraire une video youtube - Guide
- Extraire le son d'une vidéo - Guide
- Base de registre - Guide
- Doublons photos - Guide
- Extraire image pdf - Guide
6 réponses
Ce que je peux proposer c'est Talend Open Studio: un outil open source, "facile à télécharger" certe mais surtout libre d'utilisation : c'est sans frais. Le logiciel est non-intrusif et ne réclame même pas de droits admin pour s'installer :)
L'outil est user-friendly, le rendant utilisable par des utilisateurs peu avancés. Notez notamment la présence des composants DataQuality. Mais l'outil comporte aussi des fonctions intéressantes pour des utilisateurs avancés (java debugger, code injection…). C'est un outil performant et simple d'utilisation.
Le site web: http://www.talend.com/solutions-data-integration/data-migration.php . Le forum est complet et il y a de la documentation à lire. Egalement, vous pouvez participer à un webinar fin Novembre sur comment gérer la qualité de données avec l'open source (27 Novembre 2008).
L'URL pour inscription: https://www2.gotomeeting.com/register/839295108. Entre autres, il portera sur l'impact de la mauvaise qualité de donnée, les différents aspects de la qualité de donnée...
Dites nous ce que vous en pensez!
L'outil est user-friendly, le rendant utilisable par des utilisateurs peu avancés. Notez notamment la présence des composants DataQuality. Mais l'outil comporte aussi des fonctions intéressantes pour des utilisateurs avancés (java debugger, code injection…). C'est un outil performant et simple d'utilisation.
Le site web: http://www.talend.com/solutions-data-integration/data-migration.php . Le forum est complet et il y a de la documentation à lire. Egalement, vous pouvez participer à un webinar fin Novembre sur comment gérer la qualité de données avec l'open source (27 Novembre 2008).
L'URL pour inscription: https://www2.gotomeeting.com/register/839295108. Entre autres, il portera sur l'impact de la mauvaise qualité de donnée, les différents aspects de la qualité de donnée...
Dites nous ce que vous en pensez!
Bonjour,
................ comment faire pour identifier ceux qui sont peut-être les mêmes.
En faisant une recherche sur une (ou plusieurs) information/donnée nécessairement commune aux deux bases "clients", le nom de la société ou du contact, par exemple.
Suivant la codification employée il se peut qu'un même nom de société soit libellé différemment dans chacune des bases ex :
pour pallier à cela il est nécessaire de "compacter" les caractères.
Je te propose d'effectuer ce rapprochement en écrivant un programme dont les fonctions principales sont :
-- Lectures séquentielles des 2 bases de données sur leur clé primaire (nécessité probable de faire 2 séquences distinctes, une par base clients ou bien une boucle de 2 itérations avec lecture sélective)
-- Faire une tentative d'écriture dans une base de données temporaire (ou un fichier temporaire à accès direct) d'un enregistrement constitué des informations utiles de chaque client et dont la clé d'accès est la donnée compactée.
A chaque rejet pour motif de clés en double rencontré lors d'une (tentative) d'écriture dans cette base de données temporaire, éditer les informations du client en cours et celles contenues dans la ligne de la base de données (lecture nécessaire de la base avec pour clé la donnée compactée du client en cours).
-- Créer un fichier en vue de l'apuration des clients en double (en considérant une base de référence base 1 ou 2) . Ce peut être le base de données temporaire (dans ce cas la base de référence devra être traitée intégralement en priorité) .
A noter que cette méthode à ses limites elle ne permets pas de régler certains problèmes :
(base 1)
.... DUPONT & DUBOIS .....
............ ...........
(base 2)
..... DUPONT et DUBOIS .....
................ comment faire pour identifier ceux qui sont peut-être les mêmes.
En faisant une recherche sur une (ou plusieurs) information/donnée nécessairement commune aux deux bases "clients", le nom de la société ou du contact, par exemple.
Suivant la codification employée il se peut qu'un même nom de société soit libellé différemment dans chacune des bases ex :
DUPONT & DUBOIS (base 1) DUPONT DUBOIS (base 2)
pour pallier à cela il est nécessaire de "compacter" les caractères.
Je te propose d'effectuer ce rapprochement en écrivant un programme dont les fonctions principales sont :
-- Lectures séquentielles des 2 bases de données sur leur clé primaire (nécessité probable de faire 2 séquences distinctes, une par base clients ou bien une boucle de 2 itérations avec lecture sélective)
(base 1) ..... DUPONT & DUBOIS ..... ..... DURANT Freres ..... ............ ........... (base 2) ..... DUPONT DUBOIS ..... ..... DURAND ..... ............ ...........--Compactage de chaque information/donnée de chacune 2 des bases afin d'éliminer les caractères spéciaux possibles tels que l'espace, le tiret (-), le &, le _(souligné) . . . . susceptibles d'être présents dans une chaîne de caractères telle un nom de société ou de contact. Ex:
DUPONT & DUBOIS (base 1) devient DUPONTDUBOIS (base 1) DURANT Freres (base 1) devient DURANTFreres (base 1) DUPONT DUBOIS (base 2) devient également DUPONTDUBOIS (base 2) DURAND (base 2) devient DURAND (base 2) soit: (si base 1 lue la premiere) : DUPONTDUBOIS base 1 clé primaire DURANTFreres base 1 clé primaire DUPONTDUBOIS base 2 clé primaire DURAND base 2 clé primaire ............ ...........
-- Faire une tentative d'écriture dans une base de données temporaire (ou un fichier temporaire à accès direct) d'un enregistrement constitué des informations utiles de chaque client et dont la clé d'accès est la donnée compactée.
DUPONTDUBOIS base 1 clé primaire (écriture) DURANTFreres base 1 clé primaire (écriture)
A chaque rejet pour motif de clés en double rencontré lors d'une (tentative) d'écriture dans cette base de données temporaire, éditer les informations du client en cours et celles contenues dans la ligne de la base de données (lecture nécessaire de la base avec pour clé la donnée compactée du client en cours).
DUPONTDUBOIS base 2 clé primaire (rejet duplicate keys) lignes éditées : Client en double : DUPONTDUBOIS base 1 clé primaire (infos. base de données temporaire) DUPONTDUBOIS base 2 clé primaire (infos. client en cours base 1 ou base 2)DURAND base 2 clé primaire (écriture) ............ ...........
-- Créer un fichier en vue de l'apuration des clients en double (en considérant une base de référence base 1 ou 2) . Ce peut être le base de données temporaire (dans ce cas la base de référence devra être traitée intégralement en priorité) .
A noter que cette méthode à ses limites elle ne permets pas de régler certains problèmes :
(base 1)
.... DUPONT & DUBOIS .....
............ ...........
(base 2)
..... DUPONT et DUBOIS .....
COMPLEMENTS D'INFORMATION (non exhaustif) :
---------------------------------------------
A noter que cette méthode à ses limites elle ne permets pas de régler certains problèmes :
(base 1)
.... DUPONT & DUBOIS .....
............ ...........
(base 2)
..... DUPONT et DUBOIS .....
D'autres peuvent trouver une solution :
Minuscules Majuscules :
(base 1)
.... DUPONT & DUBOIS .....
............ ...........
(base 2)
..... Dupont & Dubois .....
-- Profiter du compactage pour traduire les minuscules en majuscules.
Cas possible des doubles utiles dans une même base de données (base 1 ou base 2) :
.... DUPONT & DUBOIS .....Rue du bac (client généralement considéré comme donneur d'ordre, par exemple)
.... DUPONT & DUBOIS .....Rue du bassin (client généralement considéré comme client de facturation par ....)
.... DUPONT & DUBOIS .....Rue du lavoir (client généralement considéré comme client de livraison par ....)
(considérer également d'autres cas possibles comme par exemple cas des clients France/Export, ............)
--Déterminer un second champ commun aux 2 bases permettant de les différencier pour constituer la donnée compactée (si possible). Où bien les éliminer temporairement avant la recherche des doubles et n'en garder qu'un seul.
..................................
.................................
Je crains qu'un traitement automatisé ne puisse répondre à l'ensemble du problème.
---------------------------------------------
A noter que cette méthode à ses limites elle ne permets pas de régler certains problèmes :
(base 1)
.... DUPONT & DUBOIS .....
............ ...........
(base 2)
..... DUPONT et DUBOIS .....
D'autres peuvent trouver une solution :
Minuscules Majuscules :
(base 1)
.... DUPONT & DUBOIS .....
............ ...........
(base 2)
..... Dupont & Dubois .....
-- Profiter du compactage pour traduire les minuscules en majuscules.
Cas possible des doubles utiles dans une même base de données (base 1 ou base 2) :
.... DUPONT & DUBOIS .....Rue du bac (client généralement considéré comme donneur d'ordre, par exemple)
.... DUPONT & DUBOIS .....Rue du bassin (client généralement considéré comme client de facturation par ....)
.... DUPONT & DUBOIS .....Rue du lavoir (client généralement considéré comme client de livraison par ....)
(considérer également d'autres cas possibles comme par exemple cas des clients France/Export, ............)
--Déterminer un second champ commun aux 2 bases permettant de les différencier pour constituer la donnée compactée (si possible). Où bien les éliminer temporairement avant la recherche des doubles et n'en garder qu'un seul.
..................................
.................................
Je crains qu'un traitement automatisé ne puisse répondre à l'ensemble du problème.
Bonjour,
Merci Cchristian pour ces explications.
Ce que je recommenderais c'est de regarder vers des outils ETL qui sont aussi très pratiques.
Ils permettent, entre autre, de faire du "nettoyage de data" incluant la suppression des données dupliquées. Aussi je sais qu'il existe des outils ETL Open Source, rendant le programme facile à télécharger.
Cordialement
Merci Cchristian pour ces explications.
Ce que je recommenderais c'est de regarder vers des outils ETL qui sont aussi très pratiques.
Ils permettent, entre autre, de faire du "nettoyage de data" incluant la suppression des données dupliquées. Aussi je sais qu'il existe des outils ETL Open Source, rendant le programme facile à télécharger.
Cordialement
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai regarde quelques outils ETL et cela semble etre ce dont j'ai besoin. J'essayerais Talend et donnerais un avis. Merci pour votre aide!
Vous pouvez regarder Talendforge pour poser vos questions et trouver des informations : http://www.talendforge.org/