Was bedeutet SSIS
SQL (siehe SQL Training) Server (siehe SQL Server Seminar) Integration Services (SSIS) ist ein beliebtes und ausgereiftes Tool zur Durchführung von Operationen zur Datenbewegung und -bereinigung. Im Microsoft-Ökosystem ist SSIS eines der am häufigsten verwendeten ETL-Tools (Extrahieren, Laden und Transformieren), die heute verwendet werden. SSIS ist leistungsstark und konfigurierbar und dennoch überraschend einfach zu bedienen.
SSIS wird als Teil von SQL Server lizenziert, und die Interna zur Ausführung eines SSIS-Pakets können als Teil der normalen SQL Server-Installation installiert werden. Als SSIS-Entwickler benötigen Sie jedoch eine Reihe zusätzlicher Tools, die auf Ihrer Workstation installiert werden müssen:
Connection Manager
Ein Connection Manager definiert die Datenstrukturen, aus denen während der Ausführung des Pakets gelesen oder in die geschrieben werden kann. Ein Connection Manager kann sich auf eine relationale Datenbank (mehr dazu Datenbank Schulung) , eine flache Datei, eine Datenbankdatei (z.B. Microsoft Access (siehe auch Access Schulungen) ), einen Webdienst oder eine Cloud-Struktur (z.B. Blob-Speicher) beziehen.
Sobald ein Connection Manager innerhalb eines SSIS-Pakets definiert ist, kann er von allen Tasks oder Komponenten innerhalb dieses Pakets verwendet werden. Stellen Sie sich den Connection Manager als einen Daten-Gateway vor; er kann zum Abrufen von Daten (Quelle), zum Schreiben von Daten (Ziel) und zur Manipulation oder Validierung der Daten beim Durchlaufen der Paketlogik (Transformation) verwendet werden. Tatsächlich könnte derselbe Connection Manager als Quelle, Ziel und Transformation innerhalb desselben Pakets verwendet werden.
Connection Manager sind insofern einzigartig, als sie auf Paket- oder Projektebene definiert werden können. Paket- und Projektverbindungen haben genau die gleiche Funktionalität; der einzige Unterschied besteht im Sichtbarkeitsbereich. Paketverbindungen sind innerhalb des Pakets verwendbar, in dem sie erstellt wurden, während Projektverbindungen für jedes Paket in diesem Projekt zugänglich sind. Letzteres ist sehr praktisch, wenn ein Projekt erstellt wird, das dieselbe Verbindung in mehreren Paketen verwendet.
Parameter
Mit der Veröffentlichung von SQL Server 2012 wurden in SSIS Parameter eingeführt, mit denen Laufzeitwerte einfach an ein Paket übergeben werden können. Durch die Verwendung von SSIS-Parametern wird ein Projekt wesentlich flexibler, da die Abhängigkeit von fest kodierten Werten entfällt.
Parameter verhalten sich weitgehend wie SSIS-Variablen. Sie erfordern beide eine Datentypdefinition, können beide mit einem Standardwert festgelegt werden und können den Verwaltungsaufwand verringern, indem sie fest codierte statische Werte innerhalb eines Pakets eliminieren. Es gibt einige wichtige Unterschiede, darunter
Ausdrücke
SSIS hat eine eigene Ausdruckssprache für die Erzeugung dynamischer Verhaltensweisen. Fast jede Aufgabe und Komponente in SSIS kann Ausdrücke verwenden, um ansonsten statische Werte durch ein kurzes Bit Code zu ersetzen, das zur Laufzeit interpretiert wird.
Einige der praktischen Anwendungen für Ausdrücke in SSIS sind
Der SSIS-Kontrollfluss
Der Kontrollfluss in SSIS ist der Ausgangspunkt, an dem die Paketentwicklung beginnt. Der Kontrollfluss ist die Designoberfläche, auf der Aufgaben hinzugefügt werden. Der SSIS-Kontrollfluss ist dafür verantwortlich, zu steuern, welche Aufgaben in welcher Reihenfolge ausgeführt werden.
Der Kontrollfluss ist die Standardansicht beim Anlegen oder Öffnen eines Pakets. Auf der Registerkarte Kontrollfluss oben links in einem geöffneten Paket wird die Kontrollflussoberfläche angezeigt. Bei einem neuen Paket ist diese leer; Abbildung 8 zeigt ein Paket mit zwei Aufgaben, die dem Kontrollfluss hinzugefügt wurden.
Bei der Arbeit mit dem SSIS-Kontrollfluss gibt es drei verschiedene Arten von Objekten, die Sie verwenden werden: Aufgaben, Container und Vorrangbeschränkungen.
Event-Handler
Event-Handler sind eine besondere Art des SSIS-Kontrollflusses. Ein Event-Handler ist so konzipiert, dass er ausgeführt wird, wenn ein bestimmtes Ereignis eintritt. Abbildung 13 zeigt einen Ereignis-Handler, der so eingestellt ist, dass er ausgeführt wird, wenn die ausführbare Datei (in diesem Fall das Paket selbst) auf einen Fehler (definiert als OnError, was die Standardeinstellung ist) stößt.
Beachten Sie, dass in diesem Beispiel die Ereignisbehandlungslogik noch nicht eingerichtet wurde; um einen Event-Handler für diese ausführbare Datei und dieses Ereignis zu erstellen, können Sie auf die mit einem Hyperlink versehene Nachricht in der Mitte der Entwurfsoberfläche klicken. Die SSIS-Toolbox für diese Registerkarte zeigt alle im Kontrollfluss allgemein verfügbaren Aufgaben.
Event-Handler sind nützliche Werkzeuge, aber achten Sie darauf, dass Sie sie nicht überbeanspruchen. Da die Ereignisbehandlungslogik für jede Aufgabe und jeden Container (sowie für das Paket selbst) individuell eingerichtet werden kann, schafft die Überbeanspruchung von Event-Handlern ein Logik-Labyrinth, das sehr schwer zu warten und zu debuggen ist.
SSIS wird als Teil von SQL Server lizenziert, und die Interna zur Ausführung eines SSIS-Pakets können als Teil der normalen SQL Server-Installation installiert werden. Als SSIS-Entwickler benötigen Sie jedoch eine Reihe zusätzlicher Tools, die auf Ihrer Workstation installiert werden müssen:
- SSDT ist eine leichtere Version von Microsoft Visual Studio (mehr dazu Visual Studio Schulung) , die mit den Erweiterungen zum Erstellen von SSIS-Projekten konfiguriert ist. Wenn Sie SSIS-Pakete erstellen oder testen, ist SSDT das Tool, mit dem Sie die meiste Zeit verbringen werden.
- SQL Server Management Studio (SSMS): Obwohl für die Erstellung von SSIS-Paketen nicht unbedingt erforderlich, benötigen Sie SSMS irgendwann während des Entwicklungszyklus, um die ETL-Prozesse, die Sie in SSIS erstellen, zu testen und einzusetzen.
Connection Manager
Ein Connection Manager definiert die Datenstrukturen, aus denen während der Ausführung des Pakets gelesen oder in die geschrieben werden kann. Ein Connection Manager kann sich auf eine relationale Datenbank (mehr dazu Datenbank Schulung) , eine flache Datei, eine Datenbankdatei (z.B. Microsoft Access (siehe auch Access Schulungen) ), einen Webdienst oder eine Cloud-Struktur (z.B. Blob-Speicher) beziehen.
Sobald ein Connection Manager innerhalb eines SSIS-Pakets definiert ist, kann er von allen Tasks oder Komponenten innerhalb dieses Pakets verwendet werden. Stellen Sie sich den Connection Manager als einen Daten-Gateway vor; er kann zum Abrufen von Daten (Quelle), zum Schreiben von Daten (Ziel) und zur Manipulation oder Validierung der Daten beim Durchlaufen der Paketlogik (Transformation) verwendet werden. Tatsächlich könnte derselbe Connection Manager als Quelle, Ziel und Transformation innerhalb desselben Pakets verwendet werden.
Connection Manager sind insofern einzigartig, als sie auf Paket- oder Projektebene definiert werden können. Paket- und Projektverbindungen haben genau die gleiche Funktionalität; der einzige Unterschied besteht im Sichtbarkeitsbereich. Paketverbindungen sind innerhalb des Pakets verwendbar, in dem sie erstellt wurden, während Projektverbindungen für jedes Paket in diesem Projekt zugänglich sind. Letzteres ist sehr praktisch, wenn ein Projekt erstellt wird, das dieselbe Verbindung in mehreren Paketen verwendet.
Parameter
Mit der Veröffentlichung von SQL Server 2012 wurden in SSIS Parameter eingeführt, mit denen Laufzeitwerte einfach an ein Paket übergeben werden können. Durch die Verwendung von SSIS-Parametern wird ein Projekt wesentlich flexibler, da die Abhängigkeit von fest kodierten Werten entfällt.
Parameter verhalten sich weitgehend wie SSIS-Variablen. Sie erfordern beide eine Datentypdefinition, können beide mit einem Standardwert festgelegt werden und können den Verwaltungsaufwand verringern, indem sie fest codierte statische Werte innerhalb eines Pakets eliminieren. Es gibt einige wichtige Unterschiede, darunter
- Parameter können entweder auf Paket- oder auf Projektebene in den Geltungsbereich einbezogen werden, aber der Geltungsbereich einer Variable ist nur so hoch wie das Paket.
- Parameter können als sensibel markiert werden; in diesem Fall wird der Wert dieses Parameters verschlüsselt, wenn das Paket oder Projekt gespeichert wird. Variablenwerte werden immer im Klartext gespeichert.
- Parameter können auf Erforderlich gesetzt werden, wodurch die Ausführung des Pakets verhindert wird, wenn zur Laufzeit kein Wert geliefert wird. Ein solches Verhalten gibt es bei Variablen nicht.
- Parameter können keine Ausdrücke verwenden, um ihre Werte zu definieren, Variablen jedoch schon.
- Der Wert eines einmal gesetzten Parameters bleibt für die Dauer der Ausführung statisch und kann nach Beginn der Ausführung nicht mehr geändert werden. Der Wert einer Variablen kann jederzeit (und so oft wie nötig) während der Paketausführung programmgesteuert geändert werden.
Ausdrücke
SSIS hat eine eigene Ausdruckssprache für die Erzeugung dynamischer Verhaltensweisen. Fast jede Aufgabe und Komponente in SSIS kann Ausdrücke verwenden, um ansonsten statische Werte durch ein kurzes Bit Code zu ersetzen, das zur Laufzeit interpretiert wird.
Einige der praktischen Anwendungen für Ausdrücke in SSIS sind
- Ersetzen einer statischen Abfrage durch eine Abfrage, die eine angepasste WHERE-Klausel verwendet
- Ersetzen eines Ausgabedateinamens durch einen Namen, der das aktuelle Datum und die aktuelle Zeit in diesem Dateinamen enthält
- Erstellen einer Variablen, die einen Ausdruck verwendet, um mehrere andere Variablenwerte miteinander zu verknüpfen (z.B. einen Verzeichnispfad, der mit einem relativen Dateinamen verkettet ist)
- Ersetzen einer hartkodierten Datenbank-Verbindungszeichenfolge durch einen Ausdruck, der einen Parameter verwendet, so dass die Verbindungszeichenfolge zur Laufzeit geliefert werden kann
Der SSIS-Kontrollfluss
Der Kontrollfluss in SSIS ist der Ausgangspunkt, an dem die Paketentwicklung beginnt. Der Kontrollfluss ist die Designoberfläche, auf der Aufgaben hinzugefügt werden. Der SSIS-Kontrollfluss ist dafür verantwortlich, zu steuern, welche Aufgaben in welcher Reihenfolge ausgeführt werden.
Der Kontrollfluss ist die Standardansicht beim Anlegen oder Öffnen eines Pakets. Auf der Registerkarte Kontrollfluss oben links in einem geöffneten Paket wird die Kontrollflussoberfläche angezeigt. Bei einem neuen Paket ist diese leer; Abbildung 8 zeigt ein Paket mit zwei Aufgaben, die dem Kontrollfluss hinzugefügt wurden.
Bei der Arbeit mit dem SSIS-Kontrollfluss gibt es drei verschiedene Arten von Objekten, die Sie verwenden werden: Aufgaben, Container und Vorrangbeschränkungen.
Event-Handler
Event-Handler sind eine besondere Art des SSIS-Kontrollflusses. Ein Event-Handler ist so konzipiert, dass er ausgeführt wird, wenn ein bestimmtes Ereignis eintritt. Abbildung 13 zeigt einen Ereignis-Handler, der so eingestellt ist, dass er ausgeführt wird, wenn die ausführbare Datei (in diesem Fall das Paket selbst) auf einen Fehler (definiert als OnError, was die Standardeinstellung ist) stößt.
Beachten Sie, dass in diesem Beispiel die Ereignisbehandlungslogik noch nicht eingerichtet wurde; um einen Event-Handler für diese ausführbare Datei und dieses Ereignis zu erstellen, können Sie auf die mit einem Hyperlink versehene Nachricht in der Mitte der Entwurfsoberfläche klicken. Die SSIS-Toolbox für diese Registerkarte zeigt alle im Kontrollfluss allgemein verfügbaren Aufgaben.
Event-Handler sind nützliche Werkzeuge, aber achten Sie darauf, dass Sie sie nicht überbeanspruchen. Da die Ereignisbehandlungslogik für jede Aufgabe und jeden Container (sowie für das Paket selbst) individuell eingerichtet werden kann, schafft die Überbeanspruchung von Event-Handlern ein Logik-Labyrinth, das sehr schwer zu warten und zu debuggen ist.