Suchen...
Generic filters
Exact matches only
Search in title
Search in excerpt
Search in content

Dediziertes Datenladen per Lookup

Nürnberger Nächte sind lang. Manchmal jedoch nicht lange genug, sodass der Datenraum, der bei einem nächtlichen Ladevorgang in die DeltaMaster Datenbank überführt werden soll, eingeschränkt werden muss. Diese Einschränkung kann auf unterschiedliche Art und Weise erfolgen. Beispielsweise durch eine eingeschränkte Datenbereitstellung auf Ebene der Vorsysteme, einen Filter in der SSIS-Auswahl des Datenraums oder mittels einer Steuertabelle und einem Zwischenschritt im SSIS-Datenflusstask. Dies hat für den Anwender den Vorteil, dass er ohne größere Probleme selbständig die Schnittmenge seines Datenimports steuern kann. Eine Möglichkeit eines solchen Vorgehens wird in diesem Beitrag beschrieben.

Parametertabelle zur Steuerung

Zur Steuerung des Datenimports empfiehlt sich, eine simple, relationale Tabelle (T_S_ZuLadendeJahre) anzulegen, in die der gewünschte Parameter abgelegt wird. Im Falle des hier gezeigten Beispiels sind dies die Jahre, welche importiert werden sollen.

Parametertabelle
Abb. 1: Parametertabelle „T_S_ZuLadendeJahre“ für die zu importierenden Jahre

SSIS-Parametrierung

Im SSIS-Paket gilt es nun, einen Datenflusstask anzulegen, welcher beim Transport der Quelldaten zur Zieltabelle die gewünschte Schnittmenge zu unserer zuvor angelegten Tabelle bildet. In diesem Datenfluss sind sowohl die herkömmlichen Elemente OLE-DB-Quelle und OLE-DB-Ziel, als auch der für unseren Fall essenzielle Task „Suche“ (engl.: „Lookup“). Das Ergebnis unseres Datenflusses sollte in etwa folgendem Konstrukt entsprechen:


Abb. 2: Datenflusskonstrukt

Ist eine Quelltabelle ausgewählt, sollte im Bearbeitungsschritt „Lookup der gewünschten Jahre“ folgende Parametrierung vorgenommen werden:


Abb. 3: Allgemeine Einstellungen im Transformations-Editor für Bearbeitungsschritt Lookup

Wichtig ist an dieser Stelle die ausgewählte Option im Dropdown-Menü. Hier wollen wir für den funktionalen Test unserer Übereinstimmungsauswahl folgendes sicherstellen: Diejenigen Einträge, die später nicht in der Schnittmenge enthalten sind, sollen weder an die Fehlerausgabe weitergeleitet noch ignoriert werden; beides sind mögliche Reaktionsformen der Dropdown-Liste. Vielmehr sollen die Daten ebenfalls in eine Tabelle geschrieben werden. Dies erreichen wir mit der Option „Zeilen an Ausgabe nicht übereinstimmender Einträge umleiten“.

Im nächsten Einstellungsdialog „Verbindung“ wird die zuvor angelegte Tabelle „T_S_ZuLadendeJahre“ hinterlegt, mit der der Vergleich durchgeführt werden soll.

Verbindungseinstellungen
Abb. 4: Verbindungseinstellungen im Transformations-Editor für Bearbeitungsschritt Lookup

Über den Menüpunkt „Spalten“ wird daraufhin die Zuordnung der zu vergleichenden Spalten durchgeführt. In dem beschriebenen Fall wird das Jahr der Quelltabelle (JahrID) („Verfügbare Eingabe..“) mit der hinterlegten Jahresspalte („Verfügbare Suchspalten“) unserer Pflegetabelle verknüpft.


Abb. 5: Spalteneinstellungen im Transformations-Editor für Bearbeitungsschritt Lookup

Sind diese Einstellungen vorgenommen, kann der Dialog mit OK bestätigt werden.

Durch die Auswahl, dass auch die nicht in die Schnittmenge passenden Spalten in einen Zielbereich überführt werden sollen, hat unser SSIS-Vorgangselement nun zwei blaue, weiterführende Stränge, die jeweils für eine der beiden Mengen stehen: Positive Schnittmenge und negativer Rest.


Abb. 6: Ausgabestränge. Beide Mengen in blau, die Fehlerausgabe in rot.

Diese können nun analog zur herkömmlichen Weiterverarbeitung in die gewünschten Zielbereiche weitergeleitet werden.

Zielbereich

Nach erfolgreicher Ausführung des SSIS-Datenflusses, sind nun ausschließlich Datensätze aus dem zuvor eingeschränkten Zeitraum 2011 bis 2013 in der Zieltabelle vorhanden:


Abb. 7: Zieltabelle

Mittels dieser Möglichkeit lässt sich mit geringem Aufwand ein SSIS-Ladevorgang erstellen, der mit überschaubarem technischem Aufwand – lediglich durch modifizierte Einträge der Steuertabelle – zu parametrieren ist.