Data Transformation Services für SQL Server 2005 - Häufig gestellte Fragen

In diesem Artikel finden Sie Antworten auf häufig gestellte Fragen zu den Data Transformation Services in SQL Server 2005. Insbesondere werden einige Entwurfsfragen behandelt, wobei jedoch keine direkte Anleitung für den Benutzer enthalten ist, sondern lediglich bestimmte Aspekte erläutert werden.

Auf dieser Seite

 Warum wird bei der Übertragung von Daten für mehrere Tausend Tabellen ein Fehler im Assistenten gemeldet?
 Warum kann ich im Import-/Export-Assistenten keine Objekte kopieren?
 Warum kann ich keine Pakete in SQL Server Management Studio entwerfen?
 Was sind Datenquellen und Datenquellenansichten, und in welcher Beziehung stehen sie zu den Verbindungen in meinem Paket?
 Warum gibt es keine Microsoft Excel- oder Microsoft Access-Datenquelle?
 Warum wird die Option zur schnellen Analyse (Fast Parse) nicht standardmäßig im Datenfluss verwendet?
 Warum gibt es separate WMI-Datentasks und -Ereignistasks?
 Warum wird als Sprache für Ausdrücke nicht SQL oder Visual Basic verwendet?
 Warum fehlen in der Sprache bestimmte Funktionen?
 Warum muss ich die Sortierreihenfolge am Quelladapter und nicht an der verwendeten Komponente, z. B. Merge, konfigurieren?
 Warum muss ich Variablen in meinem Paket sperren?
 Warum erfolgt keine Benachrichtigung an die Komponente, wenn ein Ausgabepfad getrennt wird?
 Warum gibt es einen Windows-Dienst für DTS?
 Warum werden ausgeführte Pakete unter meinem DTS-Server in Management Studio nicht angezeigt?
 Warum ist die Paketprotokollierung nicht mehr standardmäßig in der Systemdatenbank MSDB enthalten?
 Warum werden Änderungen im Schema eines XML-Dokuments im Quelladapter nicht angezeigt?
 Warum kommt es zu Problemen beim Migrieren von Paketen, die auf das übergeordnete Objekt "DTSGlobalVariables" verweisen?
 Warum treten beim Migrieren von Datapumptasks Probleme auf?
 Warum kann ich den Task "dynamische Eigenschaften" nicht migrieren?
 Warum sind in dem ActiveX-Skripttask keine globalen Variablen verfügbar?
 Warum sind der Datentransformationstask und der Datenabfragetask nicht in DTS enthalten?
 Warum ist DTS nicht mehr clientseitig weitervertreibbar?
 Warum unterstützt DTS keine MSI-basierte Bereitstellung?

Warum wird bei der Übertragung von Daten für mehrere Tausend Tabellen ein Fehler im Assistenten gemeldet?

Durch die gegenwärtige Architektur des Assistenten wird ein DTS-Paketdatenfluss zur Übertragung von Daten erzeugt. Bei der Übertragung von mehreren Tausend Tabellen gelten bestimmte Skalierbarkeitsbeschränkungen. Wir halten dies für sinnvoll, da Entwickler von Paketen aller Wahrscheinlichkeit nach kaum mehrere Tausend Quellen und Ziele in einem Datenfluss verwenden werden. Möglicherweise werden jedoch in der Betaversion 3 einige Änderungen vorgenommen.

 

Warum kann ich im Import-/Export-Assistenten keine Objekte kopieren?

Mit dem Import-/Export-Assistenten kann ein Benutzer auf einfache Weise Daten in und aus SQL Server verschieben. Das Kopieren von Datenbankobjekten von Server zu Server ist eigentlich kein Vorgang zum Verschieben von Daten, sondern eher ein Verwaltungsvorgang, auch wenn die Daten tatsächlich an einen anderen Ort verschoben werden.

Benutzer können in der SQL Server Management-Workbench zum Kopieren von Datenbankobjekten den Assistenten zum Kopieren von Datenbanken verwenden, der speziell für diese Aufgabe bestimmt ist.

