JP5629821B2 - データウェアハウスに対するオンライン分析処理(olap)のオペレーションの最適化された順序付けのためのハイパー格子モデル - Google Patents

データウェアハウスに対するオンライン分析処理(olap)のオペレーションの最適化された順序付けのためのハイパー格子モデル Download PDF

Info

Publication number
JP5629821B2
JP5629821B2 JP2013513766A JP2013513766A JP5629821B2 JP 5629821 B2 JP5629821 B2 JP 5629821B2 JP 2013513766 A JP2013513766 A JP 2013513766A JP 2013513766 A JP2013513766 A JP 2013513766A JP 5629821 B2 JP5629821 B2 JP 5629821B2
Authority
JP
Japan
Prior art keywords
cuboid
hypergrid
cuboids
dimension
target
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.)
Expired - Fee Related
Application number
JP2013513766A
Other languages
English (en)
Other versions
JP2013535049A (ja
Inventor
チャキ,ナベンデュ
セン,ソウミヤ
Original Assignee
ユニバーシティー オブ カルカッタ
ユニバーシティー オブ カルカッタ
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ユニバーシティー オブ カルカッタ, ユニバーシティー オブ カルカッタ filed Critical ユニバーシティー オブ カルカッタ
Publication of JP2013535049A publication Critical patent/JP2013535049A/ja
Application granted granted Critical
Publication of JP5629821B2 publication Critical patent/JP5629821B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

関連出願の相互参照
本出願は、2010年6月28日に出願され、インドで出願された、出願番号が699/KOL/2010である対応する特許出願の優先権を主張するものであり、この特許出願の内容全体は、参照により本明細書に援用される。
本出願は、概して、データウェアハウジング技術ならびにオンライン分析処理(OLAP)の方法およびシステムに関する。
本明細書において別途指示されない限り、本節で説明される題材は本出願の特許請求の範囲に対する従来技術ではなく、本節に含まれることによって従来技術であると認められるわけではない。
十分な情報に得たうえでビジネス上の決定を行うために、多くの組織は、何らかの形態のデータウェアハウジングおよび分析処理を使用する。データウェアハウスは、1つまたは複数のデータソースから収集された情報の電子的なリポジトリである。概して、データウェアハウスは、大きな情報のキャッシュを含み、任意の所与の時間に、その情報の特定のサブセットが、望まれる可能性がある。望まれるデータを取り出し、好ましい方法で(たとえば、コンピュータスクリーンまたはその他の種類のグラフィックユーザインターフェース(GUI)上にデータを示すために、分析者は、ウェアハウスデータのオンライン分析処理(OLAP)として知られることを実行することができる。
たとえば、販売組織は、どの販売員が特定の国の特定の地域で特定の時間枠中に特定の個数を超える特定の種類の製品を販売したかを知ることを望む可能性がある。販売組織のデータウェアハウスまたはデータストアは、長期間に及び、全世界にわたる、複数の製品に関する販売員のすべてに対応する販売データを含み得る。OLAP機能は、ウェアハウスデータを処理し、データの望まれる部分を取り出し、適切な形態でデータを示すための方法を提供する。
組織が成長し、拡大するにつれて、それらの組織のデータストアも成長し、拡大する。これは、(たとえば、より洗練された販売時点情報管理テクノロジー、向上したマーケティング技術などのために)データ収集がますます容易になっていることとあいまって、データウェアハウスのサイズの急激な増加を招く。結果として、(たとえば、処理能力および時間で測られる)OLAPクエリのコストが上がり、乏しいユーザエクスペリエンスにつながる。これに対処するために、より効率的なデータストレージ、より効率的なデータ表現技術、およびより効率的なOLAPのルーチンが、望まれる。
一実施形態によれば、既存のデータウェアハウスの格子構造(lattice structure)を修正するための方法が、提供される。方法は、ハイパー格子の新しく挿入されたディメンションおよび既存のディメンションに関して基礎キューボイド(base cuboid)を形成する追加的なキューボイド(cuboid)を生成することを含む。方法は、複数の中間的なディメンションのパターンを追加的な基礎キューボイドと関連付けることであって、ディメンションのパターンのうちの少なくとも1つが、既存の格子構造内に存在し、ディメンションのパターンのうちの少なくとも1つが、既存の格子構造内に現在存在しない、関連付けることをさらに含む。
別の実施形態においては、元のキューボイドから目標のキューボイドを生成するための、データウェアハウスの格子を通る最適な経路を決定するためのソフトウェア命令が、与えられる。命令は、元のキューボイドから生成されることができるキューボイドの組を決定することと、その組の中のどのキューボイドが、少なくとも目標のキューボイドと同じディメンションに関して集約されるかを決定することと、少なくとも格子内の目標のキューボイドと同じディメンションに関して集約されるその組の中の各キューボイドのサイズを計算することと、どのキューボイドが最も小さなサイズを有するかを判定することとを含む。最適な経路は、したがって、少なくとも最も小さなサイズのキューボイドを含む経路として決定される。
さらなる実施形態においては、元のキューボイドから目標のキューボイドを生成するための、ハイパー格子を通る最適な経路を決定するためのソフトウェア命令を記憶するOLAPサーバが、与えられる。元のキューボイドおよび目標のキューボイドは、ハイパー格子内の同じ基礎キューボイドに対応する可能性があるか、またはハイパー格子内の異なる基礎キューボイドに対応する可能性がある。
以上の概要は、例示的であるに過ぎず、限定することは全く意図されていない。上述の例示的な態様、実施形態、および特徴に加えて、さらなる態様、実施形態、および特徴が、図面および以下の詳細な説明を参照することによって明らかになるであろう。
本明細書において示される実施形態の少なくとも一部が実行され得る例示的なシステムを示すブロック図である。 例示的なファクトおよびディメンションデータテーブルを示す図である。 ファクトデータが1つのディメンションに関して集約される例示的なデータキューボイドの図、および、ファクトデータが2つのディメンションに関して集約される例示的なデータキューボイドの図である。 ファクトデータが3つのディメンションに関して集約される例示的なデータキューボイドの図である。 ファクトデータが4つのディメンションに関して集約される例示的なデータキューボイドの図である。 キューボイドの例示的な格子の図である。 本明細書に記載の少なくとも一部の実施形態にしたがって適合されるハイパー格子構造内の最適な経路決定アルゴリズムの例示的なステップを示す流れ図である。 2つの基礎キューボイドを含むキューボイドの例示的なハイパー格子の図である。 3つの基礎キューボイドを含むキューボイドの例示的なハイパー格子の図である。 本明細書において示される少なくとも一部の実施形態を実施するためのソフトウェア命令を生成するために構成された例示的なコンピューティングデバイスを示すブロック図である。 本明細書において示される少なくとも一部の実施形態にしたがって構成された、コンピューティングデバイスでコンピュータプロセスを実行するためのコンピュータプログラムを含む例示的なコンピュータプログラム製品の部分的な見方を示す概略図である。
以下の詳細な説明において、本明細書の一部をなす添付の図面に対する参照がなされる。図面において、概して、同様の符号は、文脈がそうでないことを示さない限り、同様のコンポーネントを特定する。詳細な説明、図面、および特許請求の範囲に記載の例示的な実施形態は、限定することを意図されていない。本明細書で示される主題の精神または範囲を逸脱することなしに、その他の実施形態が利用される可能性があり、その他の変更がなされる可能性がある。本明細書において全体的に説明され、図面に図示される本開示の態様は、多種多様な異なる構成で配置され、置き換えられ、組み合わされ、設計される可能性があり、それらの構成のすべては、明確に考慮され、本開示の一部をなすことが容易に理解されるであろう。
本明細書において開示されるのは、データウェアハウジングおよびオンライン分析処理(OLAP)を実行するためのアルゴリズムおよび対応するシステムの例である。多くの例および実施形態が、説明され、以下の説明および図面から明らかになるであろう。
図1は、例示的なデータウェアハウジングの構成100を示すブロック図である。構成100において、分析者は、クライアントシステム102を操作し、ネットワーク104を介してOLAPサーバ106にOLAPクエリを発行することができる。クライアントシステム102は、たとえば、ネットワーク104に結合された任意のコンピューティングデバイス(たとえば、パーソナルコンピュータ)である可能性がある。ネットワーク104は、企業のイーサネットなどのローカルエリアネットワークである可能性があるか、またはインターネットなどの広域ネットワークである可能性がある。
OLAPサーバ106およびデータウェアハウス108は、構成100において別個のエンティティとして示されているが、それらは、単一のエンティティ(たとえば、コンピュータ)からなる可能性もある。OLAPサーバ106は、ウェアハウス108に記憶されたデータを処理するように設計されたソフトウェアおよびハードウェアを含み得る。OLAPサーバは、データの関係テーブル、メタデータを含むウェアハウスデータのさまざまな表現、およびデータ表現を容易にするように設計されたソフトウェアも含み得る。
データウェアハウス108は、データおよびデータ間のさまざまな関係の物理的なリポジトリを表す。ウェアハウス108は、データソース110によって表される組織のデータセット全体のカテゴリー別のサブセットを記憶することができる。たとえば、データソース110は、組織のデータ(たとえば、従業員データ、販売データ、株主データ、仕入れ先データなど)のすべてを記憶する1つまたは複数のリポジトリを含む可能性がある一方、データウェアハウス108は、それらのデータのカテゴリー別の一部(たとえば、販売データ)だけを含む可能性がある。データソース110は、たとえば、その他のデータウェアハウスも含む可能性がある。
データウェアハウス108などのデータウェアハウスは、「ファクト」と呼ばれる1つまたは複数の中心的テーマのまわりに組織化される。ファクトは、通常、数値的な測定値(たとえば、販売数)であり、1つまたは複数の「ディメンション」に関連付けられる可能性がある。概して、ディメンションは、さまざまなカテゴリーまたはクラスを定義し、これらのカテゴリーまたはクラスが特定のファクトをさらに定義する。たとえば、1つの種類のファクトが、総売上である可能性があり、そのファクトのあり得るディメンションは、販売された製品の種類(たとえば、おもちゃ、家庭用品)、時間枠(たとえば、年数、月数)、場所、供給元などを含み得る。
ファクトおよびディメンションデータは、図2に示されるようなリレーショナルデータベースのテーブルを用いてデータウェアハウスに記憶され得る。図2は、例示的な販売ファクトテーブル202、ならびに対応する例示的な製品204、時間206、場所208、および供給元ディメンションテーブル210を示す。販売ファクトテーブル202内の各エントリは、特定の販売イベントに対応する可能性があり、その特定の販売イベントの詳細は、個々のディメンションID(すなわち、製品ID、時間ID、場所ID、供給元ID)によって定義される。各販売イベントは、一意な販売IDを割り当てられることもでき、その他のデータ(たとえば、収益)に関連付けられる可能性もある。
たとえば、販売ファクトテーブル202内のエントリは、特定の製品に関連付けられ得る。製品IDは、いくつかの異なる製品に関する情報(たとえば、名称、説明など)を含み得る製品ディメンションテーブル204へのリンクとして働く。販売ファクトテーブル202内のエントリは、特定の期間にも関連付けられ得る。時間IDは、いくつかの異なる期間に関する情報(たとえば、日、月、年など)を含み得る時間ディメンションテーブル206へのリンクとして働く。販売ファクトテーブル202内のエントリは、特定の場所にも関連付けられ得る。場所IDは、いくつかの異なる場所に関する情報(たとえば、国、地域、州、都市など)を含み得る場所ディメンションテーブル208へのリンクとして働く。販売ファクトテーブル202内のエントリは、特定の供給元にも関連付けられ得る。供給元IDは、いくつかの異なる供給元に関する情報(たとえば、名称、説明など)を含み得る供給元ディメンションテーブル210へのリンクとして働く。
ファクトテーブルおよびディメンションテーブルの組の中に記憶されたデータ(たとえば、テーブル202〜210の中に記憶された販売データ)は、利用可能なディメンションのうちの1つまたは複数を用いて視覚的に表され得る。「n個の」ディメンションを用いて示されるデータは、n−ディメンション「データキューブ」または「キューボイド」と呼ばれる。たとえば、図3Aは、「種類」ディメンションにわたって集約された販売データを用いた例示的な1−ディメンション(1−D)キューボイド302を示す。「種類」ディメンションは、販売ファクトを集約するべき3つの別個のエントリ、「人形」、「おもちゃの自動車」、および「パズル」を有するように示されている。したがって、キューボイド302は、それぞれ、人形、おもちゃの自動車、およびパズルに関する例示的な販売高287、276、および299を含む3つのセルを含む。
キューボイドのサイズは、何個のセルがキューボイドに含まれるかに依存する。したがって、キューボイド302のサイズは、ファクトデータを含む3つのセルが存在するので3であると言われる。「種類」ディメンションのサイズは、ファクトデータを集約する3つの種類(すなわち、人形、おもちゃの自動車、パズル)が存在するのでやはり3であると言われる。任意の特定のディメンションのサイズは、対応するディメンションテーブル内の一意なエントリの数を計算することによって決定され得る。ディメンションのサイズを決定するその他の方法も、あり得る。
すべてのディメンションにわたるすべての販売の合計は、0−ディメンション(0−D)キューボイド(図示せず)と呼ばれ、図3Aの例においては862である単一のセルを含む。
図3Bは、「種類」ディメンションおよび「時間」ディメンションにわたって集約された販売データを用いた例示的な2−ディメンション(2−D)キューボイド304を示す。多くの場合、特定のディメンションは、そのディメンションに関連するファクトを表す異なる方法を有する可能性がある。この例においては、時間ディメンションは、日、月、または年を用いて表される可能性があり、図3Bは、年を用いた表現を示す。その他の2−Dキューボイドも、その他の利用可能なディメンションのうちの任意の2つを組み合わせて用いて生成され得る。
キューボイド304のサイズ(すなわち、キューボイド304内のセルの数)は、キューボイド304で集約される各ディメンションのサイズを掛け合わせることによって決定され得る。「種類」ディメンションのサイズは3であり、(ファクトデータを集約する3つの年が存在するので)「時間」ディメンションのサイズは3である。したがって、キューボイド304のサイズは、3×3=9である。
図4は、ディメンション「種類」、「時間」、および「場所」を用いた視覚的または概念的な3−ディメンション(3−D)キューボイド400の例を示す。3−Dキューボイドは、並列に並べられた2−Dキューボイドの組であると考えられ得る。たとえば、3−Dキューボイド400は、並列に並べられた2−Dキューボイド402、404、406、および408の組であると考えられ得る。各2−Dキューボイド402〜408は、第3のディメンションの限られた部分に関して2つのディメンションにわたる販売ファクトを示す。したがって、一緒になって、2−Dキューボイド402〜408の組は、第3のディメンションを完成させ、3−Dキューボイド400を構成する。たとえば、3−Dキューボイド400の前面は、2−Dキューボイド406に対応し、一方、3−Dキューボイド400のそれに続く「層」は、それぞれ、2−Dキューボイド408、404、および402に対応する。
3−Dキューボイド400のサイズは、キューボイド400を集約する各ディメンションのサイズを掛け合わせることによって決定され得る。たとえば、「種類」ディメンションのサイズは3であり、「時間」ディメンションのサイズは3であり、「場所」ディメンションのサイズは4である。したがって、キューボイド400のサイズは、3×3×4=36である。
図5は、ディメンション「種類」、「時間」、「場所」、および「供給元」を用いた視覚的または概念的な4−ディメンション(4−D)キューボイド500の例を示す。4−Dキューボイドは、並列に並べられた3−Dキューボイドの組であると考えられ得る。図5に示されるように、たとえば、4−Dキューボイド500は、「供給者3」キューボイドと並列に並べられた「供給者2」キューボイドと並列に並べられた「供給者1」キューボイドからなる可能性がある。
ディメンションの組が与えられると、ディメンションのそれぞれの可能な組み合わせを表すキューボイドが、生成され得る。キューボイドが必要とされるときにそれらのキューボイドの生成を容易にするために、可能なディメンションのパターンの表現が、データウェアハウスに記憶される。キューボイドのディメンションのパターンのそのような表現は、キューボイドの格子または単に格子と呼ばれる。図6は、文字A、B、C、およびDによって表される4つのディメンションに対応する例示的な格子600を示す。これらのディメンションは、たとえば、図2に示されたディメンションに対応する可能性があるか、またはその他のディメンションに対応する可能性がある。最も低い集約のレベルを持つキューボイドは、格子の基礎、または単に基礎キューボイドと呼ばれる。格子600の基礎キューボイドは、ディメンションのパターン<A,B,C,D>によって表され、レベル0にある。格子600を上ると、中間キューボイド(intermediate cuboid)が、レベル1、2、および3にあり、さまざまな集約のレベルを表す。例として、レベル2のキューボイド<A,B>は、キューボイド304を表す可能性があり、レベル1のキューボイド<A,B,C>は、キューボイド400を表す可能性がある。頂点キューボイド(apex cuboid)は、<ALL>によって表され、格子600においてはレベル4にある。頂点キューボイドは、すべてのディメンションにわたる集約を表す。
格子は、より下位のレベルのキューボイドからより上位のレベルのキューボイドへの集約のための経路を定義するロードマップとしても働くことができる。そのような集約は、ロールアップオペレーションと呼ばれる。さらに、格子は、より上位のレベルのキューボイドからより下位のレベルのキューボイドへの集約のための経路を定義するロードマップとしても働く可能性がある。そのような集約は、ドリルダウンオペレーションと呼ばれる。
格子600において、矢印は、より下位のレベルのキューボイドからより上位のレベルのキューボイドへの集約のための経路を示す。たとえば、レベル2において、キューボイド<A,C>は、基礎キューボイドからレベル1のキューボイド<A,B,C>またはレベル1のキューボイド<A,C,D>を経由して集約され得る。これらの択一的な経路は、中間キューボイドのサイズに応じて変わるストレージ空間の量および計算の量を含む。たとえば、より大きな中間キューボイドを有する経路上にあるより上位のレベルのキューボイドは、より小さな中間キューボイドを有する経路上にある同じより上位のレベルのキューボイドよりも計算コストが高い可能性がある。より高い計算コストは、中間キューボイドを生成するために必要とされる時間または処理能力に関連する可能性がある。
より下位のレベルのキューボイドとより上位のレベルのキューボイド(またはその逆)の間の異なる集約経路の計算を容易にするために、およびどの経路が処理コストが低いかを決定することを容易にするために、データウェアハウス、対応するOLAPサーバ、または何らかのその他のエンティティは、一意な整数値を格子の各ディメンションと関連付けることができる。整数値は、タグ番号と呼ばれる。格子600のディメンションに対する(0で始まり各ディメンションに対して1だけ増加する)タグ番号の例が、例示的なタグ番号テーブル(Tag Number Table)(TNT)、表1に示される。
Figure 0005629821
格子のディメンションのタグ番号は、その格子の個々のキューボイドに関するタグ付けされた値(tagged−value)を計算するために使用され得る。格子内の特定のキューボイドに関するタグ付けされた値を計算するための1つの方法は、特定のキューボイドの各ディメンションに関するタグ番号を2の指数とみなし、結果を合計することである。例として、格子600のキューボイド<A,B,D>のタグ付けされた値を計算するためには、そのキューボイドのディメンションのタグ番号を、最初に決定する。表1によれば、ディメンションA、B、およびDのタグ番号は、それぞれ、0、1、および3である。したがって、キューボイド<A,B,D>に関するタグ付けされた値は、2+2+2=11と計算され得る。同様に、キューボイド<C,D>に関するタグ付けされた値は、2+2=12と計算され得る。タグ付けされた値は、格子内のキューボイドを一意に識別するための方法、およびどのディメンションが特定のキューボイドで集約されるかを決定するための方法として働くことができる。
OLAPのオペレーション中、より上位のレベルのキューボイドが特定のより下位のレベルのキューボイドから生成されることが望まれる状況が、生じる可能性がある。たとえば、クライアントシステム102のユーザが、データウェアハウス108の格子内の特定のキューボイドを見ることを望む可能性がある。特定のキューボイドは、(格子内のそのキューボイドの表現を除いて)いかなる形態でも現在存在しない可能性があり、したがって、その特定のキューボイドが、より下位のレベルのキューボイド、たとえば、基礎キューボイドから生成される必要がある。
上述のように、格子内に、より上位のレベルのキューボイドをより下位のレベルのキューボイドにつなぐ2つ以上の経路が、存在する可能性がある。これは、2つ以上の経路のうちの任意の1つを経由してより下位のレベルのキューボイドからより上位のレベルのキューボイド(またはその逆)を生成する可能性を表す。しかし、これらのあり得る経路のうち、一部の経路は、たとえば、その経路に沿った中間キューボイドのサイズによって、その他の経路よりも使用するのに(たとえば、計算の観点から)有利である可能性がある。概して、キューボイドを生成するためにエンティティ(たとえば、OLAPサーバ106)に必要とされる処理能力、メモリ、および/または時間の量は、そのキューボイドのサイズに正比例する。したがって、より下位のレベルのキューボイドからより上位のレベルのキューボイド(またはその逆)を生成するとき、1つまたは複数の特に大きなキューボイドを含む経路を利用することを避けることが望ましい可能性がある。最も小さな総キューボイドサイズを有する経路を利用することが望ましい可能性もある。いずれにしても、OLAPサーバまたはことによると別のエンティティが、格子内の2つのキューボイドの間の適切な経路を決定するための経路決定アルゴリズムを実行することができる。
図7は、元のキューボイドと目標のキューボイドの間の最適な経路を決定するための例示的なアルゴリズム700を示す流れ図である。例示的なアルゴリズム700は、ブロック702、704、706、708、710、712、714、716、および/または718のうちの1つまたは複数によって示される1つまたは複数のオペレーション、機能、またはアクションを含み得る。流れ図は、これらの実施形態の1つのあり得る実装形態の機能およびオペレーションを示すことを理解されたい。これに関連して、各ブロックは、プロセスの特定の論理的な機能またはステップを実施するためにプロセッサによって実行可能な1つまたは複数の命令を含むプログラムコードのモジュール、セグメント、または一部を表す可能性がある。プログラムコードは、たとえば、ディスクまたはハードドライブを含む記憶装置などの任意の種類のコンピュータ可読媒体(たとえば、コンピュータ可読ストレージ媒体または非一時的媒体)に記憶され得る。加えて、各ブロックは、プロセスの特定の論理的な機能を実行するように配線された回路を表す可能性がある。当業者に理解されるであろうように、機能が、含まれる機能に応じて、実質的に同時または逆順を含め、示されるまたは検討される順序とは異なる順序で実行される可能性がある代替的な実装形態は、本出願の例示的な実施形態の範囲内に含まれる。
アルゴリズム700に関する処理は、目標のキューボイドおよび元のキューボイドの指示を受信するブロック702で開始することができる。クライアントシステム102のユーザは、たとえば、格子600の目標のキューボイド<B,C>の指示をネットワーク104を介してOLAPサーバ106に与えることができる。指示は、概して、目標のキューボイドのタグ付けされた値(すなわち、6)、目標のキューボイドのディメンションのリスト(すなわち、「B、C」)、またはことによると何らかのその他の形態の形態をとる可能性がある。ユーザは、たとえば、格子600内のキューボイド<A,B,C,D>である可能性がある元のキューボイドの指示も与えることができる。
アルゴリズムは、元のキューボイドの分割されたタグ付けされた値、および元のアレー(Source Array)への記憶を決定し、目標のキューボイドの分割されたタグ付けされた値、および目標のアレー(Destination Array)への記憶を決定するブロック704で継続する。キューボイドの分割されたタグ付けされた値は、そのキューボイドの集約されるディメンションのタグ付けされた値のアレーを指す。例として、格子600の元のキューボイド<A,B,C,D>は、ディメンションA、B、C、およびDに関して集約される。したがって、そのキューボイドの分割されたタグ付けされた値は、表1に示された4つのディメンションのタグ番号にしたがって{2,2,2,2}または{1,2,4,8}と表され得る。同様に、格子600の目標のキューボイド<B,C>は、ディメンションBおよびCに関して集約される。したがって、そのキューボイドの分割されたタグ付けされた値は、{2,2}または{2,4}と表され得る。分割されたタグ付けされた値{1,2,4,8}は、元のアレーとして記憶されることができ、一方、分割されたタグ付けされた値{2,4}は、目標のアレーとして記憶されることができる。
ブロック706において、目標のアレーのすべての分割されたタグ付けされた値が元のアレー内に存在するかどうかの判定が、なされる。これは、元のキューボイドを目標のキューボイドにつなぐ対応する格子内の経路が存在するかどうかの指示として働く。経路が存在しない(すなわち、分割されたタグ付けされた値が、目標のアレー内に存在し、元のアレー内に存在しない)場合、アルゴリズムは終了する。目標のアレーのすべての分割されたタグ付けされた値が元のアレー内に存在する場合、アルゴリズムは、元のキューボイドのタグ付けされた値を経路アレー(Path Array)に記憶するブロック708で継続する。
アルゴリズムが進むにつれて、経路アレーは、元のキューボイドと目標のキューボイドの間の最適な経路を生成するために中間キューボイドのタグ付けされた値で更新される。たとえば、現在の元のキューボイドが格子600のキューボイド<A,B,C,D>である場合、値「15」が、経路アレーに追加される。
アルゴリズムは、元のキューボイドから生成されることができる可能性があるすぐ上のレベルのディメンションのパターンを決定するブロック710で継続する。中間キューボイドとも呼ばれるこれらの上位のレベルのディメンションのパターンは、データウェアハウス108内の適切な格子を調べることによって決定され得る。たとえば、現在の元のキューボイドがキューボイド<A,B,C,D>である場合、<A,B,C,D>から生成されることができる中間的な上位のレベルのキューボイドは、<A,B,C>、<A,B,D>、<A,C,D>、および<B,C,D>である。
前のブロックで決定されたすぐ上のレベルのディメンションのパターンの中で、目標のアレー内の分割されたタグ付けされた値に合致する分割されたタグ付けされた値を有するサブセットが決定されるブロック712が、ブロック710の後に続く。このサブセット内の各キューボイドは、目標のキューボイドに到達するために生成され得るあり得る中間キューボイドを示す。目標のキューボイドに到達するためにどの中間キューボイドを生成すべきかの選択肢があるとき、たとえば処理時間および処理能力を節約するためにあり得るキューボイドのうちの最小のキューボイドを生成することが有利である。
表2は、格子600内の元のキューボイド<A,B,C,D>から生成されることができるあり得る中間キューボイドと、それらのキューボイドの対応する分割されたタグ付けされた値とを示す。上述のように、格子600内の目標のキューボイドは、分割されたタグ付けされた値{2,4}を有するキューボイド<B,C>である可能性がある。したがって、表2の分割されたタグ付けされた値のリストに基づいて、分割されたタグ付けされた値{2,4}が<A,B,C>および<B,C,D>のそれぞれの分割されたタグ付けされた値の中に存在するので、キューボイド<A,B,C>および<B,C,D>が、目標のキューボイド<B,C>に到達するために生成され得る中間キューボイドのサブセットを表す。
Figure 0005629821
ブロック712の後にはブロック714が続き、ブロック714において、決定されたサブセットが2つ以上のディメンションのパターンを含む場合、サブセット内のそれぞれのディメンションのパターンのサイズが計算され、最小のサイズを有するディメンションのパターンが新しい元のキューボイドとして設定される。サブセット内に1つのキューボイドだけが存在する場合、そのキューボイドが、新しい元のキューボイドとして設定される。上述のように、キューボイドのサイズは、特定のキューボイドで集約される個々のディメンションのサイズを一緒に掛け合わせることによって決定され得る。たとえば、ディメンションA、B、C、およびDのサイズがそれぞれ15、6、6、および10である場合、キューボイド<A,B,C>のサイズは15×6×6=540と計算され、一方、キューボイド<B,C,D>のサイズは6×6×10=360と計算される。したがって、キューボイド<B,C,D>は、目標のキューボイドに到達するために生成され得るキューボイドのサブセットのうちの最小のキューボイドを表す。このキューボイドを生成することは、潜在的に、<A,B,C>キューボイドを生成することと比較して処理時間および処理能力を節約する。
中間キューボイドのタグ付けされた値が経路アレーに追加されるブロック716が、ブロック714の後に続く。たとえば、キューボイド<B,C,D>のタグ付けされた値が、現在の経路アレーに追加され、経路アレー{15,14}をもたらす。
アルゴリズムは、新しい元のキューボイドのこのタグ付けされた値が目標のアレー内のタグ付けされた値に等しいかどうかを判定するブロック718で継続する。等しい場合、経路アレーは、元のキューボイドから目標のキューボイドへの最適な経路を構成するキューボイドのタグ付けされた値を含み、アルゴリズムは、終了する。新しい元のキューボイドのタグ付けされた値が目標のキューボイドのタグ付けされた値と等しくない場合、アルゴリズムは、新しい元のキューボイドから生成されることができるそれぞれのより上位のレベルのディメンションのパターンが決定されるブロック710に戻る。この例において、キューボイド<B,C,D>は、元のキューボイドと目標のキューボイドの間の最適な経路の中間キューボイドとして設定される。上述の例において、キューボイド<B,C,D>のタグ付けされた値(すなわち、14)は目標のキューボイド<B,C>のタグ付けされた値(すなわち、6)と等しくないので、アルゴリズムは、ブロック710に戻り、ブロック712、714、716、および718を通じて継続する。
アルゴリズムが終了すると、特定の格子内の元のキューボイドから目標のキューボイドを生成するための最適な経路が、経路アレーで表される。経路アレーは、元のキューボイドのタグ付けされた値、目標のキューボイドのタグ付けされた値、および経路決定アルゴリズム700によって決定された最適な経路を記載する表3のようなルックアップテーブルに記憶され得る。ルックアップテーブルは、格子内の特定のキューボイドが元のキューボイドから生成されることが望まれるときに調べられることができる。最適な経路が既に導出され、ルックアップテーブルに記載されている場合、経路決定アルゴリズムを再実行する必要がない可能性がある。
Figure 0005629821
ファクトデータが格子内のディメンションの任意の組み合わせにわたって集約され得る格子が、存在する。たとえば、格子600においては、ファクトデータが、ディメンションA、B、C、およびDの任意の組み合わせ(たとえば、<A,B>、<A,C,D>、<D>など)に関して集約され得る。そのような格子は、表4のような基礎キューボイドテーブル(Base Cuboid Table)(BCT)で特定され得る単一の基礎キューボイドを有する。
Figure 0005629821
図8は、ハイパー格子と呼ばれる、2つの基礎キューボイドを有する概念的なキューボイドデータ構造の例を示す。概して、用語「ハイパー格子」は、n個の基礎キューボイド(ここでn=1〜∞)を有するデータ構造を示すために使用され得る。したがって、用語「格子」は、n=1の場合の特定の種類のハイパー格子を示すために使用される。
ハイパー格子800は、一組の格子、基礎キューボイド<A,B,E>を有する1つの格子と、基礎キューボイド<A,B,C,D>を有する別の格子とを含む。ハイパー格子800は、ハイパー格子800によって表されるファクトデータが、ハイパー格子内のディメンションのすべの組み合わせにわたって集約可能なわけではないという点で図6の格子600と異なる。たとえば、ハイパー格子800は、新しいディメンションEの追加を示し、ディメンションEに関するファクトデータは、その他のディメンション、たとえばBとEとの限られたサブセットに対してのみ存在し得る。基礎キューボイド<A,B,E>および6つの中間的なディメンションのパターン<B,E>、<A,E>、<A,B>、<E>、<A>、および<B>を有する新しい格子を生成し、記憶する代わりに、新しいディメンションのパターンが、格子600の既存のディメンションのパターンと合併され、ハイパー格子800を形成することができる。これは、格子600内のデータウェアハウスに既に存在するディメンションのパターン(すなわち、ディメンションのパターン<A>、<B>、および<A,B>)の指示を生成し、記憶する必要がないことの結果として、データウェアハウスのストレージ空間の節約を実現する。新しい基礎キューボイド<A,B,E>および新しいディメンションのパターン<B,E>および<A,E>は、格子600の既存のディメンションのパターンを指し示し、参照して、ハイパー格子を完成させることができる。
基礎キューボイドから生成され得るディメンションのパターンは、その基礎キューボイドに対応すると言われる。したがって、ハイパー格子において、ディメンションのパターンは、そのハイパー格子の基礎キューボイドのうちの1つ、一部、またはすべてに対応する可能性がある。たとえば、ハイパー格子800において、ディメンションのパターン<B,E>は、基礎キューボイド<A,B,E>に対応し、一方、ディメンションのパターン<A,B>は、基礎キューボイド<A,B,E>と基礎キューボイド<A,B,C,D>の両方に対応する。
例として、分析者は、特定のキューボイド、たとえば、「種類」ディメンションおよび「時間」ディメンションに関して集約されたファクトデータを示す図3Bのキューボイド304を扱っている可能性がある。キューボイド304は、ハイパー格子(たとえば、格子600)内の特定のディメンションのパターン(たとえば、レベル2のディメンションのパターン<A,B>)によってその格子内で表され得る。分析者は、異なるディメンション(たとえば、「種類」および「販売員」)にわたって集約されたファクトデータを見ることを望む可能性がある。そのようなキューボイドの要求に応じて、OLAPサーバは、データウェアハウス内の既存の格子に問い合わせを行い、「販売員」ディメンションのデータが存在しないと判定する可能性がある。したがって、OLAPサーバは、そのようなデータが存在するかどうかを判定するためにその他のデータウェアハウスに問い合わせを行うことができる。存在する場合、OLAPサーバおよび対応するデータウェアハウスは、データを取り出し、既存のハイパー格子(たとえば、格子600)に新しい基礎キューボイドを挿入することができ、それによって、追加的な基礎キューボイドを有するハイパー格子(たとえば、2つの基礎キューボイドを有するハイパー格子800)を形成する。新しい基礎キューボイドは、挿入のポイント(point of insertion)の既存のディメンションのパターンの1レベル下に挿入される。したがって、挿入のポイントがレベル2のディメンションのパターン<A,B>である場合、新しい基礎キューボイド<A,B,E>が、ハイパー格子のレベル1に挿入される。(図8において太字体で示される)ディメンションのパターン<B,E>、<A,E>、および<E>が、形成され、新しい基礎キューボイド<A,B,E>と適切にリンクされる。新しい基礎キューボイドおよびより上位のレベルのディメンションのパターンは、既存のディメンションのパターン<A,B>、<A>、および<B>にやはりリンクすることができる。
OLAPサーバは、表5に示されるように、新しいディメンション(すなわち、E)を既存のタグ番号テーブルにやはり追加し、新しいディメンションに一意なタグ番号を割り当てることができる。
Figure 0005629821
表6は、ハイパー格子800内に新しい基礎キューボイド<A,B,E>を形成することに応じて更新され得る基礎キューボイドテーブルを示す。基礎キューボイド<A,B,E>のタグ付けされた値は、2+2+2=19とやはり計算され、基礎キューボイドテーブルに記憶されることができる。ディメンションEがハイパー格子内の異なる位置に追加され、したがって、新しい基礎キューボイドを形成する場合、基礎キューボイドテーブルがそれに応じて更新されるが、タグ番号テーブルは更新されない。
Figure 0005629821
図8は、2つの基礎キューボイドを有するハイパー格子を示すが、任意の数の基礎キューボイドがハイパー格子内にあり得る。図9は、3つの基礎キューボイド<A,B,C,D>、<A,B,E>、および<C,F>を有する例示的なハイパー格子900を示す。ハイパー格子900内のディメンションのパターンのそれぞれは、流れ図700を参照して説明されたアルゴリズムなどの最適な経路決定アルゴリズムの元のキューボイドまたは目標のキューボイドとして使用され得る。
例として、キューボイド<B>が、所望の目標のキューボイドである可能性があり、一方、基礎キューボイド<A,B,E>が、所望の元のキューボイドである可能性がある。上述のように、より下位のレベルのキューボイドからより上位のレベルのキューボイドを生成することは、ロールアップオペレーションと呼ばれる可能性がある。2つのキューボイド間の最適な経路を決定するために、最初に、基礎キューボイド<A,B,E>から生成されることができるキューボイドが、<B,E>、<A,E>、および<A,B>であると決定される。これらの3つの決定されたキューボイドのうち、目標のキューボイドを生成するために使用され得るキューボイドが、<B,E>および<A,B>であると決定される。これらの2つの決定されたキューボイドのうち、最小のサイズを有するキューボイドが、決定される。たとえば、キューボイド<A,B>がキューボイド<B,E>よりも小さなサイズを有する場合、キューボイド<A,B,E>と<B>の間の最適な経路は、キューボイド<A,B>を含む。この経路は、タグ付けされた値のアレー(すなわち、{19,3,2}と表され得る。
別の例として、キューボイド<A>が、所望の元のキューボイドである可能性があり、一方、キューボイド<A,B,E>が、所望の目標のキューボイドである可能性がある。上述のように、より上位のレベルのキューボイドからより下位のレベルのキューボイドを生成することは、ドリルダウンオペレーションと呼ばれる可能性がある。2つのキューボイド間の最適な経路を決定するために、最初に、キューボイド<A>からドリルダウンされることができるキューボイドが、<A,E>、<A,B>、<A,C>、および<A,D>であると決定される。これらの4つの決定されたキューボイドのうち、目標のキューボイドに向かってドリルダウンするために使用され得るキューボイドが、<A,B>および<A,E>であると決定される。これらの2つの決定されたキューボイドのうち、最小のサイズを有するキューボイドが、決定される。たとえば、キューボイド<A,E>がキューボイド<A,B>よりも小さなサイズを有する場合、キューボイド<A>と<A,B,E>の間の最適な経路は、キューボイド<A,E>を含む。この経路は、タグ付けされた値のアレー(すなわち、{1,17,19})と表され得る。
図10は、エンティティ102、104、106、108、および/または110のうちの任意のものと結合されるか、それに一体化されるか、またはそれによって具現化され得る例示的なコンピューティングデバイス1000を示すブロック図である。ごく基本的な構成1001において、概して、コンピューティングデバイス1000は、1つまたは複数のプロセッサ1010およびシステムメモリ1020を含む。メモリバス1030が、プロセッサ1010とシステムメモリ1020の間の通信のために使用され得る。
所望の構成に応じて、プロセッサ1010は、マイクロプロセッサ(μP)、マイクロコントローラ(μC)、デジタル信号プロセッサ(DSP)、またはそれらの任意の組み合わせを含むがそれらに限定されない任意の種類である可能性がある。プロセッサ1010は、レベル1キャッシュ1011およびレベル2キャッシュ1012などの1つまたは複数のレベルのキャッシュ、プロセッサコア1013、ならびにレジスタ1014を含み得る。プロセッサコア1013は、算術論理演算ユニット(ALU)、浮動小数点演算ユニット(FPU)、デジタル信号処理コア(DSPコア)、またはそれらの任意の組み合わせを含み得る。メモリコントローラ1015が、プロセッサ1010とともに使用される可能性もあり、または一部の実装形態においては、メモリコントローラ1015は、プロセッサ1010の内部部分である可能性がある。
所望の構成に応じて、システムメモリ1020は、揮発性メモリ(RAMなど)、不揮発性メモリ(ROM、フラッシュメモリなど)、またはそれらの任意の組み合わせを含むがそれらに限定されない任意の種類である可能性がある。概して、システムメモリ1020は、オペレーティングシステム1021、1つまたは複数のアプリケーション1022、およびプログラムデータ1024を含む。システムメモリ1020は、図11に関して全体的に説明される1つまたは複数のコンピュータプログラム製品を記憶することができる。
コンピューティングデバイス1000は、追加的な特徴または機能、および基本構成1001とその他のエンティティの間の通信を容易にするための追加的なインターフェースを有する可能性がある。たとえば、バス/インターフェースコントローラ1040が、ストレージインターフェースバス1041を介した基本構成1001と1つまたは複数のデータ記憶装置1050の間の通信を容易にするために使用され得る。データ記憶装置1050は、取外し式記憶装置1051、非取外し式記憶装置1052、またはそれらの組み合わせである可能性がある。取外し式記憶装置および非取外し式記憶装置の例は、いくつか例を挙げるとすれば、フレキシブルディスクドライブおよびハードディスクドライブ(HDD)などの磁気ディスクデバイス、コンパクトディスク(CD)ドライブまたはデジタルバーサタイルディスク(DVD)ドライブなどの光ディスクドライブ、ソリッドステートドライブ(SSD)、ならびにテープドライブを含む。例示的なコンピュータストレージ媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶するための任意の方法またはテクノロジーで実装された揮発性および不揮発性の取外し式および非取外し式の媒体を含み得る。本明細書に記載の少なくとも一部の実施形態によれば、データ記憶装置1050は、データウェアハウス108に記憶されるデータのリポジトリとして働くことができる。追加的にまたは代替的に、データ記憶装置1050は、データの格子(たとえば、格子600またはハイパー格子800)の表現を記憶することができる。
システムメモリ1020、取外し式ストレージ1051、および非取外し式ストレージ1052は、すべてコンピュータストレージ媒体の例である。コンピュータストレージ媒体は、RAM、ROM、EEPROM、フラッシュメモリ、もしくはその他のメモリテクノロジー、CD−ROM、デジタルバーサタイルディスク(DVD)、もしくはその他の光学式ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、もしくはその他の磁気記憶装置、または所望の情報を記憶するために使用されることができ、コンピューティングデバイス1000によってアクセスされることができる任意のその他の媒体を含むがそれらに限定されない。任意のそのようなコンピュータストレージ媒体が、デバイス1000の一部である可能性がある。
コンピューティングデバイス1000は、バス/インターフェースコントローラ1040を介したさまざまなインターフェースデバイス(たとえば、出力インターフェース、周辺インターフェース、通信インターフェース、および/またはアンテナ108、ルシフェリンブロードキャストメカニズム(luciferin broadcast mechanism)106、スニファ104などの、ロボット100に直接関連するインターフェース)から基本構成1001への通信を容易にするためのインターフェースバス1042も含み得る。例示的な出力インターフェース1060は、1つもしくは複数のA/Vポート1063を介してディスプレイまたはスピーカなどのさまざまな外部デバイスと通信するように構成され得るグラフィックス処理ユニット1061およびオーディオ処理ユニット1062を含む。例示的な周辺インターフェース1060は、1つまたは複数のI/Oポート1073を介して入力デバイス(たとえば、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイスなど)またはその他の周辺デバイス(たとえば、プリンタ、スキャナなど)などの外部デバイスと通信するように構成され得るシリアルインターフェースコントローラ1071またはパラレルインターフェースコントローラ1072を含む。
例示的な通信インターフェース1080は、1つまたは複数の通信ポート1082を介したネットワーク通信による1つまたは複数のその他のコンピューティングデバイス1090との通信を容易にするように構成され得るネットワークコントローラ1081を含む。通信接続は、通信媒体の一例である。概して、通信媒体は、搬送波またはその他の搬送メカニズムなどの変調されたデータ信号内のコンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータによって具現化されることができ、任意の情報配信媒体を含む。「変調されたデータ信号」は、その信号の特徴のうちの1つまたは複数を、信号中に情報を符号化するような方法で設定または変更させる信号である可能性がある。限定ではなく例として、通信媒体は、有線ネットワークまたは直接有線接続などの有線媒体、ならびに音響、無線周波数(RF)、赤外線(IR)、およびその他の無線媒体などの無線媒体を含み得る。本明細書において使用される用語、(1つまたは複数の)コンピュータ可読媒体は、ストレージ媒体を含む可能性があり、コンピュータ通信は、通信媒体を含む可能性がある。
コンピューティングデバイス1000は、セル電話、携帯情報端末(PDA)、パーソナルメディアプレイヤーデバイス、無線ウェブ閲覧デバイス、パーソナルハンドセットデバイス、特定用途向けデバイス、または上述の機能のうちの任意のものを含む複合デバイスなどの小型フォームファクタ携帯型(または移動体)電子デバイスの一部として実装され得る。コンピューティングデバイス1000は、ラップトップコンピュータ構成および非ラップトップコンピュータ構成の両方を含むパーソナルコンピュータとしても実装され得る。
図11は、本明細書において示される少なくとも一部の実施形態にしたがって構成された、コンピューティングデバイスでコンピュータプロセスを実行するためのコンピュータプログラムを含む例示的なコンピュータプログラム製品1100の概念的で部分的な見方を示す概略図である。例示的なコンピュータプログラム製品1100の例示的な実施形態は、信号を運ぶ媒体1102を用いて提供される。信号を運ぶ媒体1102は、たとえばプロセッサによって実行されるときに図1〜10に関して上で説明された機能または機能の一部を提供することができる1つまたは複数の命令1104を含み得る。したがって、たとえば、流れ図700を参照すると、図7のブロック702、704、706、708、710、712、714、716、および/または718の1つまたは複数の特徴が、信号を運ぶ媒体1102に関連する1つまたは複数の命令によって引き受けられる可能性がある。
1つまたは複数の命令は、たとえば、コンピュータが実行可能なおよび/または論理によって実施される命令である可能性がある。一部の実施形態において、1つまたは複数のコンピュータプログラム製品1100の信号を運ぶ媒体1102は、コンピュータ可読媒体1106、記録可能な媒体1108、および/または通信媒体1110を含む。一部の例において、図10のコンピューティングデバイス1000などのコンピューティングデバイスが、媒体1102によってデバイスに搬送された命令1104に応じてさまざまなオペレーション、機能、またはアクションを提供するように構成され得る。
一部の実装形態において、信号を運ぶ媒体1102は、これらに限定されないが、ハードディスクドライブ、コンパクトディスク(CD)、デジタルビデオディスク(DVD)、デジタルテープ、メモリなどのコンピュータ可読媒体1106を包含し得る。一部の実装形態において、信号を運ぶ媒体1102は、これらに限定されないが、メモリ、読み出し/書き込み(R/W)CD、R/W DVDなどの記録可能な媒体1108を包含し得る。一部の実装形態において、信号を運ぶ媒体1102は、これらに限定されないが、デジタルおよび/またはアナログ通信媒体(たとえば、光ファイバケーブル、導波管、有線通信リンク、無線通信リンクなど)などの通信媒体1110を包含し得る。したがって、たとえば、コンピュータプログラム製品1100は、RF信号を運ぶ媒体1102によって、説明されたシステムの1つまたは複数のモジュールに伝達される可能性があり、信号を運ぶ媒体1102は、無線通信媒体1110の無線の形態(たとえば、IEEE802.11規格に準拠する無線通信媒体)によって伝達される。
本開示は、さまざまな態様の例示として意図されている、本出願に記載の特定の実施形態によって限定されてはならない。当業者に明らかであろうように、多くの修正および変更が、本開示の精神および範囲を逸脱することなしに行われ得る。本明細書に列挙された方法および装置に加えて、本開示の範囲内の機能的に均等な方法および装置が、上述の説明から当業者に明らかであろう。そのような修正および変更は、添付の特許請求の範囲の範囲内に入るように意図される。本開示は、添付の特許請求の範囲に与えられた均等物の全範囲と併せた、そのような特許請求の範囲の請求項によってのみ限定されるべきである。本開示は、特定の方法、試薬、化合物、組成物、または材料に限定されず、これらはもちろん変わり得ることを理解されたい。本明細書において使用された用語は、特定の実施形態を説明することのみを目的としており、限定するように意図されていないことも理解されたい。
本明細書における実質的にすべての複数形および/または単数形の用語の使用に対して、当業者は、状況および/または用途に適切なように、複数形から単数形に、および/または単数形から複数形に変換することができる。さまざまな単数形/複数形の置き換えは、理解しやすいように、本明細書で明確に説明することができる。
通常、本明細書において、特に添付の特許請求の範囲(たとえば、添付の特許請求の範囲の本体部)において使用される用語は、全体を通じて「オープンな(open)」用語として意図されていることが、当業者には理解されよう(たとえば、用語「含む(including)」は、「含むがそれに限定されない(including but not limited to)」と解釈されるべきであり、用語「有する(having)」は、「少なくとも有する(having at least)」と解釈されるべきであり、用語「含む(includes)」は、「含むがそれに限定されない(includes but is not limited to)」と解釈されるべきである、など)。導入される請求項で具体的な数の記載が意図される場合、そのような意図は、当該請求項において明示的に記載されることになり、そのような記載がない場合、そのような意図は存在しないことが、当業者にはさらに理解されよう。
たとえば、理解の一助として、添付の特許請求の範囲は、導入句「少なくとも1つの(at least one)」および「1つまたは複数の(one or more)」を使用して請求項の記載を導くことを含む場合がある。しかし、そのような句の使用は、同一の請求項が、導入句「1つまたは複数の」または「少なくとも1つの」および「a」または「an」などの不定冠詞を含む場合であっても、不定冠詞「a」または「an」による請求項の記載の導入が、そのように導入される請求項の記載を含む任意の特定の請求項を、単に1つのそのような記載を含む実施形態に限定する、ということを示唆していると解釈されるべきではない(たとえば、「a」および/または「an」は、「少なくとも1つの」または「1つまたは複数の」を意味すると解釈されるべきである)。同じことが、請求項の記載を導入するのに使用される定冠詞の使用にも当てはまる。また、導入される請求項の記載で具体的な数が明示的に記載されている場合でも、そのような記載は、少なくとも記載された数を意味すると解釈されるべきであることが、当業者には理解されよう(たとえば、他の修飾語なしでの「2つの記載(two recitations)」の単なる記載は、少なくとも2つの記載、または2つ以上の記載を意味する)。
さらに、「A、BおよびC、などの少なくとも1つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている(たとえば、「A、B、およびCの少なくとも1つを有するシステム」は、Aのみ、Bのみ、Cのみ、AおよびBを共に、AおよびCを共に、BおよびCを共に、ならびに/またはA、B、およびCを共に、などを有するシステムを含むが、それに限定されない)。「A、B、またはC、などの少なくとも1つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている(たとえば、「A、B、またはCの少なくとも1つを有するシステム」は、Aのみ、Bのみ、Cのみ、AおよびBを共に、AおよびCを共に、BおよびCを共に、ならびに/またはA、B、およびCを共に、などを有するシステムを含むが、それに限定されない)。2つ以上の代替用語を提示する事実上いかなる離接する語および/または句も、明細書、特許請求の範囲、または図面のどこにあっても、当該用語の一方(one of the terms)、当該用語のいずれか(either of the terms)、または両方の用語(both terms)を含む可能性を企図すると理解されるべきであることが、当業者にはさらに理解されよう。たとえば、句「AまたはB」は、「A」または「B」あるいは「AおよびB」の可能性を含むことが理解されよう。
当業者に理解されるであろうように、書面で説明するという観点など、任意のおよびすべての趣旨で、本明細書で開示されたすべての範囲は、それらの範囲の任意のおよびすべてのあり得る部分的な範囲および部分的な範囲の組み合わせも包含する。どの記載された範囲も、同じ範囲が少なくとも2等分、3等分、4等分、5等分、10等分などに分割されることを十分に説明し、そのように分割されることを可能にすると容易に認識され得る。非限定的な例として、本明細書において検討された各範囲は、下3分の1、真ん中3分の1、および上3分の1などに容易に分割され得る。当業者にやはり理解されるであろうように、「最大で〜まで」、「少なくとも〜」、「〜より大きい」、「〜未満」などのすべての言い回しは、記載された数を含み、上で検討されたように部分的な範囲に続けて分割され得る範囲を指す。最後に、当業者に理解されるであろうように、範囲は、それぞれの個々の構成要素を含む。したがって、たとえば、1〜3個のセルを有する群は、1個、2個、または3個のセルを有する群を指す。同様に、1〜5個のセルを有する群は、1個、2個、3個、4個、または5個のセルを有する群を指し、以下同様である。
さまざまな態様および実施形態が本明細書において開示されたが、その他の態様および実施形態が、当業者には明らかになるであろう。本明細書において開示されたさまざまな態様および実施形態は、例示を目的としており、限定するように意図されておらず、その真の範囲および精神は、以下の特許請求の範囲によって示される。

Claims (18)

  1. コンピューティングデバイスによって実行されるときに前記コンピューティングデバイスに機能を実行させる命令を記憶するコンピュータ可読ストレージ媒体であって、前記機能は、
    あり得るキューボイドのディメンションのパターンのハイパー格子の表現において、ディメンションに関して集約されたデータを表す、前記ハイパー格子内の元のキューボイドから生成され得る中間キューボイドの組を決定することと、
    前記組の中のどの中間キューボイドが、少なくとも前記ハイパー格子内の目標のキューボイドと同じディメンションに関して集約されるかを決定することと、
    少なくとも前記ハイパー格子内の前記目標のキューボイドと同じディメンションに関して集約される前記組の中の各中間キューボイドのサイズを計算することと、
    計算されたサイズに基づいて、最も小さなサイズを有する所与の中間キューボイドを決定することと、
    少なくとも前記所与の中間キューボイドを含む経路を、前記元のキューボイドから前記目標のキューボイドまでの前記ハイパー格子を通る最適な経路として決定することとを含む、コンピュータ可読ストレージ媒体。
  2. 前記ハイパー格子が2つ以上の基礎キューボイドを含み、前記あり得るキューボイドのディメンションのパターンのうちの少なくとも1つのディメンションのパターンが、第1の基礎キューボイドに対応し、前記あり得るキューボイドのディメンションのパターンのうちの少なくとも1つのその他のディメンションのパターンが、第2の基礎キューボイドに対応する請求項1に記載のコンピュータ可読ストレージ媒体
  3. 前記目標のキューボイドが、前記第1の基礎キューボイドおよび前記第2の基礎キューボイドのそれぞれに対応する請求項2に記載のコンピュータ可読ストレージ媒体
  4. 前記元のキューボイドおよび前記目標のキューボイドが、それぞれ、異なる基礎キューボイドに対応する請求項2に記載のコンピュータ可読ストレージ媒体
  5. 前記機能が、
    ディメンションに関して集約されたデータを表す、前記ハイパー格子内の元のキューボイドから生成され得る中間キューボイドの第2の組を決定することと、
    前記第2の組の中のどの中間キューボイドが、少なくとも前記ハイパー格子内の目標のキューボイドと同じディメンションに関して集約されるかを決定することと、
    少なくとも前記ハイパー格子内の前記目標のキューボイドと同じディメンションに関して集約される前記第2の組の中の各中間キューボイドのサイズを計算することと、
    計算されたサイズに基づいて、最も小さなサイズを有する所与の第2の中間キューボイドを決定することと、
    少なくとも(i)前記所与の中間キューボイドおよび(ii)前記第2の所与の中間キューボイドを含む経路を、前記元のキューボイドから前記目標のキューボイドまでの前記ハイパー格子を通る最適な経路として決定することとをさらに含む、請求項1から4のいずれか一項に記載のコンピュータ可読ストレージ媒体
  6. 中間キューボイドの前記組のうちの各キューボイドが、前記元のキューボイドが集約されるディメンションの数よりも1つ少ないディメンションに関して集約される請求項1から4のいずれか一項に記載のコンピュータ可読ストレージ媒体
  7. 前記ハイパー格子が、1つまたは複数の基礎キューボイドを含む請求項1から4のいずれか一項に記載のコンピュータ可読ストレージ媒体
  8. 各中間キューボイドの前記サイズを計算することが、各中間キューボイドに関連するデータセルの数を計算することを含む請求項1から4のいずれか一項に記載のコンピュータ可読ストレージ媒体
  9. 前記機能が、
    前記ハイパー格子内の前記あり得るキューボイドのディメンションのパターンが集約されるそれぞれの異なるディメンションに異なるタグ番号を割り当てることであって、それぞれの異なるタグ番号が一意な整数である、割り当てることと、
    前記ハイパー格子内のそれぞれの所与のディメンションのパターンに異なるタグ付けされた値を割り当てることであって、それぞれの所与のディメンションのパターンのそれぞれのタグ付けされた値が、2の指数とみなされるタグ番号の特定の組の合計であり、タグ番号の前記特定の組が、前記所与のディメンションのパターンが集約されるディメンションに割り当てられた前記タグ番号を含む、割り当てることとをさらに含む請求項1に記載のコンピュータ可読ストレージ媒体
  10. 前記組の中のどの中間キューボイドが、少なくとも前記ハイパー格子内の目標のキューボイドと同じディメンションに関して集約されるかを決定することが、
    前記組の中のそれぞれの所与のキューボイドに関して、前記所与のキューボイドが集約される前記ディメンションのタグ付けされた値を決定することと、
    少なくとも前記目標のキューボイドに割り当てられた前記タグ付けされた値を含むタグ付けされた値が割り当てられるキューボイドを、少なくとも前記目標のキューボイドと同じディメンションに関して集約されるキューボイドとして決定することとを含む請求項9に記載のコンピュータ可読ストレージ媒体
  11. コンピューティングデバイスと、
    前記コンピューティングデバイスに結合されたメモリストレージと、
    前記コンピューティングデバイスによって実行されるときに前記コンピューティングデバイスにオペレーションを実行させる、前記メモリストレージに記憶された命令とを含み、前記オペレーションが、
    元のキューボイドから目標のキューボイドを生成すべきハイパー格子を通る最適な経路を決定することであって、前記ハイパー格子が、あり得るキューボイドのディメンションのパターンを表し、前記最適な経路が、1つまたは複数の中間キューボイドを含む、決定することと、
    前記決定された最適な経路を介して前記目標のキューボイドを生成することと、
    前記生成された目標のキューボイドの表現をクライアントデバイスに提供することとを含む、オンライン分析処理(OLAP)サーバ。
  12. 元のキューボイドから目標のキューボイドを生成すべき前記ハイパー格子を通る前記最適な経路が、前記ハイパー格子を通る複数の経路のうちの特定の経路であり、前記ハイパー格子を通る前記複数の経路のうちの各経路が、前記元のキューボイドから前記目標のキューボイドを生成すべき経路である請求項11に記載のOLAPサーバ。
  13. 前記ハイパー格子を通る前記複数の経路のうちの各経路が、1つまたは複数のあり得るキューボイドのディメンションのパターンを含み、前記最適な経路が、最も小さな総キューボイドサイズを含む請求項12に記載のOLAPサーバ。
  14. 元のキューボイドから目標のキューボイドを生成すべきハイパー格子を通る最適な経路を決定することが、
    前記ハイパー格子に基づいて、前記ハイパー格子内の前記元のキューボイドから生成され得る中間キューボイドの組を決定することと、
    前記組の中のどの中間キューボイドが、少なくとも前記ハイパー格子内の前記目標のキューボイドと同じディメンションに関して集約されるかを決定することと、
    少なくとも前記ハイパー格子内の前記目標のキューボイドと同じディメンションに関して集約される前記組の中の各中間キューボイドのサイズを計算することと、
    計算されたサイズに基づいて、最も小さなサイズを有する所与の中間キューボイドを決定することと、
    前記所与の中間キューボイドを含む経路を、前記元のキューボイドから前記目標のキューボイドまでの前記ハイパー格子を通る最適な経路として決定することとを含む請求項11に記載のOLAPサーバ。
  15. 前記命令が、
    前記ハイパー格子内の前記あり得るキューボイドのディメンションのパターンが集約されるそれぞれの異なるディメンションに異なるタグ番号を割り当てることであって、それぞれの異なるタグ番号が一意な整数である、割り当てることと、
    前記ハイパー格子内のそれぞれの所与のディメンションのパターンに異なるタグ付けされた値を割り当てることであって、それぞれの所与のディメンションのパターンのそれぞれのタグ付けされた値が、2の指数とみなされるタグ番号の特定の組の合計であり、タグ番号の前記特定の組が、前記所与のディメンションのパターンが集約されるディメンションに割り当てられた前記タグ番号を含む、割り当てることとをさらに含む請求項14に記載のOLAPサーバ。
  16. 前記組の中のどの中間キューボイドが、少なくとも前記ハイパー格子内の目標のキューボイドと同じディメンションに関して集約されるかを決定することが、
    前記組の中のそれぞれの所与のキューボイドに関して、前記所与のキューボイドが集約される前記ディメンションのタグ付けされた値を決定することと、
    少なくとも前記目標のキューボイドに割り当てられた前記タグ付けされた値を含むタグ付けされた値が割り当てられるキューボイドを、少なくとも前記目標のキューボイドと同じディメンションに関して集約されるキューボイドとして決定することとを含む請求項15に記載のOLAPサーバ。
  17. 前記ハイパー格子が、2つ以上の基礎キューボイドを含み、各基礎キューボイドが、ディメンションの異なる組に関して集約され、前記元のキューボイドおよび前記目標のキューボイドが、それぞれ、前記ハイパー格子の異なる基礎キューボイドに対応する請求項11から16のいずれか一項に記載のOLAPサーバ。
  18. 前記ハイパー格子が、2つ以上の基礎キューボイドを含み、各基礎キューボイドが、ディメンションの異なる組に関して集約され、前記元のキューボイドおよび前記目標のキューボイドが、それぞれ、前記ハイパー格子の同じ基礎キューボイドに対応する請求項11から16のいずれか一項に記載のOLAPサーバ。
JP2013513766A 2010-06-28 2010-11-30 データウェアハウスに対するオンライン分析処理(olap)のオペレーションの最適化された順序付けのためのハイパー格子モデル Expired - Fee Related JP5629821B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IN699KO2010 2010-06-28
IN699/KOL/2010 2010-06-28
PCT/IB2010/003058 WO2012001455A1 (en) 2010-06-28 2010-11-30 Hyper-lattice model for optimized sequencing of online analytical processing (olap) operations on data warehouses

Publications (2)

Publication Number Publication Date
JP2013535049A JP2013535049A (ja) 2013-09-09
JP5629821B2 true JP5629821B2 (ja) 2014-11-26

Family

ID=45401456

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013513766A Expired - Fee Related JP5629821B2 (ja) 2010-06-28 2010-11-30 データウェアハウスに対するオンライン分析処理(olap)のオペレーションの最適化された順序付けのためのハイパー格子モデル

Country Status (4)

Country Link
US (1) US9002782B2 (ja)
JP (1) JP5629821B2 (ja)
KR (1) KR101526514B1 (ja)
WO (1) WO2012001455A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101521348B1 (ko) * 2013-10-17 2015-05-18 고려대학교 산학협력단 맵리듀스를 이용한 데이터 큐브 생성 방법 및 장치
US9530226B2 (en) * 2014-02-18 2016-12-27 Par Technology Corporation Systems and methods for optimizing N dimensional volume data for transmission
US10353923B2 (en) 2014-04-24 2019-07-16 Ebay Inc. Hadoop OLAP engine
US11023485B2 (en) * 2018-09-18 2021-06-01 International Business Machines Corporation Cube construction for an OLAP system

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978788A (en) * 1997-04-14 1999-11-02 International Business Machines Corporation System and method for generating multi-representations of a data cube
US6535872B1 (en) * 1999-04-08 2003-03-18 International Business Machines Corporation Method and apparatus for dynamically representing aggregated and segmented data views using view element sets
JP2002007435A (ja) 2000-06-20 2002-01-11 Nec Corp 対話的分析データベースシステム及び対話的分析プログラムを記録した記録媒体
US6829621B2 (en) * 2000-10-06 2004-12-07 International Business Machines Corporation Automatic determination of OLAP cube dimensions
US7587410B2 (en) 2005-03-22 2009-09-08 Microsoft Corporation Dynamic cube services
US20090055439A1 (en) 2007-08-24 2009-02-26 Ketera Technologies, Inc. Flexible Dimension Approach In A Data Warehouse
KR20090059656A (ko) 2007-12-07 2009-06-11 최성욱 오엘에이피 기반의 다차원 디비를 통한 실시간 사용자성향분석에 따른 경력개발 및 관리 시스템
US8024287B2 (en) * 2008-06-27 2011-09-20 SAP France S.A. Apparatus and method for dynamically materializing a multi-dimensional data stream cube

Also Published As

Publication number Publication date
KR101526514B1 (ko) 2015-06-05
JP2013535049A (ja) 2013-09-09
KR20130083899A (ko) 2013-07-23
US20120179643A1 (en) 2012-07-12
WO2012001455A1 (en) 2012-01-05
US9002782B2 (en) 2015-04-07

Similar Documents

Publication Publication Date Title
CN110168523B (zh) 改变监测跨图查询
US9009159B2 (en) Population and/or animation of spatial visualization(s)
KR102434690B1 (ko) 계층화된 그래프 데이터 구조
CN103608809B (zh) 推荐数据富集
AU2014259978B2 (en) Tagged search result maintenance
JP6062549B2 (ja) 電子商取引プラットフォームにおける情報を検索するための方法及び装置
CN107092666A (zh) 用于网络的系统、方法以及存储介质
US8819069B2 (en) Automatic layout derivation and implementation
Lin et al. High-utility sequential pattern mining with multiple minimum utility thresholds
US10445370B2 (en) Compound indexes for graph databases
US11720543B2 (en) Enforcing path consistency in graph database path query evaluation
JP5629821B2 (ja) データウェアハウスに対するオンライン分析処理(olap)のオペレーションの最適化された順序付けのためのハイパー格子モデル
US9606997B2 (en) Inferred operations for data analysis
US20180357328A1 (en) Functional equivalence of tuples and edges in graph databases
US20190303478A1 (en) Path query evaluation in graph databases
US20220019907A1 (en) Dynamic In-Memory Construction of a Knowledge Graph
US20160224685A1 (en) Counting bloom filter
US20220263720A1 (en) Diagramming child nodes with multiple parent nodes
US20120066249A1 (en) Utilizing hierarchy metadata to improve path selection
KR20080089580A (ko) 구조화된 데이터를 수신하는 컴퓨터로 구현된 방법 및시스템
US11360654B2 (en) Summary shapes
US20230418816A1 (en) Systems and methods based on generalized multi-level search heuristic for production network models
Yang et al. Design and Implementation of Benchmarks for Multimodal Databases
US20230086037A1 (en) Graphical diagram comparison
Kanberoglu Survey on graph databases and their applications

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131111

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140411

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140703

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140930

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141006

R150 Certificate of patent or registration of utility model

Ref document number: 5629821

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees