2011年6月8日水曜日

第15回:MDX超入門

 今回は、OLAPからデータを取得するクエリMDXについて説明します。

MDXって何?
 まず、MDXとは何でしょうか。これは、「Multi Dimensional eXpressions」の略で、OLAPからデータを取得するためのクエリです。SQLのOLAP版と考えればよいでしょう。このMDXは、最初マイクロソフトによって実装されましたが、その後、各ベンダーもMDXをサポートするようになり、業界のデファクトスタンダードとなりました。

 しかし、悲しいかな、SQLに比べるといまいち知名度がありません。私が勤務する会社でも、SQLは知っていてもMDXについては?という人が少なくありません。また、その使いかたとなると、ぐんと数は少なくなります。

今回は、そんなMDXのほんのさわりだけ紹介したいと思います。MDXの構文を説明しようと思いましたが、基本を説明するだけでもかなりの分量になるので、またの機会としたいと思います。

基本構文
 MDXの基本構文は下記のようになります。SQLと構文上はよく似ています。

SELECT
[メジャー(ファクト)またはディメンション] ON COLUMNS, ←横軸(1)
[メジャー(ファクト)またはディメンション] ON ROWS ←縦軸(2)
FROM
<キューブ名> ←キューブ
WHERE
[ディメンション] ←スライサ(3)

 まず、SELECTのあとに表示したい、メジャー(ファクト)とディメンションを縦軸、横軸それぞれ指定します。そして、FROMのあとにキューブ名を記載します。
 通常、スライシングと呼ばれているキューブデータの絞り込みをする場合は、WHERE句のあとにしてします。ただし、ここで注意です。(1)~(3)のディメンションはすべて違うディメンションを指定する必要があります。そのため、もし、(1)や(2)でデータを絞りたい場合は、filterという機能を使って、(1),(2)内で条件をしてすることなります。

MDXを使用する場合は、出力したレポートをイメージすることが重要になります。ただ、SQLと似ているようで結構違いがありますので、とにかく使って覚えていくのが上達への近道ですね。

 今回は、MDXのほんのさわりを説明しました。次回は、Data warehouse/BI導入について説明します。

0 件のコメント:

コメントを投稿