JP2006503357A5 - - Google Patents
Download PDFInfo
- Publication number
- JP2006503357A5 JP2006503357A5 JP2004544289A JP2004544289A JP2006503357A5 JP 2006503357 A5 JP2006503357 A5 JP 2006503357A5 JP 2004544289 A JP2004544289 A JP 2004544289A JP 2004544289 A JP2004544289 A JP 2004544289A JP 2006503357 A5 JP2006503357 A5 JP 2006503357A5
- Authority
- JP
- Japan
- Prior art keywords
- fact
- generating
- value
- array
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000000875 corresponding Effects 0.000 claims description 44
- 239000011159 matrix material Substances 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims 2
- 238000000034 method Methods 0.000 description 24
- 238000004364 calculation method Methods 0.000 description 4
- 238000004220 aggregation Methods 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 3
- 238000007418 data mining Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005553 drilling Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
Description
本発明は、一般に、コンピュータによって実行されるデータベース管理システムに関し、具体的には、対応するOLAP(オンライン分析処理:OnLine Analytical Processing)およびデータ・ウエアハウス(Data Warehouse)・アプリケーションに関する。更に具体的には、本発明は、かかるデータベース管理システムに含まれるデータ・レコードのユーザ定義された提示またはビューを生成するための方法およびシステムに関する。さらに具体的には、本発明は、極めて多数のデータ・レコードを有するデータベース管理システムに関する。
データ・ウエアハウスおよびオンライン分析処理(OLAP)アプリケーションは、多次元データの保存および検索を行う迅速な方法の必要性を強調している。データ・ウエアハウスは、企業の様々なビジネス・システムが収集するデータの全てまたは大部分のための中央レポジトリである。時に、「情報ウエアハウス」という言葉がその代わりに用いられる。通常、データ・ウエアハウスは、企業のメインフレーム・サーバ上に収容されている。様々なオンライン・トランザクション処理(OLTP:online transaction processing)アプリケーションおよび他のソースからのデータは、選択的に抽出されてデータ・ウエアハウス・データベース上で組織化され、分析アプリケーションおよびユーザ・クエリによって用いられる。データ・ウエアハウス処理は、有用な分析およびアクセスのために多様なソースからデータを捕捉することを重視するが、一般に、特殊化した、時にローカルなデータベースにアクセスする必要があり得るエンド・ユーザまたは知識労働者の観点から出発しているわけではない。後者の技術は、一般にデータ・マート(data mart)として既知であり、データ・マイニング(data mining)、ウエブ・マイニング(Web mining)、および意思決定支援システム(DSS:decision support system)が、データ・ウエアハウスを利用可能な3種類のアプリケーションである。
OLAPは、ユーザが異なる観点から容易かつ選択的にデータを抽出し見ることを可能とするコンピュータ処理である。例えば、ユーザは、データを分析して、1年のある特定の月にある国で販売されたある電気通信会社の携帯電話製品の全てを示すスプレッドシートを表示し、収入の数値を前月の同じ製品のものと比較し、次いで、同じ時間期間のその国での他の製品売上との比較を見るように要求することができる。
この種の分析を容易にするため、OLAPデータは、多次元データベースに保存される。リレーショナル・データベースは2次元として考えることができるが、多次元データベースでは、製品、地理上の販売区域、および時間期間等、「データ・キー」と呼ばれることが多い各データ属性を、個々の「次元(dimension)」として考慮する。OLAPソフトウエアは、例えば、「ある期間中にヨーロッパ地域である価格を超えて販売された全製品」というように、次元の交差点の位置を指定し、それらを表示することができる。期間等の属性は、サブ属性に分解することができる。
データ・ウエアハウスと同様、OLAPを用いて、データ・マイニング、またはデータ・アイテム間で以前は認識されていなかった関係の発見を行うことができる。OLAPデータベースは、データ・ウエアハウスほどの大きさは必要でない。なぜなら、傾向分析のために全てのトランザクション・データが必要なわけではないからである。オープン・データベース・コネクティビティ(ODBC:Open Database Connectivity)を用いて、既存のリレーショナル・データベースからデータをインポートして、OLAPのための多次元データベースを作成することができる。
上述のように、OLAPの機能性を決定するのは、主に、エンド・ユーザの分析およびナビゲーション活動をサポートする、統合されたデータの動的多次元分析である。その活動には、以下のものが含まれる。
−次元間、階層間、あるいはメンバ間、またはそれら全てを通した、計算およびモデリング。
−連続期間に渡る傾向分析。
−画面上で見るためのサブセットのスライシング
−より深い統合レベルへのドリル・ダウン
−基礎にある詳細データへのリーチスルー(Reach-through)
−ビュー・エリアにおける新しい次元の比較のためのローテーション
−次元間、階層間、あるいはメンバ間、またはそれら全てを通した、計算およびモデリング。
−連続期間に渡る傾向分析。
−画面上で見るためのサブセットのスライシング
−より深い統合レベルへのドリル・ダウン
−基礎にある詳細データへのリーチスルー(Reach-through)
−ビュー・エリアにおける新しい次元の比較のためのローテーション
多くの場合、OLAPは、マルチ・ユーザ・クライアント/サーバ環境において実装され、データベースのサイズおよび複雑さに関わらず、データベース・アクセスに対して常に迅速な応答を提供しようと試みる。かかるデータベース・アクセスによって配信されるデータは、一般に、提示されたデータ・レコードのセルの配列によって主に規定される基礎データベースの一部もしくは全内容のクロス集計表またはピボット提示(pivot presentation)またはビューによって、エンド・ユーザに対して提示される。この配列は、平坦なコンピュータ・モニタを用いる通常の場合、2次元でなければならない。ピボット提示についての別の例は、コンピュータ・メモリ、データベース等で用意される2次元データ・アレイである。
図1および2に示すように、基礎にあるデータベースの各データ・レコードは、多数のデータ属性すなわちデータ・キーから成る。データ・レコードの次元、そして従って全データベースの次元は、データ・キーの数によって決定される。
ある具体的なピボット提示は、通常、データ・レコード(例えば、カスタマ情報、それらのカスタマに販売された対応する物品、および各物品ごとの販売時刻)の内容の特定のキー配列についての予め指定されたユーザの好みに依存する。これによって、多くの場合、異なるデータ・レコードの内容または所与のデータ・レコードのデータ・キー要素を、ピボット提示のセルに統合することが必要となる。
多次元データベースにおいてデータ・レコードのピボット提示を生成させるための、多数の手法が存在する。第1の手法は、データベース・クエリによって既存のデータベースのユーザ規定ピボット・ビューを得るために、周知のSQL(Simple Query Language)を用いることである。しかしながら、大きいデータベースにおけるピボット・ビューの計算は、著しい処理リソースを必要とする。なぜなら、データベースに保存されたデータ・レコードが、基礎にあるクエリ条件に合致するか否かを調べるために、それらデータ・レコードの全てにアクセスしなければならないからである。
第2の手法として、既知のOLAPソフトウエア・ツールがある。この場合、ハイパーキューブ・データ構造を用いてデータ・レコードを内部で処理するので、中間で生成したOLAP情報を保存するために、大きな保存ボリュームを必要とする。
第3の手法によれば、対応するハイブリッド概念を提供するために、上述の第1および第2の手法を組み合わせる。しかしながら、第3の手法も、その性能が著しく変動し、実際のピボット提示に大きく依存する限り、不利である。
従って、本発明の目的は、対応する従来技術の手法よりも効率的で、従って高速に実行し、上述の従来技術の手法の上述の欠点を回避する、データベース管理システムに含まれたデータ・レコードのユーザ定義されたn次元マトリクス提示またはビューを生成させるためのコンピュータによって実施される方法およびシステムを提供することである。
別の目的は、適切な応答時間を有する、オンライン分析処理(OLAP)環境において使用可能な方法およびシステムを提供することである。
更に別の目的は、それらのマトリクス提示またはビューを生成させるために最小限の処理リソースしか必要としない方法およびシステムを提供することである。
上述の目的は、独立クレームの特徴によって達成される。有利な実施形態は、サブクレームの主題である。
本発明の基礎にある考えは、例えば、連続データ配列の形態で、m次元ファクト・テーブルに配列するように、多次元データベースの基礎データ・レコードを順番に並べることである。このため、この配列は、好ましくは整数であるプレースホルダー値から成り、これらのプレースホルダー値の各々は、参照テーブルまたはベクトルによって、基礎にある不変のm次元ファクト・テーブルにリンクされている。しかしながら、マトリクス提示の次元nは、前記次元mに等しくすることができる。
基礎にある機構は、具体的には、インデクス値としてのレコード数を除いて、確定的なデータ・キーに属する全てのデータ値フィールドの内容をインデクス値に変換するステップと、前記インデクス値に基づいて最終マトリクス提示を生成させるために全てのソート・ステップを実行するステップとを有する。すなわち、全ソート機構または全ソート・エンジンは、これらのインデクス値のみを用いる。
前記n次元マトリクス提示の「濃度(cardinality)」は、例示した2次元の場合、その2次元マトリクスの列および行の数を意味することに留意しなければならない。もっと次元数が多い場合、すなわちnが2以上である場合、濃度は、必要な提示リソースを規定する。
好適な実施形態では、例えば2次元提示マトリクスの1行のような、基礎にあるマトリクス提示の単一のセルに提示すべきであるデータ・レコードは、前記プレースホルダー値の各々を含むサブ配列に連続的に配列されている。このため、前記ピボット提示のこれらの単一セルは、前記サブ配列に応じて生成する。この結果、セルのピボット・ビューのため、データ・レコードの全配列のデータ・サブ配列を用いることができる。ユーザが指定するピボット提示に必要なこれらのセルの各々は、特に、配列において開始点として定義され、これによって、提示するファクト・テーブルの必要なデータにアクセスする。
最終マトリクス提示はデータ配列を用いて生成し、それによって、前述のプレースホルダー値のみを用いてn次元ファクト・テーブルを参照する。換言すると、当該マトリクス提示は、仮想の2次元マトリクスを用いて得られる。
本実施形態では、前述のデータ配列は、好ましくは整数から成る前述の配列を有する線形ベクトルによって実現される。これによって、例えばファクト・テーブルに含まれる各次元(グループ)のデータ・レコードを、配列ベクトルによって各ユーザ定義ピボット構成のため新たに整列させる。その配列ベクトルを用いたリアル・データ・レコードに対するアクセスは、データ・レコード・インデクス数を用いて達成される。特定のピボット提示に用いるセル、すなわち特定のピボット・ビューに提示する列および行の計算は、リアルタイムで、すなわちオンラインで、すなわち、全く遅延なく、または、極めて短い遅延もしくはユーザに対する応答時間で、実行することができる。
別の実施形態によれば、まず、基礎にあるファクト・テーブルを参照テーブルに変換し、このテーブルに基づいて配列を生成させる。データ・レコードの前記次元の2つの変化を決定するため、別の実施形態では、カウント・ベクトルを利用する。
従って、本発明による機構は、可能なピボット提示を計算する目的のために、例えば全てのデータ・レコードの前集合のような大きなデータ処理およびデータ保存リソースを必要とするデータベースのデータ・レコードの前処理を必要としない。
更に、中間の整列ステップのため、可能なピボット提示(ビュー)に影響を与えることなく、データ・レコード量、従ってデータベースのサイズを拡張することができ、必要な処理時間は基礎にあるデータベースのサイズと共に線形に変化する。これによって、第1の次元は、データ・レコードの前記少なくとも2つの次元の少なくとも第2の次元にマッピングされる。このため、データベースのデータ・レコードの任意の次元を、互いにマッピングすることができ、これによって、データ・レコードの更に別の次元またはその完全な階層を挿入することによって、既存のデータベースの拡張を可能とする。
上述の従来技術の手法とは異なり、本発明による機構は、ピボット提示を求めるために、大きなデータ・セット間の比較のような動作を必要としない。
更に、ピボット提示の異なる集合段階において、実行時間の問題を生じることなく、データベースの特定のデータ・レコード次元をもっと用いることができる。所与のデータベースの以降の異なるピボット・ビューのためにベクトル演算しか用いないので、ユーザ定義のピボット・ビューを与えるためのデータ・レコードの以前生成した配列は、後のピボット・ビューのため有効に維持され、このため、以降のピボット・ビューは常に、既存のピボット・ビューから推論され、既存のピボット・ビューを破壊しない。
本発明の更に別の態様では、選択された2次元ピボット提示は、一般に、列および行の数によって決定する仮想2次元マトリクスに基づいている。このため、提案したピボット処理機構は、所与のピボット提示について、列および行の量、および、前述のサブ配列の配列において、列および行の交差点を提供する。このため、仮想マトリクスのセルの提示は、単に、セルの列および行インデクスによって達成することができる。
このため、任意のユーザ定義ピボット提示を、データベース・レコードから極めて高速に生成することができる。なぜなら、純粋な参照およびカウント技法ならびに整数値で実行される単純な線形(1次元)ベクトル演算のみを用いて、ピボット提示を生成または計算するからである。
本発明によるピボット提示機構は、2次元に限定されず、n次元ピボット提示にも適用することができることを強調しておく。しかしながら、n次元の場合、上述の配列ベクトルは(n−1)次元である。
以下で、添付図面を参照して、本発明について更に詳細に例示する。添付図面から、本発明の更に別の特徴および利点が明らかになる。
以下に、ほとんどの場合は2次元リアル・ファクト・テーブル(real facts table)によって表される所与のリアル・ファクト量について、本発明に従ってどのように任意のピボット・テーブル(クロス集計表)・ビューを生成させるかを示す。また、基礎にあるピボット・テーブル生成機構を、n次元データ・セットのためのm次元マトリクス提示を生成させるために使用可能であることを強調する。更に、この機構は、最小限のコストおよび時間労力で実施することができ、最小限のコンピューティング・リソースしか必要とせず、そのため、高性能の生成が可能となる。
ここで、リアル・ファクト量は、各々がキー次元を規定するデータ・キー、および、各キー次元に含まれるデータ値を含むと想定する。以下に更に詳細に示すように、そのファクト量のピボット・ビューは、キー次元のユーザが選択した規則正しい配列、ピボット・ビューの提示された次元でのキー次元の配置、および可能な集合レベルによって与えられる。
図1および2に、本例ではリアル・ファクト・テーブルによって表す、かかる例示的なファクト量、および、そのリアル・ファクト・テーブルのための例示的なピボット・ビューを示す。この例では、リアル・ファクト・テーブルは、キー次元すなわち「カスタマ」100、「物品」110、および「月」120において配列された売上130を含む。図2に示す対応する例示的ピボット・ビューは、図1に示すリアル・ファクト・テーブルの(ファクト)データ値140を、販売合計(右の列)140として、「カスタマ」/「物品」/「月」150〜170の順序で提示する(左の3つの列に示す)。これによって、キー次元「カスタマ」150および「物品」160は、垂直方向に提示され、キー次元「月」は、四半期の値「Q1」〜「Q4」170に統合され、ピボット・ビューの水平方向に提示される。
かかるピボット・ビューを生成させるための基礎にある機構は、ユーザによって選ばれた各任意のピボット提示を、基礎ファクト量のデータ値(例えば配列ベクトル)の連続的に順序付けた配列に変形するための概念に基づいている。この機構の好適な実施形態を、図3〜5によって例示する。
図3に示すように、本実施形態では、最初に、基礎リアル・ファクト・テーブルを、本例においてファクトに「1」から「20」までの連続番号を与える連続インデクス値200(左の列)によって拡張する。図4に示す、この結果として得られるピボット・ビューでは、各セル210において、それらのファクトのインデクスを提示し、対応するセルにおいてどの売上値を合計しなければならないかを示す。
前述のように、図4に示すピボット・ビューは、配列ベクトルに基づいて生成する。図4のピボット・ビューのための基礎配列ベクトルを図5に示す。これは、2つの列260、270から成り、左の列260は、本例において再び「1」から「20」までの連続番号を含み、右の列270は、図3に示す前述のインデクス値200を、図4のピボット・ビューを順次構築することができる順序付けた配列で含む。
この配列ベクトルをもっと理解するため、配列ベクトルの内容を逆の方向で、すなわち図4に示すピボット・ビューから開始して示す。このため、矢印250によってピボット・ビューの最初の2行に示すように、ピボット提示のセル210において行ごとに左から右にインデクスをまとめると、図5に示す配列ベクトルが得られる。
上述のように、ピボット・ビューはベクトル演算のみによって生成され、基礎にあるベクトルは整数値のみを含む。従って、以下に述べる処理ステップがどれも、リテラル・キー値、テキスト、または他のいずれかのリアル・ファクト値のような実際のデータ・キー値を用いない限り、大きな性能の利点が達成される。これらの全ての処理ステップにおいて、上述の整数(基準)値のみを用いる。これらの整数処理ステップを終了した場合にのみ、結果として得られる配列ベクトルに含まれる基準値が、後に説明する割り当てまたは基準(ルックアップ)テーブルによって、対応するリアル・ファクト値に変換し直される。
最初のステップでは、図6に示すリアル・ファクト・テーブルによって例示するように、カスタマ名「ミラー」および「ブラウン」等の、ファクト・テーブルに含まれた異なるキー次元の全てのデータを、そのキー次元における一意の基準値300によって置換する。これらの一意の基準値が、プレースホルダー値として用いられる。図3に示す例示的なリアル・ファクト・テーブルのファクト量を上述の基準数に変換したものを、図6に示す。
図7に、基準値に変換するための基本機構を示す。これは、既知のルックアップ・テーブル機構の方法で上述の基準値に異なるキー次元のリアル・ファクト値を割り当てるために用いる多数の割り当て(または基準)テーブル350〜370に基づいている。これを、キー次元「カスタマ」350、「物品」360、および「月」370について、図7に示す。図8に示すような、更に別のキー次元「四半期」380を集合階層として用いて、キー次元「月」390のための更に別の集合を可能とする。
図3に示すリアル・ファクト・テーブルの全てのキー次元について、第1の整数ベクトル410は、各キー次元およびキー次元内での要素(基準値)の生成に関連付けて、基礎にあるファクト列のファクト値のソート配列を用意する。第2の整数ベクトル400は、キー次元要素(例えば「ブラウン」)の生成ごとに、ソート配列410内のその対応するブロックの第1の要素を示す第1ブロック要素(FBE:First Block Element)を提供する。これは、図面のうち次に参照する図9〜11に示されている。これによって、図9〜11の左側に示すテーブルは、キー次元ごとに、右側に提示した順序付けベクトルにおける第1のエントリの基準インデクスを提供する。このため、図9に示すキー次元「カスタマ」について例示すると、キー「ブラウン」の全ファクト値420は1〜7行目に配置され、キー「ジョーンズ」の全ファクト値430は8〜14行目に、キー「ミラー」の全ファクト値440は15行目からテーブルの最後まで配置されている。
ソート・順序を含む第1の整数ベクトル410および第1ブロック要素インデクスを含む第2の整数ベクトル400を得るための必要なステップは、この説明の最後に、より詳細に記述する。
キー次元「四半期」の対応する提示は、「月」のベクトルから容易に導出することができるので、ここでは説明しないことを注記しておく。
ここで図12および13〜19を参照し、以下に、所望のピボット・ビューを得るために、前述の整数ベクトル計算技法を用いて、どのようにリアル・ファクト・データをソートするのかを説明する。最終ソートに用いるファクトの第1のブロックに基づいたソートを行う前ソート・ステップから開始して、ソートはステップごとに計算する。すなわち、最終ソート配列を示すため、これらのブロック内で、ピボット提示のキー次元ごとに計算する。これらの処理ステップによって、ソートするキー次元ごとに新しい群を生成させる。これが、以下のソート・ステップのため、および、計算の最後にピボット提示のセルの内容を与えるための基礎として機能する。
本例では、キー次元「カスタマ」のソートによって、前ソート・ブロックを示す。関連ベクトルに基づいて、「マッピング」および「ソート位置ポインタ」と称するこれらの図に示すテーブルを、図12に示すように初期化する。図12に示すテーブルは、全ソート・プロセス「カスタマ」対「物品」対「四半期」の特定のソート・ステップ「カスタマ」対「物品」を示すスナップショットに過ぎないことを強調しておく。これらの全テーブルは繰り返し処理され、各ソート・ステップの最後に、「Fact# NewGrp」フィールドにおいて「結果並べ替え」テーブルに含まれるファクトは、それぞれの次のソート・ステップの間に、「マッピング」テーブルおよび「ソート位置ポインタ」テーブルにおいて再使用されることに言及しておく。しかしながら、第1のソート・ステップの前にこれらのテーブルを初期化するために、「マッピング」テーブルおよび「ソート位置ポインタ」テーブルの列を以下のように初期化する。
「マッピング」テーブルの「TmpGrp」列の各フィールドには、本例「カスタマ」において、ソート配列の第1の次元が記入されている。すなわち、「リアル・ファクト」テーブルの前述の一意の基準値300が用いられている。更に、「ソート位置ポインタ」テーブルの「NextPos」列の各フィールドは、対応する次元の前述のFBEテーブル400の「Pos」列を用いて初期化される。
全てのソート・ステップの間、「ソートされた配列」テーブルの「Fact#」列には、対応する次元410(すなわち、対応するソート配列・ステップにおける右側の次元)の、「ソートされた配列」テーブルの「ファクト」列が記入されている。この結果、2つの前述の初期化ステップ後に、「結果並べ替え」の内容は消去されるので、これらのフィールドには、次のソート・ステップの間に新たに記入することができる。そのテーブル内の行数は、リアル・ファクト・テーブルに含まれるファクト値の数に等しい。以下で実行される処理ステップは、図面で「ソート配列」と示されているキー次元「物品」に関連するソート配列によって決定する。
図13〜19に示すピクチャ配列に、ソート機構自体を更に詳細に示す。これらのピクチャの各々が単一のソート・ステップを示し、このため、その配列に示すソート・ステップの全配列は、全ソート手順の一部のみを示す。全手順は、図示する4つのテーブルの連結に基づく。
最初に、キー次元「カスタマ」について以前のソート・ステップの結果として得られた「ソートされた配列」と示されているキー次元「物品」のテーブルを、「1」から「20」までパラメータ「Pseq」の順序で処理する。特に、「Fact#」列に含まれたファクト値の各々について、マッピング・テーブルにおいて、「TmpGrp」と示される対応するインデクスを決定する。
図13に示すソート・ステップにおいて、結果として得られたインデクス、特に、得られた整数値「3」を、「ソート位置ポインタ」テーブルにおいて用いて、次の位置「NextPos」のための値を決定する。これはすなわち、結果として得られる並べ替えテーブルにおけるターゲット・インデクスであり、これによって現在のファクト値を識別することができる。更に、マッピング・テーブルの「LDGrp」列に含まれる対応する値を、「ソートされた配列」テーブルに含まれる対応する値「DGrp」と比較する。双方の値が異なる場合、「結果並べ替え」テーブルの「開始」列で、このインデクスに「真」と示し、これによって新たなグループの開始を規定する。図13において、図示した手順のステータスにおけるパラメータ「NextPos」は、まだ増分されていないことに留意すべきである。
図14〜18は、更に別の5つのステップを示し、ステップ7〜19を省略して、図19は、「結果並べ替え」と示す最終的に得られる並べ替えテーブル(ベクトル)を示す。これによって、「カスタマ」対「物品」のソート・ステップの結果は、図19に示す「結果並べ替え」テーブルの「Fact#」列に保存される。
図20において、図19に示した最終的な結果並べ替えテーブルを再び示す。これは、ターゲットのピボット配列を関連するソート配列で示す。「NewGrop」列では、第1行から始めて、グループ・インデクスを1ずつ増分することによって、各行に値を割り当てる。この増分を行うのは、「開始」列で各行にブール値「真」が示される場合、すなわち新たなグループのための開始点が示される場合である。これらのグループは、リアル・ファクトによって与えられるキー次元「カスタマ」および「物品」のための可能な異なる組み合わせに関する。リアル・ファクトの最終的な提示のために必要な各基本キー・テキストに対するアクセスを提供するキー次元内のこれらのグループに対応する基準数は、上述の手順の実行中に容易に決定し管理することができる。
更に図21を参照すると、以前のソート・ステップ「カスタマ」対「物品」の結果から開始する次のソート・ステップ「カスタマ」対「物品」対「四半期」の初期化を示す。追加の統合ステップを含み、次元「月」を「四半期」に統合することに言及しておく。「ソート位置ポインタ」テーブルの「NextPos」列は、指示値の生成の対応する「PSeq」数によって初期化される。これは、本実施形態では、「結果並べ替え」テーブルの「開始」列におけるブール「真」値である。
「結果並べ替え」テーブルの「Fact#」列から開始して、その列の各フィールドは、図21に示す「マッピング」テーブルの「TmpGrp」列内に、「結果並べ替え」テーブルの「NewGrp」フィールドにおける対応する値を記入するためのエントリポイントとして用いる。
図21〜28に、以前の図面に従って本実施形態の最終的なソート・ステップを示し、これによって最終的なピボット提示を表す。このため、「Fact#」列に与えられるファクト値および「NewGrp」列に与えられるグループ・インデクスに基づいて、以前に記載したように、別の対応する「マッピング」テーブルおよび「ソート位置ポインタ」を再び初期化し、キー次元「四半期」のための次のソート配列を可能とする。この初期化のために結果として得られるテーブルを図21に示す。図22〜27に、最終ソート配列の最初の5つのステップおよび最後のソート・ステップを示す。これらのピクチャは、図14〜19にするので、ここではこれ以上詳細に説明しない。
図28に示す「ピボット配列」テーブルの計算によって、全ソート手順を完了させる。全手順により、このように、順序付けたキー次元「カスタマ」対「物品」対「四半期」についての本ピボット提示の順序配列ベクトルが表される。この順序配列ベクトルは、「結果並べ替え」テーブルの「Fact#」列に保存される。「NewGrp」列に与えられる基礎にあるグループ・インデクスは、基礎にあるピボット提示またはビューの対応するセルに関連する。更に別の対応するファクト基準は、「Fact#」列における各エントリに基づいて容易に決定することができる。
上に与えた例は、ピボット・ビューの水平特定のため用いられる1つのみのキー次元から成る。ソート手順は、ピボット特定に用いられるキー次元の量に限定されないことに留意すべきである。
全体の手順は、各ピボット次元についての個々のソート配列を決定することである。全体的な配列は、個々に生成させられた配列にソート手順を適用し、最初の結果で開始し、そして上述のような「マッピング」テーブルおよび「ソート位置ポインタ」のための入力として次に進むことによって生成される。
また、全体のソート・プロセスは、図6に示す「リアル・ファクト」テーブルのサブセットのために機能する。図12に示す「マッピング」テーブルの行数は、「ソートされた配列」テーブルの「Fact#」列の可能な最大値、すなわち、「リアル・ファクト」テーブルのファクト行数に対応することに留意すべきである。例えばフィルタ基準のため、ファクトのサブセットのみをソート・プロセスに用いる場合、「マッピング」テーブルのサイズは、選択したファクトのサイズに減ずることができる。これを実行することができるのは、「ソートされた配列」テーブルの「Fact#」列の上述の各初期化が、対応するサブ配列内のリアル・ファクト・インデクスの関連インデクスを用いる場合である。ソート・プロセスの結果は、「結果並べ替え」テーブルの「Fact#」列に保存し、これはリアル・ファクト・インデクスに戻す必要がある。
上述のように、「第1ブロック要素」(FBE)整数ベクトル400および「ソート順序」整数ベクトル410を、各ソート・ステップの初期化のために用いる。LBEインデクス・ベクトルは、図6に示す「リアル・ファクト」テーブルのキー次元列310上で計算する。第1のステップとして、前記カウント・ベクトルを求め、カウント・ベクトルの各フィールドは、「Real Fact#」テーブルにおける対応するキー次元の対応する基準数の生成数を含む。カウント・ベクトルにおける各値は、対応する基準数のためのブロック長を反映する。第1のフィールドから最後のフィールドまで値を合算してカウント・ベクトルを処理すると、ステップごとに、対応するグループの開始が与えられる。この結果は、FBEインデクス・ベクトル400に保存される。
「ソート順序」整数ベクトル410は、ソート手順を用いて計算される。この場合、「ソートされた配列」の「DGrp」列には、各フィールドに、例えば「1」のような同じ値を記入する。「Fact#」列の各フィールドには、「Pseq」列の対応する値を記入する。「マッピング」テーブルの「TmpGrp」列の各フィールドには、図6に示す対応する次元キーの値を記入する。「ソート位置ポインタ」テーブルの「NextPos」列には、対応する次元キーの「FBE」整数ベクトル400を記入する。この初期化においてソート手順を実行すると、「結果並べ替え」テーブルの「Fact#」列に「ソート順序」整数ベクトル410が与えられる。
現在のピボット特定内で、例えば「四半期」のような階層レベルを用いる場合、同じ手順を用いることに留意すべきである。例えば「月」のような、対応する次元キーのリアル・ファクト列を階層レベルの基準数に変換する場合、「FBE」および「ソート順序」整数ベクトルを計算することができる。
最後に図4および20を参照すると、本発明に従ってどのように前記エントリポイントが用意されるのかが更に詳細に示されている。最終ピボット提示の濃度(cardinality)(例えば2次元ピボット提示における列および行の数)は、ソート手順の別の結果である。ピボット・ビューの前記次元ごとに、対応するピボット・ビュー次元の濃度は、ピボット特定およびピボット・ビューの入力であるファクトに依存する。与えられた例では、垂直次元の濃度は、「カスタマ」対「物品」のソート・ステップ後に導出されうる。「結果並べ替え」テーブル(図19を参照のこと)の「NewGrp」列の最後のフィールドは、結果として得られるグループ数を含む。この数は、結果として得られるピボット・ビューの垂直次元の濃度と等しい。このため、各ピボット次元を処理することは、対応するピボット次元の必要とされる濃度を独立して用意する。
Claims (14)
- 多次元データベースにおけるオンライン分析処理において、複数のデータ・レコード及び複数のキー次元を含むm次元データベースの少なくとも一部分のn次元マトリクス提示を生成する方法であって、各キー次元は複数のデータ値フィールドを含み、各データ値フィールドはその中にリアル・データを有し、
前記方法は、コンピュータに下記ステップを実行させることを含み、当該ステップは、
ファクト値のソート配列を用意するステップであって、前記ファクト値は前記データ・レコードを識別する、前記用意するステップと、
前記n次元マトリクス提示の次元ごとにエントリポイントを用意するステップであって、当該用意された各エントリポイントは前記ソート配列の対応するファクト値とリンクされるように用意される、前記用意するステップと、
前記用意されたソート配列および前記用意された対応するエントリポイントに基づいて、前記n次元マトリクス提示の列及び行の数を用意するステップと、
前記用意された列及び行の数並びに前記用意されたエントリポイントに基づいて前記n次元マトリクス提示を生成するステップと
を含む、前記方法。 - 前記エントリポイントを用意するステップが、前記ソート配列の各ファクト値を、前記n次元マトリクス提示に関連付けられた列内のファクト値に対応する用意されたエントリポイント内に配置することを含む、請求項1に記載の方法。
- 前記エントリポイントを用意するステップの前に、各データ値フィールの前記リアル・データを対応するインデクス値に変換するステップと、
前記インデクス値を使用し且つ前記リアル・データを使用しないで、前記エントリポイントを用意するステップと、
前記エントリポイントを用意した後であり且つ前記n次元マトリクス提示を生成する前に、前記n次元マトリックス提示を生成するために前記インデクス値を前記リアル・データに再変換するステップと
をさらに含む、請求項2に記載の方法。 - 前記エントリポイントを用意するステップが、前記ソート配列上で及び前記インデクス値上で配列の線形ベクトル演算を実行するステップを含む、請求項3に記載の方法。
- ファクト値の前記ソート配列を含む列を含む参照テーブルと、各キー次元の前記インデクス値を含む行とを生成するステップと、
前記参照テーブルに基づいて、前記第1のキー次元の前記インデクス値を有する前記ソート配列に関連するソートされた配列テーブルを生成するステップであって、前記ソートされた配列テーブルは、その中でソートされた前記第1のキー次元の前記インデクス値を有する、前記生成するステップと、
前記参照テーブルに基づいて、前記ソート配列を有する前記複数のキー次元の第2のキー次元の前記インデクス値に関連するマッピング・テーブルを生成するステップと、
前記参照テーブルに基づいて、カウント・ベクトルを含むソート位置ポインタ・テーブルを生成するステップであって、その要素は、前記エントリポイントの選択されたエントリポイントへポイントするポインタであり、前記選択されたエントリポイントは、前記第2のキー次元の唯一の各インデクス値についての前記データベースの個々のデータ・レコードの総数のカウントの機能である、前記生成するステップと
を含む、請求項4に記載の方法。 - 前記線形ベクトル演算を実行するステップが、前記ソートされた配列テーブル中の前記ソート配列の各ファクト値についての第1、第2、及び第3のベクトル演算を逐次に実行するステップを含み、前記各ファクト値が所与のファクト値として示されており、
前記第1の線形ベクトル演算が、前記所与のファクト値を前記マッピング・テーブル中の前記第2のキー次元の対応するインデクス値にリンクし、
前記第2の線形ベクトル演算が、前記第1の線形ベクトル演算の実行から生じる前記第2のキー次元の前記対応するインデクス値を、前記ソート位置ポインタ・テーブルの前記カウント・ベクトルの対応するポインタへリンクし、前記第2の線形ベクトル演算に引き続き、前記カウント・ベクトル中の前記対応するポインタが前記エントリポイントの次のエントリポイントへポイントするように増分され、
前記第3の線形ベクトル演算が、増分される前に前記第2の線形ベクトル演算の実行から生じる前記対応するポインタを使用して、前記所与のファクト値に対応する前記エントリポイントへポイントする、請求項5に記載の方法。 - 前記複数のキー次元の第1のキー次元の前記インデクス値が、ベクトルによって表される、請求項3に記載の方法。
- 前記インデクス値が整数である、請求項3に記載の方法。
- 前記生成するステップが、前記n次元マトリクス提示に関連するピボット提示を生成するステップを含む、請求項1に記載の方法。
- 前記生成するステップが、前記n次元マトリクス提示に関連する仮想のn次元マトリクスを生成するステップを含む、請求項1に記載の方法。
- nがmに等しい、請求項18に記載の方法。
- nがmに等しくない、請求項18に記載の方法。
- コンピュータに、請求項1〜12のいずれか1項に記載の各ステップを実行させるコンピュータ・プログラム。
- 請求項13に記載のコンピュータ・プログラムを実行させるコンピュータ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP02023362 | 2002-10-18 | ||
PCT/EP2003/050620 WO2004036456A2 (en) | 2002-10-18 | 2003-09-11 | Method and system for online analytical processing (olap) |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2006503357A JP2006503357A (ja) | 2006-01-26 |
JP2006503357A5 true JP2006503357A5 (ja) | 2009-12-03 |
JP4609995B2 JP4609995B2 (ja) | 2011-01-12 |
Family
ID=32103886
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004544289A Expired - Fee Related JP4609995B2 (ja) | 2002-10-18 | 2003-09-11 | オンライン分析処理(olap)のための方法およびシステム |
Country Status (6)
Country | Link |
---|---|
US (3) | US7340476B2 (ja) |
JP (1) | JP4609995B2 (ja) |
CN (1) | CN1688998A (ja) |
AU (1) | AU2003286187A1 (ja) |
TW (1) | TWI230344B (ja) |
WO (1) | WO2004036456A2 (ja) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7263520B2 (en) * | 2004-02-27 | 2007-08-28 | Sap Ag | Fast aggregation of compressed data using full table scans |
US7774298B2 (en) * | 2004-06-30 | 2010-08-10 | Sap Ag | Method and system for data extraction from a transaction system to an analytics system |
WO2006076450A1 (en) * | 2005-01-12 | 2006-07-20 | West Services, Inc. | Systems, methods, and interfaces for aggregating and providing information regarding legal professionals |
US8270612B2 (en) * | 2006-12-18 | 2012-09-18 | Sap Ag | Mapping compound keys |
US20090063458A1 (en) * | 2007-08-31 | 2009-03-05 | International Business Machines Corporation | method and system for minimizing sorting |
US8495007B2 (en) * | 2008-08-28 | 2013-07-23 | Red Hat, Inc. | Systems and methods for hierarchical aggregation of multi-dimensional data sources |
US20100076935A1 (en) * | 2008-09-09 | 2010-03-25 | Ahmir Hussain | Method, system, and computer for analytical reporting and archiving of data |
US8959050B2 (en) * | 2009-06-15 | 2015-02-17 | Oracle International Corporation | Mechanism for synchronizing OLAP system structure and OLTP system structure |
US8549045B2 (en) * | 2010-12-30 | 2013-10-01 | International Business Machines Corporation | Test data generation and scale up for database testing using unique common factor sequencing |
US8751564B2 (en) * | 2011-04-19 | 2014-06-10 | Echostar Technologies L.L.C. | Reducing latency for served applications by anticipatory preprocessing |
CN103019951B (zh) * | 2011-09-20 | 2016-12-07 | 阿里巴巴集团控股有限公司 | 有序数据的记录方法和装置、有序数据的访问方法和装置 |
US8635229B2 (en) | 2011-10-18 | 2014-01-21 | International Business Machines Corporation | Sequenced query processing in data processing system |
US8938416B1 (en) | 2012-01-13 | 2015-01-20 | Amazon Technologies, Inc. | Distributed storage of aggregated data |
US8660985B2 (en) * | 2012-04-11 | 2014-02-25 | Renmin University Of China | Multi-dimensional OLAP query processing method oriented to column store data warehouse |
US9721321B1 (en) * | 2012-04-12 | 2017-08-01 | Farshad Nayeri | Automated interactive dynamic audio/visual performance with integrated data assembly system and methods |
CN103678420B (zh) * | 2012-09-25 | 2017-02-01 | 北大方正集团有限公司 | 一种建立多维数据集的方法和多维数据集处理装置 |
US9646072B2 (en) * | 2013-03-03 | 2017-05-09 | Panorama Software Inc. | Multidimensional dataset query processing |
CN103235793A (zh) * | 2013-04-01 | 2013-08-07 | 华为技术有限公司 | 联机处理数据的方法、设备及系统 |
US9965512B2 (en) | 2013-06-25 | 2018-05-08 | Sap Se | Operators for constants in aggregated formulas |
US10037355B2 (en) * | 2015-07-07 | 2018-07-31 | Futurewei Technologies, Inc. | Mechanisms for merging index structures in MOLAP while preserving query consistency |
CN106775742A (zh) * | 2016-12-27 | 2017-05-31 | 中国建设银行股份有限公司 | 一种用户定制信息的扩展方法及系统 |
EP3678033A1 (en) * | 2019-01-07 | 2020-07-08 | QlikTech International AB | A computer implemented method for indexlet based aggregation |
GB201916800D0 (en) | 2019-11-19 | 2020-01-01 | Ibm | Detecting errors in spreadsheets |
GB201916804D0 (en) | 2019-11-19 | 2020-01-01 | Ibm | Generating an OLAP model from a spreadsheet |
GB201916803D0 (en) | 2019-11-19 | 2020-01-01 | Ibm | Identifying content and structure of olap dimensions from a spreadsheet |
GB201916801D0 (en) | 2019-11-19 | 2020-01-01 | Ibm | Identifying data relationships from a spreadsheet |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5875108A (en) * | 1991-12-23 | 1999-02-23 | Hoffberg; Steven M. | Ergonomic man-machine interface incorporating adaptive pattern recognition based control system |
US6850252B1 (en) * | 1999-10-05 | 2005-02-01 | Steven M. Hoffberg | Intelligent electronic appliance system and method |
US5727197A (en) * | 1995-11-01 | 1998-03-10 | Filetek, Inc. | Method and apparatus for segmenting a database |
US5787279A (en) * | 1995-12-22 | 1998-07-28 | International Business Machines Corporation | System and method for conformationally-flexible molecular recognition |
US5767854A (en) * | 1996-09-27 | 1998-06-16 | Anwar; Mohammed S. | Multidimensional data display and manipulation system and methods for using same |
US5978796A (en) * | 1997-06-30 | 1999-11-02 | International Business Machines Corporation | Accessing multi-dimensional data by mapping dense data blocks to rows in a relational database |
US6003036A (en) * | 1998-02-12 | 1999-12-14 | Martin; Michael W. | Interval-partitioning method for multidimensional data |
US6957341B2 (en) * | 1998-05-14 | 2005-10-18 | Purdue Research Foundation | Method and system for secure computational outsourcing and disguise |
US6334125B1 (en) * | 1998-11-17 | 2001-12-25 | At&T Corp. | Method and apparatus for loading data into a cube forest data structure |
US7272593B1 (en) * | 1999-01-26 | 2007-09-18 | International Business Machines Corporation | Method and apparatus for similarity retrieval from iterative refinement |
US6427123B1 (en) * | 1999-02-18 | 2002-07-30 | Oracle Corporation | Hierarchical indexing for accessing hierarchically organized information in a relational system |
US6560594B2 (en) * | 1999-05-13 | 2003-05-06 | International Business Machines Corporation | Cube indices for relational database management systems |
US20030171876A1 (en) * | 2002-03-05 | 2003-09-11 | Victor Markowitz | System and method for managing gene expression data |
EP1211610A1 (en) * | 2000-11-29 | 2002-06-05 | Lafayette Software Inc. | Methods of organising data and processing queries in a database system |
EP1217540A1 (en) * | 2000-11-29 | 2002-06-26 | Lafayette Software Inc. | Methods of organizing data and processing queries in a database system, and database system and software product for implementing such method |
EP1211611A1 (en) * | 2000-11-29 | 2002-06-05 | Lafayette Software Inc. | Methods of encoding and combining integer lists |
US20020138316A1 (en) * | 2001-03-23 | 2002-09-26 | Katz Steven Bruce | Value chain intelligence system and methods |
US20030033179A1 (en) * | 2001-08-09 | 2003-02-13 | Katz Steven Bruce | Method for generating customized alerts related to the procurement, sourcing, strategic sourcing and/or sale of one or more items by an enterprise |
US8090730B2 (en) * | 2001-12-04 | 2012-01-03 | University Of Southern California | Methods for fast progressive evaluation of polynomial range-sum queries on real-time datacubes |
US7076505B2 (en) * | 2002-07-11 | 2006-07-11 | Metrobot Llc | Method, apparatus, and computer program product for providing a graphical user interface with a linear map component |
WO2004029828A2 (en) * | 2002-09-24 | 2004-04-08 | Ismartsoft, Inc. | Method and apparatus for data analysis |
-
2003
- 2003-09-11 JP JP2004544289A patent/JP4609995B2/ja not_active Expired - Fee Related
- 2003-09-11 AU AU2003286187A patent/AU2003286187A1/en not_active Abandoned
- 2003-09-11 US US10/530,936 patent/US7340476B2/en not_active Expired - Fee Related
- 2003-09-11 CN CNA038242834A patent/CN1688998A/zh active Pending
- 2003-09-11 WO PCT/EP2003/050620 patent/WO2004036456A2/en active Application Filing
- 2003-10-15 TW TW092128546A patent/TWI230344B/zh not_active IP Right Cessation
-
2007
- 2007-11-30 US US11/948,033 patent/US7774302B2/en not_active Expired - Fee Related
-
2008
- 2008-01-17 US US12/015,551 patent/US7856458B2/en not_active Expired - Fee Related
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4609995B2 (ja) | オンライン分析処理(olap)のための方法およびシステム | |
JP2006503357A5 (ja) | ||
US8356029B2 (en) | Method and system for reconstruction of object model data in a relational database | |
AU743687B2 (en) | Method and apparatus for storing, retrieving, and processing multi-dimensional customer-oriented data sets | |
US6424967B1 (en) | Method and apparatus for querying a cube forest data structure | |
US6334125B1 (en) | Method and apparatus for loading data into a cube forest data structure | |
US6141655A (en) | Method and apparatus for optimizing and structuring data by designing a cube forest data structure for hierarchically split cube forest template | |
US6442560B1 (en) | Record for multidimensional databases | |
US7571182B1 (en) | Emulation of a balanced hierarchy from a nonbalanced hierarchy | |
US6493728B1 (en) | Data compression for records of multidimensional database | |
US6446059B1 (en) | Record for a multidimensional database with flexible paths | |
US6430565B1 (en) | Path compression for records of multidimensional database | |
US20080016041A1 (en) | Spreadsheet-based relational database interface | |
US20050076045A1 (en) | Method and system for handling multiple dimensions in relational databases | |
US7328206B2 (en) | Extensions for adding and removing calculated members in a multidimensional database | |
EP1450274A2 (en) | Dimension-based partitioned cube | |
JP2004094425A (ja) | データベース構築処理変更方法 | |
Akid et al. | Performance of nosql graph implementations of star vs. snowflake schemas | |
US9268817B2 (en) | Efficient evaluation of hierarchical cubes by non-blocking rollups and skipping levels | |
Khalil et al. | New approach for implementing big datamart using NoSQL key-value stores | |
JP2001216307A (ja) | リレーショナルデータベース管理システム及びそれを記憶した記憶媒体 | |
Milosevic et al. | Big data management processes in business intelligence systems | |
Ivanova et al. | Multidimensional models: constructing data CUBE. | |
Breitner | Data Warehousing and OLAP: Delivering Just-In-Time Information for Decision Support | |
Seyed-Abbassi | Teaching Effective Methodologies to Design a Data Warehouse |