Transformation für langsam veränderliche DimensionenSlowly Changing Dimension Transformation

Die Transformation für langsam veränderliche Dimensionen koordiniert das Aktualisieren und Einfügen von Datensätzen in Data Warehouse-Dimensionstabellen.The Slowly Changing Dimension transformation coordinates the updating and inserting of records in data warehouse dimension tables. Beispielsweise können Sie mit dieser Transformation die Transformationsausgaben konfigurieren, die Datensätze in der DimProduct-Tabelle der AdventureWorksDW2012AdventureWorksDW2012 -Datenbank mit Daten aus der Production.Products-Tabelle in der AdventureWorks-OLTP-Datenbank aktualisieren und ersetzen.For example, you can use this transformation to configure the transformation outputs that insert and update records in the DimProduct table of the AdventureWorksDW2012AdventureWorksDW2012 database with data from the Production.Products table in the AdventureWorks OLTP database.

Wichtig

Der Assistent für langsam veränderliche Dimensionen unterstützt nur Verbindungen mit SQL ServerSQL Server.The Slowly Changing Dimension Wizard only supports connections to SQL ServerSQL Server.

Die Transformation für langsam veränderliche Dimensionen stellt die folgende Funktionalität zum Verwalten langsam veränderlicher Dimensionen bereit:The Slowly Changing Dimension transformation provides the following functionality for managing slowly changing dimensions:

  • Suchen übereinstimmender Zeilen in der Nachschlagetabelle für eingehende Zeilen, um neue und vorhandene Zeilen zu identifizieren.Matching incoming rows with rows in the lookup table to identify new and existing rows.

  • Identifizieren eingehender Zeilen, die Änderungen enthalten, obwohl keine Änderungen zulässig sind.Identifying incoming rows that contain changes when changes are not permitted.

  • Identifizieren von Datensätzen für abgeleitete Elemente, die aktualisiert werden müssen.Identifying inferred member records that require updating.

  • Identifizieren eingehender Zeilen mit Verlaufsänderungen, die das Einfügen neuer Datensätze und das Aktualisieren abgelaufener Datensätze erfordern.Identifying incoming rows that contain historical changes that require insertion of new records and the updating of expired records.

  • Erkennen eingehender Zeilen mit Änderungen, die das Aktualisieren vorhandener Datensätze, einschließlich abgelaufener Datensätze, erfordern.Detecting incoming rows that contain changes that require the updating of existing records, including expired ones.

    Die Transformation für langsam veränderliche Dimensionen unterstützt vier Änderungstypen: Veränderliches Attribut, Verlaufsattribut, Festes Attribut und Abgeleitetes Element.The Slowly Changing Dimension transformation supports four types of changes: changing attribute, historical attribute, fixed attribute, and inferred member.

  • Veränderliches Attribut überschreibt vorhandene Datensätze.Changing attribute changes overwrite existing records. Diese Art von Änderung ist mit einer Änderung vom Typ 1 identisch.This kind of change is equivalent to a Type 1 change. Die Transformation für langsam veränderliche Dimensionen leitet diese Zeilen an die Ausgabe Ausgabe: Updates von veränderlichen Attributenweiter.The Slowly Changing Dimension transformation directs these rows to an output named Changing Attributes Updates Output.

  • Verlaufsattribut erstellt neue Datensätze, statt vorhandene Datensätze zu aktualisieren.Historical attribute changes create new records instead of updating existing ones. Als einzige Änderung in einem vorhandenen Datensatz ist das Update einer Spalte zulässig, die angibt, ob der Datensatz aktuell oder abgelaufen ist.The only change that is permitted in an existing record is an update to a column that indicates whether the record is current or expired. Diese Art von Änderung ist mit einer Änderung vom Typ 2 identisch.This kind of change is equivalent to a Type 2 change. Die Transformation für langsam veränderliche Dimensionen leitet diese Zeilen an zwei Ausgaben weiter: Ausgabe der Einfügevorgänge im Verlaufsattribut und Neue Ausgabe.The Slowly Changing Dimension transformation directs these rows to two outputs: Historical Attribute Inserts Output and New Output.

  • Festes Attribut gibt an, dass der Spaltenwert nicht geändert werden darf.Fixed attribute changes indicate the column value must not change. Die Transformation für langsam veränderliche Dimensionen erkennt Änderungen und kann die Zeilen mit Änderungen an die Ausgabe Ausgabe des festen Attributsweiterleiten.The Slowly Changing Dimension transformation detects changes and can direct the rows with changes to an output named Fixed Attribute Output.

  • Abgeleitetes Element gibt an, dass es sich bei der Zeile um einen Datensatz für abgeleitete Elemente in der Dimensionstabelle handelt.Inferred member indicates that the row is an inferred member record in the dimension table. Ein abgeleitetes Element ist vorhanden, wenn eine Faktentabelle auf ein Dimensionselement verweist, das noch nicht geladen ist.An inferred member exists when a fact table references a dimension member that is not yet loaded. Ein minimaler Datensatz für abgeleitete Elemente wird unter Vorwegnahme von relevanten Dimensionsdaten erstellt, die nachfolgend beim Laden der Dimensionsdaten bereitgestellt werden.A minimal inferred-member record is created in anticipation of relevant dimension data, which is provided in a subsequent loading of the dimension data. Die Transformation für langsam veränderliche Dimensionen leitet diese Zeilen an die Ausgabe Ausgabe der Updates abgeleiteter Elementeweiter.The Slowly Changing Dimension transformation directs these rows to an output named Inferred Member Updates. Wenn für das abgeleitete Element Daten geladen sind, können Sie den vorhandenen Datensatz aktualisieren, aber keinen neuen erstellen.When data for the inferred member is loaded, you can update the existing record rather than create a new one.

