コンテンツへスキップ
Set Up XMLA HTTP Access for SQL Server

Set Up XMLA HTTP Access for SQL Server

この記事では、Adventure Works データベースへの分析サービスと XMLA HTTP アクセスを提供する SQL サーバーを設定する方法について説明します。最後に、このセットアップと Infragistics のSilverlight PivotGrid を使用してデータを視覚化する基本的なSilverlightアプリケーションを示します。

13min read

SQL Server Analysis Service 2008

SQL Server のインストールから始めましょう。インストールは非常に簡単です。画面の指示に従って、すべて問題ないはずです。注意が必要な重要なポイントがいくつかあり(イタリック体のテキスト)、セットアップがどのように進むべきかを説明しながら、それらが何であるかを説明します。

配置は、コンピューターにない可能性のある .NET Framework とインストーラーの更新プログラムのインストールから始まります。その後、サポートファイルがインストールされます。

これらが完了すると、プロダクトキーを入力し、ライセンス条項に同意するように求められます。次に、機能選択の選択肢が表示されます。このチュートリアルでは、基本的なシナリオをサポートするために必要なものはいくつかありますが、より高度なアプリケーションを開発する予定がある場合や、このインストールを他のサービスと組み合わせる場合は、それらをさらにインストールするか、すべてをインストールすることをお勧めします。インストールする必要がある機能のうち、データベース・エンジン・サービス、フルテキスト検索、Analysis Services、Business Intelligence Development Studio、管理ツールの基本および完了機能のうち、最小限の機能セットが必要です。

BI Development Studio は、Adventure Works サンプル データベース パッケージを配置する最も簡単な方法であるため、必要です。管理ツールは、サーバーとサンプルデータベースのインストールを確認できるようにするために必要であり、SQLサーバーのデータ、データベース、および設定を操作することもできます。

機能の準備ができたら、SQL Server の既定のインスタンスと名前付きインスタンスのどちらを使用するかを選択する必要があります。複数のインスタンスを持つ予定がない場合は、デフォルトで十分です。

次に、ユーザーアカウントの設定について尋ねられます。すべてのサービスに対して NT AUTHORITY\NETWORK SERVICE ユーザーを安全に選択し、要求された場所 (データベース エンジンと分析サービスの構成) に現在のユーザーを追加して管理権限を持つことができます。分析プロビジョニングに追加するユーザーは、Web アプリケーションを実行するユーザーである必要があるため、他のアカウントでこの管理機能を提供する場合は、ここで追加する前に作成するか、後で管理スタジオの管理者ロールに追加する必要があります (この記事の後半で説明します)。

ユーザーの選択、エラーと使用状況レポートの選択、およびインストールルールのチェックを過ぎると、概要が表示され、インストールを押します。インストールプロセスが完了すると、Windows 7を使用する場合に考慮すべきもう1つの問題があります。ソフトウェアには既知の問題があり、SQLサーバーを使用する前にSP1をインストールする必要があります。

インストールが成功したことを確認するには、スタート メニューに移動し、SQL Management Studio を見つけます。それを開き、インストールしたばかりの分析サーバーのローカルインスタンスに接続してみてください。エラーが発生しない場合は、問題ありません。

XMLA HTTP Access

分析サービスを使用して SQL サーバーをインストールしたら、XMLA HTTP アクセスを続行できます。Webサーバーが必要であり、このチュートリアルではIIS 7を使用します。IIS をインストールする最も簡単な方法は、Windows Vista または 7 を使用している場合は、[プログラムの追加と削除] または [プログラム] から [Windows 機能のオンとオフを切り替える] の [Windows コンポーネントの追加と削除] モジュールを開始することです。

インストールする必要のある機能は、インターネットインフォメーションサービスのフォルダにあります。いくつかのサブ機能だけで簡単に使用できますが、IIS の特定の機能に依存する可能性のある高度なアプリケーションを実行する場合は、すべてをインストールすると問題を回避できます。このケースで必須の機能は、Web 管理ツール、.NET Extensibility、ASP.NET、ISAPI Extensions、Basic Authentication、および Windows Authentication です。しかし、私はすべてをインストールしました。

