Freigeben über


Angeben eines Intervalls von Änderungsdaten

Gilt für: SQL Server SSIS Integration Runtime in Azure Data Factory

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 zum Entwurf der Ablaufsteuerung finden Sie unter Change Data Capture (SSIS).

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 SQL Server Data Tools (SSDT)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 Verwenden der Werte von Variablen und Parametern 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 persistent speichern 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 ResultSetdie Option Einzelne Zeileaus.

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

    3. Wählen Sie für SQLSourceTypedie Option Direkteingabeaus.

    4. Geben Sie für SQLStatementdie 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.

    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

Weitere Informationen

Verwenden von Variablen in Paketen
Integration Services-Ausdrücke (SSIS)
SQL ausführen (Task)
Skripttask