Hinweis

Die Transformation für langsam veränderliche Dimensionen unterstützt keine Änderungen vom Typ 3, für die Änderungen an der Dimensionstabelle erforderlich sind.The Slowly Changing Dimension transformation does not support Type 3 changes, which require changes to the dimension table. Durch das Identifizieren von Spalten mit dem Updatetyp Festes Attribut können Sie die Datenwerte aufzeichnen, die für Änderungen vom Typ 3 in Frage kommen.By identifying columns with the fixed attribute update type, you can capture the data values that are candidates for Type 3 changes.

Zur Laufzeit versucht die Transformation für langsam veränderliche Dimensionen zuerst, für die eingehende Zeile einen übereinstimmenden Datensatz in der Nachschlagetabelle zu finden.At run time, the Slowly Changing Dimension transformation first tries to match the incoming row to a record in the lookup table. Falls keine Übereinstimmung gefunden wird, ist die eingehende Zeile ein neuer Datensatz. Deshalb führt die Transformation für langsam veränderliche Dimensionen keine zusätzlichen Schritte aus und leitet die Zeile an Neue Ausgabeweiter.If no match is found, the incoming row is a new record; therefore, the Slowly Changing Dimension transformation performs no additional work, and directs the row to New Output.

Falls eine Übereinstimmung gefunden wird, erkennt die Transformation für langsam veränderliche Dimensionen, ob die Zeile Änderungen enthält.If a match is found, the Slowly Changing Dimension transformation detects whether the row contains changes. Falls die Zeile Änderungen enthält, identifiziert die Transformation für langsam veränderliche Dimensionen den Updatetyp für jede Spalte und leitet die Zeile an Ausgabe: Updates von veränderlichen Attributen, Ausgabe des festen Attributs, Ausgabe der Einfügevorgänge im Verlaufsattributoder Ausgabe der Updates abgeleiteter Elementeweiter.If the row contains changes, the Slowly Changing Dimension transformation identifies the update type for each column and directs the row to the Changing Attributes Updates Output, Fixed Attribute Output, Historical Attributes Inserts Output, or Inferred Member Updates Output. Wenn die Zeile unverändert ist, leitet die Transformation für langsam veränderliche Dimensionen die Zeile an Nicht geänderte Ausgabeweiter.If the row is unchanged, the Slowly Changing Dimension transformation directs the row to the Unchanged Output.

Ausgaben der Transformation für langsam veränderliche DimensionenSlowly Changing Dimension Transformation Outputs

Die Transformation für langsam veränderliche Dimensionen weist eine Eingabe und bis zu sechs Ausgaben auf.The Slowly Changing Dimension transformation has one input and up to six outputs. Eine Ausgabe leitet eine Zeile an die Teilmenge des Datenflusses weiter, der den Update- und Einfügeanforderungen der Zeile entspricht.An output directs a row to the subset of the data flow that corresponds to the update and the insert requirements of the row. Eine Fehlerausgabe wird von dieser Transformation nicht unterstützt.This transformation does not support an error output.

In der folgenden Tabelle werden die Transformationsausgaben und die Anforderungen der nachfolgenden Datenflüsse beschrieben.The following table describes the transformation outputs and the requirements of their subsequent data flows. Für die Anforderungen wird der Datenfluss beschrieben, den der Assistent für langsam veränderliche Dimensionen erstellt.The requirements describe the data flow that the Slowly Changing Dimension Wizard creates.

