Share via


Synchronizing Adventure Works DW Partitions-Paketbeispiel

Entwickler sehen sich häufig mit dem Problem konfrontiert, wie sie das Erstellen von Partitionen innerhalb von Analysis Services-Cubes automatisieren können. Partitionen werden in der Regel durch eine Dimension, z. B. Uhrzeit, in Slices aufgeteilt. So wurden beispielsweise in den Adventure Works DW-Datenbanken Partitionen mit Umsatzzahlen für die vier Jahre von 2001 bis 2004 statisch erstellt. Was geschieht jedoch, wenn sich in den Faktentabellen Daten außerhalb dieses Bereichs anzusammeln beginnen? Möchten Sie, dass der Entwickler beim Eintreffen von Umsatzzahlen für 2005 und 2006 neue Partitionen manuell erstellt, oder gibt es eine Möglichkeit, das Erstellen neuer Partitionen zu automatisieren?

Das Synchronizing Adventure Works DW Partitions-Paketbeispiel zeigt, wie die Identifikation und das Erstellen neuer Partitionen automatisiert wird. Das Beispiel wurde zwar speziell für Adventure Works DW-Objekte geschrieben, kann aber ganz einfach zum Verwenden in ähnlichen Umgebungen erweitert werden. Dieses Beispiel wird nicht auf Itanium-basierten Betriebssystemen unterstützt.

ms161545.note(de-de,SQL.90).gifWichtig:
Die Beispiele dienen nur zu Lernzwecken. Sie sind nicht für den Einsatz in einer Produktionsumgebung gedacht und wurden auch nicht in einer Produktionsumgebung getestet. Microsoft leistet keinen technischen Support für diese Beispiele.

Anforderungen

Zum Ausführen dieses Beispielpakets ist Folgendes erforderlich:

  • Das Beispielpaket und die von diesem verwendeten Daten müssen auf der lokalen Festplatte installiert sein.
  • Sie müssen die AdventureWorks-OLTP-Datenbank installiert haben und über Administratorrechte für diese Datenbank verfügen.
  • Wenn Sie beabsichtigen, das Beispielpaket lediglich über die Befehlszeile auszuführen, müssen Sie SQL Server 2005 Integration Services (SSIS) installieren.
  • Wenn Sie beabsichtigen, das Paket im SSIS-Designer zu öffnen und das Beispielpaket auszuführen, müssen Sie Business Intelligence Development Studio installieren.
  • Wenn Sie beabsichtigen, das Beispielpaket auf einem 64-Bit-Computer auszuführen, müssen Sie die PreCompile-Eigenschaft des Skripttasks auf True festlegen. Wenn Sie die Tools zum Debuggen verwenden möchten, um das Skript zu durchlaufen, legen Sie die Eigenschaft auf False fest.
  • Wenn die relationalen und die Analysis Services-Datenbanken sich nicht auf dem lokalen Computer befinden oder umbenannt wurden, müssen Sie die entsprechende Verbindung im Beispielpaket so ändern, dass sie auf den richtigen Datenbankspeicherort zeigt. Sie können das Paket direkt im SSIS-Designer bearbeiten, Sie können jedoch auch die Paketkonfiguration bearbeiten.
  • Damit das Skript im Paket ausgeführt werden kann, muss auf Analysis Management Objects verwiesen werden. Dazu muss der Ordner %windir%\Microsoft.net\framework\v2.0.xxxxx eine Kopie der Datei Microsoft.AnalysisServices.dll enthalten, und das Projekt in Microsoft Visual Studio für Applikationen muss einen Verweis auf Analysis Management Objects enthalten. Der Standardspeicherort, von dem Sie die Assembly kopieren, ist C:\Programme\Microsoft SQL Server\90\SDK\Assemblies\Microsoft.AnalysisServices.dll.

Weitere Informationen zum Installieren von Beispielen finden Sie im Thema "Installieren von Integration Services-Beispielpaketen" in der SQL Server 2005-Onlinedokumentation. Wenn Sie die aktuelle Version der Beispiele erhalten möchten, einschließlich neuer Beispiele, die nach der ursprünglichen Version von SQL Server 2005 veröffentlicht wurden, finden Sie entsprechende Informationen unter SQL Server 2005 Samples and Sample Databases (April 2006) (in Englisch).

Speicherort des Beispielpakets

Wenn die Beispiele im Standardverzeichnis installiert wurden, befindet sich das Synchronizing Adventure Works DW Partitions-Paketbeispiel im folgenden Ordner: C:\Programme\Microsoft SQL Server\90\Samples\Integration Services\Package Samples\SyncAdvWorksPartitions Sample\SyncAdvWorksPartitions\

Zum Ausführen des Beispielpakets sind die folgenden Dateien erforderlich.

Datei Beschreibung

Sync Partitions.dtsx

Das Beispielpaket

Get Partitions List.sql

Die Transact-SQL-Abfrage, die zum Identifizieren und Zurückgeben der Partitionsmetadaten von RDBMS verwendet wird

Diese Datei enthält eine Kopie der SQL-Abfrage, die vom Task SQL ausführen verwendet wurde. Sie ist nicht zur Paketausführung erforderlich, es ist aber möglicherweise einfacher, die SQL-Anweisungen mithilfe dieser Textdatei anzuzeigen und zu bearbeiten.

Ausführen des Beispiels