[OK]を押すと、IISがインストールされて開始されます。

IIS を構成するには、IIS マネージャー コンソールを起動する必要があります。[マイコンピュータ]を右クリックし、[管理]を押して[インターネットインフォメーションサービス]を探すか、[スタート]メニューの[実行]からInetMgr.exeを開始することができます。

IIS の構成を開始するには、アプリケーションのアプリケーション プールを作成します。「アプリケーション・プール」を右クリックし、「アプリケーション・プールの追加」を押します。

開いたウィンドウで、アプリケーションプールに名前を付けます。

Press OK.

次に、XMLA HTTPアクセスを提供するWebサイトのベースとなるいくつかのファイルをコピーする必要があります。これらは、SQL サーバーをインストールした場所の <\OLAP\bin\isapi の下にあります>。私の場合、そのフォルダはC:\Program Files\Microsoft SQL Server\MSAS10です。ASQL\OLAP\bin\isapi です。このフォルダ内のすべてのファイルをコピーし、デフォルトのWebサイトのルートの下にある新しいファイルに貼り付けます。このフォルダに移動するには、構成マネージャでサイトの名前を右クリックし、[エクスプローラ]を押します。olap という名前の新しいフォルダを作成し、コピーしたファイルをそこに貼り付けます。また、IIS サービスを実行するユーザーが、フォルダ内のファイルを読み取るアクセス許可を持っていることを確認する必要もあります。親フォルダ(Webルート)のプロパティの[セキュリティ]セクションに移動して、これを確認します。権限が正しくない場合、ブラウザをそのWebサイトに向けると、ファイルが見つからないか、探しているファイルにアクセスできない可能性があるというエラーメッセージが表示されます。

コピーしたdllファイルはXMLAを提供するエンジンであり、iniはエンジンをSQLサーバーを指すファイルです。IIS マシンとは異なるマシンに SQL をインストールした場合は、それに応じてこのファイルを変更する必要があります。

olap フォルダを作成したら、IIS マネージャに再度移動し、デフォルトの Web サイトを展開して、その下に olap フォルダを見つけます。表示するために更新を押す必要がある場合があります。表示されたら、右クリックして[アプリケーションに変換]を押します。

新しく開いたウィンドウで、アプリケーションプールをolapに変更します。

それが完了したら、プロセスのこのセクションを完了するために必要なステップは3つだけです。これらの最初のものは、 *.dll のハンドラを Web サイトに追加することです。olap フォルダを選択し、IIS 設定から [ハンドラ マッピング] を押します。

画面の右側に、[スクリプトマップの追加]リンクがあります。それを押します。[要求パス] に「*.dll」と入力します。次に、実行可能ファイルとして、olapフォルダ内のmsmdpump.dllファイルへのパスを指定し、olapという名前を付けます。

[OK] ボタンを押すと、ISAPI 拡張機能を追加するように求められ、[はい] を押す必要があります。

さて、2番目のステップは、olapフォルダ内のIISの認証設定に移動することです。デフォルトでは、匿名認証のみが有効になっています。このチュートリアルでは匿名のみを使用しますが、より高度な認証メカニズムが利用可能であることに注意してください。次に、匿名認証を右クリックし、[編集] をクリックします。開いたボックスで、[設定]ボタンをクリックし、SQLインストール手順でAnalysis仮アカウントとして追加したユーザーアカウントの資格情報を入力します。これは、現在ログオンしているユーザーの場合もあれば、ジョブ専用のユーザーである場合は別のユーザーである場合もあります。これは、SQL Analysis サービスへのすべての接続を作成するユーザーです。

