コンピューティング において、オンライン分析処理 (OLAP) ( / ˈ oʊ l æ p / ) は、多次元分析(MDA) クエリに迅速に回答するためのアプローチです。 [ 1 ] OLAPという用語は、従来のデータベース用語であるオンライン トランザクション処理(OLTP)を少し変更して作成されました。[ 2 ] OLAP は、リレーショナル データベース、レポート作成、データ マイニングも含む、より広範なビジネス インテリジェンスのカテゴリの一部です。 [ 3 ] OLAP の典型的なアプリケーションには、販売、マーケティング、管理レポート、ビジネス プロセス管理(BPM)のビジネス レポート、 [ 4 ]予算編成と予測、財務報告などの分野があり、農業などの新しいアプリケーションも出現しています。[ 5 ]
OLAP ツールを使用すると、ユーザーは多次元データを複数の視点から対話的に分析できます。OLAP は、統合 (ロールアップ)、ドリルダウン、スライスとダイシングの 3 つの基本的な分析操作で構成されています。[ 6 ] : 402–403統合とは、1 つ以上の次元で蓄積および計算できるデータの集計です。たとえば、すべての営業所は、販売トレンドを予測するために、営業部または営業部門にロールアップされます。対照的に、ドリルダウンは、ユーザーが詳細をナビゲートできるようにする手法です。たとえば、ユーザーは、地域の売上を構成する個々の製品ごとの売上を表示できます。スライスとダイシングは、ユーザーがOLAP キューブの特定のデータセットを取り出して (スライス) 、スライスをさまざまな視点から表示 (ダイシング) できる機能です。これらの視点は、ディメンションと呼ばれることもあります (たとえば、同じ売上を営業担当者別、日付別、顧客別、製品別、地域別などで表示する場合など)。
OLAP用に構成されたデータベースは多次元データモデルを使用し、複雑な分析クエリやアドホッククエリを高速に実行できます。[ 7 ]ナビゲーションデータベース、階層型データベース、リレーショナルデータベースの側面を取り入れています。
OLAPは通常、OLTP(オンライン・トランザクション処理)と対比されます。OLTPは一般的に、ビジネスインテリジェンスやレポート作成を目的とするのではなく、トランザクション処理のために、より単純なクエリを大量に処理することを特徴としています。OLAPシステムは主に読み取りに最適化されていますが、OLTPはあらゆる種類のクエリ(読み取り、挿入、更新、削除)を処理する必要があります。
OLAPシステムの中核となるのは、OLAPキューブ(「多次元キューブ」またはハイパーキューブとも呼ばれる)です。これは、ディメンションごとに分類されたメジャーと呼ばれる数値データで構成されています。メジャーは、ディメンションがベクトル空間として張るハイパーキューブの交点に配置されます。OLAPキューブを操作するための一般的なインターフェースは、表計算ソフトのピボットテーブルのようなマトリックスインターフェースであり、集計や平均化など、ディメンションに沿った射影演算を実行します。
キューブメタデータは通常、リレーショナルデータベース内のスター型スキーマ、スノーフレーク型スキーマ、またはファクトテーブルの集合から作成されます。メジャーはファクトテーブルのレコードから、ディメンションはディメンションテーブルから導出されます。
各指標には、ラベル、つまりメタデータのセットが関連付けられていると考えることができます。ディメンションとは、これらのラベルを記述するものであり、指標に関する情報を提供します。
簡単な例としては、店舗の売上をメジャー、日付/時刻をディメンションとするキューブが挙げられます。各売上には、その売上に関する詳細情報を示す日付/時刻ラベルが付いています。
例えば:
売上概要表 +-------------+----------+ | 販売金額 | 時間ID | +-------------+----------+ 時間次元 | 930.10| 1234 |----+ +---------+-------------------+ +-------------+----------+ | | time_id | timesamp | | +---------+-------------------+ +---->| 1234 | 20080902 12:35:43 | +---------+-------------------+
多次元構造は、「多次元構造を使用してデータを整理し、データ間の関係を表現するリレーショナル モデルのバリエーション」と定義されます。[ 6 ] : 177この構造はキューブに分割され、キューブは各キューブの範囲内でデータを格納およびアクセスできます。「多次元構造内の各セルには、その各次元に沿った要素に関連する集約データが含まれています。」[ 6 ] : 178 データが操作されても、アクセスは容易であり、コンパクトなデータベース形式を構成し続けます。データは依然として相互に関連しています。多次元構造は、オンライン分析処理 (OLAP) アプリケーションを使用する分析データベースで非常に人気があります。[ 6 ] 分析データベースは、複雑なビジネス クエリに迅速に回答を提供できるため、これらのデータベースを使用します。データはさまざまな角度から見ることができるため、他のモデルとは異なり、問題のより広い視点が得られます。[ 8 ]
複雑なクエリの場合、OLAP キューブはOLTPリレーショナル データに対する同じクエリに必要な時間の約 0.1% で回答を生成できると主張されています。 [ 9 ] [ 10 ] OLAP でこのようなパフォーマンスを実現できる最も重要なメカニズムは、集計の使用です。集計は、特定のディメンションの粒度を変更し、集計関数(または集計関数)を使用してこれらのディメンションに沿ってデータを集計することにより、ファクト テーブルから構築されます。可能な集計の数は、ディメンションの粒度の可能なすべての組み合わせによって決まります。
考えられるすべての集計と基本データの組み合わせには、データから回答できるすべてのクエリに対する回答が含まれています。[ 11 ]
通常、計算可能な集計は多数あるため、多くの場合、あらかじめ決められた数だけが完全に計算され、残りは必要に応じて解決されます。どの集計(ビュー)を計算するかを決定する問題は、ビュー選択問題として知られています。ビュー選択は、選択された集計セットの合計サイズ、基本データの変更からそれらを更新するのにかかる時間、またはその両方によって制約されることがあります。ビュー選択の目的は通常、OLAPクエリに応答する平均時間を最小化することですが、更新時間を最小化する研究もあります。ビュー選択はNP完全問題です。この問題に対しては、貪欲アルゴリズム、ランダム化探索、遺伝的アルゴリズム、A*探索アルゴリズムなど、多くの手法が検討されてきました。
集計関数の中には、各セルの値を事前に計算し、これらの集計値を集計してセルのロールアップの集計を計算することで、 OLAP キューブ全体に対して計算できるものがあります。このとき、分割統治アルゴリズムを多次元問題に適用して効率的に計算します。[ 12 ]例えば、ロールアップの全体合計は、各セルの小計の合計になります。このように分解できる関数は、分解可能な集計関数と呼ばれ、各セルに対して計算して直接集計できるCOUNT、、、、などが含まれます。これらは自己分解可能な集計関数として知られています。[ 13 ]MAXMINSUM
その他の場合、集計関数は、セルの補助数を計算し、これらの補助数を集計し、最後に全体の数を計算することによって計算できます。例としては、AVERAGE(合計とカウントを追跡し、最後に除算する)とRANGE(最大値と最小値を追跡し、最後に減算する)があります。その他の場合、集計関数は、セット全体を一度に分析しないと計算できませんが、場合によっては近似値を計算できます。例としてはDISTINCT COUNT、、、MEDIANおよびがありMODEます。たとえば、セットの中央値は、サブセットの中央値の中央値ではありません。後者は、ベースデータに対して集計関数を計算する必要があるため、OLAP で効率的に実装するのは困難です。集計関数は、オンラインで計算するか(遅い)、展開に備えて事前に計算しておく(大きなスペース)必要があります。
OLAPシステムは従来、以下の分類法を用いて分類されてきた。[ 14 ]
MOLAP(多次元オンライン分析処理)はOLAPの古典的な形態であり、単にOLAPと呼ばれることもあります。MOLAPは、リレーショナルデータベースではなく、最適化された多次元配列ストレージにデータを保存します。
MOLAPツールの中には、統合などの派生データの事前計算と保存を必要とするものがあります。これは処理と呼ばれる操作です。このようなMOLAPツールは一般的に、データキューブと呼ばれる事前計算済みのデータセットを利用します。データキューブには、特定の質問範囲に対する考えられるすべての回答が含まれています。そのため、クエリへの応答速度が非常に速くなります。一方で、更新には事前計算の度合いによっては時間がかかる場合があります。また、事前計算はデータ爆発と呼ばれる現象を引き起こす可能性もあります。
他のMOLAPツール、特に機能データベースモデルを実装しているツールは、派生データを事前に計算せず、以前に要求されてキャッシュに保存されたもの以外のすべての計算をオンデマンドで行います。
MOLAPの利点
MOLAPの欠点
MOLAPを使用する商用製品の例としては、Cognos Powerplay、Oracle Database OLAP Option、MicroStrategy、Microsoft Analysis Services、Essbase、TM1、Jedox、icCubeなどが挙げられます。
ROLAP はリレーショナル データベースと直接連携し、事前計算は不要です。基本データとディメンション テーブルはリレーショナル テーブルとして格納され、集計情報を格納するために新しいテーブルが作成されます。これは特殊なスキーマ設計に依存します。この手法は、リレーショナル データベースに格納されているデータを操作して、従来の OLAP のスライスとダイシング機能の外観を実現します。本質的に、スライスとダイシングの各操作は、SQL ステートメントに「WHERE」句を追加することと同等です。ROLAP ツールは、事前計算されたデータ キューブを使用せず、代わりに標準リレーショナル データベースとそのテーブルにクエリを実行して、質問に答えるために必要なデータを取得します。ROLAP ツールは、手法がキューブの内容に限定されないため、あらゆる質問を実行できます。ROLAP は、データベースの最も低いレベルの詳細までドリルダウンする機能も備えています。
ROLAPはリレーショナルデータベースをソースとして使用しますが、一般的にデータベースはROLAPでの使用を想定して慎重に設計する必要があります。OLTP用に設計されたデータベースは、ROLAPデータベースとしてはうまく機能しません。そのため、ROLAPでは依然としてデータのコピーを作成する必要があります。ただし、データベースであるため、データベースへのデータ投入にはさまざまな技術を使用できます。
OLAP業界では、ROLAPは一般的に、大量のデータに対応できる拡張性を備えているものの、MOLAPに比べてクエリのパフォーマンスが遅いと認識されています。主要なOLAP製品すべてを対象とした最大規模の独立調査であるOLAP Surveyは、6年間(2001年から2006年)にわたって実施され、データ量を考慮した場合でも、ROLAPを使用している企業はMOLAPを使用している企業よりもパフォーマンスが遅いと一貫して報告しています。
しかし、あらゆる調査と同様に、結果を解釈する際には、考慮すべき多くの微妙な問題点が存在する。
既存のリレーショナルデータベーステーブルを再利用することを目的にROLAPを選択する企業もありますが、これらのテーブルはOLAPでの利用に最適な設計になっていない場合が少なくありません。ROLAPツールの優れた柔軟性により、このような最適とは言えない設計でも動作させることは可能ですが、パフォーマンスは低下します。一方、 MOLAPツールでは、データを最適なOLAP設計に再ロードする必要があります。
ETLコストの増加とクエリパフォーマンスの低下という望ましくないトレードオフのため、現在ではほとんどの商用OLAPツールが「ハイブリッドOLAP」(HOLAP)アプローチを採用しており、モデル設計者はデータのどの部分をMOLAPに格納し、どの部分をROLAPに格納するかを決定できるようになっています。
業界全体で「ハイブリッド OLAP」が何であるかについての明確な合意はありませんが、データベースがデータをリレーショナルストレージと専用ストレージに分割するという点だけは共通しています。[ 15 ]例えば、一部のベンダーでは、HOLAP データベースはリレーショナル テーブルを使用して大量の詳細データを保持し、より集計された、または詳細度の低い少量のデータの少なくとも一部の側面には専用ストレージを使用します。HOLAP は、両方のアプローチの機能を組み合わせることで、 MOLAPとROLAPの欠点を解消します。HOLAP ツールは、事前計算されたキューブとリレーショナル データ ソースの両方を利用できます。
このモードでは、HOLAP は高速なクエリ パフォーマンスのために集計をMOLAPに格納し、キューブ処理時間を最適化するために詳細データをROLAPに格納します。
このモードでは、HOLAP は高速クエリ パフォーマンスのために、通常はより新しいデータ (つまり、時間次元でスライスされたもの) をMOLAPに格納し、古いデータはROLAPに格納します。さらに、大きな直方体には密な部分領域と疎な部分領域が存在するという事実を利用して、一部のダイスをMOLAPに、他のダイスをROLAPに格納することもできます。[ 16 ]
HOLAPストレージを提供する最初の製品はHolosでしたが、この技術はMicrosoft Analysis Services、Oracle Database OLAP Option、MicroStrategy、SAP AG BI Acceleratorなどの他の商用製品でも利用可能になりました。ハイブリッドOLAPアプローチはROLAPとMOLAP技術を組み合わせたもので、ROLAPの高い拡張性とMOLAPの高速な計算という利点を享受できます。たとえば、HOLAPサーバーは大量の詳細データをリレーショナルデータベースに格納し、集計データは別のMOLAPストアに格納することができます。Microsoft SQL Server 7.0 OLAP ServicesはハイブリッドOLAPサーバーをサポートしています。
それぞれのタイプには一定の利点があるが、提供者間では具体的な利点について意見の相違がある。
以下の略語も時折使用されますが、上記のものほど広く普及しているわけではありません。
SQL を標準クエリ言語とし、ODBC、JDBC、OLEDBなどのAPI が広く普及していたリレーショナル データベースとは異なり、OLAP の世界では長い間そのような統一がありませんでした。最初の真の標準 API は、1997 年に登場したMicrosoftのOLE DB for OLAP仕様で、 MDXクエリ言語が導入されました。サーバーとクライアントの両方の OLAP ベンダーのいくつかがこれを採用しました。2001 年に Microsoft とHyperion はXML for Analysis仕様を発表し、ほとんどの OLAP ベンダーがこれを支持しました。これもクエリ言語として MDX を使用したため、MDX が事実上の標準となりました。[ 26 ] 2011 年 9 月以降、LINQ を使用してMicrosoft .NET からSSAS OLAP キューブをクエリできるようになりました。 [ 27 ]
OLAPクエリを実行した最初の製品は、 1970年にリリースされたExpress ( 1995年にInformation ResourcesからOracleに買収された)でした。 [ 28 ]しかし、この用語は1993年に「リレーショナルデータベースの父」と呼ばれるEdgar F. Coddによって造語されるまで登場しませんでした。Coddの論文[ 1 ]は、CoddがかつてのArbor Software(後にHyperion Solutionsとなり、2007年にOracleに買収された)のために行った短期のコンサルティング業務から生まれたもので、一種のマーケティング上の成功でした。
同社は1年前に独自のOLAP製品であるEssbaseをリリースしていた。そのため、コッドの「オンライン分析処理の12の法則」はEssbaseに明確に言及していた。その後、論争が起こり、ComputerworldはコッドがArborから報酬を受け取っていたことを知ると、記事を撤回した。OLAP市場は1990年代後半に力強い成長を遂げ、数十の商用製品が市場に投入された。1998年、マイクロソフトは初のOLAPサーバーであるMicrosoft Analysis Servicesをリリースし、OLAPテクノロジーの幅広い採用を促進し、主流へと押し上げた。
OLAPクライアントには、Excelなどのスプレッドシートプログラム、Webアプリケーション、SQL、ダッシュボードツールなど、多くの種類があります。多くのクライアントは、ユーザーが関心のあるディメンションとメジャーを選択できるインタラクティブなデータ探索をサポートしています。一部のディメンションはフィルター(データのスライスとダイシング用)として使用され、その他はピボットテーブルまたはピボットチャートの軸として選択されます。ユーザーは、表示されるビューの集計レベル(ドリルダウンまたはロールアップ用)を変更することもできます。クライアントは、スライダー、地理マップ、ヒートマップなど、さまざまなグラフィカルウィジェットを提供することができ、これらはダッシュボードとしてグループ化および調整できます。OLAPサーバー比較表の視覚化列には、クライアントの詳細なリストが表示されます。