Angeben eines Intervalls von Änderungsdaten
In der Ablaufsteuerung eines Integration Services-Pakets, das ein inkrementelles Laden von Änderungsdaten ausführt, ist der erste Task die Berechnung der Endpunkte des Änderungsintervalls. Diese Endpunkte sind datetime-Werte und werden in Paketvariablen für die spätere Verwendung im Paket gespeichert.
Hinweis |
---|
Eine Beschreibung des Gesamtprozesses des Entwerfens der Ablaufsteuerung finden Sie unter Verbessern des inkrementellen Ladens mit Change Data Capture. Vollständige End-to-End-Beispiele, die die Verwendung von Change Data Capture in Paketen veranschaulichen, finden Sie im Beispiel "Change Data Capture for Specified Interval Package" und im Beispiel "Change Data Capture since Last Request Package" unter Codeplex. |
Einrichten von Paketvariablen für die Endpunkte
Vor dem Konfigurieren des Tasks "SQL ausführen" zur Berechnung der Endpunkte müssen die Paketvariablen definiert werden, die die Endpunkte speichern.
So richten Sie Paketvariablen ein
Öffnen Sie in Business Intelligence Development Studio ein neues Integration Services-Projekt.
Erstellen Sie im Fenster Variablen die folgenden Variablen:
Erstellen Sie eine Variable mit dem datetime-Datentyp, um den Anfangspunkt für das Intervall zu speichern.
In diesem Beispiel wird der Variablenname "ExtractStartTime" verwendet.
Erstellen Sie eine weitere Variable mit dem datetime-Datentyp, um den Endpunkt für das Intervall zu speichern.
In diesem Beispiel wird der Variablenname "ExtractEndTime" verwendet.
Wenn Sie die Endpunkte in einem Masterpaket berechnen, das mehrere untergeordnete Pakete ausführt, können Sie die Variablenkonfiguration für übergeordnete Pakete verwenden, um die Werte dieser Variablen an jedes untergeordnete Paket weiterzuleiten. Weitere Informationen finden Sie unter Paket ausführen (Task) und unter Vorgehensweise: Verwenden der übergeordneten Variablenwerten in einem untergeordneten Paket.
Berechnen eines Anfangspunkts und eines Endpunkts für Änderungsdaten
Nachdem Sie die Paketvariablen für die Intervallendpunkte eingerichtet haben, können Sie die Ist-Werte für diese Endpunkte berechnen und diese Werte den entsprechenden Paketvariablen zuordnen. Da diese Endpunkte datetime-Werte sind, müssen Sie Funktionen verwenden, die datetime-Werte berechnen oder mit diesen funktionieren können. Die Integration Services-Ausdruckssprache und Transact-SQL verfügen über Funktionen, die mit datetime-Werten funktionieren:
Funktionen in der Integration Services-Ausdruckssprache, die mit datetime-Werten funktionieren
Funktionen in Transact-SQL, die mit datetime-Werten funktionieren
Datums- und Uhrzeitdatentypen und zugehörige Funktionen (Transact-SQL).
Bevor Sie eine dieser datetime-Funktionen verwenden, um Endpunkte zu berechnen, müssen Sie bestimmen, ob das Intervall unveränderlich ist und regelmäßig auftritt. In der Regel möchten Sie regelmäßig in Quelltabellen aufgetretene Änderungen in Zieltabellen übernehmen. Beispielsweise möchten Sie diese Änderungen auf einer stündlichen, täglichen oder wöchentlichen Basis übernehmen.
Nachdem Sie sich darüber im Klaren sind, ob Ihr Änderungsintervall unveränderlich oder eher zufällig ist, können Sie die Endpunkte berechnen.
Berechnen des Startdatums und der Startzeit. Sie verwenden das Enddatum und die Endzeit des vorherigen Ladens als aktuelles Startdatum und aktuelle Startzeit. Wenn Sie ein unveränderliches Intervall für das inkrementelle Laden verwenden, können Sie diesen Wert mit den datetime-Funktionen von Transact-SQL oder der Integration Services-Ausdruckssprache berechnen. Andernfalls müssen Sie möglicherweise die Endpunkte zwischen den Ausführungen beibehalten und einen Task "SQL ausführen" oder einen Skripttask verwenden, um den vorherigen Endpunkt zu laden.
Berechnen des Enddatums und der Endzeit. Wenn Sie ein unveränderliches Intervall für das inkrementelle Laden verwenden, berechnen Sie das aktuelle Enddatum und die aktuelle Endzeit als Offset des Startdatums und der Startzeit. Sie können diesen Wert wieder mit den datetime-Funktionen von Transact-SQL oder der Integration Services-Ausdruckssprache berechnen.
In der folgenden Prozedur verwendet das Änderungsintervall ein unveränderliches Intervall und setzt voraus, dass das Paket für inkrementelles Laden ohne Ausnahme täglich ausgeführt wird. Andernfalls würden Änderungsdaten für verpasste Intervalle verloren gehen. Der Startpunkt für das Intervall ist vorgestern Mitternacht, d. h. vor 24 bis 48 Stunden. Der Endpunkt für das Intervall ist gestern Mitternacht, d. h. in der vorherigen Nacht vor 0 bis 24 Stunden.
So berechnen Sie den Startpunkt und den Endpunkt für das Aufzeichnungsintervall
Fügen Sie auf der Registerkarte Ablaufsteuerung des SSIS-Designers dem Paket einen Task "SQL ausführen" hinzu.
Öffnen Sie den Editor für den Task 'SQL ausführen', und aktivieren Sie auf der Seite Allgemein des Editors die folgenden Optionen:
Wählen Sie für ResultSet die Option Einzelne Zeile aus.
Konfigurieren Sie zur Quelldatenbank eine gültige Verbindung.
Wählen Sie für SQLSourceType die Option Direkteingabe aus.
Geben Sie für SQLStatement die folgende SQL-Anweisung ein:
SELECT DATEADD(dd,0, DATEDIFF(dd,0,GETDATE()-1)) AS ExtractStartTime, DATEADD(dd,0, DATEDIFF(dd,0,GETDATE())) AS ExtractEndTime
Ordnen Sie auf der Seite Resultset vom Editor für den Task 'SQL ausführen' der ExtractStartTime-Paketvariablen das ExtractStartTime-Ergebnis und der ExtractEndTime-Paketvariablen das ExtractEndTime-Ergebnis zu.
Hinweis Wenn Sie einen Ausdruck verwenden, um den Wert einer Integration Services-Variablen festzulegen, wird der Ausdruck jedes Mal ausgewertet, wenn auf den Wert der Variablen zugegriffen wird.
Nächster Schritt
Nachdem Sie den Startpunkt und den Endpunkt für eine Reihe von Änderungen berechnet haben, müssen Sie im nächsten Schritt bestimmen, ob die Änderungsdaten bereit sind.
Nächstes Thema:Bestimmen, ob die Änderungsdaten bereit sind
|
Siehe auch