前述のように、SQL Analysis Service に管理者ロールをまだ追加していない場合は、olap アプリケーションを起動する既定のユーザーのアクセス許可を追加でき、特別なサービス ユーザーを作成する必要はありません。これを行うには、認証ページで既定のユーザー (IUSR) をそのままにして、Adventure Works データベースがインストールされるまで待つ必要があります。 必要な権限を付与する方法を指示する段落があります。

最後の手順は、IISのグローバル設定(olapフォルダの設定ではない)に移動し、ISAPIおよびSGIの制限を選択することです。msmdpump dllに対して作成するように求められた制限には名前がないことがわかります。それをダブルクリックし、olapという名前を付ける必要があります。

うまくいったことを確認するには、ブラウザを http://localhost/olap/msmdpump.dll に向け、結果を観察する必要があります。Firefox は次のような内容を表示します:

Adventure Works 2008

SQL サーバーへの XMLA アクセスを設定したので、デモからアクセスできるようにするデータが必要です。非常に一般的なサンプル データ セットは Adventure Works パッケージであり、ここではまさにそれをインストールします。

必要なファイルはここにあります http://codeplex.com/MSFTDBProdSamples/Release/ProjectReleases.aspx

ダウンロードしたら、インストールを開始し、使用許諾契約に同意します。

次のステップは、サンプルをインストールする場所を選択することです。SQL Server のインストール インスタンスを選択した後、他のすべてを既定値のままにしておくことができます。[インストール]を押します。

プロセスが完了すると、Analysis Services データベースがインストールされます。次に、Analysis Services データベースを設定する必要があります。これを行うには、C:\Program Files\Microsoft SQL Server\100\Tools\Samples\AdventureWorks 2008 Analysis Services Project に移動します。SQL Server のバージョンに応じて、Enterprise (Enterprise バージョンまたは Developer バージョンの場合) または Standard フォルダーが必要です。それらにはアドベンチャー Works.slnファイルがあり、それを開く必要があります。その場合は、昇格されたユーザー権限を持っている必要があることに注意してください。

Business Intelligence Development Studio でプロジェクトを開いたら、ソリューションを右クリックして [配置] をクリックするだけです。これで、サンプル・データベースのインストールは完了です。

IIS で olap アプリケーションを起動する既定のユーザーを変更していない場合、またはプロビジョニング アカウント (SQL サーバーのインストール時に選択したアカウント) とは異なるアカウントを選択した場合は、この時点で適切なアクセス許可を付与する必要があります。これを行うには、SQL Management Studio を開き、分析データベースに接続します。Adventure Works DW データベースに移動し、[Roles] フォルダを右クリックします。新しいロールを選択し、名前を付けて、XMLA HTTP アクセスを通じて提供するアクセスのレベルを設定します。

このロールの権限を選択したら、[メンバーシップ] をクリックし、Analysis サービスに接続できるようにするユーザーを追加します。デフォルトでは、IIS で olap アプリケーションを実行するユーザーは IUSR と呼ばれます。このチュートリアルで前述した「認証」セクションで変更していない場合は、追加するだけで十分です。

Infragistics PivotGrid demo

Infragistics PivotGrid を使用して基本的なアプリケーションを構築する前に、Silverlightアプリケーションが作成した XMLA インターフェイスと通信できることを確認する必要があります (クロスドメインの問題)。これは、いわゆるクライアントアクセスポリシーによって保証されます。ネットワークセキュリティのアクセス制限の詳細については、Silverlightこちらをご覧くださいhttp://msdn.microsoft.com/en-us/library/cc645032%28VS.95%29.aspx

クロスドメイン問題の解決策は、Webサーバーのルートにclientaccesspolicy.xmlという名前のテキストファイルを作成するだけです。これはXMLAエンジンがあるフォルダではなく、Webサーバー全体の/(ルート)フォルダであることに注意してください。その内容の例を次に示します。

