Frage

Hier ist ein interessantes Problem.

Ich habe eine Oracle-Datenbank mit Namens- und Adressinformationen, die aktuell gehalten werden muss.

Wir erhalten Datenfeeds aus verschiedenen Regierungsquellen und müssen Übereinstimmungen herausfinden und entscheiden, ob die Datenbank mit den Daten aktualisiert werden soll oder ob ein neuer Datensatz erstellt werden muss.

Es gibt keine eindeutige Kennung, mit der Datensätze miteinander verknüpft werden können, und die Datenqualität ist nicht immer so gut – es kommt immer zu Tippfehlern und Personen, die unterschiedliche Namen verwenden (z. B.Joe vs.Josef) usw.

Ich wäre daran interessiert, von jedem, der schon einmal an einem Problem dieser Art gearbeitet hat, zu hören, wie er es gelöst oder zumindest Teile davon automatisiert hat.

War es hilfreich?

Lösung

Jedes der großen Softwareunternehmen, die in diesem Bereich tätig sind, bietet Lösungspakete an, die das Parsen von Namen und Adressen, die Datenstandardisierung, die Deduplizierung oder den Abgleich von Datensätzen, die Verknüpfung/Zusammenführung von Datensätzen, das Überleben usw. übernehmen.Allerdings sind sie alle etwas teuer.

Oracles eigene Lösung für dieses Problem ist beispielsweise das Produkt „Oracle Data Quality (ODQ) für Oracle Data Integrator (ODI)„, das Teil ihres Fusion Middleware-Stacks ist.Wie der Name schon sagt, erfordert ODQ ODI (d. h. es handelt sich um ein Zusatzmodul, das separat lizenziert wird und von ODI abhängig ist).

Die Websphere-Lösungssuite von IBM (erworben durch die Übernahme von Ascential) umfasst: QualityStage.

Business Objects, jetzt ein SAP-Unternehmen, verfügt über eine Datenqualität Produkt im Rahmen seiner Enterprise Information Management (EIM)-Suite.

Zu den weiteren großen Datenqualitätsmarken gehören: Datenfluss (ein SAS-Unternehmen) und Trillium-Software (ein Harte-Hanks-Unternehmen)

Die Gartner Group veröffentlicht jährlich einen Magic Quadrant für Datenqualitäts-Lösungssuiten.Anbieter, die in diesen Magic Quadrants gut abschneiden, stellen registrierten Benutzern normalerweise den gesamten Bericht online auf ihrer Website zur Verfügung (Beispiel 1, Beispiel 2).

Andere Tipps

Auf der Open-Source-Seite gibt es jetzt eine Python-Bibliothek für diese Art der Datensatzdeduplizierung/Entitätsauflösung: Entduplizieren.

Erfordert Programmierkenntnisse, ist aber kostenlos und kann auf einem Laptop statt auf einem riesigen Server ausgeführt werden.

Hier finden Sie eine Übersicht über wie es funktioniert.

