Ein effektiver und effizienter Vergleich erfordert das richtige Gleichgewicht zwischen Genauigkeit und Leistung. Der akkurateste Ansatz zum Vergleichen wäre die Analyse jedes Datensatzes im Vergleich zu allen anderen Datensätzen. Dies ist unpraktisch, da die Anzahl der Datensätze, die verarbeitet werden müssten, zu einer unannehmbar schlechten Leistung führen würde. Ein besserer Ansatz besteht darin, die Anzahl der im Vergleichsprozess beteiligten Datensätze auf diejenigen zu beschränken, die am wahrscheinlichsten übereinstimmen. Sie können dies mithilfe von Vergleichsschlüsseln tun. Ein Vergleichsschlüssel ist ein Wert, der mithilfe eines von Ihnen definierten Algorithmus für jeden Datensatz erstellt wird. Der Algorithmus nimmt Werte aus dem Datensatz und verwendet sie, um einen Vergleichsschlüsselwert zu erzeugen, der als neues Feld im Datensatz gespeichert wird.
Beispiel: Wenn der eingehende Datensatz wie folgt lautet:
Vorname: Fred
Nachname: Mertz
Postleitzahl: 21114-1687
Geschlechtscode: M
Und Sie eine Vergleichsschlüsselregel definieren, die einen Vergleichsschlüssel generiert, indem Daten aus dem Datensatz wie folgt kombiniert werden:
Eingabefeld | Startposition | Länge |
---|---|---|
Postleitzahl | 1 | 5 |
Postleitzahl | 7 | 4 |
Nachname | 1 | 5 |
Vorname | 1 | 5 |
Geschlechtscode | 1 | 1 |
Dann ergäbe sich der Schlüssel:
211141687MertzFredM
Alle Datensätze mit demselben Vergleichsschlüssel werden in einer Übereinstimmungsgruppe platziert. Der Vergleichsprozess vergleicht anschließend die Datensätze in der Gruppe miteinander, um Übereinstimmungen zu finden.
Größe und Leistung einer Übereinstimmungsgruppe
Der Vergleichsschlüssel bestimmt die Größe der Übereinstimmungsgruppe und damit die Leistung Ihres Datenflusses. Wenn die Größe der Übereinstimmungsgruppe verdoppelt wird, verdoppelt sich die Ausführungszeit. Wenn Sie beispielsweise einen Vergleichsschlüssel definieren, der eine Gruppe von 20 potenziell übereinstimmenden Datensätzen erzeugt, dauert die Verarbeitung doppelt so lange, als wenn Sie den Vergleichsschlüssel so ändern, dass die Übereinstimmungsgruppe nur 10 potenziell übereinstimmende Datensätze enthält. Der Nachteil einer „Verschärfung“ der Vergleichsschlüsselregel für eine kleinere Übereinstimmungsgruppe ist, dass Sie den Ausschluss von übereinstimmenden Datensätzen riskieren. Das „Lockern“ der Vergleichsschlüsselregeln verringert die Wahrscheinlichkeit, dass ein übereinstimmender Datensatz aus der Gruppe ausgeschlossen wird. Dadurch erhöht sich jedoch die Gruppengröße. Um das richtige Gleichgewicht für Ihre Daten zu finden, ist es wichtig, dass Sie mit einer Vielzahl von Vergleichsschlüsselregeln testen. Verwenden Sie dabei repräsentative Daten, die Sie in der Produktion verarbeiten möchten.
Dichte
Beim Entwurf eines Vergleichsschlüssels ist es wichtig, die Dichte der Daten zu berücksichtigen. Dichte bezieht sich auf den Grad, in dem die Daten auf Übereinstimmungsgruppen verteilt werden können. Da die Leistung durch die Anzahl der vom System durchgeführten Vergleiche bestimmt wird, führen die Vergleichsschlüssel, die eine kleine Anzahl von großen Übereinstimmungsgruppen erzeugen, zu einer schlechteren Leistung als die Vergleichsschlüssel, die eine große Anzahl von kleinen Übereinstimmungsgruppen erzeugen.
Um dieses Konzept zu veranschaulichen, betrachten Sie eine Situation, in der Sie einen Satz aus einer Million zu vergleichender Namens- und Adressdatensätze haben. Sie können einen Vergleichsschlüssel als die ersten drei Byte der Postleitzahl und den ersten Buchstaben des Nachnamens definieren. Wenn die Datensätze alle aus den USA stammen, würde der Vergleichsschlüssel eine gute Anzahl von Übereinstimmungsgruppen erzeugen und wahrscheinlich eine annehmbare Leistung aufweisen. Wenn jedoch alle Datensätze aus New York stammen, würden die Postleitzahlen alle mit „100“ beginnen und Sie würden letztlich nur 26 Übereinstimmungsgruppen erhalten. Dies würde große Übereinstimmungsgruppen erzeugen, die durchschnittlich etwa 38.000 Datensätze enthalten.
Sie können die maximale Anzahl der für jede Übereinstimmungsgruppe durchgeführten Vergleiche berechnen, indem Sie die folgende Formel anwenden:
N * (N-1) / 2
Dabei steht N für die Anzahl der Datensätze in der Übereinstimmungsgruppe.
Wenn Sie also über 26 Übereinstimmungsgruppen mit jeweils 38.000 Datensätzen verfügen, würde die maximale Anzahl der durchgeführten Vergleiche etwa 18,7 Milliarden betragen. So wird diese Zahl berechnet:
Bestimmen Sie zunächst die maximale Anzahl der Vergleiche pro Übereinstimmungsgruppe:
38.000 * (38.000-1) / 2 = 721.981.000
Multiplizieren Sie anschließend diesen Betrag mit der Anzahl der Übereinstimmungsgruppen:
721.981.000 * 26 = 18.771.506.000
Gäbe es stattdessen 100 eindeutige Werte für die ersten 3 Byte der Postleitzahl, so hätten Sie 2.600 Übereinstimmungsgruppen mit durchschnittlich 380 Datensätzen. In diesem Fall würde die maximale Anzahl der Vergleiche 187 Millionen betragen. Das ist 100 Mal weniger. Wenn also die Datensätze nur aus New York stammen, könnten Sie die ersten vier oder sogar fünf Byte der Postleitzahl für den Vergleichsschlüssel verwenden, um mehr Übereinstimmungsgruppen zu erzeugen und die Anzahl der Vergleiche zu reduzieren. Dabei könnten Sie einige Übereinstimmungen überspringen, aber der Vorteil wäre eine enorm kürzere Ausführungszeit.
In Wirklichkeit führt ein Vergleichsschlüssel wie in diesem Beispiel aufgrund von Abweichungen in den Daten nicht zu Übereinstimmungsgruppen gleicher Größe. Es gibt z. B. viel mehr Personen, deren Nachname mit „S“ beginnt als mit „X“. Aus diesem Grund sollten Sie Ihre Bemühungen auf die Größenverringerung der größten Übereinstimmungsgruppen konzentrieren. Eine Übereinstimmungsgruppe mit 100.000 Datensätzen ist 10 Mal größer als eine Übereinstimmungsgruppe mit 10.000 Datensätze. Sie erfordert jedoch 100 Mal mehr Vergleiche und wird 100 Mal so lange dauern. Nehmen wir beispielsweise an, dass Sie eine Postleitzahl mit fünf Byte und das Feld „AddressLine1“ mit sechs Byte für Ihren Vergleichsschlüssel verwenden. Oberflächlich sieht das nach einem relativ guten Vergleichsschlüssel aus. Das Problem sind jedoch Postfachadressen. Während die meisten Übereinstimmungsgruppen eine akzeptable Größe haben können, gibt es einige sehr große Übereinstimmungsgruppen mit Schlüsseln wie 10002PO BOX, die eine sehr große Anzahl von Datensätzen enthalten. Um die großen Übereinstimmungsgruppen aufzubrechen, können Sie den Vergleichsschlüssel ändern, um die ersten Ziffern der Postfachnummer einzubeziehen.
Abstimmen des Vergleichsschlüssels mit der Vergleichsregel
- Der Vergleichsschlüssel sollte alle Felder enthalten, die die Vergleichsregel für eine genaue Übereinstimmung erfordert.
- Der Vergleichsschlüssel sollte die gleiche Art von Algorithmus wie die Vergleichsregel verwenden. Wenn Sie beispielsweise einen Vergleichsschlüssel für die Verwendung einer Vergleichsregel mit einem phonetischen Algorithmus erstellen, sollte die Vergleichsschlüssel ebenfalls einen phonetischen Algorithmus verwenden.
- Der Vergleichsschlüssel sollte mithilfe der Daten aus allen Feldern erstellt werden, die in der Vergleichsregel verwendet werden.
- Überlegen Sie, inwieweit der Vergleichsschlüssel betroffen ist, wenn Daten aus einem oder mehreren Feldern fehlen, die für den Vergleichsschlüssel verwendet werden. Gehen wir davon aus, dass Sie eine mittlere Initiale als Teil des Vergleichsschlüssels verwenden. Sie haben außerdem einen Datensatz für John A. Smith und einen anderen für John Smith. Sie haben die Vergleichsregel so konfiguriert, dass sie leere Werte im Feld für die mittlere Initiale ignoriert. Dadurch würden diese beiden Datensätze entsprechend Ihrer Vergleichsregel übereinstimmen. Da der Vergleichsschlüssel jedoch die mittlere Initiale verwendet, würden die beiden Datensätze in verschiedenen Übereinstimmungsgruppen landen und nicht miteinander verglichen werden. Dies würde den Zweck Ihrer Vergleichsregel aufheben.