Mit dem Import-/Export-Assistenten von DTS lassen sich hingegen typische DTS-Operationen vereinfachen, wie das Laden von Daten aus verschiedenen Quellen, z. B. Flatfiles, Kalkulationstabellen und OLEDB-Datenquellen.

 

Warum kann ich keine Pakete in SQL Server Management Studio entwerfen?

SQL Server Management Studio ist eine Umgebung zum Verwalten der Speicherung und Ausführung bereitgestellter Pakete. Dazu sind spezielle Features enthalten, beispielsweise die Integration mit dem DTS-Dienst und eine Funktion zum Auflisten von Paketen auf Remoteservern. Es handelt sich hierbei jedoch nicht um eine Entwurfsumgebung.

Verwenden Sie die Umgebung Business Intelligence Design Studio zum Entwerfen von Paketen und Einordnen dieser Pakete in Lösungen und Projekte, zum Debuggen und Verwalten von Quellcode sowie zur Versionskontrolle für Projekte mit mehreren Benutzern.

In SQL Server 2005 entwerfen Benutzer die Pakete in einer speziellen Umgebung und verwalten diese in einer separaten speziellen Umgebung.

Weitere Informationen zum Entwerfen und Verwalten von Paketen sowie zum Weitergeben von Paketen zwischen verschiedenen Umgebungen finden Sie in der Onlinedokumentation.

 

Was sind Datenquellen und Datenquellenansichten, und in welcher Beziehung stehen sie zu den Verbindungen in meinem Paket?

Datenquellen und Datenquellenansichten sind keine Objekte in Ihrem DTS-Paket, sondern separate Objekte, die in einem Data Transformation-Projekt in Business Intelligence Development Studio gespeichert sind. Da diese Objekte im Projekt und nicht in einem DTS-Paket enthalten sind, können sie von DTS-Paketen gemeinsam verwendet werden. Somit kann eine Datenquellenansicht für ein "Starschema" definiert und von allen Paketen, die dieses Schema laden, konsistent verwendet werden.

Durch Datenquellen wird festgelegt, wie die Verbindungsherstellung mit einer OLEDB- oder ADO.NET-Datenbank erfolgt. Datenquellen enthalten die Verbindungszeichenfolge und andere Eigenschaften, z. B. einen Anzeigenamen für die Verbindung sowie ein Beschreibungsfeld.

Datenquellenansichten sind Teilmengen eines relationalen Schemas, das auf eine Datenquelle verweist. Diese Ansichten können durch benannte Abfragen, berechnete Spalten, virtuelle Beziehungen und Anzeigenamen präzisiert werden. Wenn Sie beispielsweise bei der Arbeit mit einem großen Schema unter Umständen nur eine kleine Tabellenmenge verwenden möchten, können Sie mithilfe einer Datenquellenansicht diese Teilmenge definieren.

Datenquellen und Datenquellenansichten sind Entwurfszeitobjekte, die nur in BI Development Studio-Projekten verwendet werden können. Zur Entwurfszeit lässt sich eine Datenquelle von einem oder mehreren DTS-Paketen in einem Projekt nutzen. Ein weitergegebenes DTS-Paket hat jedoch zur Laufzeit keinen Zugriff mehr auf diese Entwurfszeitobjekte. DTS-Pakete enthalten Verbindungen, die es dem Paketentwickler ermöglichen, die Verbindung mit Datenbanken, Dateien und weiteren Elementen zu verwalten. Zur Entwurfszeit kann eine Verbindung auf eine Datenquelle oder eine Datenquellenansicht verweisen. Zur Laufzeit verfügt jedoch die DTS-Verbindung über alle zur eigenständigen Verwendung erforderlichen Metadaten. Auf diese Weise kann der Benutzer verschiedene Pakete entwerfen, die Verweise auf Datenquellen und Datenquellenansichten gemeinsam verwenden. Anschließend kann der Benutzer diese Pakete unabhängig voneinander ausführen und einzeln weitergeben.

