Transformation zur Fuzzy-Gruppierung

Gilt für:SQL Server SSIS Integration Runtime in Azure Data Factory

Die Transformation für Fuzzygruppierung führt Datenbereinigungsaufgaben durch, indem Datenzeilen identifiziert werden, die wahrscheinlich Duplikate sind, und eine kanonische Datenzeile ausgewählt wird, die zum Standardisieren der Daten verwendet wird.

Hinweis

Ausführliche Informationen über die Transformationen für Fuzzygruppierung wie Leistungs- und Speicherbeschränkungen finden Sie im Whitepaper Fuzzy Lookup and Fuzzy Grouping in SQL Server Integration Services 2005.

Für die Transformation für Fuzzygruppierung ist eine Verbindung zu einer Instanz von SQL Server erforderlich, damit die temporären SQL Server-Tabellen erstellt werden können, die der Transformationsalgorithmus zur Durchführung benötigt. Die Verbindung muss einem Benutzer zugeordnet sein, der berechtigt ist, Tabellen in der Datenbank zu erstellen.

Um die Transformation zu konfigurieren, müssen Sie die Eingabespalten auswählen, die zum Identifizieren von Duplikaten verwendet werden sollen, und Sie müssen für jede Spalte den Typ der Übereinstimmung auswählen, entweder fuzzy oder genau. Mit einer genauen Übereinstimmung wird garantiert, dass nur Zeilen mit identischen Werten in dieser Spalte gruppiert werden. Die genaue Übereinstimmung kann für Spalten aller Integration Services-Datentypen verwendet werden, mit Ausnahme von DT_TEXT, DT_NTEXT und DT_IMAGE. Ein Fuzzy-Abgleich gruppiert Zeilen, die ungefähr dieselben Werte haben. Die Methode zur Ermittlung der annähernden Übereinstimmung von Daten basiert auf einem vom Benutzer angegebenen Ähnlichkeitsergebnis. Zur Fuzzyübereinstimmung können nur Spalten mit den Datentypen DT_WSTR und DT_STR verwendet werden. Weitere Informationen finden Sie unter Integration Services Datentypen.

Die Transformationsausgabe umfasst alle Eingabespalten, eine oder mehrere Spalten mit standardisierten Daten sowie eine Spalte, die das Ähnlichkeitsergebnis enthält. Das Ergebnis ist ein Dezimalwert zwischen 0 und 1. Die kanonische Zeile weist ein Ergebnis von 1 auf. Andere Zeilen in der Fuzzygruppierung weisen Ergebnisse auf, die angeben, wie stark die Zeile mit der kanonischen Zeile übereinstimmt. Je näher das Ergebnis an 1 liegt, desto genauer stimmt die Zeile mit der kanonischen Zeile überein. Wenn die Fuzzygruppierung Zeilen enthält, die genaue Duplikate der kanonischen Zeile sind, besitzen diese Zeilen ebenfalls das Ergebnis 1. Die Transformation entfernt doppelte Zeilen nicht, sondern gruppiert diese, indem ein Schlüssel erstellt wird, der die kanonische Zeile in Bezug zu ähnlichen Zeilen stellt.

Die Transformation produziert eine Ausgabezeile für jede Eingabezeile sowie die folgenden zusätzlichen Spalten:

  • _key_in, eine Spalte, mit der jede Zeile eindeutig identifiziert wird.

  • _key_out, eine Spalte, die eine Gruppe duplizierter Zeilen identifiziert. Die _key_out-Spalte hat den Wert der _key_in-Spalte in der kanonischen Datenzeile. Zeilen mit demselben Wert in _key_out gehören zur selben Gruppe. Der _key_out Wert für eine Gruppe entspricht dem Wert _key_in in der kanonischen Datenzeile.

  • _score, ein Wert zwischen 0 und 1, der die Ähnlichkeit der Eingabezeile gegenüber der kanonischen Zeile angibt.

Dies sind die Standardspaltennamen; Sie können die Transformation für Fuzzygruppierung auch so konfigurieren, dass dabei andere Spaltennamen verwendet werden. Die Ausgabe enthält außerdem für jede Spalte, die an einer Fuzzygruppierung teilnimmt, einen Ähnlichkeitswert.

Die Transformation „Fuzzygruppierung“ bietet zwei Features zum Anpassen der von ihr ausgeführten Gruppierung: Token-Trennzeichen und Ähnlichkeitsschwellenwert. Die Transformation bietet eine Reihe von Standardtrennzeichen für die Tokenisierung der Daten, Sie können jedoch auch neue Trennzeichen hinzufügen, mit denen sich die Tokenisierung Ihrer Daten weiter verbessern lässt.