Erkenntnisse aus der Verwendung von FirstLogic.(Andere Produkte sollten ähnlich sein.) Zum Vergleich: Wir erhielten Dateien aus Dutzenden von Quellen, und jedes hatte ein anderes Format.Wir mussten wissen, wer zu unserer Datenbank hinzugefügt werden musste, wer aktualisiert werden musste und wer nur als „auf der Liste“ markiert werden musste.

  1. Ich hatte erwartet, dass sich die Software eine gesamte Datei ansieht und feststellt, dass Spalte A beispielsweise die Nachnamenspalte sein muss, wenn Spalte A in 98 von 100 Zeilen Nachnamen enthält.Das ist nicht wahr;Jeder Datensatz wird einzeln verarbeitet.

  2. Wenn Sie genau wissen, welche Daten sich in welchem ​​Feld befinden, können Sie dies der Software mitteilen und sie wird damit umgehen.Aber wenn Sie sich nicht immer sicher sind, ist es besser, einfach die ganze Zeichenfolge zu geben und die Software das herausfinden zu lassen.Ein Beispiel hierfür ist ein Nachnamenfeld, das etwa „Smith Jr MD“ enthält.Wenn Sie es als Nachnamenspalte deklarieren, wird davon ausgegangen, dass der Nachname „Smith Jr MD“ ist.Wenn Sie jedoch „John Smith Jr MD“ übergeben und die Software das herausfinden lässt, werden alle Bits korrekt identifiziert.

  3. Einige Dinge, die offensichtlich schienen, waren es nicht.Standardmäßig geht FirstLogic beispielsweise nicht davon aus, dass ein Komma „Nachname, Vorname“ bedeutet.Es gibt tatsächlich eine sehr große Liste mit Nachnamen und eine sehr große Liste mit Vornamen, also geht man davon aus, dass das Komma einfach ignoriert werden kann.Wir hatten ständig Probleme mit Leuten wie „John, Thomas“.Und manchmal kam es zu Verwirrung, denn was für uns wie ein offensichtlicher Nachname aussah, war in Wirklichkeit ein spanischer Vorname oder so etwas.

  4. Es ist schwierig, das System zum Hinzufügen von Dummy-Daten zu verwenden.Wenn Sie Personen mit Namen wie „Testkonto“ oder „TBD“ haben, werden diese überhaupt nicht verarbeitet – FirstLogic verwirft den Datensatz, da keine erkannten Datenbits gefunden wurden.

  5. Eine individuelle Anpassung des Systems ist zwar möglich, aber nicht so einfach, wie es die Vertriebsmitarbeiter klingen lassen.Es gibt eine Million Optionen sowie benutzerdefinierte Dateien und Wörterbücher.Sie müssen die Zeit investieren, um zu verstehen, wie es funktioniert, wenn Sie es anpassen möchten.Es ist wie ein RDBMS oder ein ETL-Tool.Es ist keine magische Blackbox.

  6. Es verfügt außerdem über zahlreiche Datenqualitätsfunktionen, die den Kauf der Software rechtfertigen, deren Erlernen und Anwenden jedoch einen besonderen Aufwand erfordern.

  7. Die Tools sind nicht wirklich darauf ausgelegt, eine Liste anhand einer Masterdatei zu verarbeiten;Sie wurden für Merge-Purge-Vorgänge erstellt.Es ist möglich (wir machen es), aber es erfordert, dass Sie Ihre Datenbank als Liste behandeln (was erfordert, dass Sie alle Live-Datensätze in eine flache Datei extrahieren).Je mehr Kontrolle Sie außerdem darüber haben möchten, welche Datensätze wohin verschoben werden (d. h.Wenn der Name zu 80 % übereinstimmt und die ersten beiden Ziffern der Postleitzahl identisch sind, handelt es sich wahrscheinlich um dieselbe Person usw.), desto komplizierter wird Ihr Batch-Prozess.

  8. Schließlich haben wir festgestellt, dass die Verarbeitung von „John Smith“ und die Verarbeitung von „Annabelle DiGiovanni“ sehr unterschiedliche Dinge sind, wenn man herausfinden möchte, ob zwei Personen an unterschiedlichen Adressen tatsächlich dieselben sind.Sie können die Software so optimieren, dass ungewöhnliche Namen bei einer Übereinstimmung stärker gewichtet werden als gebräuchliche Namen, aber wer hat schon die Zeit?Unser Matching-Prozess ist zu etwa 80 % genau und wir waren mit der manuellen Verarbeitung der restlichen 20 % zufrieden.

Betrachten Sie es nicht als ein Werkzeug zur automatischen Durchführung des Abgleichs.Betrachten Sie es als ein Werkzeug, mit dem Ihre menschlichen Datenverarbeiter produktiver arbeiten können.Auf diese Weise haben Sie es so eingestellt, dass es bei Erreichen einer Genauigkeit von 80 % ein voller Erfolg ist und nicht zu kurz kommt.

Bei meinem aktuellen Job haben wir viele Probleme mit der Datenintegrität.Wir versuchen, die Daten vor dem Laden zu „säubern“, um die Qualität sicherzustellen.Wir verwenden derzeit Melissa Data, um Namen, Adressen und E-Mails zu bereinigen.Es macht einen ziemlich guten Job, Dinge zu standardisieren, bevor wir es laden.Auf diese Weise können wir doppelte Daten vermeiden.

Außerdem verfügt SQL Server Integration Services (ich weiß, dass Sie Oracle verwenden) über eine Komponente, die einen „Fuzzy“-Abgleich für Zeichenfolgen durchführt, sodass Sie eine nahezu Übereinstimmung anstelle einer direkten Eins-zu-Eins-Übereinstimmung finden können.Es heißt Fuzzy Lookup.Im Grunde gibt es Ihnen eine Punktzahl, die Ihnen sagt, wie nah die beiden Eingaben an einer Übereinstimmung sind ...Sie können dann Schwellenwerte festlegen, um ihm mitzuteilen, wie nah es sein muss, um es als Übereinstimmung zu betrachten (d. h.innerhalb von 80 % oder was auch immer).