Wenn eine DTS-Verbindung auf eine Datenquelle verweist, kann ein Objekt mithilfe der DTS-Verbindung jede Datenquellenansicht verwenden, die ebenfalls diese Datenquelle nutzt. Auf diese Weise kann ein DTS-Paket problemlos nur auf eine kleine Teilmenge eines umfangreichen Schemas verweisen.

Schließlich sind DTS-Verbindungen generischer als Datenquellen. Somit können nicht nur Verbindungen mit verwalteten OLEDB- und ADO.NET-Providern sondern auch Verbindungen mit Textdateien und HTTP-Verbindungen sowie FTP-Verbindungen hergestellt und viele andere Szenarios realisiert werden.

Weitere Informationen zu Verbindungen, Datenquellen und Datenquellenansichten finden Sie in der Onlinedokumentation.

 

Warum gibt es keine Microsoft Excel- oder Microsoft Access-Datenquelle?

Excel- und Access-Datendateien können mit einem ordnungsgemäß konfigurierten OLEDB-Verbindungs-Manager importiert werden. Sie können den Verbindungs-Manager durch den DTS Import-/Export-Assistenten erstellen lassen.

Weitere Informationen finden Sie in der Onlinedokumentation unter dem Thema "Erstellen eines Pakets mit dem Import-/Export-Assistenten von DTS".

 

Warum wird die Option zur schnellen Analyse (Fast Parse) nicht standardmäßig im Datenfluss verwendet?

Die Option zur schnellen Analyse (Fast Parse) funktioniert nur unter bestimmten Bedingungen. Sie unterstützt keine gebietsschemaspezifische Analyse und nur das Datumsformat "Jahr-Monat-Tag". Diese Option ist nur bei beschränkten Datenformaten sinnvoll, die im Vergleich zur standardmäßigen Analyse schneller analysiert werden können. Daher müssen Benutzer diese Option unter Berücksichtigung ihres Datenformats explizit auswählen.

Weitere Informationen finden Sie in der Onlinedokumentation unter dem Stichwort "Fast Parse".

 

Warum gibt es separate WMI-Datentasks und -Ereignistasks?

Systemverwaltungsdaten können zur Steuerung eines DTS-Kontrollflusses verwendet werden. Beispielsweise können Sie vor der Ausführung eines ETL-Flusses überprüfen, ob SQL Server ausgeführt wird, ob ein Laufwerk "C:" auf dem Computer vorhanden ist oder ob genügend Speicherplatz zur Verfügung steht. Mit dem WMI-Datentask können solche Systemdaten abgerufen werden.

Systemverwaltungsereignisse dienen zur Verarbeitung von Echtzeitaktionen innerhalb eines DTS-Kontrollflusses. Beispielsweise können Sie festlegen, dass der ETL-Fluss erst dann ausgeführt wird, wenn die Speichernutzung unter 50 % fällt, oder dass der Datenfluss erst gestartet wird, nachdem eine neue Quelldatei im Dateisystem verfügbar ist. Der WMI-Ereignistask ermöglicht die Definition und Verarbeitung solcher Systemereignisse.

Diese beiden Tasks unterscheiden sich auch in ihrer Funktionalität grundlegend voneinander. In dieser Version wurde versucht, Tasks basierend auf den von ihnen bereitgestellten Funktionen deutlicher zu trennen, um eine modulare Erstellung von Paketen zu ermöglichen. Ein weiteres Beispiel dieser Trennung ist der Dateisystemtask und der FTP-Task. Die von diesen Tasks ausgeführten Funktionen wurden in DTS 2000 in einem Task zusammengefasst, jedoch in dieser Version wieder getrennt, um die Erstellung von Paketen sowie das Verständnis und die Unterstützung für diese Vorgänge zu erleichtern.

 

Warum wird als Sprache für Ausdrücke nicht SQL oder Visual Basic verwendet?

SQL und Visual Basic erfüllen nicht die Anforderungen des DTS-Datenflusses. Beispielsweise wird Unterstützung für verschiedenste Operatoren benötigt, z. B. bitweise Operatoren zur Bearbeitung von Bitmasken, die in vielen Szenarios als Flags verwendet werden. Außerdem werden im Hinblick auf eine optimale Speichernutzung (und somit auch zur Leistungsoptimierung) vom DTS-Datenfluss nur bestimmte Datentypen verwendet. Dies spiegelt sich auch in der Syntax für Ausdrücke wider.

