次の方法で共有


Synchronizing Adventure Works DW Partitions パッケージ サンプル

開発者が直面する共通の問題は、Analysis Services キューブ内でパーティションを作成する作業をどのように自動化するかということです。パーティションは通常、時間などのディメンションによってスライスされます。たとえば、Adventure Works DW データベースで、2001 ~ 2004 年の 4 年間についての販売データ パーティションが静的に作成されたとします。ファクト テーブルがこの日付範囲外のデータの蓄積を開始するとどうなるでしょうか。2005 ~ 2006 年の販売データを受信した場合、開発者が新しいパーティションを手動で作成する必要があるでしょうか。あるいは、新しいパーティションの作成を自動化する方法はあるでしょうか。

Synchronizing Adventure Works DW Partitions パッケージ サンプルは、新しいパーティションの識別および作成を自動化する方法を示すサンプル パッケージです。サンプルは Adventure Works DW オブジェクト用に作成されていますが、同様の環境で使用するための拡張を簡単に行うことができます。このサンプルは、Itanium ベースのオペレーティング システムではサポートされていません。

ms161545.note(ja-jp,SQL.90).gif重要 :
サンプルは、学習に使用することのみを目的に提供されています。これらは、運用環境での使用を目的としたものではなく、運用環境でのテストも実施されていません。Microsoft からは、これらのサンプルについてのテクニカル サポートは提供されません。

必要条件

このサンプル パッケージを実行するための前提条件は次のとおりです。

  • サンプル パッケージとサンプル パッケージが使用するデータ ファイルが、ローカルのハード ディスク ドライブにインストールされている。
  • AdventureWorks OLTP データベースがインストールされていて、そのデータベースに対する管理権限を持っている。
  • コマンド ラインからサンプル パッケージを実行する場合、SQL Server 2005 Integration Services (SSIS) がインストールされている。
  • SSIS デザイナでパッケージを開いてサンプル パッケージを実行する場合、Business Intelligence Development Studio がインストールされている。
  • 64 ビット コンピュータでサンプル パッケージを実行する場合、スクリプト タスクの PreCompile プロパティを True に設定する必要があります。デバッグ ツールを使用してスクリプトをステップ実行する場合は、プロパティを False に設定します。
  • リレーショナル データベースおよび Analysis Services データベースがローカル コンピュータ上に存在しない場合や、これらのデータベースの名前が変更されている場合、正しいデータベースの場所を参照するよう、サンプル パッケージの適切な接続を修正する必要があります。SSIS デザイナで直接パッケージを編集したり、パッケージ構成を編集することができます。
  • パッケージ内のスクリプトを実行するには、分析管理オブジェクトを参照する必要があります。そのためには、%windir%\Microsoft.net\framework\v2.0.xxxxx フォルダに Microsoft.AnalysisServices.dll のコピーが、Microsoft Visual Studio for Applications プロジェクトに分析管理オブジェクトへの参照が、それぞれ含まれている必要があります。このアセンブリの既定の場所は、C:\Program Files\Microsoft SQL Server\90\SDK\Assemblies\Microsoft.AnalysisServices.dll です。ここからこのアセンブリをコピーできます。

サンプルのインストール方法の詳細については、SQL Server 2005 Books Online の「Integration Services サンプル パッケージのインストール」のトピックを参照してください。SQL Server 2005 のオリジナル リリース後にリリースされた新しいサンプルを含む、サンプルの最新バージョンを入手するには、「SQL Server 2005 Samples and Sample Databases (April 2006)」を参照してください。

サンプル パッケージの場所

サンプルを既定の場所にインストールした場合、Synchronizing Adventure Works DW Partitions サンプル パッケージは、C:\Program Files\Microsoft SQL Server\90\Samples\Integration Services\Package Samples\SyncAdvWorksPartitions Sample\SyncAdvWorksPartitions\ フォルダにあります。

このサンプル パッケージの実行には次のファイルが必要です。

ファイル 説明

Sync Partitions.dtsx

サンプル パッケージです。

Get Partitions List.sql

RDBMS のパーティション メタデータを認識して返すために使用される Transact-SQL クエリです。

このファイルには、SQL 実行タスクで使用される SQL クエリのコピーが含まれています。このファイルがなくてもパッケージを実行することはできますが、このテキスト ファイルを使用すると、SQL ステートメントをより簡単に表示および編集できます。

サンプルの実行