In der Vergangenheit habe ich auch verwendet SOUNDEX um festzustellen, ob Namen bei der Bestimmung von Duplikaten ähnlich waren.Es gibt viele SOUNDEX-Implementierungen.

Viel Glück.

Der Begriff für das Problem, das Sie lösen möchten, lautet „Record Linking“.

Ich kann kein bestimmtes Tool empfehlen.Suchen Sie nach „Software zum Verknüpfen von Datensätzen“ oder „Software zum Bereinigen von Zusammenführungen“ und mit ein wenig Recherche sollten Sie in der Lage sein, etwas zu finden, das Ihren Anforderungen entspricht.

Ich konnte eine Open-Source-Lösung mit dem Namen finden Febr.Dieses Tool wurde ursprünglich für den Bereich der biomedizinischen Forschung entwickelt, was den Namen "frei erweiterbarer biomedizinischer Aufzeichnungsverknüpfung" erklärt. Hier können Sie mehr darüber lesen: „Parallele groß angelegte Techniken zur leistungsstarken Datensatzverknüpfung“

Für einen guten Überblick über die Probleme/Lösungen im Zusammenhang mit der Datensatzverknüpfung lesen Sie weiter „Zusammenführen/Löschen und Duplikaterkennung“.

Jeder große Anbieter hat seine eigene Lösung.Oracle, IBM, SAS Dataflux usw. behaupten alle, die Besten zu sein.

Unabhängig verifizierte Bewertung:

Am Curtin University Centre for Data Linkage in Australien wurde eine Studie durchgeführt, die den Abgleich von 4,4 Millionen Datensätzen simulierte.Identifiziert, was die Anbieter in Bezug auf die Genauigkeit hatten (Anzahl der gefundenen Übereinstimmungen vs. verfügbar).Anzahl falscher Übereinstimmungen)

  1. DataMatch Enterprise, Höchste Genauigkeit (>95 %), sehr schnell, niedrige Kosten
  2. IBM-Qualitätsstufe , hohe Genauigkeit (>90 %), sehr schnell, hohe Kosten (>100.000 $)
  3. SAS-Datenfluss, mittlere Genauigkeit (>85 %), schnell, hohe Kosten (>100.000)

Das war die beste unabhängige Bewertung, die wir finden konnten, sie war sehr gründlich.

Ich habe so etwas auf den Mitgliedslisten einer Versicherungsgesellschaft gemacht.Zum Glück hatten wir SSNs, um das Hauptmitglied zu bestimmen, aber ich musste entscheiden, ob die Angehörigen neu oder bereits vorhanden waren (nur anhand des Namens).Ich habe einen Soundex-Algorithmus als Teil einer Lösung ausprobiert, aber er schien nicht zu passen, da er anscheinend zu viele verschiedene Namen derselben Sache zuordnete (und viele Familien neigen dazu, ihre Kinder mit ähnlich klingenden Namen zu benennen).Am Ende verwendete ich nur die ersten vier Buchstaben des Vornamens der Angehörigen als eindeutige Kennung und nannte es "gut genug". Ich weiß nicht, wie ich mit George Foremans Familie umgehen würde :-)

Ich habe Dataflux in Aktion gesehen und laut unserem „Star“-Datenanalysten ist es das genaueste Tool für „Clustering“ (wie Dataflux es nennt), das er für die Verknüpfung von Namen von Personen und Unternehmen gefunden hat.Allerdings ist es ziemlich teuer.

Es handelt sich um ein klassisches Problem der Datensatzverknüpfung.Tippfehler, fehlende Buchstaben usw.kann mit einem probabilistischen Ansatz behandelt werden, indem eine Reihe von Regeln für das Blockieren definiert werden.

Eine Software, die das gut für Sie erledigen könnte, ist FRIL.In Java, kostenlos und sehr benutzerfreundlich.Auf der Website finden Sie Links zu Tutorials und Videos.Es unterstützt DB-Konnektivität, obwohl ich mir bei Oracle nicht sicher bin.

RecLink Könnte ein anderer Weg sein, obwohl Sie wahrscheinlich härter arbeiten müssten, um es zum Laufen zu bringen, da es (meines Wissens) keine Handbücher/Tutorials gibt.

Es gibt auch kostenlose Optionen RELAIS.

ich benutzte dataladder.com für einen großen Datensatz von Namen.Sie haben fantastische Arbeit geleistet und verschiedene Datenbanken mit sehr unterschiedlichen Schreibweisen abgeglichen und viele Duplikate herausgeschnitten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top