Die DTS-Syntax ermöglicht Ihnen die Entwicklung von Hochleistungsdatenflüssen mit komplexer Behandlung von Zeichenfolgen und Datentypen. Falls Sie Funktionen benötigen, die von der verwendeten Sprache nicht unterstützt werden oder falls Sie lieber mit der Visual Basic-Syntax arbeiten möchten, können Sie die Skriptkomponente einsetzen, die Ihnen die Verwendung von Visual Basic .NET im Datenfluss ermöglicht.

 

Warum fehlen in der Sprache bestimmte Funktionen?

Aus Ressourcengründen war es nicht möglich, alle gegenwärtig in SQL Server TSQL enthaltenen Funktionen zu implementieren. Vor der Zusammenstellung des ersten Funktionssatzes wurden Kunden und Entwickler befragt. Für die Vorbereitung weiterer Betaversionen und späterer Releases wird das Feedback der aktuellen Betaversion sorgfältig ausgewertet und berücksichtigt.

 

Warum muss ich die Sortierreihenfolge am Quelladapter und nicht an der verwendeten Komponente, z. B. Merge, konfigurieren?

Die Reihenfolge von Zeilen wird am Quelladapter festgelegt und kann von den meisten Downstream-Transformationen nicht geändert werden (die Sortierung wäre eine Ausnahme). Quelladapter, die die Reihenfolge der bezogenen Daten kennen, können diese Informationen eigenständig ohne Benutzereingriff festlegen. Allerdings werden in den meisten Fällen unzureichende Metadaten zum Festlegen der Ausgabespalten-Sortierinformationen an eine Quellkomponente geliefert. Somit ist letztendlich der Benutzer für diese Aktion zuständig.

 

Warum muss ich Variablen in meinem Paket sperren?

Die DTS-Laufzeitumgebung verwendet mehrere Threads für die Ausführung, wenn dies zur Verbesserung der Parallelität beiträgt und dadurch die Leistung und Skalierbarkeit verbessert werden. Um zu verhindern, dass mehrere Threads gleichzeitig versuchen, auf dieselbe Variable zuzugreifen, muss der Zugriff auf Variablen "gesichert" werden, indem die Variablen für Ihre Operation gesperrt werden. Wenn dies nicht geschieht, können bei Paketen unter Umständen unterschiedliche Reaktionen auftreten, z. B. kann es vorkommen, dass Pakete "manchmal nicht funktionieren" oder völlig falsche Ergebnisse ausgeben. Ein solches Problem kann auch auftreten, wenn das Paket eine vollständig lineare Struktur aufweist, etwa wenn der Benutzer die Parallelitätseinstellung in einer Schleife ändern musste.

 

Warum erfolgt keine Benachrichtigung an die Komponente, wenn ein Ausgabepfad getrennt wird?

Benutzer von DTS Designer sollten in der Lage sein, einen Pfad zu löschen und anschließend erneut zuzuweisen, ohne dass das zugehörige Paket beschädigt oder dessen Verhalten geändert wird. Wenn wir die Methode OnOutputPathDetached bereitstellen würden, könnte dieses Konzept unter Umständen durch fehlerhaft reagierende Komponenten zerstört werden. Um die Anforderungen von Komponentenentwicklern zu erfüllen, die eine variable Anzahl von Ausgaben liefern möchten, stellt das DTS-Objektmodell die Eigenschaft DeleteOutputOnPathDetached für die Ausgabe bereit. Durch diese Eigenschaft wird die Ausgabe bei Trennung des Pfades automatisch gelöscht, sofern die Eigenschaft auf True gesetzt ist.

 

Warum gibt es einen Windows-Dienst für DTS?

Mit dem neuen Windows-Dienst für DTS können DTS-Pakete, die auf einem bestimmten Server ausgeführt werden, durch einen Operator angezeigt und angehalten werden. Der Dienst wird innerhalb von SQL Management Studio offen gelegt. Hinweis: Der DTS-Dienst muss zunächst gestartet werden, da er standardmäßig deaktiviert ist.

