Share via


Data Cleaning-Paketbeispiel

Aktualisiert: 05. Dezember 2005

Das Data Cleaning-Beispiel ist ein Paket, das Daten bereinigt. Das Paket verwendet Daten, bei denen es sich um Listen mit Namen und Adressen handelt, die potenzielle Kunden darstellen. Die Daten müssen bereinigt werden. Sie enthalten Tippfehler, sind unvollständig und enthalten Kunden, die bereits in der Datenbank erfasst wurden, bzw. falsche Kunden oder geringfügig voneinander abweichende Instanzen desselben Kunden.

Die Paketablaufsteuerung umfasst zwei Schritte. Der erste Schritt besteht in der Ausführung des Tasks SQL ausführen. Dieser Task erstellt die Eingabetabelle CustomerLeads und erstellt die drei Ausgabetabellen namens ExistingCustomerLeads, NewCustomerLeads und DuplicateCustomerLeads. Der zweite Task ist ein Datenflusstask, der den Datenfluss ausführt, mit dem die aus der CustomerLeads-Tabelle extrahierten Daten bereinigt werden. Der Datenfluss identifiziert eindeutige neue, vorhandene und doppelt vorhandene Kunden und schreibt die Zeilen für jeden Kundentyp in die entsprechende Ausgabetabelle.

Wenn Sie das Beispiel unter einer nicht englischsprachigen Version von Windows ausführen, müssen Sie möglicherweise den lokalisierten Namen des Programmdateiordners ersetzen, um das Beispiel öffnen oder ausführen zu können.

ms160742.note(de-de,SQL.90).gifHinweis:
Dieses Beispiel verwendet die Transformation für Fuzzygruppierung und die Transformation für Fuzzysuche, die in der Enterprise-Version von SQL Server 2005 zur Verfügung steht.
ms160742.note(de-de,SQL.90).gifWichtig:
Die Beispiele dienen nur zu Lernzwecken. Sie sind nicht für den Einsatz in einer Produktionsumgebung gedacht und wurden auch nicht in einer Produktionsumgebung getestet. Microsoft leistet keinen technischen Support für diese Beispiele.

Weitere Informationen zum Bereinigen von Daten finden Sie in den folgenden Artikeln der MSDN Library unter https://msdn.microsoft.com/library.

  • Data Cleansing Applications with SQL Server Integration Services (Windows Media Video) (in English)
  • Data Cleaning using the Fuzzy Grouping and Fuzzy Lookup Transformations (Whitepaper) (in English)

Anforderungen

Zum Ausführen dieses Beispielpakets ist Folgendes erforderlich:

  • Sie müssen die AdventureWorks-Datenbank installiert haben und über Administratorrechte für die Datenbank verfügen.
  • Wenn Sie beabsichtigen, das Beispielpaket lediglich über die Befehlszeile auszuführen, müssen Sie SQL Server 2005 Integration Services (SSIS) installieren.
  • Wenn Sie beabsichtigen, das Paket im SSIS-Designer zu öffnen und das Beispielpaket auszuführen, müssen Sie Business Intelligence Development Studio installieren.

Weitere Informationen zum Installieren von Beispielen finden Sie unter "Installieren von Integration Services-Beispielpaketen" in der SQL Server-Onlinedokumentation. Wenn Sie die aktuelle Version der Beispiele erhalten möchten, einschließlich neuer Beispiele, die nach der ursprünglichen Version von SQL Server 2005 veröffentlicht wurden, finden Sie entsprechende Informationen unter SQL Server 2005 Samples and Sample Databases (April 2006) (in Englisch).

Speicherort des Beispielpakets

Wenn die Beispiele im Standardverzeichnis installiert wurden, befindet sich das Data Cleaning-Paket im folgenden Ordner:

C:\Programme\Microsoft SQL Server\90\Samples\Integration Services\Package Samples\DataCleaning Sample\Data Cleaning\.

Zum Ausführen des Beispielpakets sind die folgenden Dateien erforderlich.

Datei Beschreibung

DataCleaning.dtsx

Das Beispielpaket

CreateTables.sql

SQL-Anweisungen zum Erstellen von Tabellen

Hinzufügen von Daten-Viewern zum Beispiel

Um besser zu verstehen, wie das Data Cleaning-Paket arbeitet, können Sie Daten-Viewer dem Datenfluss hinzufügen und dann die Daten zwischen Datenflusskomponenten anzeigen. Es empfiehlt sich, den folgenden Pfaden Daten-Viewer hinzuzufügen:

  • Pfad von Union All nach OLE DB Destination-Existing Customers
  • Pfad von Conditional Split on Canonical Record for Group nach OLE DB Destination-Unique Customer Leads
  • Pfad von Conditional Split on Canonical Record for Group nach OLE DB Destination-Duplicate Customer Leads

So fügen Sie Daten-Viewer hinzu

  1. Klicken Sie mit der rechten Maustaste auf den Pfad, und klicken Sie dann auf Daten-Viewer.

  2. Klicken Sie im Datenflusspfad-Editor auf Hinzufügen.

  3. Klicken Sie im Dialogfeld Daten-Viewer konfigurieren in der Typliste auf Raster. Standardmäßig werden alle Spalten im Daten-Viewer angezeigt.

  4. Wiederholen Sie die Schritte 1-3 für andere Pfade.

