Warum sollte ich ein SSIS-Paket in SQL Server 2008 anstelle einer anderen Technologie verwenden?

8

Ich bin in einer QA-Abteilung einer internen Entwicklungsgruppe. Unsere Produktionsdatenbankprogrammierer haben ein SSIS-Paket erstellt, um eine Ladedatei aus verschiedenen Datenbankbits für den Import in eine Drittanbieteranwendung zu erstellen (wir testen die Integration mit dieser).

Nach der Erstellung wurde schnell erkannt, dass es Abhängigkeiten zu der Version von SQL Server und Visual Studio hatte, mit der es erstellt wurde, und es gab auch einige Abhängigkeiten von der Produktionsumgebung (dies ist kein SSIS-Problem, nur beschreibt die Art unserer Einrichtung).

Die Erstellung dieses Builds hat mehrere Tage lang gedauert und wurde dann nicht in unserer QA-Umgebung durchgeführt.

Nachdem ich dieses Team nach den SQL-Abfragen gefragt habe, die das Paket ausgeführt hat (in der Produktionsumgebung funktioniert es einwandfrei), habe ich ein Python-Skript geschrieben, das dieselbe Aufgabe ohne Abhängigkeiten ausführt. Ich brauchte etwas mehr als zwei Stunden (ich hatte bereits eine benutzerdefinierte Bibliothek zur Handhabung unserer Datenbankinteraktion) und konnte eine UTF-16LE-Datei schreiben, die ich benötigte.

Jetzt sind unsere Produktionsdatenbankprogrammierer keine SSIS-Experten, aber sie nutzen sie in ihren Arbeitsabläufen ein gutes Stück - ich würde sie alle bereitwillig als kompetent bezeichnen.

Also, meine Frage - angesichts der Zeit, die es zu haben scheint und der Abhängigkeiten von den Versionen von SQL Server und Visual Studio, welchen Vorteil bringt ein SSIS-Paket, das ich mit meinem Python-Code nicht sehen kann? Oder ein Shell-Skript oder Ruby oder Code-Flavor-of-the-Moment?

    
dreynold 08.06.2011, 18:49
quelle

1 Antwort

11

Ich bin kein SSIS-Experte, sondern ein durchschnittlicher Entwickler, der seit etwas mehr als drei Jahren Erfahrung mit SSIS hat. Wie bei jeder anderen Software gibt es auch bei SSIS ein kurzes Kommen, aber bisher habe ich es genossen, mit SSIS zu arbeiten. Die Auswahl der Technologie hängt von den Anforderungen und Vorlieben ab. Ich werde nicht sagen, dass SSIS anderen Technologien überlegen ist. Außerdem habe ich nicht mit Python, Ruby oder anderen Technologien gearbeitet, die Sie erwähnt haben.

Hier sind meine zwei Cent. Bitte nehmen Sie dies mit einem Körnchen Salz.

  1. Aus der Sicht eines durchschnittlichen Entwicklers ist SSIS einfach zu verwenden, sobald Sie die Nuancen der Handhabung verstanden haben. Ich glaube, das gilt auch für jede andere Technologie. SSIS-Pakete sind eher visuelle Arbeitsabläufe als ein Codierungswerkzeug (SSIS verfügt natürlich auch über hervorragende Codierungsfunktionen). Man kann leicht verstehen, was in einem Paket vor sich geht, indem man sich die Arbeitsabläufe ansieht, anstatt Hunderte von Codezeilen zu durchlaufen.

  2. SSIS wurde hauptsächlich zum Ausführen von ETL-Jobs (Extrahieren, Transformieren, Laden) erstellt. Es ist darauf abgestimmt, diese Funktionalität besonders gut mit SQL Server zu handhaben und nicht zu vergessen, dass es auch flache Dateien, DB2, Oracle und andere Datenquellen verarbeiten kann.

  3. Sie können die meisten Aufgaben mit minimalem oder keinem Code ausführen. Es kann innerhalb weniger Minuten Millionen von Zeilen von einer Datenquelle in eine andere laden. Siehe dieses Beispiel zeigt ein Paket, das innerhalb von 3 Minuten eine Million Zeilen aus einer Datei mit Tabstopptrennzeichen in SQL Server lädt.

  4. Logging -Funktionen zum Erfassen aller Aktionen, die vom Paket und seinen Aufgaben ausgeführt werden. Es hilft, die Fehler zu lokalisieren oder Informationen über die vom Paket ausgeführten Aktionen zu verfolgen. Dies erfordert keine Codierung. Siehe dieses Beispiel für die Protokollierung.

  5. Check Points hilft dabei, die Paketausführung wie bei einem Rekorder zu erfassen und hilft dabei, die Paketausführung vom Fehlerpunkt aus neu zu starten, anstatt das Paket von Anfang an auszuführen.

  6. Expressions kann verwendet werden, um den Paketfluss abhängig von einer bestimmten Bedingung zu bestimmen.

  7. Package configurations kann für verschiedene Umgebungen mit Datenbank- oder XML-basierten dtsconfig -Dateien oder maschinenbasierten Umgebungsvariablen eingerichtet werden. Siehe dieses Beispiel für auf Umgebungsvariablen basierende Konfiguration. Die Punkte 4 bis 7 sind Out-of-the-Box-Funktionen, die eine geringfügige Konfiguration erfordern und überhaupt keine Codierung erfordern.

  8. SSIS kann die .NET-Framework-Funktionen nutzen und auch Entwickler können ihre eigenen benutzerdefinierten Komponenten erstellen, wenn sie keine Komponente finden, die ihren Anforderungen entspricht. In diesem Beispiel erfahren Sie, wie Sie .NET-Codierung zusammen mit verschiedenen Datenquellen verwenden können. Dieses Beispiel wurde in weniger als 3 hours erstellt.

  9. SSIS kann dieselbe Datenquelle für mehrere Transformationen verwenden, ohne die Daten erneut lesen zu müssen. Siehe dieses Beispiel um zu verstehen, was Multicasting bedeutet. Hier ist ein Beispiel , wie XML-Datenquellen gehandhabt werden können.

  10. SSIS kann auch problemlos mit SSRS (Reporting Services) und SSAS (Analysis Services) integriert werden.

Ich habe gerade sehr grundlegende Dinge aufgelistet, die ich in SSIS verwendet habe, aber es gibt viele nette Features. Wie ich bereits erwähnt habe, bin ich mir nicht sicher, ob Python, Ruby oder andere Sprachen so leicht mit diesen Aufgaben umgehen können.

Alles läuft auf den Komfort mit der Technologie hinaus. Wenn die Technologie neu ist, sind die Menschen sehr skeptisch und nicht bereit, sie anzupassen.

Meiner Erfahrung nach ist es wirklich eine nette Technologie, wenn Sie SSIS verstehen und annehmen. Es funktioniert wirklich gut mit SQL Server. Ich leugne nicht die Tatsache, dass ich während der Entwicklung meiner Pakete auf Hindernisse gestoßen bin, aber meistens einen Weg gefunden habe, sie zu überwinden.

Dies ist vielleicht nicht die Antwort, die Sie erwartet haben, aber ich hoffe, das gibt eine Idee.

    
user756519 08.06.2011, 20:01
quelle

Tags und Links