Der Schwellenwert für Ähnlichkeit gibt an, wie strikt die Transformation bei der Erkennung von Duplikaten vorgeht. Die Schwellenwerte für Ähnlichkeit können auf der Komponentenebene und auf der Spaltenebene festgelegt werden. Der Schwellenwert für Ähnlichkeit auf der Spaltenebene ist nur für Spalten verfügbar, die eine Fuzzyübereinstimmung durchführen. Der Ähnlichkeitsbereich liegt zwischen 0 und 1. Je näher der Schwellenwert an 1 liegt, desto mehr müssen sich die Zeilen und Spalten ähneln, um als Duplikate gewertet zu werden. Sie geben den Schwellenwert für Ähnlichkeit für Zeilen und Spalten an, indem Sie die MinSimilarity-Eigenschaft auf Komponentenebene und auf Spaltenebene festlegen. Um der auf der Komponentenebene angegebenen Ähnlichkeit gerecht zu werden, müssen alle Zeilen über alle Spalten eine Ähnlichkeit haben, die größer oder gleich dem Schwellenwert für Ähnlichkeit ist, der auf der Komponentenebene angegeben ist.

Die Transformation für Fuzzy-Gruppierung berechnet interne Ähnlichkeitsmaße, und Zeilen, deren Ähnlichkeit unter dem in MinSimilarity angegebenen Wert liegt, werden nicht gruppiert.

Zum Identifizieren eines Schwellenwerts für Ähnlichkeit, der für Ihre Daten geeignet ist, müssen Sie eventuell die Transformation für Fuzzygruppierung mehrfach anwenden und dabei unterschiedliche minimale Schwellenwerte für Ähnlichkeit verwenden. Zur Laufzeit enthalten die Ergebnisspalten in der Transformationsausgabe die Ähnlichkeitsergebnisse für jede Zeile in einer Gruppe. Sie können diese Werte verwenden, um den Schwellenwert der Ähnlichkeit zu identifizieren, der für Ihre Daten geeignet ist. Wenn Sie die Ähnlichkeit erhöhen möchten, müssen Sie MinSimilarity auf einen Wert festlegen, der größer ist als der Wert in den Ergebnisspalten.

Sie können die von der Transformation durchgeführte Gruppierung anpassen, indem Sie die Eigenschaften der Spalten in der Eingabe der Transformation für Fuzzygruppierung festlegen. So gibt z.B. die FuzzyComparisonFlags-Eigenschaft an, wie die Transformation die Zeichenfolgendaten in einer Spalte vergleicht, und die ExactFuzzy-Eigenschaft gibt an, ob die Transformation eine Fuzzyübereinstimmung oder eine genaue Übereinstimmung verwendet.

Der von der Transformation für Fuzzygruppierungen verwendete Arbeitsspeicher kann durch Festlegen der benutzerdefinierten Eigenschaft MaxMemoryUsage konfiguriert werden. Sie können die Größe in Megabyte (MB) angeben oder den Wert 0 verwenden, um für die Transformation die Verwendung einer dynamischen Arbeitsspeichermenge auf Basis der Anforderungen und des verfügbaren physischen Speichers zuzulassen. Die benutzerdefinierte MaxMemoryUsage-Eigenschaft kann beim Laden des Pakets mithilfe eines Eigenschaftsausdrucks aktualisiert werden. Weitere Informationen finden Sie unter Integration Services-Ausdrücke (SSIS), Verwenden von Eigenschaftsausdrücken in Paketen und Benutzerdefinierte Eigenschaften von Transformationen.

Diese Transformation weist je eine Eingabe und eine Ausgabe auf. Eine Fehlerausgabe wird nicht unterstützt.

Zeilenvergleich

Wenn Sie die Transformation für Fuzzygruppierung konfigurieren, können Sie den Vergleichsalgorithmus angeben, den die Transformation zum Vergleichen der Zeilen in der Transformationseingabe verwendet. Wenn Sie die Exhaustive-Eigenschaft auf TRUEfestlegen, vergleicht die Transformation jede Zeile in der Eingabe mit jeder anderen Zeile in der Eingabe. Dieser Vergleichsalgorithmus kann zwar präzisere Ergebnisse produzieren, führt jedoch wahrscheinlich zu einer Einschränkung der Transformationsleistung, sofern die Anzahl der Zeilen in der Eingabe nicht gering ist. Um Leistungsprobleme zu vermeiden, wird empfohlen, die Exhaustive-Eigenschaft nur während der Paketentwicklung auf TRUE festzulegen.