Das Paket kann von der Befehlszeile aus mithilfe des Dienstprogramms dtexec oder in Business Intelligence Development Studio ausgeführt werden.

So führen Sie das Paket mithilfe von dtexec aus

  1. Öffnen Sie ein Eingabeaufforderungsfenster.

  2. Wechseln Sie in das Verzeichnis C: Programme\Microsoft SQL Server\90\DTS\Binn, in dem sich dtexec befindet.

  3. Geben Sie folgenden Befehl ein:

    dtexec /f "C:\Program Files\Microsoft SQL Server\90\Samples\Integration Services\Package Samples\SyncAdvWorksPartitions Sample\SyncAdvPartitions\Sync Partitions.dtsx"
    
  4. Drücken Sie die Eingabetaste.

Weitere Informationen zum Ausführen des Pakets mithilfe des Dienstprogramms dtexec finden Sie im Thema "dtexec (Dienstprogramm)" in der SQL Server 2005-Onlinedokumentation.

So führen Sie das Paket in Business Intelligence Development Studio aus

  1. Öffnen Sie Business Intelligence Development Studio.

  2. Zeigen Sie im Menü Datei auf Öffnen, und klicken Sie auf Projekt/Projektmappe.

  3. Legen Sie Dateityp: auf Integration Services-Projektdateien (*.dtproj) fest, navigieren Sie zum Ordner SyncAdvWorksPartitions Sample, und doppelklicken Sie auf die Datei namens Sync Partitions.dtproj.

  4. Klicken Sie mit der rechten Maustaste im Projektmappen-Explorer im Ordner SSIS Packages auf Sync Partitions.dtsx, und klicken Sie dann auf Paket ausführen.

Weitere Informationen zum Ausführen des Pakets in Business Intelligence Development Studio finden Sie im Thema "Ausführen von Paketen" in der SQL Server 2005-Onlinedokumentation.

Komponenten im Beispiel

Die folgende Tabelle führt die im Beispiel verwendeten Tasks, Quellen und Ziele auf.

Element Zweck

Task SQL ausführen

Der Task SQL ausführen, Get Partition List, führt eine Transact-SQL-Abfrage an die Faktentabelle aus. Die Abfrage identifiziert die Metadaten zur Definition von Partitionen, die anhand der Uhrzeit in Slices geteilt wurden, und gibt diese zurück. Das resultierende Rowset enthält eine Zeile für jede Partition.

Foreach-Schleifen-Task

Der Foreach-Schleifen-Task, Foreach Partition, führt eine Iteration durch jedes Rowset durch, das vom Task SQL ausführen generiert wurde. Bei jeder Iteration wird der Rowsetinhalt extrahiert und in Paketvariablen platziert, die im Task DDL ausführen sowohl des Skripts als auch im Task DDL ausführen von Analysis Services verwendet werden.

Skripttask

Innerhalb des Foreach-Schleifen-Tasks identifiziert der Skripttask namens Partition Already There? mithilfe von Analysis Management Objects (AMO), ob eine entsprechende Partition bereits in der Analysis Services-Datenbank vorhanden ist. Das Ergebnis wird dann zum Festlegen der Variablen IsNotPresent verwendet. Außerdem wird von diesem Task die Variable XMLA_Script aufgefüllt. Mithilfe dieser Variablen kann eine neue Partition in der Analysis Services-Datenbank erstellt werden.

DDL ausführen (Analysis Services-Task)

Bei Bedarf führt der Analysis Services-Task DDL ausführen namens Create Partition das in der Variablen XMLA_Script enthaltene XMLA-Skript aus, um eine neue Partition in der Analysis Services-Datenbank zu erstellen. Dieser Task enthält eine bedingte Rangfolgeneinschränkung, die die Ausführung des Tasks verhindert, wenn die Variable IsNotPresent einen anderen Wert als true ergibt.

Analysis Services-Verbindungs-Manager

Der Verbindungs-Manager, AS database, wird vom Task DDL ausführen verwendet, um eine Verbindung zu der Analysis Services-Datenbank herzustellen, die Partitionen in den Measuregruppen Internet Sales, Internet Orders und Customer Count enthält.

OLE DB-Verbindungs-Manager

Der Verbindungs-Manager, RDBMS database, wird vom Task SQL ausführen zum Abfragen der relationalen Datenbank verwendet, die die Faktentabellen FactInternetSales und FactResellerSales sowie die Dimensionstabelle DimTime enthält.

Beispielergebnisse

Da die Partitionen bereits innerhalb der Analysis Services-Datenbank vorhanden sind, werden beim Ausführen des Pakets keine neuen Partitionen erstellt.

Wenn Sie sehen möchten, wie das Paket neue Partitionen innerhalb der Analysis Services-Datenbank erstellt, können Sie aus den folgenden Measuregruppen des Adventure Works-Cubes Partitionen löschen: Internet Sales, Internet Orders, Reseller Sales, Reseller Orders oder Customer Count. Wenn das Paket ausgeführt wird, werden die aus den Measuregruppen gelöschten Partitionen neu erstellt (allerdings ohne Aggregationen). Anschließend können die Partitionen erneut verarbeitet werden.

Hinweis Falls Sie beabsichtigen, Objekte in der Analysis Services Adventure Works DW-Datenbank zu löschen und erneut zu erstellen, wird empfohlen, vor dem Ausführen des Beispielpakets eine Sicherungskopie der aktuellen Datenbank anzufertigen.