FUZZYJOIN-Befehl
Konzept-Informationen
Verwenden Sie die Fuzzy-Übereinstimmung, um Felder aus zwei Analytics-Tabellen in einer neuen einzelnen Analytics-Tabelle zu vereinen.
Hinweis
Um nahezu identische Werte in einem einzelnen Zeichenfeld (Fuzzy-Duplikate) zu erkennen, lesen Sie FUZZYDUP-Befehl.
Informationen über die Zusammenführung von Tabellen mit exakt übereinstimmenden Schlüsselfeldwerten finden Sie in JOIN-Befehl.
Syntax
FUZZYJOIN {DICE PERCENT Prozentsatz NGRAM N-Gramm-Länge|LEVDISTANCE DISTANCE Wert} PKEY primäres_Schlüsselfeld SKEY sekundäres_Schlüsselfeld {FIELDS Primärfelder|FIELDS ALL<EXCLUDE Primärfelder <...n>>} <WITH Sekundärfelder|WITH ALL <EXCLUDE Sekundärfelder <...n>>> <IF Test> <OPEN> TO Tabellenname <FIRSTMATCH> <WHILE Test> <FIRST Bereich|NEXT Bereich> <APPEND>
Hinweis
Sie können den Befehl FUZZYJOIN nicht lokal für eine Servertabelle ausführen.
Sie müssen den Befehlsnamen FUZZYJOIN vollständig ausschreiben. Eine Abkürzung ist nicht möglich.
Parameter
| Name | Beschreibung |
|---|---|
| DICE PERCENT Prozentsatz NGRAM N-Gramm-Länge | LEVDISTANCE DISTANCE Wert |
Der zu verwendende Algorithmus für die Fuzzy-Übereinstimmung. DICE Den Algorithmus „Dice-Koeffizient“ verwenden
LEVDISTANCE Den Algorithmus „Levenshtein-Distanz“ verwenden
|
| PKEY Primärschlüsselfelder |
Das Zeichenschlüsselfeld oder der Ausdruck in der Primärtabelle. Sie können nur ein Primärschlüsselfeld festlegen. |
| SKEY Sekundärschlüsselfeld |
Das Zeichenschlüsselfeld oder der Ausdruck in der Sekundärtabelle. Sie können nur ein Sekundärschlüsselfeld festlegen. |
| FIELDS Primärfelder | FIELDS ALL |
Die in die zusammengeführte Ausgabedatei einzuschließenden Felder oder Ausdrücke aus der Primärtabelle.
Hinweis Sie müssen das Primärschlüsselfeld explizit festlegen, wenn es in der zusammengeführten Tabelle enthalten sein soll. Wenn Sie FIELDS ALL angeben, wird es auch eingeschlossen. |
| EXCLUDE Primärfelder Optional |
Nur gültig, wenn eine Fuzzy-Zusammenführung mit FIELDS ALL durchgeführt wird. Die Felder, die von dem Befehl ausgeschlossen werden sollen. Durch EXCLUDE können Sie eine Feinanpassung des Schlüsselworts ALL vornehmen, indem Sie die angegebenen Felder ausschließen. EXCLUDE muss unmittelbar auf FIELDS ALL folgen, oder auf das letzte Vorkommen des Schlüsselworts ALL, wenn Sie Felder aus einer oder mehreren verbundenen Tabellen einschließen. Beispiel: FIELDS ALL EXCLUDE Feld_1 Feld_2 FIELDS ALL Name_der_verbundenen_Tabelle.ALL EXCLUDE Feld_1 Feld_2 |
|
WITH Sekundärfelder | WITH ALL Optional |
Die in die zusammengeführte Ausgabedatei einzuschließenden Felder oder Ausdrücke aus der Sekundärtabelle.
Hinweis Sie müssen das Sekundärschlüsselfeld explizit festlegen, wenn es in der zusammengeführten Tabelle enthalten sein soll. Wenn Sie WITH ALL angeben, wird es auch eingeschlossen. |
| EXCLUDE Sekundärfelder Optional |
Nur gültig, wenn eine Fuzzy-Zusammenführung mit WITH ALL durchgeführt wird. Die Felder, die von dem Befehl ausgeschlossen werden sollen. Durch EXCLUDE können Sie eine Feinanpassung von WITH ALL vornehmen, indem Sie die angegebenen Felder ausschließen. EXCLUDE muss unmittelbar nach WITH ALL angegeben werden. Beispiel: WITH ALL EXCLUDE Feld_1 Feld_2 |
|
IF Test Optional |
Ein bedingter Ausdruck, der wahr sein muss, damit ein Datensatz verarbeitet wird. Der Befehl wird nur für Datensätze ausgeführt, welche die Bedingung erfüllen. Hinweis Der IF-Parameter wird nur für Datensätze ausgewertet, die nach Anwendung von Bereichsparametern (WHILE, FIRST, NEXT) in einer Tabelle übrig sind. Hinweis Die IF-Bedingung kann die Primärtabelle, die Sekundärtabelle oder beide referenzieren. |
|
OPEN Optional |
Öffnet die durch den Befehl erstellte Tabelle, nachdem der Befehl ausgeführt wird. Nur gültig, wenn der Befehl eine Ausgabetabelle erstellt. |
| TO Tabellenname |
Der Ort, an den die Ergebnisse des Befehls gesendet werden sollen:
|
|
FIRSTMATCH Optional |
Gibt an, dass jeder Primärschlüsselwert mit lediglich dem ersten Vorkommen eines Sekundärschlüsselwerts zusammengeführt wird. Falls das erste Vorkommen eine genaue Übereinstimmung ist, werden alle folgenden Fuzzy-Übereinstimmungen für den Primärschlüsselwert nicht in die zusammengeführte Ausgabetabelle aufgenommen. Wenn Sie FIRSTMATCH nicht angeben, besteht das Standardverhalten von FUZZYJOIN darin, jeden Primärschlüsselwert mit allen Vorkommen von übereinstimmenden Sekundärschlüsseln zusammenzuführen. FIRSTMATCH ist hilfreich, wenn Sie nur wissen möchten, ob es in den beiden Tabellen überhaupt Übereinstimmungen (genaue oder Fuzzy-Übereinstimmungen) gibt, und nicht warten möchten, bis alle Übereinstimmungen ermittelt wurden. Sie können FIRSTMATCH auch verwenden, wenn Sie sicher sind, dass es für jeden Primärschlüsselwert höchstens eine Übereinstimmung in der Sekundärtabelle gibt. |
|
WHILE Test Optional |
Ein bedingter Ausdruck, der wahr sein muss, damit ein Datensatz verarbeitet wird. Der Befehl wird ausgeführt, bis die Bedingung falsch ist oder das Tabellenende erreicht wurde. Hinweis Wenn Sie WHILE zusammen mit FIRST oder NEXT verwenden, endet die Datensatzverarbeitung, sobald eine Grenze erreicht wird. |
|
FIRST Bereich | NEXT Bereich Optional |
Die Anzahl der zu verarbeitenden Datensätze:
Verwenden Sie Bereich, um die Anzahl der zu verarbeitenden Datensätze anzugeben. Wenn Sie FIRST und NEXT nicht angeben, werden standardmäßig alle Datensätze verarbeitet. |
|
APPEND Optional |
Hängt die Befehlsausgabe an das Ende einer vorhandenen Datei an, statt die Datei zu überschreiben. Hinweis Vergewissern Sie sich, dass die Struktur der Befehlsausgabe und der bestehenden Datei identisch sind:
Analytics hängt eine Ausgabe an eine bestehende Datei beliebiger Struktur an. Falls die Struktur der Ausgabe und der bestehenden Datei nicht übereinstimmen, kann die Datenintegrität verletzt sein, es können Daten fehlen oder falsch sein. |
|
ISOLOCALE Gebietsschema_Code Optional |
Hinweis Gilt nur für die Unicode-Edition von Analytics. Das Systemgebietsschema im Format Sprache_Land. Für kanadisches Französisch geben Sie beispielsweise fr_ca ein. Verwenden Sie die folgenden Codes:
Wenn Sie ISOLOCALE verwenden, wird das Standard-Systemgebietsschema nicht verwendet. |
Beispiele
Fuzzy-Übereinstimmung zur Zusammenführung von zwei Tabellen verwenden, um Mitarbeiter zu finden, die auch Lieferanten sein könnten
Im folgenden Beispiel werden die Tabellen „Mitarbeiterstamm“ und „Lieferant“ mit Hilfe des gemeinsamen Schlüsselfelds der Anschrift (Felder „Adresse“ und „Lieferantenstraße“) zusammengeführt.
Der FUZZYJOIN-Befehl erstellt eine neue Tabelle, die entweder aus genauen oder Fuzzy-Übereinstimmungen von Primär- und Sekundärdatensätzen besteht. Das Ergebnis ist eine Liste der Mitarbeiter und Lieferanten, die entweder identische oder ähnliche Adressen haben.
FUZZYJOIN mit dem Algorithmus „Dice-Koeffizient“
OPEN Mitarbeiterstamm PRIMARY
OPEN Lieferant SECONDARY
FUZZYJOIN DICE PERCENT 0,8000 NGRAM 2 PKEY Adresse SKEY Lieferantenstraße FIELDS Mitarbeiternummer Vorname Nachname Adresse WITH Lieferantennummer Lieferantenname Lieferantenstraße OPEN TO "Mitarbeiter_Lieferanten_Übereinstimmungen"
FUZZYJOIN mit dem Algorithmus „Levenshtein-Distanz“
OPEN Mitarbeiterstamm PRIMARY
OPEN Lieferant SECONDARY
FUZZYJOIN LEVDISTANCE DISTANCE 5 PKEY Adresse SKEY Lieferantenstraße FIELDS Mitarbeiternummer Vorname Nachname Adresse WITH Lieferantennummer Lieferantenname Lieferantenstraße OPEN TO "Mitarbeiter_Lieferanten_Übereinstimmungen"
Alle Felder einschließen
Diese Version des FUZZYJOIN-Befehls schließt alle Felder der Primär- und Sekundärtabellen in die zusammengeführte Ausgabetabelle ein.
OPEN Mitarbeiterstamm PRIMARY
OPEN Lieferant SECONDARY
FUZZYJOIN LEVDISTANCE DISTANCE 5 PKEY Adresse SKEY Lieferantenstraße FIELDS ALL WITH ALL OPEN TO "Mitarbeiter_Lieferanten_Übereinstimmungen"
Wirksamkeit von Fuzzy-Übereinstimmung verbessern
Im folgenden Beispiel wird die Funktion SORTWORDS( ) verwendet, um die Wirksamkeit von Fuzzy-Übereinstimmungen zwischen den Feldern „Adresse“ und „Lieferantenstraße“ zu verbessern. Durch die Verwendung der Funktion UPPER( ) stellen Sie sicher, dass sich die Groß- und Kleinschreibung nicht auf die Sortierung von Elementen der Schlüsselfeldwerte auswirkt.
OPEN Mitarbeiterstamm PRIMARY
OPEN Lieferant SECONDARY
FUZZYJOIN LEVDISTANCE DISTANCE 5 PKEY SORTWORDS(UPPER(Adresse)) SKEY SORTWORDS(UPPER(Lieferantenstraße)) FIELDS Mitarbeiternummer Vorname Nachname Adresse WITH Lieferantennummer Lieferantenname Lieferantenstraße OPEN TO "Mitarbeiter_Lieferanten_Übereinstimmungen"
Bemerkungen
Weitere Informationen über die Funktionsweise dieses Befehls finden Sie unter Fuzzy-Zusammenführung.
Beachtung der Groß- und Kleinschreibung
Der FUZZYJOIN-Befehl unterscheidet nicht zwischen Groß- und Kleinschreibung. Dabei spielt es keine Rolle, welchen Fuzzy-Übereinstimmungs-Algorithmus Sie verwenden. „SMITH“ entspricht also „smith“.
Führende und nachgestellte Leerzeichen
Der FUZZYJOIN-Befehl schneidet führende und nachgestellte Leerzeichen in Feldern automatisch ab. Dabei spielt es keine Rolle, welchen Fuzzy-Übereinstimmungs-Algorithmus Sie verwenden. Die TRIM( )- oder ALLTRIM( )-Funktionen müssen also nicht verwendet werden, wenn die Primär- und Sekundärschlüsselfelder angegeben werden.
Wirkung von FUZZYJOIN verbessern
Drei Techniken können die Wirksamkeit des FUZZYJOIN-Befehls beträchtlich steigern:
- Einzelne Elemente in den Werten der Primär- und Sekundärschlüsselfelder sortieren
- Generische Elemente aus den Werten der Primär- und Sekundärschlüsselfelder entfernen
- Werte von Primär- und Sekundärschlüsselfeldern harmonisieren
Durch diese Techniken können Sie striktere Fuzzy-Einstellungen verwenden und dieselben Fuzzy-Übereinstimmungen erhalten, während Sie die Anzahl der Falschmeldungen verringern. Sie können die Techniken separat oder zusammen verwenden.
Einzelne Elemente in Schlüsselfeldwerten sortieren
Die Funktion SORTWORDS( ) kann die Wirksamkeit des FUZZYJOIN-Befehls verbessern, indem sie einzelne Elemente von Primär- und Sekundärschlüsselfeldern sequenziell sortiert.
Durch das Sortieren von Elementen, zum Beispiel Komponenten einer Adresse, ist es möglich, dass sich Schlüsselfeldwerte mit denselben Informationen, die ein unterschiedliches Format aufweisen, stärker angleichen. Eine stärkere Angleichung steigert die Wahrscheinlichkeit, dass Schlüsselfeldwerte als Fuzzy-Übereinstimmungen ausgewählt werden.
Weitere Informationen finden Sie unter SORTWORDS( )-Funktion.
Das Video Fuzzy Matching Using SORTWORDS() (Fuzzy-Übereinstimmungen mit SORTWORDS, nur auf Englisch) verschafft Ihnen einen Überblick zu SORTWORDS().
Hinweis
Das Sortieren von Elementen in Schlüsselfeldwerten eignet sich am besten bei einer Fuzzy-Zusammenführung nach dem Levenshtein-Distanz-Algorithmus.
Bei einer Fuzzy-Zusammenführung mit dem Dice-Koeffizient-Algorithmus muss das Sortieren von Elementen nicht unbedingt hilfreich sein. Testen Sie Beispieldaten, bevor Sie entscheiden, ob Sie SORTWORDS( ) in einer Produktionsumgebung zusammen mit dem Dice-Koeffizient-Algorithmus verwenden möchten.
Achtung
Wenn Sie SORTWORDS( ) zusammen mit dem FUZZYJOIN-Befehl verwenden, müssen Sie SORTWORDS( ) auf beide zu vergleichende Zeichenfolgen oder Felder anwenden.
Generische Elemente aus den Schlüsselfeldwerten entfernen
Die OMIT( )-Funktion kann die Effektivität des FUZZYJOIN-Befehls verbessern, indem generische Elemente wie „GmbH“ oder „AG“ bzw. Zeichen wie Kommas, Punkte und das Kaufmannsund (&) aus den Werten der Primär- und Sekundärschlüsselfelder entfernt werden.
Durch das Entfernen generischer Elemente und Satzzeichen konzentriert sich die Fuzzy-Zusammenführung nur auf den Teil der Schlüsselfeldwerte, in dem aussagekräftige Unterschiede auftreten könnten.
Weitere Informationen finden Sie unter OMIT( )-Funktion.
Schlüsselfeldwerte harmonisieren
Die Funktionen REPLACE( ) oder REGEXREPLACE( ) können die Wirksamkeit des FUZZYJOIN-Befehls verbessern, indem sie variable Ausprägungen desselben Elements der Werte von Primär- und Sekundärschlüsselfelder harmonisieren. Zum Beispiel könnten Sie „Straße“, „Str.“ und „Str“ auf denselben Wert „Str“ harmonisieren.
Durch die Harmonisierung von Elementen ist es möglich, dass sich Schlüsselfeldwerte mit denselben Informationen, die ein unterschiedliches Format aufweisen, stärker angleichen. Eine stärkere Angleichung steigert die Wahrscheinlichkeit, dass Schlüsselfeldwerte als Fuzzy-Übereinstimmungen ausgewählt werden.
Weitere Informationen finden Sie unter REPLACE( )-Funktion für einfache Ersetzungen und unter REGEXREPLACE( )-Funktion für komplexere Ersetzungen.