AusgabeOutput DescriptionDescription DatenflussanforderungenData flow requirements
Ausgabe: Updates von veränderlichen AttributenChanging Attributes Updates Output Der Datensatz in der Nachschlagetabelle wird aktualisiert.The record in the lookup table is updated. Diese Ausgabe wird für veränderliche Attributzeilen verwendet.This output is used for changing attribute rows. Eine Transformation für OLE DB-Befehl aktualisiert den Datensatz mithilfe einer UPDATE-Anweisung.An OLE DB Command transformation updates the record using an UPDATE statement.
Ausgabe des festen AttributsFixed Attribute Output Die Werte in Zeilen, die nicht geändert werden dürfen, stimmen nicht mit Werten in der Nachschlagetabelle überein.The values in rows that must not change do not match values in the lookup table. Diese Ausgabe wird für feste Attributzeilen verwendet.This output is used for fixed attribute rows. Es wird kein Standarddatenfluss erstellt.No default data flow is created. Falls für die Transformation konfiguriert ist, dass sie fortgesetzt wird, wenn Änderungen an Spalten fester Attribute gefunden werden, sollten Sie einen Datenfluss zum Aufzeichnen dieser Zeilen erstellen.If the transformation is configured to continue after it encounters changes to fixed attribute columns, you should create a data flow that captures these rows.
Ausgabe der Einfügevorgänge im VerlaufsattributHistorical Attributes Inserts Output Die Nachschlagetabelle enthält mindestens eine übereinstimmende Zeile.The lookup table contains at least one matching row. Die als "aktuell" markierte Zeile muss jetzt als "abgelaufen" markiert werden.The row marked as “current” must now be marked as "expired". Diese Ausgabe wird für Verlaufsattributzeilen verwendet.This output is used for historical attribute rows. Transformationen für abgeleitete Spalten erstellen Spalten für die Indikatoren abgelaufener Zeilen und aktueller Zeilen.Derived Column transformations create columns for the expired row and the current row indicators. Eine OLE DB-Befehlstransformation aktualisiert den Datensatz, der jetzt als "abgelaufen" markiert werden muss.An OLE DB Command transformation updates the record that must now be marked as "expired". Die Zeile mit den neuen Spaltenwerten wird an die neue Ausgabe geleitet, wo die Zeile eingefügt und als "aktuell" markiert wird.The row with the new column values is directed to the New Output, where the row is inserted and marked as "current".
Ausgabe der Updates abgeleiteter ElementeInferred Member Updates Output Zeilen für abgeleitete Dimensionselemente werden eingefügt.Rows for inferred dimension members are inserted. Diese Ausgabe wird für abgeleitete Elementzeilen verwendet.This output is used for inferred member rows. Eine Transformation für OLE DB-Befehl aktualisiert den Datensatz mithilfe einer UPDATE-Anweisung von SQL.An OLE DB Command transformation updates the record using an SQL UPDATE statement.
Neue AusgabeNew Output Die Nachschlagetabelle enthält keine übereinstimmenden Zeilen.The lookup table contains no matching rows. Die Zeile wird der Dimensionstabelle hinzugefügt.The row is added to the dimension table. Diese Ausgabe wird für neue Zeilen und Änderungen an Verlaufsattributzeilen verwendet.This output is used for new rows and changes to historical attributes rows. Eine Transformation für abgeleitete Spalten legt den Indikator für die aktuelle Zeile fest, und ein OLE DB-Ziel fügt die Zeile ein.A Derived Column transformation sets the current row indicator, and an OLE DB destination inserts the row.
Nicht geänderte AusgabeUnchanged Output Die Werte in der Nachschlagetabelle stimmen mit den Zeilenwerten überein.The values in the lookup table match the row values. Diese Ausgabe wird für nicht geänderte Zeilen verwendet.This output is used for unchanged rows. Es wird kein Standarddatenfluss erstellt, weil die Transformation für langsam veränderliche Dimensionen keine Schritte ausführt.No default data flow is created because the Slowly Changing Dimension transformation performs no work. Wenn Sie diese Zeilen aufzeichnen möchten, sollten Sie einen Datenfluss für diese Ausgabe erstellen.If you want to capture these rows, you should create a data flow for this output.

GeschäftsschlüsselBusiness Keys

Für die Transformation für langsam veränderliche Dimensionen ist mindestens eine Geschäftsschlüsselspalte erforderlich.The Slowly Changing Dimension transformation requires at least one business key column.

Die Transformation für langsam veränderliche Dimensionen unterstützt keine Geschäftsschlüssel mit einem NULL-Wert.The Slowly Changing Dimension transformation does not support null business keys. Falls die Daten Zeilen einschließen, in denen die Geschäftsschlüsselspalte gleich NULL ist, sollten diese Zeilen aus dem Datenfluss entfernt werden.If the data include rows in which the business key column is null, those rows should be removed from the data flow. Mit der Transformation für bedingtes Teilen können Sie Zeilen filtern, deren Geschäftsschlüsselspalten NULL-Werte enthalten.You can use the Conditional Split transformation to filter rows whose business key columns contain null values. Weitere Informationen finden Sie unter Conditional Split Transformation.For more information, see Conditional Split Transformation.

