SSIS Datenübertragung – SQL zu Excel File

In diesem Blog-Beitrag möchte ich aufzeigen, wie mit SQL Server Integration Services (SSIS) Daten von einer SQL Server-Datenbank in eine Excel-Tabelle exportiert werden können. Hiermit können Daten automatisiert ausgetauscht und weiterverarbeitet werden.

Dies ist insbesondere für den Austauch von tagesaktuellen Daten wie beispielsweise zu Umsätzen oder Lagerbestände entscheidend.

Im Folgenden wird ein SSIS Paket erstellt um Lagerbestände auszutauschen, so dass diese anschließend ausgewertet oder in andere Systeme integriert werden können.
1. Der erste Schritt besteht in der Erstellung eines SSIS-Pakets im Visual Studio.

 

Erstellung eines SSIS-Pakets im Visual Studio

 

2. Anschließend kann ein Datenflusstask über die Toolbox hinzugefügt werden, so dass Datenquelle und Datenziel definiert werden können.

 

Datenflusstask über die Toolbox hinzufügen

 

3. Nach der Erstellung des Datenflusstasks kann in den Reiter für den Datenfluss gewechselt werden und über die Toolbox eine OLE DB-Quelle hinzugefügt werden.

Mit Doppelklick auf die OLE DB-Quelle kann der Quellen-Editor geöffnet werden. Hierbei wird ein OLE DB-Verbindungs-Manager sowie die Tabelle oder Sicht angegeben, aus der die Daten extrahiert werden sollen.

 

OLE DB-Verbindungs-Manager sowie die Tabelle oder Sicht

 

Für das Laden und die Übertragung ist die Einrichtung eines OLE DB-Verbindungs-Managers erforderlich. Im Beispiel wird eine Verbindung zum Datawarehouse unter Verwendung der Windows-Authentifizierung hergestellt.

 

Einrichtung eines OLE DB-Verbindungs-Managers

 

 

4. Nach Definition der OLE DB-Quelle kann im nächsten Schritt wiederum über die Toolbox ein Excel-Ziel hinzugefügt werden. Die OLE DB-Quelle wird daraufhin über den Datenflusspfad für die Ausgabe mit dem Excel-Ziel verbunden.

Anschließend wird mit Doppelklick zur Bearbeitung des Excel-Ziels gewechselt und ein neuer Excel-Verbindungs-Manager erstellt.

 

neuer Excel-Verbindungs-Manager

Bei der Einrichtung des Excel-Verbindungs-Managers wird der Dateipfad und ggf. die Excel-Version angegeben. Wenn die Datei Spaltenüberschriften enthält kann zudem das entsprechende Flag aktiviert werden.

 

Einrichtung des Excel-Verbindungs-Managers

 

Im Ziel-Editor ist es zudem möglich, das Mapping zwischen Quell- und Ziel-Spalten zu überprüfen und anzupassen.

 

Mapping im Ziel-Editor

 

Mit dem bisherigen Datenflusstask ist es möglich eine Excel-Datei mit den Lagerbeständen zu erzeugen. Bei einer erneuten Ausführung des Projekts werden allerdings neue Daten an die bestehenden Daten angehängt.

Auf diese Weise würden doppelte Lagerbestände entstehen. Damit die Daten nicht angehängt, sondern die Excel-Datei ausschließlich die aktuellen Daten enthält, gibt es verschiedene Möglichkeiten. Eine einfache Möglichkeit ist die Excel-Datei neu zu erzeugen. Diese Möglichkeit wird im Folgenden beschrieben.
5. Hierfür wird vor dem Datenflusstask in der Ablaufsteuerung ein Dateisystem Task aus der Toolbox hinzugefügt.

Mit diesem Dateisystem Task wird die Excel-Datei bei jeder Ausführung des Pakets gelöscht, indem die Excel-Datei angegeben und die Operation Datei löschen ausgewählt wird.

 

Mit diesem Dateisystem Task wird die Excel-Datei bei jeder Ausführung des Pakets gelöscht

 

6. Als nächstes wird ein SQL Task für die Erzeugung der Excel-Datei hinzugefügt.

Hierfür wird der Excel-Verbindungsmanager und das entsprechende SQL-Statement eingegeben. Das SQL-Statement kann zuvor aus dem Excel-Ziel kopiert werden, indem bei der Angabe der Excel-Tabelle auf die Schaltfläche neu geklickt wird. Daraufhin erscheint ein Fenster mit dem SQL-Statement. Dieses kann kopiert und im SQL-Task eingefügt werden.

 

SQL Task für die Erzeugung der Excel-Datei

 

Anschließend kann das Projekt ausgeführt und die Excel-Datei kann überprüft werden.

 

Anschließend kann das Projekt ausgeführt und die Excel-Datei kann überprüft werden.

 

Indem ein Datenflusstask mit einer OLE DB-Quelle und einem Excel Ziel verwendet wird, können Daten in eine Excel Datei übertragen werden. Mit dem zusätzlichen File Dateisystem Task zum Löschen der Excel-Datei und dem SQL Task zum erneuten Anlegen, wird sichergestellt, dass die Datei bei jeder Ausführung alte Daten gelöscht und ausschließlich die neuen Dateien enthalten sind.