Transformation für Pivot

Die Transformation für Pivot macht aus einem normalisierten Dataset eine weniger normalisierte, aber kompaktere Version, indem die Eingabedaten nach einem Spaltenwert pivotiert werden. Beispielsweise weist ein normalisiertes Orders-Dataset, das den Kundennamen, das Produkt und die gekaufte Menge auflistet, in der Regel mehrere Zeilen für jeden Kunden auf, der mehrere Produkte gekauft hat. Dabei zeigt jede Zeile für den betreffenden Kunden Bestelldetails für ein anderes Produkt an. Durch Pivotieren des Datasets nach der Produktspalte kann mit der Transformation für Pivot ein Dataset mit einer einzigen Zeile pro Kunde ausgegeben werden. In dieser Zeile werden alle Einkäufe des Kunden aufgelistet, wobei die Produktnamen als Spaltennamen und die Menge als Wert in der Produktspalte angezeigt werden. Da nicht jeder Kunde jedes Produkt kauft, können viele Spalten NULL-Werte enthalten.

Wenn ein Dataset pivotiert wird, übernehmen Eingabespalten unterschiedliche Rollen am Pivotvorgang. Für die Beteiligung einer Spalte gibt es folgende Möglichkeiten:

  • Die Spalte wird unverändert an die Ausgabe übergeben. Viele Eingabezeilen können nur eine Ausgabezeile ergeben, weshalb die Transformation nur den ersten Eingabewert für die Spalte kopiert.

  • Die Spalte dient als Schlüssel oder Teil des Schlüssels, mit dem ein Recordset definiert wird.

  • Die Spalte definiert den Pivotvorgang. Die Werte in dieser Spalte sind Spalten im pivotierten Dataset zugeordnet.

  • Die Spalte enthält Werte, die den Spalten hinzugefügt werden, die beim Pivotieren erstellt werden.

Diese Transformation weist eine Eingabe, eine reguläre Ausgabe und eine Fehlerausgabe auf.

Sortieren und doppelte Zeilen

Die Eingabedaten müssen in der Pivotspalte sortiert sein, damit die Daten effizient pivotiert werden, das heißt, dass möglichst wenige Datensätze im Ausgabedataset erstellt werden. Wenn die Daten nicht sortiert sind, kann es sein, dass die Transformation für Pivot mehrere Datensätze für jeden Wert im festgelegten Schlüssel generiert, bei dem es sich um die Spalte handelt, die die festgelegte Mitgliedschaft definiert. Wenn beispielsweise ein Dataset nach der Name-Spalte pivotiert wird, aber die Namen nicht sortiert sind, könnte das Ausgabedataset pro Kunde mehrere Zeilen aufweisen, denn ein Pivotvorgang wird jedes Mal ausgeführt, wenn der Wert in der Name-Spalte geändert wird.

Die Eingabedaten können doppelte Zeilen enthalten. Diese bewirken, dass die Transformation für Pivot einen Fehler erzeugt. " "Doppelte Zeilen" bedeutet Zeilen, die in den festgelegten Schlüsselspalten und Pivotspalten die gleichen Werte aufweisen. Zur Vermeidung von Fehlern können Sie entweder die Transformation so konfigurieren, dass Fehlerzeilen in eine Fehlerausgabe umgeleitet werden, oder Sie können Werte vorab aggregieren, um sicherzustellen, dass keine doppelten Zeilen vorhanden sind.

Optionen im Dialogfeld "Pivot"

Sie konfigurieren den Pivotvorgang, indem Sie die Optionen im Dialogfeld Pivot festlegen. Um das Dialogfeld Pivot zu öffnen, fügen Sie dem Paket die Pivottransformation in SQL Server-Datentools (SSDT) hinzu, und klicken Sie dann mit der rechten Maustaste auf die Komponente, und klicken Sie auf Bearbeiten.

