In einer Parent-Child Struktur die Schlüssel von Strings nach Integer
austauschen Im Data Warehouse Umfeld werden
Parent-Child Beziehungen sehr oft und auch gerne verwendet. Damit können
beliebig tiefe Hierarchiestrukturen einfach erstellt werden. Die Analysis
Services unterstützen natürlich diese
Strukturen. Häufig werden diese Strukturen von anderen Vorsystemen, wie zum Beispiel SAP, geliefert. Dann sind die Schlüssel meistens Strings mit zum Teil beachtlicher Länge. In diesem Demopaket möchte ich Ihnen zeigen, wie diese Strings mit Hilfe eines SSIS Pakets auf Integerwerte umgesetzt werden können. Bitte passen Sie die Verbindungs-Manager an Ihre Umgebung an. Rahmenbedingungen Damit dieses Demopaket bei Ihnen ausgeführt werden kann, muss die Beispieldatenbank AdventureWorks in Ihrer Testumgebung zur Verfügung stehen. Die aktuelle Version der Beispiele für den SQL Server 2005 finden Sie hier. In dem Zipfile finden Sie das SSIS Paket und zusätzlich ein SQL Script, damit Sie prüfen können, ob die Umsetzung der Schlüssel auch fehlerfrei funktioniert hat.
Beispiel
Vorbereitung
Eigentliche Demo
Sätze, die nicht gefunden werden, werden
über den Fehlerausgang (roter Pfeil) ausgegeben, wenn die Fehlerbehandlung
entsprechend konfiguriert wurde.
Dieser Datenstrom wird direkt in die Tabelle eingefügt. Mit dieser Technik wird die Tabelle sehr effizient mit den neuen Datensätzen gefüllt. Wieder zurück in der Ablaufsteuerung wird die Umsetzung aller Parentkeys in der gesamten Tabelle ParentChildDemo mit Hilfe einer Task SQL ausführen durchgeführt.
Besonderheiten Eine nicht gefüllte Spalte ParentAN, das die oberste Ebene der Parent-Child-Hierarchie kennzeichnet wird nicht als NULL sondern als Leerstring in die VARCHAR Spalte der Tabelle geschrieben; bei einem numerischen Feld würde in diesem Fall NULL gespeichert. Selbstverständlich müssen SSIS Pakete auch getestet werden. Im Zipfile liegt ein SQL Script, mit dem Sie überprüfen können, ob die Umsetzung der Schlüssel auch wirklich funktioniert hat.
Die
Suche Transformation kann auch ohne Probleme dazu
verwendet werden um festzustellen, ob ein Datensatz bereits vorhanden ist. Bei
kleinen und mittleren Datenvolumen funktioniert das sehr schnell. Bei sehr
großem Datenvolumen (> 1.000.000) muss der Ressourcenverbrauch beobachtet
werden.
Das Demopaket finden Sie
hier. Komponentenindex:
erstellt am 26.7.2006 |