Optimieren der Leistung der Transformation für langsam veränderliche DimensionenOptimizing the Performance of the Slowly Changing Dimension Transformation

Vorschläge zum Optimieren der Leistung der Transformation für langsam veränderliche Dimensionen finden Sie unter Funktionen für die Datenflussleistung.For suggestions on how to improve the performance of the Slowly Changing Dimension Transformation, see Data Flow Performance Features.

Problembehandlung der Transformation für langsam veränderliche DimensionenTroubleshooting the Slowly Changing Dimension Transformation

Sie können die von der Transformation für langsam veränderliche Dimensionen an externe Datenanbieter gerichteten Aufrufe protokollieren.You can log the calls that the Slowly Changing Dimension transformation makes to external data providers. Mithilfe dieser Protokollierungsfunktionen können Sie Probleme bei Verbindungen mit externen Datenquellen, bei Befehlen an externe Datenquellen sowie bei an externe Datenquellen gerichteten Abfragen durch die Transformation für langsam veränderliche Dimensionen behandeln.You can use this logging capability to troubleshoot the connections, commands, and queries to external data sources that the Slowly Changing Dimension transformation performs. Aktivieren Sie zum Protokollieren der von der Transformation für langsam veränderliche Dimensionen an externe Datenanbieter gerichteten Aufrufe die Paketprotokollierung, und wählen Sie das Diagnostic -Ereignis auf Paketebene aus.To log the calls that the Slowly Changing Dimension transformation makes to external data providers, enable package logging and select the Diagnostic event at the package level. Weitere Informationen finden Sie unter Behandeln von Problemen mit Paketausführungstools.For more information, see Troubleshooting Tools for Package Execution.

Konfigurieren der Transformation für langsam veränderliche DimensionenConfiguring the Slowly Changing Dimension Transformation

Sie können Eigenschaften mit dem SSISSSIS -Designer oder programmgesteuert festlegen.You can set properties through SSISSSIS Designer or programmatically.

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:For more information about the properties that you can set in the Advanced Editor dialog box or programmatically, click one of the following topics:

Konfigurieren der Ausgaben der Transformation für langsam veränderliche DimensionenConfiguring the Slowly Changing Dimension Transformation Outputs

Das Koordinieren der Updates und der Einfügungen von Datensätzen in Dimensionstabellen kann eine komplexe Aufgabe sein, insbesondere wenn Änderungen vom Typ 1 und Typ 2 verwendet werden.Coordinating the update and insertion of records in dimension tables can be a complex task, especially if both Type 1 and Type 2 changes are used. SSISSSIS -Designer stellt zwei Möglichkeiten bereit, um die Unterstützung langsam veränderlicher Dimensionen zu konfigurieren: Designer provides two ways to configure support for slowly changing dimensions:

  • Das Dialogfeld Erweiterter Editor , in dem Sie eine Verbindung auswählen, allgemeine und benutzerdefinierte Komponenteneigenschaften festlegen, Eingabespalten auswählen und Spalteneigenschaften für die sechs Ausgaben festlegen.The Advanced Editor dialog box, in which you to select a connection, set common and custom component properties, choose input columns, and set column properties on the six outputs. Um die Konfiguration der Unterstützung für eine langsam veränderliche Dimension abzuschließen, müssen Sie manuell den Datenfluss für die Ausgaben erstellen, die die Transformation für langsam veränderliche Dimensionen verwendet.To complete the task of configuring support for a slowly changing dimension, you must manually create the data flow for the outputs that the Slowly Changing Dimension transformation uses. Weitere Informationen finden Sie unter Data Flow.For more information, see Data Flow.

  • Der Assistent zum Laden einer Dimension, der Sie durch die Schritte zum Konfigurieren der Transformation für langsam veränderliche Dimensionen und zum Erstellen des Datenflusses für Transformationsausgaben führt.The Load Dimension Wizard, which guides you though the steps to configure the Slowly Changing Dimension transformation and build the data flow for transformation outputs. Führen Sie den Assistenten zum Laden einer Dimension erneut aus, um die Konfiguration für langsam veränderliche Dimensionen zu ändern.To change the configuration for slowly change dimensions, rerun the Load Dimension Wizard. Weitere Informationen finden Sie unter Konfiguration von Ausgaben mithilfe des Assistenten für langsam veränderliche Dimensionen.For more information, see Configure Outputs Using the Slowly Changing Dimension Wizard.

Festlegen der Eigenschaften einer DatenflusskomponenteSet the Properties of a Data Flow Component