Tipps & Tricks: Dubletten

Große Datenmengen verlangen spezielle Werkzeuge. Wenn Sie Millionen von Datensätzen abgleichen oder darin suchen möchten, muss die Performance stimmen. TOLERANT Match bietet passgenaue Möglichkeiten, die Performance zu optimieren.

Partitionierung

Die Partitionierung ist ein zentrales Element in TOLERANT Match. Sie hat direkten Einfluss auf die Performance sowie Art und Menge der gefundenen Daten. Bei der Partitionierung werden alle Datensätze vor der Verarbeitung N Datenbereichen (»Partitionen«) zugeordnet (»partitioniert«). Die Zuordnung erfolgt anhand konfigurierbarer Kriterien, durch die jeder Datensatz auf eine Partition (1..N) abgebildet wird.

Partition

Bei der Suche wird dann nur noch in den Partitionen gesucht, die sich aufgrund der Werte in der Suche ergeben. So kann die Zeit für eine Suche gegenüber der Verarbeitung ohne Partitionierung deutlich reduziert werden. Für große Datenmengen (mehr als etwa 1 Million Datensätze) sollte also immer die Partitionierung verwendet werden.

Die Produkte TOLERANT Match Batch und TOLERANT Match Service unterscheiden sich bezüglich der Partitionierung. TOLERANT Match Batch verwendet für die Partitionierung ein Feld, TOLERANT Match Service mehrere Felder. Dies hat den Vorteil, dass bei TOLERANT Match Service auch dann eine Partitionierung – und damit eine Verbesserung der Performance – möglich ist, wenn nicht immer dieselben Felder in einer Suche verwendet werden.

Die Postleitzahl ist ein typisches Beispiel für ein Feld, über das partitioniert wird. Datensätze mit derselben Postleitzahl oder gemeinsamen Anfangsziffern der Postleitzahl werden derselben Partition zugeordnet, können also miteinander verglichen werden. In TOLERANT Match Service könnte man neben der Postleitzahl weitere Felder, wie einen Kundentyp oder ein Geburtsdatum, für die Partitionierung verwenden. Der Vorteil liegt auf der Hand: Optimierte Suchoperationen sind für unterschiedliche Kombinationen von Suchbegriffen möglich, auch ohne dass immer dasselbe Feld (wie z.B. die Postleitzahl) enthalten sein muss.

Bitte beachten Sie, dass nur über Felder partitioniert werden sollte, deren Werte vollständig gefüllt und zuverlässig sind. Im Fall der Postleitzahl sollte also eine postalische Prüfung und Standardisierung aller Datensätze vorangegangen sein, zum Beispiel mit der Software TOLERANT Post. So wird die Zuordnung zu korrekten Partitionen sichergestellt.

Abgleichsart DICECOEFF bevorzugen

Für den Vergleich zweier Feldwerte in TOLERANT Match stehen eine Reihe von Abgleichsarten zur Verfügung (DICECOEFF, COMPARE, etc.). Diese Abgleichsarten unterscheiden sich vor allem in der Art, wie kurze übereinstimmende Textfragmente sich auf das Ergebnis auswirken; entsprechend haben sie typische Einsatzgebiete.

Vor allem aber beeinflussen die Abgleichsarten die Performance. Für große Datenmengen sollte DICECOEFF verwendet werden, weil hierbei eine besondere Implementierung die Performance optimiert.

emptyScore gezielt einsetzen

Es gibt eine elegante Möglichkeit, nicht gefüllte Felder bei der Suche mit TOLERANT Match zu berücksichtigen: Das Konfigurations-Element »emptyScore« kann leere Felder zweckmäßig verarbeiten. Auf diese Weise werden nur wenige Regeln in einer Konfiguration benötigt.

Wenn diese Möglichkeit jedoch bei sehr großen Datenmengen genutzt wird, kann die Performance sinken. In solchen Fällen empfiehlt sich stattdessen die Definition mehrerer Regeln, die für unterschiedliche leere Felder verwendet werden. Die Steuerung, wann eine Regel verwendet wird, erfolgt über Bedingungen (Conditions).

Hardware-Plattform

Neben einer optimalen Konfiguration bestimmt natürlich die zur Verfügung stehende Hardware-Plattform entscheidend die Performance von TOLERANT Match. Im Gegensatz zu anderen TOLERANT Produkten hängt die Dimensionierung bei TOLERANT Match sehr stark von den Daten ab, die verarbeitet werden sollen. Entscheidend für eine hohe Leistung sind möglichst viel Hauptspeicher – insbesondere bei TOLERANT Match Service – und hohe CPU-Leistung.

Datenbank

Wird für TOLERANT Match Service eine Datenbank zur Speicherung der Daten verwendet, sollte diese mit möglichst niedriger Latenzzeit an TOLERANT Match Service angebunden werden. Auch die schnelle Verarbeitung von Anfragen ist essenziell. Wir empfehlen daher, eine Datenbank auf demselben Server zu installieren wie TOLERANT Match Service; oder auf einem Server, der über eine sehr schnelle Netzanbindung erreichbar ist. Für den Datenbank-Server hat sich der Einsatz von SSD-Festplatten bewährt.

Ausführungsplan

Die Geschwindigkeit, mit der TOLERANT Match Suchanfragen verarbeitet, hängt neben der eingesetzten Hardware und der Datenmenge auch stark von der Konfiguration des Programms ab. Unterschiedliche Feldtypen, Partitionierung, die in einer Suche verwendeten Felder sowie die konkreten Werte in einer Suche haben Einfluss auf die Geschwindigkeit. Um immer eine möglichst kurze Antwortzeit zu erreichen, wird vor jeder Suche ein Plan für den Ablauf der individuellen Suchanfrage ermittelt. Dieser Ausführungsplan liefert in den allermeisten Fällen ein gutes Ergebnis. Wenn der Ausführungsplan manuell optimiert werden soll, kann dies jederzeit über die Konfiguration erfolgen.