プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

データウェアハウスの実装とは?データキューブ計算とOLAPクエリ処理の基礎

データウェアハウスには膨大な量のデータが格納されています。また、OLAPサーバーは、意思決定支援のためのクエリに対して秒単位での応答を求められます。そのため、データウェアハウスシステムには、高度に効果的なキューブ計算技術アクセス技術、そしてクエリ処理技術を備えることが不可欠です。

データキューブの効率的な計算

多次元データ分析の核心となるのは、多数のディメンションの組み合わせにわたる集計(アグリゲーション)をいかに効率的に計算するかという点です。SQLの用語では、これらの集計は「GROUP BY」と呼ばれます。各GROUP BYはキューボイド(cuboid)として表現でき、GROUP BYの集合全体は、データキューブを定義するキューボイドの格子(ラティス)構造を形成します。

ベースキューボイドが与えられた場合、データキューブのマテリアライズ(事前計算による物理化)には、以下の3つの選択肢があります。

  • 非マテリアライズ(No materialization)
    「非ベース」のキューボイドを一切事前計算しません。この場合、多次元集計をクエリ実行時にその場で計算する必要があるため、処理が極端に遅くなる可能性があります。
  • 完全マテリアライズ(Full materialization)
    すべてのキューボイドを事前計算します。計算済みキューボイドからなる格子は「フルキューブ」と呼ばれます。ただしこの方式では、すべての事前計算結果を保存するために膨大な記憶領域が必要になるという課題があります。
  • 部分マテリアライズ(Partial materialization)
    可能なキューボイド全体の中から、適切なサブセットを選択的に計算します。あるいは、ユーザーが指定した基準(例:各セルのタプル数が一定の閾値を満たすなど)に合致するセルのみを含むキューブのサブセットを計算することもできます。コストとパフォーマンスのバランスを取れるため、実務で広く採用されている手法です。

OLAPデータのインデックス化

効率的なデータアクセスを支援するため、多くのデータウェアハウスシステムでは、インデックス構造やマテリアライズドビュー(キューボイドを利用)が提供されています。中でもビットマップインデックス方式は、データキューブ内の高速検索を可能にするため、OLAP製品で広く採用されている手法です。ビットマップインデックスは、レコードID(RID)リストの代替表現と考えることができます。

特定の属性に対するビットマップインデックスでは、その属性の定義域に含まれる各値vごとに、個別のビットベクトルBvが割り当てられます。属性の定義域にn個の値が存在する場合、ビットマップインデックスの各エントリにはnビットが必要となります(つまり、n個のビットベクトルが生成されます)。データテーブルの特定の行において属性が値vを持つ場合、ビットマップインデックスの対応する行で、その値に該当するビットが1に設定され、それ以外のビットはすべて0に設定されます。

OLAPクエリの効率的な処理

キューボイドをマテリアライズし、OLAPインデックス構造を構築する最大の目的は、データキューブにおけるクエリ処理の高速化です。効率的なクエリ処理を実現するためには、主に次の2つの判断が必要になります。

  • 利用可能なキューボイドに対して、どの操作を実行すべきかを決定する
    クエリで表現された選択(selection)、射影(projection)、ロールアップ(roll-up/GROUP BY)、ドリルダウン(drill-down)などの操作を、対応するSQLまたはOLAP操作へと変換します。例えば、データキューブに対するスライスやダイスの操作は、マテリアライズ済みキューボイド上での選択および射影操作に相当します。
  • 関連する操作を、どのマテリアライズ済みキューボイドに適用すべきかを決定する
    まず、クエリへの回答に利用できる可能性のあるマテリアライズ済みキューボイドを特定します。次に、キューボイド間の「支配関係」に関する知識を用いて候補を絞り込み、残ったキューボイドのコストを見積もった上で、最もコストの低いキューボイドを選択します。

  1. データウェアハウスのセキュリティ問題とは?多層セキュリティモデルの解説

    データウェアハウスとはデータウェアハウスは、複数のソースからデータを収集・管理し、ビジネスに有益な洞察をもたらすために広く活用されている手法です。経営判断を支援するために特別に設計されており、組織の運用データベースとは独立して管理されるデータベースとして定義されます。データウェアハウスシステムは複数のアプリケーションシステムの統合を可能にし、分析用に統合された履歴情報の堅牢なプラットフォームを提供することで、高度なデータ処理を実現します。また、多次元空間においてデータを汎用化・一元化する役割も担っています。データウェアハウスの構築プロセスには、データクレンジング、データ統合、データ変換が含まれ

  2. データウェアハウス設計とは?基本概念と4つの設計視点を解説

    データウェアハウスとはデータウェアハウスとは、複数の情報源からデータを収集・管理し、ビジネスにおける重要なインサイト(洞察)を支えるための仕組みです。経営層の意思決定を支援することを目的として特別に構築されており、日常業務で使われる運用データベースとは切り離して管理されます。データウェアハウスシステムは複数のアプリケーションシステムの統合を実現し、分析用に統合された過去のレコードを蓄積する堅牢なプラットフォームを提供することで、データ処理を支えます。データウェアハウスは、リモートにある基盤データ上に定義された「マテリアライズドビュー(実体化ビュー)」の集合体と捉えることができます。クエリが発行