4 Stimmen

Gespeicherte Pakete in Integrationsdiensten verstehen

Wir haben mehrere SSIS-Pakete (in einer Lösung) in einem Verzeichnis auf dem Server gespeichert. Die Pakete werden über einen SQL Server Agent-Auftrag mit "Dateisystem" als Paketquelle ausgeführt. Die Pakete werden in keiner Weise zu den "Integration Services" hinzugefügt (das, was man über die Schaltfläche "Connect" in SSMS erreichen kann). Dies scheint gut zu funktionieren.

Jetzt versuche ich, den praktischen Nutzen und die Funktionsweise der Integrationsdienste zu verstehen. Gespeicherte Pakete . Wahrscheinlich gibt es dafür einen guten Grund - aber ich habe ihn noch nicht verstanden (ich habe mehrere SSIS Themen haben nicht geholfen).

Wenn ich die Integrationsdienste öffne und ein vorhandenes Paket zum Ordner MSDB in Stored Packages hinzufüge, wird es zur msdb-Systemdatenbank meiner SQL Server-Instanz hinzugefügt. Ich kann dann einige Informationen darüber abfragen von sysssispackages o sysssispackagefolders und führen Sie das Paket direkt aus.

Wenn ich ein bestehendes Paket in den Ordner "Dateisystem" unter "Gespeicherte Pakete" hinzufüge, scheint nichts zu passieren, außer dass ich es auch ausführen kann, indem ich mit der rechten Maustaste klicke und "Paket ausführen" wähle.

Ich habe das Gefühl, dass ich hier das Wichtigste verpasse. Meine Fragen lauten wie folgt:

  1. Welche Gründe gibt es für die Verwendung von Integration Services zur Speicherung von Pakete zu verwenden, anstatt sie als Dateien auf dem Server zu speichern?
  2. Was genau passiert, wenn Sie ein Paket zum "Dateisystem" hinzufügen oder MSDB' im Ordner 'Stored Packages' der Integrationsdienste hinzufügen? Was ist der Vorteil?

Für Hinweise/Einblicke bin ich sehr dankbar!

5voto

Joao Leal Punkte 5283

Hier sind einige Vor- und Nachteile von in der Datenbank gespeicherten Paketen gegenüber im Dateisystem gespeicherten Paketen:

Dateisystem

  • Betriebssystembasierte Dateiverschlüsselung und ACLs
  • Einfacherer direkter Zugang zur Ansicht oder Bearbeitung des Pakets
  • Generell einfacher für den Entwickler zu verwalten (um ein Paket zu ändern, muss nur die Datei ersetzt werden)

SQL-Server

  • Leichterer Zugang für mehrere Personen
  • Vorteile durch Datenbanksicherheit, Rollen und Agenteninteraktion
  • Die Pakete werden mit den normalen Datenbank-Backup-Prozessen gesichert.
  • Im Allgemeinen ist es für den DBA einfacher, die Pakete zu verwalten (er hat die Kontrolle darüber, was mit den Paketen in Bezug auf Änderungen usw. geschieht).

Was Ihre zweite Frage betrifft, ist ein Paket eine XML-Datei, die SSIS lesen und ausführen kann. Bei der dateibasierten Bereitstellung sucht SSIS das Paket in Ihrem Dateisystem und führt es aus, bei der DB-Bereitstellung sucht SSIS das Paket in einer MSDB-Tabelle und führt es aus. In Bezug auf die Leistung gibt es keinerlei Unterschiede.

2voto

Diego Punkte 33073
  1. Sicherung. Wenn sich die Pakete in der msdb-Datenbank befinden, werden beim Sichern der Datenbank auch die Pakete gesichert. Außerdem können sie die Vorteile der SQL Server-Sicherheit nutzen und liegen nicht einfach auf einem Dateisystem herum.

  2. Der Vorteil ist, dass Sie sich keine Gedanken über den Dateipfad machen müssen, oder dass jemand die Datei löscht oder den Ordner an einen anderen Ort verschiebt. Das Paket befindet sich immer am "gleichen Ort".

2voto

Josien Punkte 11891