パッケージは、dtexec ユーティリティを使用してコマンド ラインから実行することができます。または、Business Intelligence Development Studio で実行することもできます。

dtexec を使用してパッケージを実行するには

  1. [コマンド プロンプト] ウィンドウを開きます。

  2. dtexec のある C:\Program Files\Microsoft SQL Server\90\DTS\Binn にディレクトリを変更します。

  3. 次のコマンドを入力します。

    dtexec /f "C:\Program Files\Microsoft SQL Server\90\Samples\Integration Services\Package Samples\SyncAdvWorksPartitions Sample\SyncAdvPartitions\Sync Partitions.dtsx"
    
  4. Enter キーを押します。

dtexec ユーティリティを使用してパッケージを実行する方法の詳細については、SQL Server 2005 Books Online のトピック「dtexec ユーティリティ」を参照してください。

Business Intelligence Development Studio でパッケージを実行するには

  1. Business Intelligence Development Studio を開きます。

  2. [ファイル] メニューの [開く] をポイントし、[プロジェクト/ソリューション] をクリックします。

  3. [ファイルの種類] オプションを [Integration Services プロジェクト ファイル (*.dtproj)] に設定し、SyncAdvWorksPartitions Sample フォルダを検索して、Sync Partitions.dtproj という名前のファイルをダブルクリックします。

  4. [ソリューション エクスプローラ] で、[SSIS パッケージ] フォルダの Sync Partitions.dtsx を右クリックして、[パッケージの実行] をクリックします。

Business Intelligence Development Studio でのパッケージの実行方法の詳細については、SQL Server 2005 Books Online のトピック「パッケージの実行」を参照してください。

サンプルのコンポーネント

次の表に、サンプルで使用されるタスク、ソース、および変換先のリストを示します。

要素 目的

SQL 実行タスク

SQL 実行タスク Get Partition List は、ファクト テーブルに対して Transact-SQL クエリを実行します。クエリは時間によってスライスされたパーティションを定義するメタデータを認識して返します。結果の行セットには各パーティションごとに 1 つの行が含まれています。

ForEach ループタスク

Foreach Loop タスク Foreach Partition は、SQL 実行タスクで生成された各行セットを反復処理します。各反復では、行セットの内容が、スクリプトおよび Analysis Services DDL 実行タスクの両方で使用されるパッケージ変数に抽出されます。

スクリプト タスク

Foreach ループ タスク内では、Partition Already There? という名前のスクリプト タスクによって分析管理オブジェクト (AMO) が使用され、対応するパーティションが Analysis Services データベース内に既に存在するかどうかが識別されます。その結果を使用して、IsNotPresent 変数を設定します。また、このタスクによって、XMLA_Script 変数も作成されます。この変数を使用して、Analysis Services データベース内に新しいパーティションを作成することができます。

Analysis Services DDL 実行タスク

必要に応じて、Create Partition という名前の Analysis Services DDL 実行タスクによって、XMLA_Script 変数内に保持されている XMLA スクリプトが実行され、Analysis Services データベース内に新しいパーティションが作成されます。このタスクには、IsNotPresent 変数が true と評価されない限りタスクが実行されないようにする、条件付き優先順位制約が含まれています。

Analysis Services 接続マネージャ

接続マネージャ AS database は、DDL 実行タスクによって使用され、Internet Sales、Internet Orders、および Customer Count メジャー グループ内のパーティションが含まれている Analysis Services データベースに接続します。

OLE DB 接続マネージャ

接続マネージャ RDBMS database は、SQL 実行タスクによって使用され、ファクト テーブル FactInternetSalesFactResellerSales、およびディメンション テーブル DimTime が含まれているリレーショナル データベースをクエリします。

サンプル結果

パーティションが Analysis Services データベース内に既に存在しているため、パッケージの実行時に新しいパーティションは作成されません。

Analysis Services データベース内で新しいパーティションがパッケージによって作成されるのを確認する場合は、Adventure Works キューブのメジャー グループである Internet SalesInternet OrdersReseller SalesReseller Orders、または Customer Count からパーティションを削除します。パッケージを実行すると、(集計がなくても) メジャー グループから削除したパーティションが再作成されます。その後、このパーティションを処理することができます。

   Analysis Services Adventure Works DW データベース内のオブジェクトを削除してから再作成する場合は、サンプル パッケージを実行する前に現在のデータベースのバックアップを行うことをお勧めします。