Weitere Informationen hierzu finden Sie in den häufig gestellten Fragen unter dem Thema "Warum werden ausgeführte Pakete unter meinem DTS-Server in Management Studio nicht angezeigt?"

Ausführliche Informationen finden Sie in der Onlinedokumentation unter "DTS-Dienst" und "Verwalten des DTS-Dienstes".

 

Warum werden ausgeführte Pakete unter meinem DTS-Server in Management Studio nicht angezeigt?

Der DTS-Dienst ist standardmäßig deaktiviert. Dieses Verhalten ist beabsichtigt. Der Dienst wird somit nur dann ausgeführt, wenn er durch den Systemadministrator gestartet wurde. Klicken Sie zum Starten des DTS-Dienstes mit der rechten Maustaste auf Arbeitsplatz und wählen Sie den Befehl Verwalten aus (über die Schaltfläche Start oder den Desktop). Doppelklicken Sie dann im Fenster Computerverwaltung auf Dienste und Anwendungen und anschließend auf Dienste, um alle Windows-Dienste im rechten Fensterbereich anzuzeigen. Suchen Sie den Eintrag für den Dienst DTS-Server in der Liste. Klicken Sie mit der rechten Maustaste auf diesen Eintrag und wählen Sie den Befehl Starten aus. (Sie können ebenfalls auf den Dienst doppelklicken, um das Dialogfeld mit den Eigenschaften des Dienstes aufzurufen. Legen Sie dann als Starttyp die Einstellung Automatisch fest, wenn der Dienst bei jedem Hochfahren des Computers automatisch gestartet werden soll.)

Ausführliche Informationen finden Sie in der Onlinedokumentation unter "DTS-Dienst" und "Verwalten des DTS-Dienstes".

 

Warum ist die Paketprotokollierung nicht mehr standardmäßig in der Systemdatenbank MSDB enthalten?

Mit SQL 2005 DTS werden zahlreiche neue Optionen für Protokollierungsinformationen über Ihre Datenbank eingeführt. Dadurch können Sie pro Paket jeweils einen oder mehrere Protokollanbieter unterschiedlicher Typen definieren. Protokollanbietertypen sind beispielsweise Textdateien, SQL Server, Windows-Ereignisprotokoll usw. Wenn Sie innerhalb Ihres Pakets Protokollanbieter hinzufügen möchten, klicken Sie im Menü DTS auf die Option Logging.

Weitere Informationen finden Sie in der Onlinedokumentation unter "DTS-Protokollanbieter" und "Festlegen von Protokollierungsoptionen in Paketen".

 

Warum werden Änderungen im Schema eines XML-Dokuments im Quelladapter nicht angezeigt?

Änderungen im Schema einer XML-Datei wirken sich in erheblichem Maße auf die Metadaten des Datenflusses aus. Daher muss der Benutzer explizite Änderungen des Schemas vornehmen und dabei die Änderungen an den Metadaten berücksichtigen.

 

Warum kommt es zu Problemen beim Migrieren von Paketen, die auf das übergeordnete Objekt "DTSGlobalVariables" verweisen?

Aufgrund der in DTS 2005 enthaltenen umfangreichen Änderungen war es erforderlich, ein vollständig neues Objektmodell zu entwickeln. Als Folge der Migration auf SQL Server 2005 DTS sind ActiveX-Skriptverweise auf SQL Server 2000 DTS-Objekte, auf die über die Parent-Eigenschaft DTSGlobalVariables zugegriffen wird, nicht mehr gültig.

 

Warum treten beim Migrieren von Datapumptasks Probleme auf?

