PowerPivot によるセルフサービス レポーティング (SharePoint 2010 がもたらす BI 革新 - 第 4 話)

米野宏明(Hiroaki Komeno) 2010-03-09 22:36:46

SharePoint 2010 とほぼ同時期にリリースされる予定の SQL Server 2008 R2 には ”PowerPivot” (開発コード名: Gemini) と呼ばれるツールが付属します。“PowerPivot for Excel” と “PowerPivot for SharePoint” という 2 つのコンポーネントから構成されるのですが、インメモリーでの多次元データ集計を行うためのものです。主な狙いは、インメモリー化による集計パフォーマンスの向上とあわせて、「セルフサービス レポーティング」 すなわち IT 部門に頼らずにエンドユーザー側でデータの多次元集計を行い、分析レポートを作成、共有することにあります。

PowerPivot for Excel によるセルフサービス多次元集計構造定義

PowerPivot for Excel は、Excel 2010 用のアドインです。インストールすると、Excel 2010 のリボンインターフェースに 「PowerPivot」 タブが表示されます。リボンの左側の 「PowerPivot Window」 というボタンをクリックすると、Excel のような見栄えのシート構造の専用アプリケーションが起動します。外部からデータを取り込むと、1つ 1つのシートにテーブルが作成されていきます。

 

[PowerPivot for Excel の起動ボタン]

通常、一般的な多次元データベースを構成する場合は、まず多次元集計の元となるソース テーブルを使って 「スタースキーマ」 を作成します。下の図は、SQL Server Analysis Services の Business Intelligence Studio でスタースキーマを作成したものです。

[Analysis Services でスタースキーマを構成する場合]

集計対象データである 「ファクト」 テーブルに対し、各行のデータを特定する様々なマスター系データである 「ディメンション」 テーブルが連結されており、この構造に基づいて様々なディメンションの組み合わせによる集計結果を事前に計算しておくのが、多次元データベースの役割です。PowerPivot ではこれらファクトやディメンションを、テーブルではなく Excel ライクなシートに作成していきます。各シートには、SQL Server リレーショナルテーブルや Access テーブル、その他の RDBMS、Excel やテキストファイル、SQL Server Reporting Servicesのフィードなどからリンクしてデータを取り込むことができます。クリップボード経由でのデータコピーにも対応しています。また Excel のように関数を使って、取り込んだデータから新たな列を追加したりすることもできます。


[関数で計算して新しい列を追加することもできる]

さらに、デスクトップのメモリーの容量が十分にあれば、数千万、億を超えるような行数のデータを取り込むこともできます。取り込む時点で繰り返し項目を圧縮していますので、Excel シートに取り込むよりもメモリーサイズは小さくて済みます。

必要なファクトとディメンションのデータをすべて取り込んだら、テーブルごとのキー列同士を 「Create Relationship」 で連結すると (連結可能な同一データを持つ列がなければ追加するなり編集するなりして作成) スタースキーマを構成することができます。


[シート間で共通するキーを使って連結 (リレーションシップを作成)]

その後クイックアクセスツールバーの 「Switch to Workbook」 ボタンを押して Excel に戻るか、PowerPivotのリボンインターフェース上にある 「ピボット テーブル」 ボタンを押して好きなレイアウトを選択すると、Excel 画面に戻ります。Excel 上では、通常のデータ接続と同じように、ピボット テーブルやピボット グラフを作成したり、スライサーを設定したりすることができます。

 

[PowerPivot で作成したメモリー上の集計データをピボット テーブルやグラフから参照]

PowerPivot for SharePoint によるセルフサービス レポート配信

レポートの作成が済んだら、デスクトップに保存してもいいのですが、その場合はPowerPivotがインストールされた Excel でなければ開くことができません。しかし PowerPivot for SharePoint という、SharePoint 2010 のライブラリを拡張するアドインが提供されていますので、これがインストールされた SharePoint 2010 ライブラリに発行を行えば、Excel がインストールされていないデスクトップからでも PowerPivot レポートを利用することができるようになります。このライブラリは “PowerPivot Gallery” と呼ばれる特殊なライブラリで、Silverlight コンポーネントが埋め込まれており、保存されている Excel ファイル (PowerPivot for Excel で作成されたものでなくてもかまいません) や SQL Server Reporting Services の内容をサムネイル形式などでプレビューすることができます。Theater ビュー、Gallery ビュー、Carousel ビューの 3 種類が用意されており、いずれもサムネイル画像を素早く切り替えてシートの内容を表示、さらにそこをクリックすることで該当するシートが Excel Services として開くようになっています。

[SharePoint 2010 を拡張する PowerPivot Gallery]

Excel ファイルは通常 Excel アプリケーションで開いてみるまで内容が分からず、またグラフなどは検索キーワードで探すことができないという欠点がありますが、この素早く切り替えられる PowerPivot for SharePoint の Gallery があれば、内容を簡単に確認して、目的の情報に素早く確実にたどりつくことができます。

またこのとき、PowerPivot for Excel で作成された多次元集計構造は、サーバー上のメモリーに展開されます。Excel ファイルを保存した時点で、ファイル内にカスタムの XML 形式の定義構造情報およびバイナリ データが組み込まれます。.xlsx ファイルは ZIP 圧縮されていますので、拡張子を .zip に変えて開いてみると、それらのデータが増えているのが分かります。PowerPivot for SharePoint がこのデータを取り出し、サーバーのメモリー上に展開したうえで Excel Services のデータソースとして使用するので、デスクトップ側の負荷を抑えながら、大量のデータを使った分析ができるのです。さらに PowerPivot for SharePoint がそれらの多次元集計構造を定期的にリフレッシュしてくれますので、ユーザーは最新のデータを利用することができます。

従来であれば、多次元集計構造の作成は、データベース サーバーへのアクセスが必須条件でした。しかし、通常ユーザー部門にはそのようなことは許されていませんし、仮にアクセス権があったとしても、データベースにデータを取り込み、加工して、多次元集計構造やセキュリティを定義するのはエンドユーザーにとっては骨の折れる仕事です。しかし PowerPivot を使えば、Excel 同様の操作感でデータ構造を自分で作成することができます。データベースへのアクセス権などなくても、SharePoint 2010 と Excel 2010 の世界の中だけで、高速なインメモリーデータベースを作成することができるのです。特に Excel を使って大量で複雑な計算処理を行っているような企画部門や財務部門などのパワーユーザーにとっては、ほぼ Excel の知識だけで、より効率的なデータ モデルの作成やその成果物の簡単な共有や継承を行うことができる、まさに日常業務に使えるセルフサービス レポーティング環境として、非常に有用なツールになるでしょう。

※ 本エントリーに記載する機能および画面デザインは、開発途中にあるベータ版製品に基づく内容です。今後断り無く、変更される可能がありますので、あらかじめご了承下さい。

※このエントリはZDNetブロガーにより投稿されたものです。朝日インタラクティブ および ZDNet編集部の見解・意向を示すものではありません。