OLAP
出典: フリー百科事典『ウィキペディア(Wikipedia)』
OLAPはonline analytical processingの略であり、複雑で分析的な問い合わせに素早く回答を行う方法の事である。 ビジネスインテリジェンスと呼ばれるより大きなカテゴリに属し、ビジネスインテリジェンスとはOLAP・ETL・リレーショナルレポーティング・データマイニングを含む概念である。 OLAPの典型的な用途は売上報告、市場分析、経営報告、BPM (business performance management)、予算作成、計画作成、財務諸表作成などである。
OLAPの主な特徴は以下の点にある。
- 多次元データモデルを操作すること(リレーショナルモデルではなく)
- 複雑、分析的でその場限りの問い合わせを行えること
- 非常に高速であること(通常は5秒以内に結果を返す)
このような理由から、Nigel PendseはOLAPのコンセプトをより正確に表す言葉としてFASMI(Fast Analysis of Shared Multidimensional Information)を提案している。
目次 |
[編集] 機能
OLAPはまずリレーショナルデータベースのスナップショットを取り、多次元データとして再構成する。その後、問い合わせを行うことができるようになる。複雑な問い合わせの場合、OLAPはリレーショナルデータベースに同様の問い合わせを行う場合に比較して0.1%程度の時間しかかからないと言われている。
この操作データからなるOLAPの構造はOLAPキューブと呼ばれている。キューブはスタースキーマを形成するテーブルの一群からなり、中心にはファクトテーブルが存在する。このファクトテーブルには問い合わせの中心的な事実が格納されており、複数のディメンジョンテーブルがここにリンクしている。このディメンジョンテーブルの中にどのようにリレーショナルデータを集計し分析できるのかが定義されている。ここで、元データをどのような階層構造で集計するのかによってありうる集計方法の数は変わってくる。
例えば、顧客は市・地域・国によって分類されるとすると、50市・8地域・2カ国に存在するデータであれば3階層・合計60項目のデータとなる。ここでこの顧客と製品との関係を見たいとすれば、例えば製品は250品目・20カテゴリ・3ファミリ・3部門であるとすると合計276項目のデータとなる。この二つのディメンジョンだけでも16,560ものありうる集計が発生してしまう。考慮されるべきデータが増えるにつれて集計の数はすぐに何百万もの数になってしまう。
集計の計算結果と元データは統合されてOLAPキューブとなる。原理的にはOLAPキューブは可能性のある問いに対する全ての答えを保持することができる。だが、潜在的な集計の数が余りに多いために前もって決められた物のみを完全に集計し、残りは要求に応じて集計する場合もある。
[編集] OLAPの種類
基本的な概念からさらに踏み込むとOLAPは3種類存在する。多次元(Multidimensional) OLAP (MOLAP)・リレーショナル(Relational) OLAP (ROLAP)・ハイブリッド(Hybrid) OLAP (HOLAP)である。MOLAPは伝統的なOLAPの形式であり、単にOLAPと呼ばれる場合もある。MOLAPは集計用の特殊なデータベースを使用する。この中に特定の多次元データベースエンジンがあり、元データと集計値の両方を持つ次元軸の集まりとして必要なスキーマを作成する。これに対して、ROLAPはリレーショナルデータベースに直接アクセスする。元データとディメンジョンテーブルはリレーショナルなテーブルとして保持され、集計値を保持するために新しいテーブルが作成される。HOLAPでは元データはリレーショナルテーブルに保持され、集計値は多次元テーブルに保持される。
どの種類もそれなりの利点があるが、種類によって利点の詳細は異なってくる。MOLAPはデータが少ない場合に有利であり集計値を計算して返すのが速いが、大量のデータを作成してしまう欠点がある。ROLAPはよりスケーラブルであり最小の容量で済むが、前処理と問い合わせのパフォーマンスが悪くなってしまう。HOLAPは両者の中間と言えるが、前処理が速くスケーラビリティもある。OLAPを実装する際に困難なのは問い合わせを作成することである。つまり元データを選択しスキーマを構築する部分であるが、そのために大抵のOLAP製品では大量の事前に準備された問い合わせのライブラリを持っている。その他の問題としては元データの問題が挙げられる。元データは完全でかつ一貫性がなければならない。
[編集] APIと問い合わせ言語
リレーショナルデータベースにはSQLという標準化された問い合わせ言語やODBC・JDBC・OLEDBのように広く普及したAPIが存在するが、OLAPでは統一された規格は存在しない。最初の実務的な標準であるAPIは1997年のMicrosoftのOLEDB for OLAPであり、MDX問い合わせ言語をもたらした。これは複数のOLAPベンダがクライアントとサーバの両方に採用している。2001年MicrosoftとHyperionは分析記述用のXML(XML for Analysis)を発表しており、ほとんどのベンダに採用されている。この標準はMDXを問い合わせ言語として使用しているため、MDXはOLAPの世界ではデファクトスタンダードとなった。
[編集] 製品
OLAP問い合わせを実行できる最初の製品は1970年に発表されたIRIのExpressである(1995年にOracleに買収された)。しかし当時はこの用語自体が存在せず、1993年にTed Codd(リレーショナルデータベースの父と呼ばれる)により提唱された。しかしCodd氏の研究はArborに資金援助を受けており、さらにその会社は1年前にEssbase(現在はHyperionが保有)というOLAP製品をリリースしていた。そのため、Codd氏の「Twelve laws of online analytical processing」はEssbaseを参照していたことは明らかである。
[編集] 主な製品一覧
- Hyperion Essbase
- Oracle OLAP Server
- Microsoft SQL Server Analysis Services:Microsoft (以前はMicrosoft SQL Server OLAP Servicesと呼ばれていた)
- DB2 Cube Views:IBM
- BW:SAP
- WebFOCUS:Information Builders
- Mondrian
- SAS OLAP Server : SAS Institute
- Brio Enterprise :Brio
- Business Objects
- Cognos
- MicroStrategy
- Sagent
BPM(Business performance management)製品のベンダはOLAPで大きな地位を占めている。
[編集] 外部リンク
- Dimensional Modeling and OLAP Tutorial
- Data Warehousing and OLAP: A Research-Oriented Bibliography
- OLAP Report: In depth overview of all commercial OLAP products
- Microsoft OLAP information
- Mondrian Java R-OLAP server
- Lemur OLAP C++ Library (実験的なGPLライブラリ)
- A chapter from Erik Thomsen's book OLAP Solutions: Building Multidimensional Information Systems, 2nd Edition