Aggregation Manager サンプルの Readme
Aggregation Manager は、クエリ ログで収集された情報に基づいて集計を表示、設計、編集、追加できるサンプル アプリケーションです。
集計関連のパフォーマンスについては、「SQL Server 2005 Analysis Services パフォーマンス ガイド」の「効率的な MDX の記述」を参照してください。クエリ ログの設定については、「Analysis Services クエリ ログの構成 (Configuring the Analysis Services Query Log)」を参照してください。
シナリオ
Aggregation Manager サンプルでは、SQL Server 2005 Analysis Services の各種機能を活用して集計を処理する方法を紹介します。
このサンプルでは、Analysis Services インスタンスに接続して集計デザインのセットを表示できます。また、集計デザインが適用されるパーティションも表示されます。
このサンプルを使用すると、特定の集計デザインで集計セットを表示し、必要に応じて個々の集計を変更できます。集計デザインは、メジャー グループのどのパーティションにも適用できます。
サンプルを実行し、クエリ ログ テーブルに接続することで、多次元式 (MDX) クエリに関する統計情報をインポートしたり、MDX クエリを表示したり、表示されたセットに基づいて新しい集計を追加することができます。
言語
C# (AMO オブジェクト モデルを使用)
機能
Aggregation Manager サンプルでは、SQL Server 2005 Analysis Services の次の新機能を使用します。
アプリケーション領域 | 機能 |
---|---|
集計の追加、既存の集計の削除と変更 |
AMO の AggregationDesign オブジェクトおよび Aggregation オブジェクトを使用して集計を管理します。 |
XMLA スクリプトの作成 |
Scripter AMO オブジェクトを使用して Analysis Services オブジェクトをシリアル化し、XML for Analysis (XMLA) スクリプトを作成します。 |
新しい集計のソースとして QueryLog を使用 |
SQL Server データベースに接続し、集計のセットを表示します。クエリ ログに基づいて新しい集計を追加します。 |
必要条件
このサンプルを実行する前に、次のことを行ってください。
- 開発者のコンピュータに次のコンポーネントがインストールされていることを確認します。
- Visual Studio 2005 (C# コンパイラまたは .Net Framework 2.0 SDK と共にインストール)
- SQL Server 2005 SP2 サンプル
- 次のサービスが開始されており、ローカル コンピュータまたは管理可能な別のコンピュータから利用できることを確認します。
- SQL Server Analysis Services
- SQL Server エンジン
- AggManager.snk という名前の署名ファイルがあることを確認します。署名ファイルを作成するには、「厳密名ツール (Sn.exe)」にある手順に従います。
- クエリ ログを記録するよう Analysis Services を構成します。「Analysis Services クエリ ログの構成 (Configuring the Analysis Services Query Log)」を参照してください。また、QueryLogSampling の値を 1 に設定します。
- 集計をデザインするキューブに対し、いくつかのクエリを実行しておきます。クエリの実行に適したキューブがない場合は、Adventure Works DW データベースを配置して、Adventure Works キューブをテスト用に使用できます。「セットアップの実行による AdventureWorks のサンプル データベースとサンプルのインストール」を参照してください。
サンプルのビルド
方法 1 : Visual Studio を使用してサンプルをビルドする
ソリューション ファイル AggManager.sln が保存されているフォルダの場所を確認します。
署名ファイル AggManager.snk をソリューション フォルダに移動します。
Visual Studio を開きます。
[最近使ったプロジェクト] タブの下部の、[開く] と表示されているセクションで、[プロジェクト] をクリックします。
AggManager.sln ファイルを保存したフォルダを開き、ファイルを選択して [開く] をクリックします。
F6 キーを押して、プロジェクトをビルドします。
方法 2 : .Net Framework SDK の msbuild.exe を使用してサンプルをビルドする
ソリューション ファイル AggManager.sln が保存されているフォルダの場所を確認します。
署名ファイル AggManager.snk をソリューション フォルダに移動します。
コマンド プロンプトを開き、ソリューション ファイルが置かれている場所にディレクトリを変更します。「方法 : コマンド プロンプトでコンパイルする」の説明に従って環境を構成します。
「msbuild.exe AggManager.sln」と入力し、Enter キーを押します。
サンプルの実行
サンプルを実行する前に、SQL テーブルにクエリ ログをいくつか記録しておく必要があります。必要条件 4. および 5. を参照してください。
ステップ 1 : Analysis Services に接続する
サンプルを起動します。Visual Studio で、AggManager.sln を開いた状態で F5 キーまたは Ctrl + F5 キーを押すか、実行可能ファイルの場所でコマンド プロンプト ウィンドウを開き、「AggManager.exe」と入力して Enter キーを押します。
実行可能ファイルを実行しているサーバーと同じサーバーに接続しており、使用しているインスタンスが既定のインスタンスである場合は、localhost のまま [接続] をクリックできます。異なるサーバーや名前付きのインスタンスに接続している場合は、localhost を正しい Server Name または <Server Name>\<Instance> の値に置き換えてから、[接続] をクリックする必要があります。
サーバーのツリー ビューをクリックして、データベース、キューブ、その他利用可能なオブジェクトを参照できることを確認します。
ステップ 2 : クエリ ログに接続する
Analysis Services に接続していない場合は接続します。ステップ 1 を参照してください。
サーバー名の横にある [+] をクリックしてサーバー オブジェクトを展開し、次に [Databases] フォルダ オブジェクトを展開します。
ログ対象の、クエリを実行したキューブが含まれるデータベース オブジェクトを展開し、次に [Cubes] フォルダ オブジェクトを展開します。
ログ対象の、クエリを実行したキューブ オブジェクトを展開し、次に [Measure Groups] フォルダ オブジェクトを展開します。
集計を分析およびデザインするメジャー グループ オブジェクトを展開します。
[No Aggregation Design] フォルダ オブジェクトを右クリックし、[Add from query log] を選択します。新しいウィンドウが開きます。
[QL Server Connect] ボックスに淡色表示されている接続文字列を読みます。
ステップ 3 : 新しい集計デザインを作成する、集計デザインを削除する、集計デザインとパーティションを関連付ける
新しい集計デザインの作成を開始するには、クエリ ログ データベースに接続している必要があります。前のステップを参照してください。
[Add Aggregations from Query Log] ウィンドウで、[Aggregation Design Name] および [Aggregation Prefix] に名前を割り当てます。[Aggregation Design Name] は、現在の集計デザイン セットのベース名です。[Aggregation Prefix] は、作成する新しい集計デザインの特定名です。
データグリッドに使用できるレコードがない場合は、[Execute SQL] をクリックします。
[OK] をクリックすると、新しい集計デザインが作成され、[Aggregation Manager] ウィンドウに戻ります。[Cancel] をクリックすると、現在の操作がキャンセルされてウィンドウが閉じ、[Aggregation Manager] ウィンドウに戻ります。
新しく作成された集計デザインは、展開ノードの一部に表示されます。
集計デザインを 1 つ削除するには、削除する集計デザインを右クリックして、ショートカット メニューの [delete] をクリックします。
集計デザインにパーティションを関連付けるには、対象のデザイン ノードを右クリックし、[Change Partitions] をクリックします。
パーティション ウィンドウで、対象のデザインに割り当てるパーティションを選択し、[OK] をクリックします。
ノードを展開すると、デザインの下にパーティションが表示されます。
ステップ 4 : 集計デザインを編集する、集計の定義を表示する
編集する集計デザインを選択します。右側のペインの [Aggregation count] に値が表示されていない場合、このデザインには集計がデザインされていません。次のステップに従い、新しい集計デザインを開始してください。既に集計がデザインされている場合は、ステップ 8 から編集を続行できます。
集計デザインを右クリックし、ショートカット メニューの [Add from query log] をクリックします。
接続文字列を確認し、必要に応じて変更します。
このデザインに名前とプレフィックスを追加します。
[Execute SQL] をクリックします。
クエリで 0 とコンマだけのレコードが 1 つだけ返された場合は、そのレコードをクリップボードにコピーします。
[OK] をクリックします。"Aggregation Design '<Your Aggregation Design Name here**>' updated with** n aggregations" というメッセージ ボックスが表示されます。
編集する集計デザインを右クリックして、ショートカット メニューの [Edit] をクリックします。
空のデータグリッドが表示された場合は、ステップ 2 ~ 7 でクリップボードに保存した文字列が必要になります。[名前] 列の下の行をクリックし、このデザインの名前を入力します。[Aggregation Definition] の下の行をクリックし、クリップボードから 0 とコンマの行を貼り付け、[Type] の下をクリックして「Flexible」と入力します。新しい行に移動するには TAB キーを押します。これで空のデザインが作成されました。
データグリッドから行を選択します。行の左側に表示される小さなアイコンによって、どのような行を選択したかかがわかります。行のグループを選択した場合は、アイコンの付いた行のみが更新されます。
右側のペインには、現在のメジャー グループにツリーのセットとして定義されているすべてのディメンションのコレクションが表示されます。それぞれの最上位ノードはディメンションを表しています。ディメンション ノードのチェック ボックスをオン/オフにしても、集計デザインに影響はありません。ウィンドウのタイトル バーの真下にある、[Show Attribute Relationships] が選択されていることを確認します。このツリー構造は属性リレーションシップを表し、最初のノード レベルはキー属性から始まります。次のレベルの属性は、キーに直接依存するか、キーに直接関連する属性になります。次のレベルに含まれる属性は、属性リレーションシップ定義によって父属性に直接関連する属性になります。以下のレベルも同様です。0、1、およびコンマの文字列は、ディメンション ツリー構造をマップで表したものです。コンマはディメンションの区切り文字で、0 と 1 はそれぞれディメンション属性を表します。文字列は左から右、ノードは上から下にマップされます。選択した各ディメンション属性ノードは文字列では 1 と表示され、選択していないディメンション属性ノードは文字列では 0 と表示されます。粒度が低くなるほど、ツリーの最上位に近くなります。
デザインを変更するには、右側のペインで特定行のノードを選択または選択解除する必要があります。変更は文字列に反映され、文字列に行った操作はツリー構造にも反映されます。
メモ :
文字列の長さを短くすると、アプリケーションはクラッシュします。 編集を終了したら、[OK] をクリックして作業を保存できます。
この時点で作業はメモリ内に保存され、サーバーにはまだ適用されていません。サーバーへの適用が保留になっているデザインを見分けるには、メジャー グループ名に "modified" というサフィックスが付いているかどうかを確認します。
変更をサーバーに保存するには、メジャー グループを右クリックし、[Save to server] をクリックします。
ステップ 5 : 集計デザイン内で、集計から冗長な属性を削除する
デザイン ノードを右クリックし、[Edit] をクリックして、[Edit Aggregations Aggregation Design] ウィンドウを開きます。
集計デザインから冗長な属性を削除するには、[Eliminate Redundancy] をクリックします。これで、現在のデザインにある冗長な属性がすべて削除され、重要な属性だけが残ります。
ステップ 6 : 重複する集計を削除する
デザイン ノードを右クリックし、[Edit] をクリックして、[Edit Aggregations Aggregation Design] ウィンドウを開きます。
集計デザインから重複するデザインを削除するには、[Eliminate Duplicates] ボタンをクリックします。これで、現在のデザインにある重複する行がすべて削除され、重要な行だけが残ります。
サンプルの削除
Aggregation Manager サンプルを削除するには
- ソリューションを含むフォルダとその子孫フォルダをすべて削除します。