In der folgenden Liste werden die Optionen des Dialogfelds Pivot beschrieben.

  • Pivotschlüssel
    Gibt die Spalte an, die für Werte über der obersten Zeile (Kopfzeile) der Tabelle verwendet wird.

  • Schlüssel festlegen
    Gibt die zu verwendende Spalte für Werte in der linken Spalte der Tabelle an. Das Eingabedatum muss nach dieser Spalte sortiert werden.

  • Pivotwert
    Gibt die zu verwendende Spalte für die Tabellenwerte an, die sich von den Werten in der Kopfzeile und in der linken Spalte unterscheiden.

  • Nicht übereinstimmende Pivotschlüsselwerte ignorieren und nach DataFlow-Ausführung melden
    Aktivieren Sie diese Option, um die Pivottransformation zu konfigurieren, um Zeilen zu ignorieren, die nicht erkannte Werte in der Spalte Pivotschlüssel enthalten, und alle Pivotschlüsselwerte zu einer Protokollmeldung auszugeben, wenn das Paket ausgeführt wird.

    Sie können auch die Transformation konfigurieren, die Werte auszugeben, indem Sie die benutzerdefinierte Eigenschaft von PassThroughUnmatchedPivotKeys auf True festlegen.

  • Pivotausgabespalten aus Werten generieren
    Geben Sie die Pivotschlüsselwerte in diesem Feld ein, um die Pivottransformation zu aktivieren, um Ausgabespalten für jeden Wert zu erstellen. Sie können entweder die Werte vor dem Ausführen des Pakets eingeben oder wie folgt vorgehen.

    1. Wählen Sie die Option Nicht übereinstimmende Pivotschlüsselwerte ignorieren und nach DataFlow-Ausführung melden aus, und klicken Sie im Dialogfeld Pivot auf OK, um die Änderungen in Bezug auf die Pivottransformation zu speichern.

    2. Führen Sie das Paket aus.

    3. Wenn das Paket erfolgreich ist, klicken Sie auf die Registerkarte Status, und suchen Sie nach der Informationsprotokollmeldung der Pivottransformation, die die Pivotschlüsselwerte enthält.

    4. Klicken Sie mit der rechten Maustaste auf die Meldung, und klicken Sie auf Meldungstext kopieren.

    5. Klicken Sie im Menü Debuggen auf Debuggen beenden, um in den Entwurfsmodus zu wechseln.

    6. Klicken mit der rechten Maustaste auf die Pivottransformation, und wählen Sie dann Bearbeiten aus.

    7. Deaktivieren Sie die Option Nicht übereinstimmende Pivotschlüsselwerte ignorieren und nach DataFlow-Ausführung melden, und fügen Sie die Pivotschlüsselwerte anschließend in das Feld Pivotausgabespalten aus Werten generieren im folgenden Format ein.

      [value1],[value2],[value3]

  • Jetzt Spalten generieren
    Klicken Sie, um eine Ausgabespalte für jeden Pivotschlüsselwert zu erstellen, der im Feld Pivotausgabespalten aus Werten generieren aufgelistet ist.

    Die Ausgabespalten werden im Feld Vorhandene pivotierte Ausgabespalten angezeigt.

  • Vorhandene pivotierte Ausgabespalten
    Listet die Ausgabespalten für die Pivotschlüsselwerte auf.

In der folgenden Tabelle wird ein Dataset vor dem Anwenden der Pivotierung auf die Jahr-Spalte dargestellt.

Jahr

Produktname

Gesamt

2004

HL Mountain Tire

1504884.15

2003

Road Tire Tube

35920.50

2004

Water Bottle – 30 oz.

2805.00

2002

Touring Tire

62364.225

In der folgenden Tabelle wird ein Dataset nach dem Pivotieren der Daten nach der Jahr-Spalte angezeigt.

2002

2003

2004

HL Mountain Tire

141164.10

446297.775

1504884.15

Road Tire Tube

3592.05

35920.50

89801.25

Water Bottle – 30 oz.

NULL

NULL

2805.00

Touring Tire

62364.225

375051.60

1041810.00

Zum Pivotisieren der Daten für die Jahr-Spalte (wie oben gezeigt) müssen die folgenden Optionen im Dialogfeld Pivot festgelegt werden.

  • Im Listenfeld Pivot Key wird Jahr ausgewählt.

  • Im Listenfeld Schlüssel festlegen wird Produktname ausgewählt.

  • Im Listenfeld Pivotwert wird Gesamt ausgewählt.

  • Die folgenden Werte werden im Feld Pivotausgabespalten aus Werten generieren eingegeben.

    [2002],[2003],[2004]

Konfiguration der Transformation für Pivot

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

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

Verwandte Inhalte

Informationen zum Festlegen der Eigenschaften für diese Komponente finden Sie unter Festlegen der Eigenschaften einer Datenflusskomponente.

Verwandte Inhalte

Integration Services (kleines Symbol) Bleiben Sie mit Integration Services auf dem neuesten Stand

Die neuesten Downloads, Artikel, Beispiele und Videos von Microsoft sowie ausgewählte Lösungen aus der Community finden Sie auf MSDN auf der Integration Services-Seite:


Abonnieren Sie die auf der Seite verfügbaren RSS-Feeds, um automatische Benachrichtigungen zu diesen Updates zu erhalten.

Siehe auch

Konzepte

Entpivotierungstransformation

Datenfluss

SQL Server Integration Services-Transformationen