Der Datenflusstask in DTS 2005 ersetzt die Datentransformationstasks aus DTS 2000 und bietet eine deutlich verbesserte Funktionalität. Als Ergebnis dieser Entwicklung ist jedoch keine eindeutige Zuordnung zu den Funktionen von DTS 2000 oder 2005 möglich. Um auch weiterhin eine fehlerfreie Funktion der Datentransformationstasks aus der Vorversion sicherzustellen, wurden diese nicht vollständig auf SQL Server 2005 migriert. Der Migrationsassistent bettet einen solchen Task gegenwärtig in ein dediziertes SQL Server 2000-Paket ein und ruft dieses dann aus einem Execute SQL Server 2000 DTS-Pakettask heraus auf.

 

Warum kann ich den Task "dynamische Eigenschaften" nicht migrieren?

Da dieser Task direkt vom früheren DTS 2000-Objektmodell abhängig ist, das in dieser Version nicht mehr implementiert ist, bietet der Migrations-Assistent gegenwärtig nur eingeschränkte Unterstützung für diesen Task. Instanzen dieses Tasks werden durch Skripttasks ersetzt, die Kommentare zur Beschreibung der früher durch diesen Task festgelegten Eigenschaften enthalten. Zur Wiederherstellung der früheren Funktionalität ist eine manuelle Änderung erforderlich.

 

Warum sind in dem ActiveX-Skripttask keine globalen Variablen verfügbar?

Der Zugriff auf globale Variablen wird in der Betaversion 2 nicht unterstützt.

 

Warum sind der Datentransformationstask und der Datenabfragetask nicht in DTS enthalten?

SQL Server 2005 enthält anstelle dieser beiden Tasks aus SQL 2000 den Task "Datenfluss". Der Task "Datenfluss" definiert keine Beschränkungen für die Anzahl an Quellen, Zielen und Transformationen. In SQL 2000 hingegen war ein Benutzer auf eine einzige Quelle, ein Ziel und eine Transformation je Task beschränkt. Da das neue Objektmodell in jedem Fall diese erweiterte Funktionalität unterstützen musste, war es nicht sinnvoll, Unterstützung für diese beiden weniger leistungsfähigen Tasks zu implementieren.

 

Warum ist DTS nicht mehr clientseitig weitervertreibbar?

DTS wurde auf Grundlage eines nützlichen Dienstprogramms in SQL Server 2000 neu entwickelt und zu einer Anwendung und Plattform mit hohem Funktionsumfang in SQL Server 2005 umgestaltet. Mit dieser Änderung ergibt sich auch die Aufgabe, Dienste und Support für DTS-Benutzer bereitzustellen. Die beste Verfahrensweise hierzu ist die Verwaltung und Lizenzierung der DTS-Modulfunktionalität ähnlich den anderen SQL-Serveranwendungen. Obwohl Benutzer mit dem neuen Bereitstellungs-Assistenten problemlos Pakete weitergeben können, müssen sie das SQL Server 2005-Setup ausführen und DTS auf jedem Computer installieren, auf dem die Pakete ausgeführt werden sollen. Dadurch lässt sich sicherstellen, dass der Benutzer bzw. Computer die richtige Version der ausführbaren DTS-Dateien verwendet. Außerdem vereinfacht dies die künftige Aktualisierung der Software erheblich.

 

Warum unterstützt DTS keine MSI-basierte Bereitstellung?

Eine MSI-basierte Bereitstellung bietet zwar den Vorteil einer komplett eigenständigen Installation, würde jedoch die Weitergabe der DTS-Binärdateien erfordern. Wenn ein wichtiger Sicherheitspatch installiert werden müsste, wäre es unmöglich, den Patch in geordneter Weise auf jedes Bereitstellungsziel zu übertragen. Das aktuelle Bereitstellungsprogramm prüft, ob Zielserver über eine bestehende Installation von DTS verfügen. Dies stellt ein deutlich wartungsfreundlicheres Modell für Administratoren dar.

Weitere Informationen finden Sie in der Onlinedokumentation unter dem Stichwort "Bereitstellungsprogramm".

„Die Inhalte der hier eingestellten Artikel stammen möglicherweise nicht von Microsoft, sondern von Dritten und werden Ihnen kostenlos zur Verfügung gestellt. Microsoft kann daher für die Richtigkeit und Vollständigkeit der Inhalte keine Haftung übernehmen.“