Okay, ich habe eine Menge über den SSIS-Paketspeicher und das Speichern von Paketen missverstanden. Hier ist, was ich gelernt habe. Erstens: "Das Ding, mit dem Sie sich über die Schaltfläche "Verbinden" in SSMS verbinden können (Verbinden -> Integration Services...), heißt der SSIS-Paket-Speicher .

Was genau passiert, wenn Sie ein Paket zu den Ordnern "Dateisystem" oder "MSDB" im Ordner "Gespeicherte Pakete" der Integrationsdienste hinzufügen? Was ist der Vorteil?

Dateisystem

Wenn Sie mit dem Dateisystem Ordner im SSIS-Paket-Speicher, speichern Sie Ihre Pakete im Standard-Dateisystemverzeichnis ( ...\Microsoft SQL Server\100\DTS\Packages ) oder ändern Sie den Stammordner für Dateisystem in das Verzeichnis, das Sie verwenden möchten. (Sie können die Wurzel ändern durch Ändern des Standardwerts von <StorePath>..\Packages</StorePath> in der Datei MsDtsSrvr.ini.xml, die sich im Verzeichnis ...\Microsoft SQL Server\100\DTS\Binn Verzeichnis. Vergessen Sie nicht, danach den Dienst Integration Services neu zu starten). Wenn Sie ein Paket zu diesem Verzeichnis hinzufügen, wird es im Ordner File System im SSIS-Paketshop angezeigt. Sie können das Paket dann direkt aus dem SSIS-Paketshop oder über einen SQL Server Agent-Auftrag ausführen (indem Sie den SSIS-Paketshop als Paketquelle in den Auftragsschritteigenschaften auswählen und dann das Paket auswählen).

Die Bearbeitung von Paketen ist einfach: Öffnen Sie das Paket im Dateisystemverzeichnis, bearbeiten und speichern Sie es, und die neue Version ist sofort über den SSIS-Paketshop verfügbar.

Vorteile:

  • Die Bereitstellung und Fehlerbehebung von Paketen ist einfach
  • Pakete sind auch dann verfügbar, wenn die Datenbank-Engine ausgefallen ist

SQL-Server/MSDB

Wenn Sie sich auf die msdb Datenbank, um Ihre Pakete zu speichern, müssen Sie jedes Paket über den SSIS Package Store in msdb importieren. Klicken Sie mit der rechten Maustaste auf den Ordner MSDB und wählen Sie Paket importieren. Dadurch wird das Paket in der msdb-Datenbank gespeichert. Sie brauchen die ursprünglichen .dtsx-Paketdateien anschließend nicht zu speichern.

Die Bearbeitung von Paketen ist eine etwas härter : Sie müssen das Paket exportieren, es bearbeiten und wieder in den SSIS-Paketshop importieren. Oder Sie öffnen ein neues Projekt in BIDS, fügen das Paket hinzu, indem Sie mit der rechten Maustaste auf SSIS-Pakete klicken und Vorhandenes Paket von SQL Server hinzufügen wählen, es bearbeiten und dann das Paket erneut in den SSIS-Paketshop importieren.

Vorteile:

  • Die Sicherheit von Paketen kann über die Datenbanksicherheit genau konfiguriert werden.
  • Die Pakete werden gesichert, wenn die msdb-Datenbank gesichert wird.
  • Pakete werden an einem zentralen Ort gelagert

Welche Gründe sprechen dafür, Pakete nicht nur als Dateien auf dem Server zu speichern, sondern auch die Integrationsdienste zu nutzen?

Warum sollten Sie also ein Paket zum SSIS-Paketspeicher hinzufügen und es nicht einfach ausführen, wie wir es getan haben, indem Sie direkt auf eine package.dtsx-Datei im Fenster Job-Step-Eigenschaften verweisen?) Es kommt darauf an: Wenn Sie Ihre Pakete in der msdb-Datenbank haben wollen, müssen Sie 必要 den Paketspeicher, da es keine andere Möglichkeit gibt, Ihre Pakete zu pflegen. Wenn Sie das Dateisystem verwenden, kann es sein, dass Sie ein separates "Development"- und "Deployment"-Verzeichnis haben und alle Pakete, die für das Deployment bereit sind, über den SSIS Package Store gefunden werden können. In jedem Fall bietet der SSIS-Paketshop eine einfache Schnittstelle zu Ihren Paketen.

Dank an João Leal y Diego für Ihre Antworten!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X