Temporäre Tabellen und Indizes

Zur Laufzeit erstellt die Transformation für Fuzzygruppierung temporäre Objekte wie z. B. Tabellen und Indizes mit potenziell erheblicher Größe in der SQL Server-Datenbank, zu der die Transformation eine Verbindung herstellt. Die Größe der Tabellen und Indizes ist proportional zur Anzahl der Zeilen in der Transformationseingabe und zur Anzahl der von der Transformation für Fuzzygruppierung erstellten Token.

Die Transformation fragt auch die temporären Tabellen ab. Deshalb sollten Sie in Erwägung ziehen, die Transformation für Fuzzygruppierung eine Verbindung mit einer Nichtproduktionsinstanz von SQL Server herstellen zu lassen, insbesondere wenn auf dem Produktionsserver nur eingeschränkt Speicherplatz verfügbar ist.

Die Leistung dieser Transformation kann verbessert werden, wenn sich die dabei verwendeten Tabellen und Indizes auf dem lokalen Computer befinden.

Konfiguration der Transformation „Fuzzy-Gruppierung“

Sie können Eigenschaften mit dem SSIS -Designer oder programmgesteuert festlegen.

Klicken Sie auf eines der folgenden Themen, um weitere Informationen zu den Eigenschaften zu erhalten, die Sie im Dialogfeld Erweiterter Editor oder programmgesteuert festlegen können:

Klicken Sie auf eines der folgenden Themen, um weitere Informationen zum Festlegen der Eigenschaften dieses Tasks anzuzeigen:

Editor für die Fuzzy-Gruppierungstransformation (Registerkarte Verbindungs-Manager)

Mithilfe der Registerkarte Verbindungs-Manager des Dialogfelds Transformations-Editor für Fuzzygruppierung können Sie eine vorhandene Verbindung auswählen oder eine neue erstellen.

Hinweis

Auf dem von der Verbindung angegebenen Server muss SQL Server ausgeführt werden. Die Transformation für Fuzzygruppierung erstellt temporäre Datenobjekte in tempdb, die so groß sein können wie die gesamte Eingabe der Transformation. Während die Transformation ausgeführt wird, führt sie Serverabfragen für diese temporären Objekte aus. Dadurch kann die Gesamtleistung des Servers beeinträchtigt werden.

Optionen

OLE DB-Verbindungs-Manager
Wählen Sie einen vorhandenen OLE DB-Verbindungs-Manager aus dem Listenfeld aus, oder erstellen Sie mithilfe der Schaltfläche Neu eine neue Verbindung.

Neu
Erstellen Sie mithilfe des Dialogfelds OLE DB-Verbindungs-Manager konfigurieren eine neue Verbindung.

Editor für die Fuzzygruppierungstransformation (Registerkarte Spalten)

Mithilfe der Registerkarte Spalten des Dialogfelds Transformations-Editor für Fuzzygruppierung können Sie die Spalten angeben, die zum Gruppieren von Zeilen mit doppelten Werten verwendet werden sollen.

Optionen

Verfügbare Eingabespalten
Wählen Sie aus dieser Liste die Eingabespalten, mit denen Zeilen mit doppelten Werten gruppiert werden sollen.

Name
Zeigt die Namen der verfügbaren Eingabespalten an.

Durchleitung
Wählen Sie aus, ob die Eingabespalte in der Ausgabe der Transformation eingeschlossen sein soll. Alle für die Gruppierung verwendeten Spalten werden automatisch in die Ausgabe kopiert. Sie können zusätzliche Spalten einbeziehen, indem Sie diese Spalte aktivieren.

Eingabespalte
Wählen Sie eine der zu einem früheren Zeitpunkt aus der Liste Verfügbare Eingabespalten ausgewählten Eingabespalten aus.

Ausgabealias
Geben Sie einen beschreibenden Namen für die entsprechende Ausgabespalte ein. Standardmäßig stimmt der Name der Ausgabespalte mit dem Namen der Eingabespalte überein.

Gruppenausgabealias
Geben Sie einen beschreibenden Namen für die Spalte ein, die den kanonischen Wert für die gruppierten Duplikate enthalten soll. Der Standardname dieser Ausgabespalte entspricht dem Namen der Eingabespalte mit dem Anhang _clean.