<?xml version="1.0" encoding="utf-8"?>
<access-policy>
  <cross-domain-access>
    <policy>
      <allow-from http-request-headers="*">
        <domain uri="http://*"/>
      </allow-from>
      <grant-to>
        <resource path="/" include-subpaths="true"/>
      </grant-to>
    </policy>
  </cross-domain-access>
</access-policy>

最後に、データとそれにアクセスする手段が揃ったら、Infragistics PivotGridのデモの構築を開始できます。

Silverlightプロジェクトを作成します。ホスト ASP プロジェクトも作成せずSilverlight、.コードを示す前に、3 つのアセンブリ参照を追加する必要があります。

Infragistics.Silverlight.DataVisualization.Olap.Preview.v10.1
Infragistics.Silverlight.DataVisualization.Olap.Xmla.Preview.v10.1
Infragistics.Silverlight.DataVisualization.PivotGrid.Preview.v10.1
Infragistics.Silverlight.DataVisualization.v10.1
Infragistics.Silverlight.DataVisualization.XamWebTree.Preview.v10.1

まだお持ちでない場合は、次のアドレスからCTPバージョンをダウンロードできます: http://www.infragistics.com/dotnet/netadvantage/silverlight/data-visualization.aspx#Downloadsベータセクションと「NetAdvantage for Silverlight Data Visualization CTP (November 2009)」を探してください。ダウンロードしたファイルは zip ファイルで、アセンブリは NetAdvantage_DataVisualization_2010.1\Bin フォルダにあります。

それが完了したら、XAML に名前空間参照を追加する必要があります。

xmlns:igPivot="clr-namespace:Infragistics.Silverlight.Controls;assembly=Infragistics.Silverlight.DataVisualization.PivotGrid.Preview.v10.1"
xmlns:Olap="clr-namespace:Infragistics.Olap;assembly=Infragistics.Silverlight.DataVisualization.Olap.Preview.v10.1"
       xmlns:Xmla="clr-namespace:Infragistics.Olap.Xmla;assembly=Infragistics.Silverlight.DataVisualization.Olap.Xmla.Preview.v10.1"

最後に、サンプルの本文をコーディングする準備が整いました。

  <StackPanel x:Name="LayoutRoot" Orientation="Horizontal" >
   
        <StackPanel.DataContext>
            <Olap:OlapViewModelCreator>
                <Xmla:XmlaConnectionSettings
ServerUrl="http://localhost/olap/msmdpump.dll"
CatalogName="Adventure Works DW" />
            </Olap:OlapViewModelCreator>
        </StackPanel.DataContext>
 
        <igPivot:XamWebPivotGrid x:Name="pivotGrid"
                                 ViewModel="{Binding ViewModel}"
                                 LayoutData="{Binding ViewModel.Result}" />
 
        <igPivot:XamWebPivotDataSelector Grid.Column="1" ViewModel="{Binding ViewModel}" />
   
    </StackPanel>

アプリケーションがロードされるとすぐにデータをロードするために、コンストラクタに1行を追加する必要があります。私はコードを短くするためだけにラムダ式を使用しています。

    this.Loaded += (sender, e) => { pivotGrid.ViewModel.LoadCubesAsync(); };

このコードの 4 つの主要な部分は次のとおりです。

1. LayoutRootのDataContextで接続設定を指定します。

2. PivotGrid メイン コントロール。その ViewModel と LayoutData は DataContext から描画されます。

3. PivotDataSelectorを使用すると、PivotGridに表示するデータを選択できます。

4. LoadCubesメソッドは、接続設定で指定したサーバーからデータをロードします。

あとは、私たちの創造物をテストするだけです。F5 キーを押し、開始するキューブを選択し、列、行、メジャー、フィルターをドラッグ アンド ドロップして、PivotGrid 🙂 で遊んでください

この記事がお役に立ち、楽しんで読んでいただけたことを願っています。ご不明な点がある場合やコメントを残したい場合は、お気軽に質問またはフィードバックをお寄せください。PivotGridでの体験に幸運を祈り、素晴らしい一日をお過ごしください!

デモを予約