Ausführen des Beispiels

Das Paket kann von der Befehlszeile aus mithilfe des Dienstprogramms dtexec oder in Business Intelligence Development Studio ausgeführt werden.

Wenn Sie eine nicht englischsprachige Version von Windows verwenden, müssen Sie möglicherweise die ConnectionString-Eigenschaft aller Dateiverbindungs-Manager aktualisieren, der in dem Paket verwendet wurde, um das Beispielpaket erfolgreich auszuführen. Vergewissern Sie sich, dass der im Verbindungs-Manager verwendete Pfad auf Ihrem Computer gültig ist, und ändern Sie ihn ggf. so, dass er den lokalisierten Namen des Programmdateiordners verwendet.

Für dieses Beispiel müssen Sie möglicherweise "Programme" in der ConnectionString-Eigenschaft für den Verbindungs-Manager CreateTables.sql aktualisieren.

So führen Sie das Paket mithilfe von dtexec aus

  1. Öffnen Sie ein Eingabeaufforderungsfenster.

  2. Wechseln Sie in das Verzeichnis C:\Programme\Microsoft SQL Server\90\DTS\Binn, in dem sich dtexec befindet.

  3. Geben Sie folgenden Befehl ein:

    dtexec /f "C:\Program Files\Microsoft SQL Server\90\Samples\Integration Services\Package Samples\Data Cleaning Sample\DataCleaning\DataCleaning.dtsx"
    
  4. Drücken Sie die Eingabetaste.

Weitere Informationen zum Ausführen des Pakets mithilfe des Dienstprogramms dtexec finden Sie im Thema "dtexec (Dienstprogramm)" in der SQL Server 2005-Onlinedokumentation.

So führen Sie das Paket in Business Intelligence Development Studio aus

  1. Öffnen Sie Business Intelligence Development Studio.

  2. Zeigen Sie im Menü Datei auf Öffnen, und klicken Sie dann auf Projekt/Projektmappe.

  3. Navigieren Sie zum Ordner DataCleaning Sample, und doppelklicken Sie auf die Datei mit dem Namen DataCleaning.sln.

  4. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf DataCleaning.dtsx im Ordner SSIS-Pakete, und klicken Sie dann auf Paket ausführen.

ms160742.note(de-de,SQL.90).gifHinweis:
Wenn Sie das Paket im SSIS-Designer öffnen und die Paketeigenschaften anzeigen, werden Sie feststellen, dass die DelayValidation-Eigenschaft auf True festgelegt ist. Die Überprüfung des Pakets muss zurückgestellt werden, da einige vom Data Cleaning-Beispielpaket verwendeten Tabellen (die CustomerLeads-Tabelle und die drei Ausgabetabellen namens ExistingCustomerLeads, NewCustomerLeads und DuplicateCustomerLeads) erst nach dem erstmaligen Ausführen des Pakets erstellt werden. Wenn DelayValidation auf False festgelegt ist, wird ein Überprüfungsfehler angezeigt, wenn Sie das Paket im SSIS-Designer öffnen, bevor Sie es ausführen.

Komponenten im Beispiel

Die folgende Tabelle führt die im Beispiel verwendeten Tasks, Quellen, Ziele und Transformationen auf.

Element Zweck

Task SQL ausführen

Der Task SQL ausführen erhält den Namen Create Customer Address Reference Table View, Populate NewCustomer Input Table und Create Output Tables. Dieser Task erstellt die Eingabetabelle CustomerLeads und die drei Ausgabetabellen namens ExistingCustomerLeads, NewCustomerLeads und DuplicateCustomerLeads.

Datenflusstask

Der Datenflusstask, Fuzzy Lookup Data Flow Task, führt den Datenfluss im Paket aus.

OLE DB-Quelle

Die OLE DB-Quelle, OLE DB Source - Customer Leads, liest Datensätze aus der CustomerLeads-Tabelle.

Transformation zum Suchen

Die Transformation zum Suchen, Lookup against Existing Customers, führt eine genaue Suche durch, um vorhandene Kunden zu ermitteln. Wenn die Suche erfolgreich ausgeführt wird, wird der Datensatz in die ExistingCustomerLeads-Tabelle eingefügt.

Transformation für abgeleitete Spalten

Die Transformation für abgeleitete Spalten, Derived Column, fügt die _Similarity-Spalten in die einzelnen Zeilen ein und legt den Spaltenwert auf 1 fest.

Transformation für Fuzzysuche

Die Transformation für Fuzzysuche, Fuzzy Lookup against Existing Customers, führt eine Fuzzysuche aus, um Kundendatensätze zu ermitteln, die annähernd mit vorhandenen Kundendatensätzen übereinstimmen.

