【BI】PowerPivot for EXCEL 2010 のアーキテクチャと容量制限などを簡単に

image

いやー、ここ数日の当 BLOG へのアクセス数をみると、見事に人気のない PowerPivot に関する投稿です(笑)。でもいいんです。認知が低いものを訴求するのが私の仕事ですから…(涙)。

興味のある方は 1,048,576人にお1人程度かと思いますが、PowerPivot for EXCEL 2010アーキテクチャと、ハードウェア要件および容量制限等について簡単に書いておきます。参考サイトは以下の通りです。

MSDN:PowerPivot Team Blog より
PowerPivot Component Architecture

PowerPivot for Excel 2010 は Excel 2010 のアドインであることは何度も触れている通りです。このアドインをインストールすると Excel 2010 にデータ分析のための機能が追加されます。これによって、SQL Server Analysis Service(SSAS)を使用することなく、OLAPベースの ピボットテーブル、ピボットチャートが使えるようになるのです。よろしければ以下のサイトも参考にしてください。

【BI】PowerPivot ってなんだ?

「アドイン」であるということはとても重要な概念でして、これを踏まえて以下の図をご覧ください。PowerPivot for EXCEL 2010 のアーキテクチャを表したものです。

ざくっと書いてしまうと、PowerPivot for Excel 2010 Add-In Assembly が PowerPivot を Excel本体にロードし、VertiPaq とエンジンと呼ばれる高速処理機構が圧縮したデータをメモリ上に片っ端から読み込んで処理を行います。PowerPivot の特徴は、「メモリ上で実行する」という点にあり、一切のクエリーや計算はディスクを介さずに実行されます。それによって高速な分析を可能にしています。

image

それそれのコンポーネントについて、以下に簡単に解説しておきます。

PowerPivot for Excel 2010 Add-in Assembly

PowerPivot を Excel に読み込む。その後、PowerPivot は Excel 本体側の Interop Assembly COM を通じて、Excel内のオブジェクトをコールしたりイベントを受け取ったりして相互運用するようになる。

Registry settings and manifest files

imageこのマニフェストファイルによってExcel 2010 は PowerPivot のランタイムをロードできるようになる。HKEY_CURRENT_USER\ Software\Microsoft\Office\Excel\Addins に、インストール先とマニフェストファイル(XMLファイル)の場所が書かれている。

 

VertiPaq engine

VertiPaq(たぶん ベルチパック って言うのだと思います(笑))は PowerPivot の主役といってもよいでしょう。分析のための計算や集計などをメモリ上で実施するためのエンジンです。ピボットテーブルやピボットチャートが発行するクエリーやDAX(Data Analysis Expressions)構文なんかを高速に実行してくれます。

VertiPaq database

PowerPivot 用のデータベースです。面白いのは、このデータベースは xlsx ブックの内部に含まれているってことなんです。 意味が解りません?PowerPivot を使用して Cube を作成すると、その保存先は xlsx ブックの中なのです。なぜそんなことができるのか?それは、手元の xlsx ファイルの拡張子を zip に変更してみると面白ものが見えます

上の図の左側に Excel Workbook(xlsx ファイル)があり、その中にxlsxファイルを構成する Parts として Workbook と PowerPivot が含まれていることがわかります。

参考
For Excel PowerPivot, the Database is IN the Workbook
https://go.microsoft.com/fwlink/?LinkId=181771.

Data cache

テンポラリファイルです。

Microsoft OLE DB for Online Analytical Processing (OLAP)

上の図の右下に位置する紫色のコンポーネントです。こいつによって、Excel はピボットテーブルやピボットチャートを介してPowerPivot のデータベース(Cube)にアクセスすることができます。このコンポーネントにより、PowerPivot for Excel だけでなく、SSAS や PowerPivot for SharePoint へのアクセスも提供されます。

Analysis Management Objects (AMO) and ADOMD.NET

開発者の方には説明の必要はないと思いますが、AMO とはその名の通り管理用オブジェクトモデルであり、ADOMD.NETは SSAS との通信用に設計されたデータ プロバイダです。ADOMD.NET は、XML for Analysis(XMLA)プロトコルを使用して SSAS や PowerPivot とやり取りをします。

最後にPowerPivot のハードウェア要件について触れておきたいと思います。

PowerPivot はその性格から、マルチコア / 大容量メモリ / 64ビット の恩恵を最大限に受けられるように設計されています。じゃ、ディスクはどうなのかといえば、これは大容量であるのに越したことはありません。だって、数十億行のデータをガンガン ワークブックに取り込むことができるんですから(もちろん圧縮機能によって圧縮されはしますが…)。

PowerPivot for SharePoint を使用する場合には、保存のために大容量データが転送されますから、ネットワークも高速に越したことはありません。

ちなみに、PowerPivot を含んだワークブックの最大容量は 2GB です。ただし勘違いしないでください。ワークブックに含まれるデータベースは PowerPivot によって圧縮され、その圧縮率は一般的に 2倍 と言われています。よって、インポートできるデータ容量は全部で 4GB 程度が目安(あくまで目安!) です。

以下の表は PowerPivot Team Blog からの情報です。日本語環境では異なる場合がありますのでご注意ください。

ハードウェア 最小構成 推奨
プロセッサ 500 MHz Dual-core 2.6 GHz 以上
メモリ 1 GB 4 GB 以上
ディスク 3GB以上の空き容量 NTFS 40GBの空き容量 NTFS
モニター 1024 × 768 1024 × 768 以上
ネットワーク 56 kilobits per second (Kbps) 1 gigabit per second (Gbps)
OS Microsoft Windows XP SP3 (32 bit) Windows Vista または Windows 7 Business Edition および Ultimate Edition (64-bit)
ソフトウェア Microsoft Excel 2010 Microsoft .NET Framework 3.5 SP1 Microsoft Office 2010 Microsoft .NET Framework 4.0