OLAP

OLAP（オーラップ）は、複雑で分析的な問い合わせに素早く回答を行う方法。ビジネスインテリジェンスと呼ばれるより大きなカテゴリに属している。 OLAPの典型的な用途は売上報告、市場分析、経営報告、ビジネス業績管理（BPM）、予算作成、計画作成、財務諸表作成などである。OnLine Analytical Processingの頭文字を略した語であり、日本語ではオンライン分析処理もしくは多次元分析とも呼ばれる。 OLAPの主な特徴は以下の点にある。 （関係モデルではなく）多次元データモデルを操作すること 複雑、分析的でその場に応じた問い合わせを行えること 非常に高速（通常は5秒以内に結果を返す）であること このような理由から、ナイジェル・ペンゼ（英語版）はOLAPのコンセプトをより正確に表す言葉としてFASMI（Fast Analysis of Shared Multidimensional Information）を提唱している。 OLAPはまず関係データベースのスナップショットを取り、多次元データとして再構成する。その後、問い合わせを行うことができるようになる。複雑で膨大なデータに問い合わせた場合、OLAPは関係データベースに同様の問い合わせを行う場合に比較して予め集計してあるデータを利用することで、極めて短時間に処理を実施する。 この操作データからなるOLAPの構造はOLAPキューブと呼ばれている。キューブはスタースキーマを形成するテーブルの一群からなり、中心にはファクトテーブル（英語版）が存在する。このファクトテーブルには問い合わせの中心的な事実が格納されており、複数のディメンジョンテーブルがここにリンクしている。このディメンジョンテーブルの中にどのように関係データを集計し分析できるのかが定義されている。ここで、元データをどのような階層構造で集計するのかによってありうる集計方法の数は変わってくる。 例えば、顧客は市・地域・国によって分類されるとすると、50都市・8地域・2カ国に存在するデータであれば3階層・合計60項目のデータとなる。ここでこの顧客と製品との関係を見たいとすれば、例えば製品は250品目・20カテゴリ・3ファミリ・3部門であるとすると合計276項目のデータとなる。この二つのディメンジョンだけでも16,560ものありうる集計が発生してしまう。考慮されるべきデータが増えるにつれて集計の数はすぐに何百万もの数になってしまう。 集計の計算結果と元データは統合されてOLAPキューブとなる。原理的にはOLAPキューブは可能性のある問いに対する全ての答えを保持することができる。だが、潜在的な集計の数が余りに多いために前もって決められた物のみを完全に集計し、残りは要求に応じて集計する場合もある。 基本的な概念からさらに踏み込むと、OLAPはMOLAP（スペイン語版）（多次元（Multidimensional）オンライン分析処理）・ROLAP（スペイン語版）（関係（Relational）オンライン分析処理）・HOLAP（スペイン語版）（ハイブリッド（Hybrid）オンライン分析処理）の3種類に分類される。MOLAPは伝統的なOLAPの形式であり、単にOLAPと呼ばれる場合もある。MOLAPは集計用の特殊なデータベースを使用する。この中に特定の多次元データベースエンジンがあり、元データと集計値の両方を持つ次元軸の集まりとして必要なスキーマを作成する。これに対して、ROLAPは関係データベースに直接アクセスする。元データとディメンジョンテーブルは関係テーブルとして保持され、集計値を保持するために新しいテーブルが作成される。HOLAPでは元データは関係テーブルに保持され、集計値は多次元テーブルに保持される。 どの種類もそれなりの利点があるが、種類によって利点の詳細は異なってくる。MOLAPはデータが少ない場合に有利であり集計値を計算して返すのが速いが、大量のデータを作成してしまう欠点がある。ROLAPはよりスケーラブルであり最小の容量で済むが、前処理と問い合わせのパフォーマンスが悪くなってしまう。HOLAPは両者の中間と言えるが、前処理が速くスケーラビリティもある。OLAPを実装する際に困難なのは問い合わせを作成することである。つまり元データを選択しスキーマを構築する部分であるが、そのために大抵のOLAP製品では大量の事前に準備された問い合わせのライブラリを持っている。その他の問題としては元データの問題が挙げられる。元データは完全でかつ一貫性がなければならない。 関係データベースにはSQLという標準化された問い合わせ言語やODBC・JDBC・OLE DBのように広く普及したAPIが存在するが、OLAPでは統一された規格は存在しない。最初の実務的な標準であるAPIは1997年のマイクロソフトのOLEDB for OLAPであり、MDX問い合わせ言語をもたらした。これは複数のOLAPベンダがクライアントとサーバの両方に採用している。2001年にマイクロソフトとハイペリオン・ソリューションズ（英語版）は分析記述用のXMLA (XML for Analysis）を発表しており、ほとんどのベンダに採用されている。この標準はMDXを問い合わせ言語として使用しているため、MDXはOLAPの世界ではデファクトスタンダードとなった。 OLAP問い合わせを実行できる最初の製品は1970年に発表されたIRI（1995年にオラクルに買収された）のExpressである。しかし当時はこの用語自体が存在せず、1993年に、リレーショナルデータベースの父と呼ばれるエドガー・F・コッドにより提唱された。しかしコッドの研究はArborに資金援助を受けており、さらにArborは1年前にEssbase（英語版）というOLAP製品をリリースしていた。そのため、コッドの「Twelve laws of online analytical processing」はEssbaseを参照していたことは明らかである。 Brio Enterprise：Brio Technology（英語版） Cognos DataNature DB2 Cube Views：IBM Dr.Sum Hyperion Essbase（英語版） icCube JasperReports Server Microsoft SQL Server Analysis Services：マイクロソフト（以前はMicrosoft SQL Server OLAP Servicesと呼ばれていた） MicroStrategy Mondrian（オープンソース） OpenOLAP OpenOLAP for MySQL Open Text Business Intelligence （低価格BIツール。以前はBI Queryと呼ばれていた） Oracle OLAP Server Pentaho Sagent SAP BusinessObjects：SAP SAP Business Warehouse (SAP BW)：SAP SAP HANA：SAP SAS OLAP Server ：SAS Institute WebFOCUS：Information Builders BPM製品のベンダは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 Jaspersoft(日本語サイト) Pentaho BI suite