CiAgICA8IS0tIExpbmtlZEluIC0tPgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogICAgICAgIF9saW5rZWRpbl9wYXJ0bmVyX2lkID0gIjEyMzUwNzMiOwogICAgICAgIHdpbmRvdy5fbGlua2VkaW5fZGF0YV9wYXJ0bmVyX2lkcyA9IHdpbmRvdy5fbGlua2VkaW5fZGF0YV9wYXJ0bmVyX2lkcyB8fCBbXTsKICAgICAgICB3aW5kb3cuX2xpbmtlZGluX2RhdGFfcGFydG5lcl9pZHMucHVzaChfbGlua2VkaW5fcGFydG5lcl9pZCk7CiAgICA8L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgKGZ1bmN0aW9uKCl7dmFyIHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF07CiAgICAgICAgICAgIHZhciBiID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CiAgICAgICAgICAgIGIudHlwZSA9ICJ0ZXh0L2phdmFzY3JpcHQiO2IuYXN5bmMgPSB0cnVlOwogICAgICAgICAgICBiLnNyYyA9ICJodHRwczovL3NuYXAubGljZG4uY29tL2xpLmxtcy1hbmFseXRpY3MvaW5zaWdodC5taW4uanMiOwogICAgICAgICAgICBzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGIsIHMpO30pKCk7CiAgICA8L3NjcmlwdD4KICAgIDxub3NjcmlwdD4KICAgICAgICA8aW1nIGhlaWdodD0iMSIgd2lkdGg9IjEiIHN0eWxlPSJkaXNwbGF5Om5vbmU7IiBhbHQ9IiIgc3JjPSJodHRwczovL3B4LmFkcy5saW5rZWRpbi5jb20vY29sbGVjdC8/cGlkPTEyMzUwNzMmZm10PWdpZiIgLz4KICAgIDwvbm9zY3JpcHQ+CiAgICA8IS0tIEVuZCBMaW5rZWRJbiAtLT4KICAgIA==
Generic filters
Exact matches only
Search in title
Search in excerpt
Search in content

XML-Dateien via SSIS in SQL Server importieren

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.

Datenflusstask anlegenAbbildung 1: Datenflusstask anlegen

Im Datenflusstask können mit der Datenflussquelle „XML-Quelle“ die Rohdaten ausgelesen werden.

DatenflussAbbildung 2: Datenfluss

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

Quellen-Editor für XML – Verbindungs-ManagerAbbildung 3: Quellen-Editor für XML – Verbindungs-Manager

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.

Quellen-Editor für XML – SpaltenAbbildung 4: Quellen-Editor für XML – Spalten

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:

Auswahl Ausgabe Set Abbildung 5: Auswahl Ausgabe Set

Auswahl Ausgabe Set Purchase OrderAbbildung 6: Auswahl Ausgabe Set Purchase Order

Im Ziel-Editor für OLE DB wird dann die Tabelle bestimmt, in die geschrieben werden soll und die Zuordnung geprüft.

Ziel-Editor für OLE DB Abbildung 7: Ziel-Editor für OLE DB

Nach erfolgreichem Import kann man die Daten im SQL Server Management Studio abrufen.

Ergebnis im SQL Management StudioAbbildung 8: Ergebnis im SQL Management Studio