Die Transformation fügt jeder Zeile, die ein Ähnlichkeitsergebnis enthält, eine _Similarity-Spalte hinzu. Das Ergebnis 0.0 bedeutet, dass keine Übeinstimmungen gefunden wurden, während 1.0 eine genaue Übereinstimmung signalisiert. Ein Ergebnis zwischen 0.0 und 1.0 ist ein Maß für die Ähnlichkeit, wobei die Ähnlichkeit umso größer ist, je näher der Wert bei 1.0 liegt.

Transformation für bedingtes Teilen

Die erste Transformation für bedingtes Teilen, ConditionalSplit on _Similarity, leitet Eingabezeilen an eine der zwei Ausgaben weiter, abhängig von dem Wert des Ähnlichkeitsergebnisses, der bei der Fuzzysuche bestimmt wird. Zeilen mit dem Ähnlichkeitsergebnis >= .70 werden in die ExistingCustomerLeads-Tabelle geschrieben. Zeilen mit dem Ähnlichkeitsergebnis < 70 sind wahrscheinlich gültige neue Kundenleads, und diese Zeilen werden weiter bereinigt.

Die zweite Transformation für bedingtes Teilen, Conditional Split on Canonical Record for Group, leitet Eingabezeilen an eine der zwei Ausgaben weiter, abhängig davon, ob die Datenzeile ein Duplikat ist. Wenn die Werte der _key_in- und _key_out-Spalten identisch sind, wird die Zeile als die kanonische Zeile in der Gruppe verwendet, und die kanonische Zeile wird in die NewCustomerLeads-Tabelle eingefügt. Wenn die _key_in- und _key_out-Spalten nicht identisch sind, wird die Zeile als Fuzzyduplikat behandelt und in die DuplicateCustomerLeads-Tabelle eingefügt.

Transformation für UNION ALL

Die Transformation für UNION ALL, Union All, führt Zeilen mit vorhandenen Kunden - sowohl genaue Übereinstimmungen als auch Fuzzyübereinstimmungen - zu einem Dataset zusammen.

Transformation für Fuzzygruppierung

Die Transformation für Fuzzygruppierung, Fuzzy Grouping, gruppiert Kunden, die wahrscheinlich Duplikate sind. Die Transformation fügt jeder Zeile die drei Spalten _key_in, _key_out und _score hinzu. _key_in ist ein eindeutiger Bezeichner, der jeder Eingabezeile zugewiesen wird, und _key_out enthält den speziellen _key_in, der der Zeile zugewiesen wird, die die Zeilen in einer Fuzzygruppe am besten darstellt. Alle Zeilen in einer Fuzzygruppe verfügen über denselben _key_out-Wert. Die _score-Spalte entspricht einem Wert zwischen 0.0 und 1.0. Dieser Wert beschreibt die Textähnlichkeit zwischen einer angegebenen Eingabezeile und der Zeile, die als kanonischer Wert ausgewählt wurde.

OLE DB-Ziel

Das OLE DB-Ziel, OLE DB Destination - Existing Customers, fügt Zeilen in die ExistingCustomerLeads-Tabelle ein.

Das OLE DB-Ziel, OLE DB Destination - Unique Customer Leads, fügt Zeilen in die NewCustomerLeads-Tabelle ein.

Das OLE DB-Ziel, OLE DB Destination - Duplicate Customer Leads, fügt Zeilen in die DuplicateCustomerLeads-Tabelle ein.

Dateiverbindungs-Manager

Der Dateiverbindungs-Manager, CreateTables.sql, stellt eine Verbindung zu der Datei her, die den SQL enthält, den das Paket verwendet.

OLE DB-Verbindungs-Manager

Der OLE DB-Verbindungs-Manager, (local).AdventureWorks, stellt eine Verbindung mit der AdventureWorks-Datenbank auf dem lokalen Server her.

In der folgenden Tabelle werden die Daten der Ausgabetabellen beschrieben.

Tabelle Beschreibung

ExistingCustomerLeads

Enthält Datensätze, die genau einem vorhandenen Kundendatensatz entsprechen, und Datensätze, die einem vorhandenen Kunden mit sehr hoher Textähnlichkeit entsprechen.

NewCustomerLeads

Enthält Datensätze, für die keine zufriedenstellenden Übereinstimmung mit einem vorhandenen Kunden gefunden wurden. Wenn die Liste mehrere Instanzen desselben Namens (oder eine beinahe identische Version eines bestimmten Namens) enthält, wird nur ein Datensatz zur NewCustomerLeads geleitet. Die Duplikate werden zur DuplicateCustomerLeads geleitet.

DuplicateCustomerLeads

Enthält Duplikate neuer Kunden.

Beispielergebnisse

Um die Ausführungsergebnisse des DataCleaning-Beispielpakets anzuzeigen, müssen Sie folgende Transact-SQL-Abfrage ausführen:

Select * from AdventureWorks.FuzzyLookupExample.ExistingCustomerLeads
Select * from AdventureWorks.FuzzyLookupExample.NewCustomerLeads
Select * from AdventureWorks.FuzzyLookupExample.DuplicateCustomerLeads

Änderungsverlauf

Version Verlauf

05. Dezember 2005

Geänderter Inhalt:
  • Der in SELECT-Anweisungen zu verwendende Schemaname wurde korrigiert, die Ausführungsergebnisse zurückgeben.