Mit den SQL Server Integration Services stehen einem fast alle Türen offen, um Daten von A nach B zu transportieren. Dabei können die Quelldateien unterschiedlicher nicht sein. Hier möchten wir Ihnen vorstellen, wie Sie mit Hilfe von SSIS XML-Daten in den SQL Server überführen können.
Was sind XML-Dateien
XML steht für Extensible Markup Language, übersetzt „erweiterbare Auszeichnungssprache“, und ist eine vereinfachte Form von SGML (Standard Generalized Markup Language, ISO 8879). Ziel von XML ist es, auf Basis eines text-basierten Formats den Austausch strukturierter Informationen zu gewährleisten. Ähnlich Hypertext Markup Language (HTML) lassen sich mit XML mittels Markup Symbols Seiten und Inhalt beschreiben und strukturieren.
Import von XML-Dateien
Um nun eine XML-Datei in den SQL Server einzulesen, muss im SSIS (neben einer neuen SSIS-Solution auch) ein Datenflusstask angelegt werden.
Im Datenflusstask können mit der Datenflussquelle „XML-Quelle“ die Rohdaten ausgelesen werden.
Um dies zu ermöglichen, sind noch einige Einstellungen zu treffen. Der Datenzugriffsmodus kann über drei Wege erfolgen:
- XML-Dateispeicherort
- XML-Datei aus Variable
- XML-Daten aus Variable
In unserem Beispiel verwenden wir den XML-Dateispeicherort. Die Quelldateien (XML-Dateien), die für dieses Beispiel benutzt werden, können vom MSDN heruntergeladen werden:
- https://msdn.microsoft.com/en-us/library/bb387034.aspx
- https://msdn.microsoft.com/en-us/library/bb387025.aspx
Daneben verwenden wir auch noch XSD-Files. Hier können die einzelnen Elemente der XML-Dokumente genau spezifiziert werden. Diese Dateien stehen ebenfalls zum Download auf folgenden Seiten bereit:
- https://msdn.microsoft.com/en-us/library/dd489284(v=vs.110).aspx
- https://msdn.microsoft.com/en-us/library/bb675181.aspx
Falls XML- und XSD-Dateien vorhanden sind, kann der Speicherort für den jeweiligen Dateityp eingetragen werden. Über den Button „XSD-Code generieren…“ kann man sich ein XSD-File auch erstellen lassen. Sind in der XLS-Datei bereits die Strukturinformationen enthalten, kann der Haken bei Inlineschema verwenden gesetzt werden.
Im Reiter Spalten können die Ausgabespalten kontrolliert werden. In unserem Testfile sind Hierarchieinformationen enthalten (Adress – Item – Items – Purchase), daher haben wir vier verschiedene Ausgabenamen zur Verfügung.
Jedes der Data Sets kann in eine separate Tabelle geladen werden Wird der grüne Pfeil von der Datenflussquelle zum Datenflussziel gezogen, erscheint ein Dialog. Hier kann ausgewählt werden, welches Data Set benutzt werden soll:
Im Ziel-Editor für OLE DB wird dann die Tabelle bestimmt, in die geschrieben werden soll und die Zuordnung geprüft.
Nach erfolgreichem Import kann man die Daten im SQL Server Management Studio abrufen.