Übereinstimmungstyp
Wählen Sie genaue oder Fuzzyübereinstimmungen aus. Zeilen werden als Duplikate betrachtet, wenn sie über alle Spalten mit dem Typ „Fuzzyübereinstimmung“ hinweg hinreichend ähnlich sind. Wenn Sie für bestimmte Spalten auch die genaue Übereinstimmung angeben, werden in den Spalten mit den genauen Übereinstimmungen nur Zeilen mit identischen Werten als mögliche Duplikate angesehen. Wenn Sie also wissen, dass eine bestimmte Spalte keine Fehler oder Inkonsistenzen enthält, können Sie für diese Spalte die genaue Übereinstimmung angeben, um die Genauigkeit der Fuzzyübereinstimmungen für andere Spalten zu erhöhen.

Minimale Ähnlichkeit
Legen Sie mithilfe des Schiebereglers den Schwellenwert für Ähnlichkeit auf Joinebene fest. Je näher der Wert an 1 liegt, desto stärker muss die Ähnlichkeit zwischen Suchwert und Quellwert sein, um als Übereinstimmung zu gelten. Eine Erhöhung des Schwellenwerts kann den Abgleich beschleunigen, da weniger Kandidatendatensätze berücksichtigt werden müssen.

Ähnlichkeitsausgabealias
Geben Sie den Namen für eine Ausgabespalte an, die die Ähnlichkeitsergebnisse für den ausgewählten Join enthält. Wenn Sie diesen Wert nicht angeben, wird die Ausgabespalte nicht erstellt.

Ziffern
Gibt die Bedeutung führender und nachfolgender Zahlen beim Vergleichen der Spaltendaten an. Wenn beispielsweise führende Zahlen von Bedeutung sind, wird "123 Main Street" nicht mit "456 Main Street" gruppiert.

Wert BESCHREIBUNG
Weder Weder führende noch nachfolgende Zahlen sind von Bedeutung.
Führend Nur führende Zahlen sind von Bedeutung.
Nachlaufend Nur nachfolgende Zahlen sind von Bedeutung.
LeadingAndTrailing Sowohl führende als auch nachfolgende Zahlen sind von Bedeutung.

Vergleichsflags
Weitere Informationen zu den Optionen für das Vergleichen von Zeichenfolgen finden Sie unter Vergleichen von Zeichenfolgendaten.

Editor für die Fuzzy-Gruppierung (Registerkarte Erweitert)

Verwenden Sie die Registerkarte Erweitert des Dialogfelds Fuzzy Grouping Transformation Editor, um Eingabe- und Ausgabespalten anzugeben, Ähnlichkeitsschwellenwerte festzulegen und Trennzeichen zu definieren.

Hinweis

Die Exhaustive- und MaxMemoryUsage-Eigenschaften der Fuzzygruppierungstransformation sind im Transformations-Editor für Fuzzygruppierung nicht verfügbar, können jedoch mit dem Erweiterten Editor festgelegt werden. Weitere Informationen zu diesen Eigenschaften finden Sie im Abschnitt Transformation für Fuzzgruppierung von Transformation Custom Properties.

Optionen

Name der Eingabeschlüsselspalte
Geben Sie den Namen einer Ausgabespalte an, die den eindeutigen Bezeichner für jede Eingabezeile enthält. Die _key_in -Spalte enthält einen für jede Zeile eindeutigen Wert.

Name der Ausgabeschlüsselspalte
Geben Sie den Namen einer Ausgabespalte an, die den eindeutigen Bezeichner für die kanonische Zeile einer Gruppe doppelter Zeilen enthält. Die _key_out-Spalte entspricht dem _key_in-Wert der kanonischen Datenzeile.

Name der Ähnlichkeitsergebnisspalte
Geben Sie einen Namen für die Spalte an, die das Ähnlichkeitsergebnis enthält. Das Ähnlichkeitsergebnis ist ein Wert zwischen 0 und 1, der die Ähnlichkeit zwischen der Eingabezeile und der kanonischen Zeile anzeigt. Je näher das Ergebnis an 1 liegt, desto genauer stimmt die Zeile mit der kanonischen Zeile überein.

Schwellenwert für Ähnlichkeit
Legen Sie den Schwellenwert für die Ähnlichkeit mithilfe des Schiebereglers fest. Je näher der Schwellenwert an 1 kommt, desto mehr müssen die Zeilen einander ähneln, um als Duplikate angesehen zu werden. Eine Erhöhung des Schwellenwerts kann die Abgleichsgeschwindigkeit verbessern, weil weniger Kandidatendatensätze berücksichtigt werden müssen.

Tokentrennzeichen
Die Transformation bietet einen Standardsatz von Trennzeichen, um Daten mit Tokens zu versehen. Sie können durch Bearbeiten der Liste aber ggf. Trennzeichen hinzufügen oder entfernen.