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.

HinweisHinweis

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 zum Veranschaulichen der Verwendung von Change Data Capture in Paketen finden Sie unter Integration Services und 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

  1. Öffnen Sie in Business Intelligence Development Studio ein neues Integration Services-Projekt.

  2. Erstellen Sie im Fenster Variablen die folgenden Variablen:

    1. 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.

    2. 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:

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

  1. Fügen Sie auf der Registerkarte Ablaufsteuerung des SSIS-Designers dem Paket einen Task "SQL ausführen" hinzu.

  2. Öffnen Sie den Editor für den Task 'SQL ausführen', und aktivieren Sie auf der Seite Allgemein des Editors die folgenden Optionen:

    1. Wählen Sie für ResultSet die Option Einzelne Zeile aus.

    2. Konfigurieren Sie zur Quelldatenbank eine gültige Verbindung.

    3. Wählen Sie für SQLSourceType die Option Direkteingabe aus.

    4. 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
      
  3. 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.

    HinweisHinweis

    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

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 der Integration Services-Seite von MSDN oder TechNet:

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