(57)【特許請求の範囲】
【請求項１】
多次元データベース環境においてデータをロードするためのシステムであって、
１つ以上のマイクロプロセッサとメモリを含むコンピュータと、
前記コンピュータ上で実行されるとともに少なくとも１つのデータ次元の階層構造をサポートする多次元データベースサーバとを備え、
前記少なくとも１つのデータ次元の階層構造は、各々が複数のノードのサブセットを含む複数のレベルに編成され、
前記複数のノードのうちの最下位レベルにある複数のリーフノードそれぞれは上位レベルの１つ以上のノードに関連付けられ、
前記システムは、前記最下位レベルの各前記複数のリーフノードについて、
ソースデータを前記メモリに格納することにより当該リーフノードに当該ソースデータをロードし、
当該リーフノードに前記ソースデータがロードされると、当該リーフノードにロードされたソースデータを前記上位レベルの１つ以上のノードに集約し、前記上位レベルの１つ以上のノードそれぞれにおけるソースデータが集約されたものは、前記メモリに保持し、
前記ソースデータが前記上位レベルの１つ以上のノードに集約されると、当該リーフノードにロードされた前記ソースデータを、前記メモリから破棄することにより、当該リーフノードに繰り返しデータをロードするよう構成される、システム。
【請求項２】
各前記複数のリーフノードと前記上位レベルの１つ以上のノードとの関連付けは、前記多次元データベース環境のメタデータを含み、
前記上位レベルの１つ以上のノードそれぞれに集約されたものを前記メタデータに関連付ける、請求項１に記載のシステム。
【請求項３】
前記多次元データベースに関連付けられるとともに前記ソースデータへのアクセスを提供する中間層を介して、前記ソースデータは前記リーフノードにロードされる、請求項１または２に記載のシステム。
【請求項４】
前記多次元データベースと前記ソースデータとの間の通信プロトコルによって、前記ソースデータは前記リーフノードに直接ロードされる、請求項１または２に記載のシステム。
【請求項５】
第１のリーフノードにロードされた前記ソースデータが破棄される前に、前記ソースデータは、上位レベルの２つ以上のノードに関連付けられた第２のリーフノードにロードされ、
前記ソースデータが前記第２のリーフノードにロードされると、前記第２のリーフノードに関連付けられた前記上位レベルの２つ以上のノードのうちの第１のノードに、前記第１のリーフノードにロードされた前記ソースデータおよび前記第２のリーフノードにロードされた前記ソースデータを含むソースデータが集約され、前記第１のリーフノードが関連付けられる前記上位レベルの２つ以上のノードは前記第１のノードを含む、請求項１〜４のいずれか１項に記載のシステム。
【請求項６】
前記第２のリーフノードに関連付けられた前記上位レベルの２つ以上のノードの各々に当該第２のリーフノードにロードされた前記ソースデータが集約されると、前記第２のリーフノードにロードされた前記ソースデータが破棄される、請求項５に記載のシステム。
【請求項７】
多次元データベース環境においてデータをロードする方法であって、
１つ以上のマイクロプロセッサとメモリを含むコンピュータにおいて、前記コンピュータ上で実行されるとともに少なくとも１つのデータ次元の階層構造をサポートする多次元データベースサーバを提供するステップと、
前記少なくとも１つのデータ次元の階層構造を、各々が複数のノードのサブセットを含む複数のレベルに編成するステップと、を備え、
前記複数のノードのうちの最下位レベルにある複数のリーフノードそれぞれは上位レベルの１つ以上のノードに関連付けられ、前記方法はさらに、前記最下位レベルの各前記複数のリーフノードについて、
ソースデータを前記メモリに格納することにより当該リーフノードに当該ソースデータをロードするステップと、
当該リーフノードに前記ソースデータをロードすると、当該リーフノードにロードされた前記ソースデータを前記上位レベルの１つ以上のノードに集約するステップと、前記上位レベルの１つ以上のノードそれぞれに集約されたデータは、前記メモリに保持され、
前記ソースデータを前記上位レベルの１つ以上のノードに集約すると、当該リーフノードにロードされた前記ソースデータを、前記メモリから破棄するステップと、を繰り返し実行する、方法。
【請求項８】
各前記複数のリーフノードと前記上位レベルの１つ以上のノードとの関連付けは、前記多次元データベース環境のメタデータを含み、
前記上位レベルの１つ以上のノードそれぞれに集約されたものを前記メタデータに関連付ける、請求項７に記載の方法。
【請求項９】
前記多次元データベースに関連付けられるとともに前記ソースデータへのアクセスを提供する中間層を介して、前記ソースデータは前記リーフノードにロードされる、請求項７または８に記載の方法。
【請求項１０】
前記多次元データベースと前記ソースデータとの間の通信プロトコルによって、前記ソースデータは前記リーフノードに直接ロードされる、請求項７または８に記載の方法。
【請求項１１】
前記ロードするステップは、
第１のリーフノードにロードされた前記ソースデータが破棄される前に、前記ソースデータを、上位レベルの２つ以上のノードに関連付けられた第２のリーフノードにロードするステップを含み、
前記集約するステップは、
前記ソースデータが前記第２のリーフノードにロードされると、前記第２のリーフノードに関連付けられた前記上位レベルの２つ以上のノードのうちの第１のノードに、前記第１のリーフノードにロードされた前記ソースデータおよび前記第２のリーフノードにロードされた前記ソースデータを含むソースデータを集約するステップを含み、前記第１のリーフノードが関連付けられる前記上位レベルの２つ以上のノードは前記第１のノードを含む、請求項７〜１０のいずれか１項に記載の方法。
【請求項１２】
前記破棄するステップは、
前記第２のリーフノードに関連付けられた前記上位レベルの２つ以上のノードの各々に当該第２のリーフノードにロードされた前記ソースデータが集約されると、前記第２のリーフノードにロードされた前記ソースデータを破棄するステップを含む、請求項１１に記載の方法。
【請求項１３】
機械可読フォーマットのプログラム命令を含むコンピュータプログラムであって、前記プログラム命令は、コンピュータによって実行されると、請求項７〜１２のいずれか１項に記載の方法を前記コンピュータに行なわせる、コンピュータプログラム。
【請求項１４】
機械可読データ記憶媒体に格納された、請求項１３に記載のコンピュータプログラムを含むコンピュータプログラム。
【請求項１５】
請求項７〜１２のいずれか１項に記載の方法を行なうための手段を含む装置。
【発明の詳細な説明】
【技術分野】
【０００１】
著作権表示
この特許文書の開示の一部は、著作権保護の対象となるものを含んでいる。著作権者は、特許商標庁の特許ファイルまたは記録に掲載された特許文書または特許開示の複製に対しては異議を唱えないが、その他の場合、全ての著作権を留保する。
【０００２】
優先権の主張
本願は、２０１７年９月２９日に出願され、「多次元環境において１回のスキャンでロード、集約、およびバッチ計算を行なうためのシステムおよび方法」と題された米国仮特許出願第６２／５６５，５１９号の優先権を主張する。当該出願は、参照により本明細書に組み込まれる。
【０００３】
発明の分野
本発明の実施形態は、概してデータベースおよびデータウェアハウジングに関し、特に、多次元データベース環境において１回のスキャンでロード、集約、およびバッチ計算を行なうためのシステムおよび方法に関する。
【背景技術】
【０００４】
背景
多次元データベースコンピューティング環境によって、企業は、必要な時に適切な人々に重要なビジネス情報を伝達し（複数の既存のデータソースからのデータを利用し、統合することを含む）、フィルタされた情報を、エンドユーザのニーズを最もよく満たす形でエンドユーザコミュニティに配信することができる。ユーザは、よく知られたビジネス次元上のリアルタイムデータと対話し、このデータを検索することができる。これにより、思考スピード（speed-of-thought）分析が可能になる。これらは、本発明の実施形態を使用可能な環境の典型例である。
【発明の概要】
【課題を解決するための手段】
【０００５】
概要
一実施形態によれば、システムおよび方法は、多次元データベース環境において１回のスキャンでのロード、集約、およびバッチ計算を提供することができる。例示的な方法は、１つ以上のマイクロプロセッサを含むコンピュータにおいて、当該コンピュータ上で実行されるとともに少なくとも１つのデータ次元の階層構造をサポートする多次元データベースサーバを提供し得る。当該方法は、上記少なくとも１つのデータ次元の階層構造を、各々が複数のノードのサブセットを含む複数のレベルに編成し得る。当該方法は、複数のノードのうちのリーフノードにソースデータをロードし得る。リーフノードは複数のレベルのうちの最下位レベルにあるノードであり、当該リーフノードは上位レベルの１つ以上のノードに関連付けられ、当該関連付けはメタデータを含む。当該方法は、ソースデータをリーフノードにロードすると、当該ソースデータを上位レベルの１つ以上のノードに集約し得る。当該方法は、ソースデータを上位レベルの１つ以上のノードに集約すると、ソースデータが集約されたものをメタデータに関連付け得る。当該方法は、ソースデータが集約されたものをメタデータに関連付けると、リーフノードにロードされたソースデータを破棄し得る。
【図面の簡単な説明】
【０００６】
【図１】一実施形態に従う多次元データベース環境の例を示す図である。
【図２】一実施形態に係る、多次元データベース環境において１回のスキャンでロード、集約、およびバッチ計算を行なうためのシステムを示す図である。
【図３】一実施形態に係る、多次元データベース環境において１回のスキャンでロード、集約、およびバッチ計算を行なうためのシステムを示す図である。
【図４】一実施形態に係る、多次元データベース環境において１回のスキャンでロード、集約、およびバッチ計算を行なうためのシステムを示す図である。
【図５】一実施形態に係る、多次元データベース環境において１回のスキャンでロード、集約、およびバッチ計算を行なうためのシステムを示す図である。
【図６】一実施形態に係る、多次元データベース環境において１回のスキャンでロード、集約、およびバッチ計算を行なうためのシステムを示す図である。
【図７】一実施形態に係る、多次元データベース環境において１回のスキャンでロード、集約、およびバッチ計算を行なうための方法のフローチャートである。
【発明を実施するための形態】
【０００７】
詳細な説明
上述の特徴は、添付の明細書、特許請求の範囲、および図面を参照すれば、他の特徴と共に明らかになるであろう。具体的詳細は、様々な実施形態の理解を提供するために記載されるものである。しかしながら、それらの具体的詳細がなくても様々な実施形態を実施できることは明らかであろう。添付の明細書および図面は、限定的であることを意図するものではない。
【０００８】
多次元データベース環境（例えば、Oracle（登録商標）Essbase）を用いて、大量のデータ（いくつかの例では、複数のデータソースからの大量のデータ）を統合し、エンドユーザの特定の要求に応じて、フィルタされた情報を当該ユーザに配信することができる。
【０００９】
図１は、一実施形態に従う多次元データベース環境１００の例を示す図である。
図１に示すように、一実施形態によれば、データベース層として動作する多次元データベース環境は、１つ以上の多次元データベースサーバシステム１０２を含み得る。各々の多次元データベースサーバシステム１０２は、物理コンピュータリソースまたは要素１０４（例えば、マイクロプロセッサ／ＣＰＵ、物理メモリ、ネットワーク要素）と、オペレーティングシステム１０６と、１つ以上の多次元データベースサーバ１１０（例えば、Essbaseサーバ）とを含み得る。
【００１０】
一実施形態によれば、中間層１２０は、例えばプロバイダサービス１２２（例えば、Hyperionプロバイダサービス）、管理サービス１２４（例えば、Essbase管理サービス）、またはスタジオ／統合サービス１２６（例えば、Essbaseスタジオ/Essbase統合サービス）などの１つ以上のサービスを含み得る。中間層は、ＯＤＢＣ／ＪＤＢＣ１２７、１２８または他の種類のインターフェイスを介して、多次元データベース環境と共に使用されるメタデータカタログ１２９および／または１つ以上のデータソース１３０（例えば、関係データベース）へのアクセスを提供することができる。
【００１１】
一実施形態によれば、１つ以上の多次元データベースサーバは、多次元データベースを提供するために、ＯＤＢＣ／ＪＤＢＣ１３２または他の種類のインターフェイスを介して、１つ以上のデータソースにアクセスすることもできる。
【００１２】
一実施形態によれば、クライアント層１４０は、１つ以上の多次元データベースクライアント１４２（例えば、Essbaseサーバクライアント）を含み得る。これらの多次元データベースクライアント１４２は、多次元データベース（例えば、スマートビュー（Smart View）、スプレッドシートアドイン（Spreadsheet Add-in）、スマートサーチ（Smart Search）、管理サービス、ＭａｘＬ、ＸＭＬＡ、ＣＡＰＩまたはＶＢ  ＡＰＩアプリケーション、Oracle（登録商標）ビジネスインテリジェンスエンタープライズエディションプラス（Oracle Business Intelligence Enterprise Edition Plus）、または他の種類の多次元データベースクライアント）にアクセスすることができる。また、クライアント層は、中間層のサービスと共に使用されるコンソール、例えば、管理サービスコンソール１４４またはスタジオ／統合サービスコンソール１４６を含むこともできる。
【００１３】
一実施形態によれば、クライアント層、中間層、およびデータベース層の間の通信は、ＴＣＰ／ＩＰ、ＨＴＴＰ、または他の種類のネットワーク通信プロトコルのうちの１つ以上によって提供されてもよい。
【００１４】
一実施形態によれば、多次元データベースサーバは、１つ以上のデータソースからのデータを統合することによって、多次元データベース、データ構造、またはキューブ１５０を提供することができる。これらにアクセスすることにより、フィルタされた情報をエンドユーザに提供することができる。
【００１５】
一般的には、多次元データベース内の各データ値は、キューブの１つのセルに格納される。キューブの次元上の座標を特定することによって、特定のデータ値を照会することができる。１つの次元上のメンバと１つ以上の他の各次元上のメンバとの交差点は、データ値を表わす。
【００１６】
例えば、販売志向ビジネスアプリケーションに使用され得るキューブ１６２を示す図１に示すように、クエリが「売上高」を表わす場合、システムは、このクエリを、全ての「売上高」データ値を含むデータベース内のデータ値１６４のスライスまたはレイヤとして解釈することができる。「売上高」は、「実績」および「予算」と交差している。多次元データベース内の特定のデータ値１６６を照会するために、クエリは、例えば「売上高、実績、１月」を指定することによって、各次元上のメンバを特定することができる。異なる方法でデータベースをスライスすることによって、様々な視点のデータを提供することができる。例えば、「２月」についてのデータ値１６８のスライスにより、時間／年次元が「２月」に固定された全てのデータ値を検査することができる。
【００１７】
データベースアウトライン
一実施形態によれば、多次元データベースの開発は、データベースアウトラインの作成から始まる。データベースアウトラインは、データベース内のメンバ間の構造関係を定義し、データベース内のデータを編成し、集計および数学的関係を定義する。データベースアウトラインの階層ツリーまたはデータ構造において、各次元は、１つ以上のメンバを含み、各メンバは、さらに他のメンバを含み得る。次元を指定することによって、個々のメンバの値を集計する方法をシステムに指示することができる。集計は、ツリーの分岐内の一群のメンバである。
【００１８】
次元およびメンバ
一実施形態によれば、次元は、データベースアウトラインにおいて最も高い集計レベルを表わす。標準次元を選択して、部門別機能（例えば、時間、勘定科目、製品ライン、市場、部門）に関連する事業計画の構成要素を表わすことができる。標準次元に関連付けられた属性次元によって、ユーザは、メンバの属性または特性に基づいて、標準次元のメンバをグループ化および分析することができる。メンバ（例えば、商品Ａ、商品Ｂ、商品Ｃ）は、次元の個々の構成要素である。
【００１９】
次元とメンバとの関係
一実施形態によれば、多次元データベースは、ファミリ（親、子および兄弟、子孫および祖先）および階層（世代およびレベル、ルートおよびリーフ）などの用語を用いて、データベースアウトライン内のメンバの役割および関係を記述する。
【００２０】
一実施形態によれば、親は、下位に分岐を持つメンバである。例えば、「マージン」は、「売上高」および「売上原価」（ＣＯＧＳ）の親であり得る。子は、上位に親を持つメンバである。上記の例では、「売上高」および「売上原価」は、親である「マージン」の子である。兄弟は、すぐ上に同一親を持つ同一世代の子である。
【００２１】
一実施形態によれば、子孫は、親の下位の分岐に位置するメンバである。例えば、「利益」、「在庫」および「利益率」は、メジャーの子孫であり得る。この場合、「利益」、「在庫」および「利益率」の子も、メジャーの子孫である。祖先は、あるメンバの上位の分岐に位置するメンバである。上記の例では、「マージン」、「利益」およびメジャーは、「売上高」の祖先であり得る。
【００２２】
一実施形態によれば、ルートは、分岐内の最上位のメンバである。例えば、メジャーは、「利益」、「在庫」および「利益率」のルートであり、ひいては「利益」、「在庫」および「利益率」の子のルートでもあり得る。リーフ（レベル０）メンバは、子を持たない。例えば、「期首在庫」、「追加額」、および「期末在庫」は、リーフメンバであり得る。
【００２３】
一実施形態によれば、世代とは、１つの次元内の集計レベルを指す。ツリーのルートは、「世代１」と見なされる。世代の番号は、ルートからリーフメンバに向かって大きくなる。レベルは、次元内の分岐を表わす。レベルは、世代に使用された順序と逆の順序で番号付けられる。レベルの番号は、リーフメンバからルートに向かって小さくなる。
【００２４】
一実施形態によれば、ユーザは、世代またはレベルに名前を付与し、その名前をその世代またはレベル内のメンバ全員の略語として使用することができる。
【００２５】
疎次元および密次元
多次元データベース内のデータセットは、通常、２つの特性、すなわち、データが円滑且つ均一に分布していないという特性、およびデータがメンバの組合せの大半に存在していないという特性を共有している。
【００２６】
一実施形態によれば、これに対処するために、システムは、２種類の標準次元、すなわち、疎次元および密次元を認識することができる。疎次元は、有効なデータで埋まっている位置の割合が比較的低い次元である。これに対して、密次元は、次元の全ての組合せにおいて１つ以上のセルが埋まっている確率が比較的高い次元である。多くの多次元データベースは、メンバの組合せの大半がデータ値を有しないため、本質的に疎である。
【００２７】
データブロックおよびインデックスシステム
一実施形態によれば、多次元データベースは、データブロックおよびインデックスを用いてデータの格納およびアクセスを行なう。システムは、疎の標準次元のメンバの一意の組合せ毎に、多次元配列またはデータブロックを作成することができる。各データブロックは、疎次元のメンバの組合せに対する密次元のメンバを表わす。データブロック毎に、インデックスが作成される。インデックスは、疎の標準次元のメンバの組合せを表わす。また、インデックスは、少なくとも１つのデータ値が存在する疎の標準次元のメンバの一意の組合せ毎に、エントリまたはポインタを含む。
【００２８】
一実施形態によれば、多次元データベースサーバは、データ値を検索する際に、インデックスによって提供されたポインタを用いて適切なデータブロックを特定し、そのデータブロックにおいて、データ値を含むセルを特定することができる。
【００２９】
管理サービス
一実施形態によれば、管理サービス（例えば、Essbase管理サービス）は、ユーザがサーバ、アプリケーションおよびデータベースを設計、開発、維持および管理することを可能にする単一のアクセスポイントを提供する。
【００３０】
スタジオ
一実施形態によれば、スタジオ（例えば、Essbaseスタジオ）は、データのモデル化、キューブの設計および分析アプリケーションの構築に関連するタスクを実行するためのウィザード駆動型ユーザインターフェイス（wizard-driven user interface）を提供する。
【００３１】
スプレッドシートアドイン
一実施形態によれば、スプレッドシートアドインは、多次元データベースをスプレッドシートと統合することによって、接続（Connect）、ピボット（Pivot）、ドリルダウン（Drill-down）および計算（Calculate）などの拡張命令をサポートする。
【００３２】
統合サービス
一実施形態によれば、統合サービス（例えば、Essbase統合サービス）は、多次元データベースに格納されたデータと関係データベースに格納されたデータとを統合する時に使用されるメタデータ駆動型環境を提供する。
【００３３】
プロバイダサービス
一実施形態によれば、プロバイダサービス（例えば、Hyperionプロバイダサービス）は、Ｊａｖａ（登録商標）ＡＰＩ、スマートビュー（Smart View）、およびＸＭＬＡクライアントのデータソースプロバイダとして動作する。
【００３４】
スマートビュー
一実施形態によれば、スマートビューは、例えば、Hyperion収益管理、Hyperion計画、およびHyperionエンタープライズパフォーマンス管理ワークスペースデータの共通インターフェイスを提供する。
【００３５】
開発製品
一実施形態によれば、開発製品は、カスタマイズされたエンタープライズ分析アプリケーションの迅速な作成、管理および配置を可能にする。
【００３６】
ライフサイクル管理
一実施形態によれば、ライフサイクル管理（例えば、Hyperionエンタープライズパフォーマンス管理システムのライフサイクル管理）は、エンタープライズパフォーマンス管理製品がアプリケーション、リポジトリまたは個々のアイテムを製品環境の全体に亘って移行することを可能にする手段を提供する。
【００３７】
ＯＬＡＰ
一実施形態によれば、オンライン分析処理（ＯＬＡＰ）は、ユーザによる企業データの分析を可能にする環境を提供する。例えば、財務部門は、ＯＬＡＰを予算、活動に基づく原価の計算、財務実績分析および財務モデル化などに応用することによって、「ジャストインタイム」（just-in-time）情報を提供することができる。
【００３８】
一実施形態によれば、ＯＬＡＰシステムは、多次元にデータを編成することができる。これにより、データセットの検索者／ユーザは、様々な次元を横断する指向的検索（directed search）を行ない、最終的には関心のある結果にたどり着くことができる。ＯＬＡＰシステムでは、データが次元の交差点に存在するものと考えることができる。言い換えれば、ＯＬＡＰシステムに内在するデータは、全ての次元のクロス積をインスタンス化したものである多次元データベースとして、編成および格納され得る。これにより、ユーザ／検索者は、特定の目的のために関心のある次元に沿って詳細な階層を横断し、特定の目的データにたどり着くことができる。ゆっくりと変化するデータは、現在のデータセット内のメタデータとして表わされ得る。
【００３９】
ロード、集約、およびバッチ計算
一実施形態によれば、メタデータを用いて、いずれの上位次元で各リーフレベルロードを用いるかを特定することができる。このとき、リーフレベルのデータは、それを用いる上位次元の各々に集約される。集約値は、上位レベルでの加算（または他の計算）が完了するまでメモリに格納される。完了すると、集約値はメモリから破棄され得る。
【００４０】
１回のスキャンでロード、集約、およびバッチ計算を行なうシステムの能力は、大量のデータセットを処理する際に（例えばビッグデータ環境）、特に有用である。というのは、全てのリーフノードのデータを現在のメモリにロードすることが望ましくない場合があるからである。
【００４１】
例えば、ソース（例えば、Sparkクラスタ）のある値がリーフレベルノードにロードされ得る。ソースに最も近いリーフノードにロードされたデータは、ロードされた後、次のレベルの最初の２つの次元に集約され得る。この集約により、ロードされたデータは１０分の１から１００分の１に縮小される。当該レベルにおいて、集約されたデータは、計算が完了するまで部分和としてメモリに保持され得る。
【００４２】
図２は、一実施形態に係る、多次元データベース環境において１回のスキャンでロード、集約、およびバッチ計算を行なうためのシステムを示す図である。
【００４３】
一実施形態によれば、図２に示すように、多次元データベース構造などのデータ構造は、複数のノードレベル（リーフレベル２０１、レベル１  ２０２、およびレベル２  ２０３など）を含み得る。各ノードレベルは１つ以上のノードを含む。多次元データベース構造は、データソース（例えば、ビッグデータ・ウェアハウス）などのソース２１０に関連付けられ得る。
【００４４】
一実施形態によれば、多次元データ構造は、１つ以上のストレージ（図示せず）に関連付けられ得る。例えば、１つのストレージデバイスによってデータ構造の全体を保持してもよい。代替的には、ノードレベル毎に別々のデータストレージが提供されてもよい。代替的には、各ノードが対応の１つのデータストレージに関連付けられてもよい。
【００４５】
図２に示されるのは３つのレベルであるが、ノードのレベル数がより多い、またはより少ないシステムも意図されている。また、データソースは１つしか図示されていないが、複数のデータセットが当該システムに組み込まれてもよい。
【００４６】
一実施形態によれば、データソースがますます増加しているため、多くのテラバイトのデータ、さらには多くのペタバイトのデータがソースデータセットに含まれる場合も多い。
【００４７】
一実施形態によれば、メタデータは（例えば、リンクに沿って）次元に関連付けられ得る。このメタデータは、様々な計算（例えば、部分和値など）に関して例えばどのノードが他のどのノードに従属しているか等のノード関係を示し得る。これは、例えば図２では、レベル２  ２０３のノードで行なわれる計算に関するメタデータ関係を表わす破線で示されている。
【００４８】
しかしながら、一実施形態によれば、データソースのサイズが増加しており、例えばビッグデータ環境において使用されるデータソースのサイズが増え続けているため、データをリーフノードレベルに保持することがますます難しくなっている。
【００４９】
例えば、図２に示すように、ソースデータがリーフレベル２０１のリーフノードＡおよびＢに格納された場合、これがデータ構造のために利用可能な全格納量である場合がある。この場合、データ構造はレベル１における１つまたは２つの中間計算（例えば、集約）を完了することしかできないであろう。
【００５０】
一方、一実施形態によれば、２つのリーフノードがソースからのデータで埋まり、かつ、これら２つのリーフノードに共通の計算または集約点がなかった場合、データ構造は計算を行なうことができない。なぜなら、更なるソースデータをリーフレベルの他のノードに引き込むことができないからである。
【００５１】
図３は、一実施形態に係る、多次元データベース環境において１回のスキャンでロード、集約、およびバッチ計算を行なうためのシステムを示す図である。
【００５２】
一実施形態によれば、図３に示すように、多次元データベース構造などのデータ構造は、複数のノードレベル（リーフレベル３０１、レベル１  ３０２、およびレベル２  ３０３など）を含み得る。各ノードレベルは１つ以上のノードを含み得る。多次元データベース構造は、データソース（例えば、ビッグデータ・ウェアハウス）などのソース３１０に関連付けられ得る。
【００５３】
一実施形態によれば、図３に示すように、ソースデータがリーフノード（ここでは、ノードＡおよびＢ）にロードされ、次いで、上位レベルに集約される。そのデータは、レベル１のノードに部分和として保持され得る。
【００５４】
例えば、ソースデータがノードＡにロードされ得る。次いで、このソースデータは、（ノードＡとノード１および２との間に存在するメタデータ関係に基づいて）レベル１のノード１および２に集約され得る。このように集約されたものは、部分和値として保持され得る。
【００５５】
一実施形態によれば、上記ソースデータがノードＡから集約された後、リーフレベルにおいて更なるノードにソースデータをロードするスペースを確保するために、上記ノードＡ内のソースデータは破棄され得る（グレー表示のノードで示す）。
【００５６】
さらに、この例では、ソースデータがノードＢにロードされ得る。次いで、このソースデータは、（ノードＢと、破線で示すノード１および２との間に存在するメタデータ関係に基づいて）レベル１のノード１および２に集約され得る。このように集約されたものは、部分和値として保持され得る。
【００５７】
一実施形態によれば、上記ソースデータがノードＢから集約された後、リーフレベルにおいて更なるノードにソースデータをロードするスペースを確保するために、上記ノードＢ内のソースデータは破棄され得る（グレー表示のノードで示す）。
【００５８】
一実施形態によれば、リーフレベルのノードＡおよびＢにおいて上記処理が完了した後、完了した集約計算結果がレベル１のノード１に格納され得る。なぜなら、レベル１のノード１は従属する２つのノードから集約されたものを受け取ったからである。これに対して、レベル１のノード２では集約計算は完了していない。なぜなら、レベル１のノード２は従属する全てのノードから集約されたものを受け取ったわけではないからである。すなわち、集約されたものを受け取ったノードＡおよびＢに加えて、ノードＣおよびＤがある。
【００５９】
図４は、一実施形態に係る、多次元データベース環境において１回のスキャンでロード、集約、およびバッチ計算を行なうためのシステムを示す図である。
【００６０】
一実施形態によれば、図４に示すように、多次元データベース構造などのデータ構造は、複数のノードレベル（リーフレベル４０１、レベル１  ４０２、およびレベル２  ４０３など）を含み得る。各ノードレベルは１つ以上のノードを含み得る。多次元データベース構造は、データソース（例えば、ビッグデータ・ウェアハウス）などのソース４１０に関連付けられ得る。
【００６１】
一実施形態によれば、図４に示すように、図３に示すシステムの後、ソースデータがリーフノード（ここでは、ノードＣおよびＤ）にロードされ、次いで、リーフレベルのノードとレベル１のノードとの間のメタデータ関係に基づいて、上位レベルに集約される。そのデータは、上記レベル１のノードに部分和として保持され得る。
【００６２】
例えば、ソースデータがノードＣにロードされ得る。次いで、このソースデータは、（ノードＣとノード２および３との間に存在するメタデータ関係に基づいて）レベル１のノード２および３に集約され得る。このように集約されたものは、部分和値として保持され得る。上記ソースデータがノードＣから集約された後、リーフレベルにおいて更なるノードにソースデータをロードするスペースを確保するために、上記ノードＣ内のソースデータは破棄され得る（グレー表示のノードで示す）。
【００６３】
さらに、この例では、ソースデータがノードＤにロードされ得る。次いで、このソースデータは、（ノードＤとノード２との間に存在するメタデータ関係に基づいて）レベル１のノード２に集約され得る。このように集約されたものは、部分和値として保持され得る。上記ソースデータがノードＤから集約された後、リーフレベルにおいて更なるノードにソースデータをロードするスペースを確保するために、上記ノードＤ内のソースデータは破棄され得る（グレー表示のノードで示す）。
【００６４】
一実施形態によれば、完了した集約計算結果がレベル１のノード１に格納され得る。なぜなら、レベル１のノード１は従属する２つのノードから集約されたものを受け取ったからである。さらに、ノード２はノードＡ、Ｂ、Ｃ、およびＤから集約されたものを全て有するので、ノード２も部分和計算を完了することができる。一方、レベル１のノード３では集約計算は完了していない。なぜなら、レベル１のノード３は従属する全てのノードから集約されたものを受け取ったわけではないからである（すなわち、ノード３が既に部分和値を格納しているノードＣに加えて、ノードＥおよびＦがある）。
【００６５】
図５は、一実施形態に係る、多次元データベース環境において１回のスキャンでロード、集約、およびバッチ計算を行なうためのシステムを示す図である。
【００６６】
一実施形態によれば、図５に示すように、多次元データベース構造などのデータ構造は、複数のノードレベル（リーフレベル５０１、レベル１  ５０２、およびレベル２  ５０３など）を含み得る。各ノードレベルは１つ以上のノードを含み得る。多次元データベース構造は、データソース（例えば、ビッグデータ・ウェアハウス）などのソース５１０に関連付けられ得る。
【００６７】
一実施形態によれば、図５は、図４に示すデータ構造をさらに繰り返したものである。図５では、レベル１  ５０２のノード１および２は、共に完全な集約値および計算値を有する。
【００６８】
一実施形態によれば、レベル１のノード１および２における集約値および部分和を用いて、レベル２のノードａにおける集約および計算を行なうことができる。
【００６９】
一実施形態によれば、レベル１のノード１に関連付けられたメタデータは、その集約計算結果がレベル２のノードａにおいてのみ用いられることを示すので、レベル２において計算が完了した後、レベル１のノード１における集約計算結果は破棄され得る。
【００７０】
これに対して、一実施形態によれば、レベル１のノード２に関連付けられたメタデータは、その集約計算結果がレベル２のノードａおよびノードｂにおいて用いられることを示すので、レベル２のノードａにおいて計算が完了した後、部分和値がレベル２のノードｂのメモリ内に置かれ得る。この部分和は、レベル１のノード２で生じた部分和値を示すメタデータに関連付けられる。
【００７１】
一実施形態によれば、リーフレベルのノードにおいてソースデータのロード、集約、および破棄が続けられ、その間に、集約されたもの、部分和、および計算結果が上位のノードレベルに保持される。上記集約されたもの、部分和、および計算結果は、データ構造の異なるレベルの様々なノード間の関係を表わすメタデータに関連付けられる。
【００７２】
図５に示すデータ構造は、３レベルのデータ構造を示すのみであるが、様々な実施形態によれば、レベル数がより多い、またはより少ない場合も企図される。その場合、リーフノードレベルよりも上位のノードレベルにおける集約されたものおよび部分和値は、リーフレベルのリーフノードにおけるソースデータを表わす対応のメタデータ関係に関連付けられる。
【００７３】
図６は、一実施形態に係る、多次元データベース環境において１回のスキャンでロード、集約、およびバッチ計算を行なうためのシステムを示す図である。
【００７４】
図６に示すように、一実施形態によれば、データベース層として動作する多次元データベース環境は、１つ以上の多次元データベースサーバシステム６０２を含み得る。各々の多次元データベースサーバシステム６０２は、物理コンピュータリソースまたは要素６０４（例えば、マイクロプロセッサ／ＣＰＵ、物理メモリ、ネットワーク要素）と、オペレーティングシステム６０６と、１つ以上の多次元データベースサーバ６１０（例えば、Essbaseサーバ）とを含み得る。
【００７５】
一実施形態によれば、中間層６２０は、例えばプロバイダサービス６２２（例えば、Hyperionプロバイダサービス）、管理サービス６２４（例えば、Essbase管理サービス）、またはスタジオ／統合サービス６２６（例えば、Essbaseスタジオ/Essbase統合サービス）などの１つ以上のサービスを含み得る。中間層は、ＯＤＢＣ／ＪＤＢＣ６２７、６２８または他の種類のインターフェイスを介して、多次元データベース環境と共に使用されるメタデータカタログ６２９および／または１つ以上のデータソース６３０（例えば、関係データベース）へのアクセスを提供することができる。
【００７６】
一実施形態によれば、１つ以上の多次元データベースサーバは、多次元データベースを提供するために、ＯＤＢＣ／ＪＤＢＣ６３２または他の種類のインターフェイスを介して、１つ以上のデータソースにアクセスすることもできる。
【００７７】
一実施形態によれば、クライアント層６４０は、１つ以上の多次元データベースクライアント６４２（例えば、Essbaseサーバクライアント）を含み得る。これらの多次元データベースクライアント６４２は、多次元データベース（例えば、スマートビュー（Smart View）、スプレッドシートアドイン（Spreadsheet Add-in）、スマートサーチ（Smart Search）、管理サービス、ＭａｘＬ、ＸＭＬＡ、ＣＡＰＩまたはＶＢ  ＡＰＩアプリケーション、Oracle（登録商標）ビジネスインテリジェンスエンタープライズエディションプラス（Oracle Business Intelligence Enterprise Edition Plus）、または他の種類の多次元データベースクライアント）にアクセスすることができる。また、クライアント層は、中間層のサービスと共に使用されるコンソール、例えば、管理サービスコンソール６４４またはスタジオ／統合サービスコンソール６４６を含むこともできる。
【００７８】
一実施形態によれば、クライアント層、中間層、およびデータベース層の間の通信は、ＴＣＰ／ＩＰ、ＨＴＴＰ、または他の種類のネットワーク通信プロトコルのうちの１つ以上によって提供されてもよい。
【００７９】
一実施形態によれば、多次元データベースサーバは、１つ以上のデータソースからのデータを統合することによって、多次元データベース、データ構造、またはキューブ６５０を提供することができる。これらにアクセスすることにより、フィルタされた情報をエンドユーザに提供することができる。
【００８０】
一般的には、多次元データベース内の各データ値は、キューブの１つのセルに格納される。キューブの次元上の座標を特定することによって、特定のデータ値を照会することができる。１つの次元上のメンバと１つ以上の他の各次元上のメンバとの交差点は、データ値を表わす。
【００８１】
例えば、図６は、複数のレベル６６１〜６６３を有する階層データ構造の形式のデータベース６５０を示す。一実施形態によれば、各レベルにおける各ノードは多次元データベースキューブのセルによって表わすことができ、ノード間の関係はメタデータによって表わすことができる。
【００８２】
一実施形態によれば、データソース６３０からのデータは、このデータソースから中間層６２０を介して、または直接、リーフレベル６６１のノードにロードされ得る。
【００８３】
図７は、一実施形態に係る、多次元データベース環境において１回のスキャンでロード、集約、およびバッチ計算を行なうための方法のフローチャートである。
【００８４】
一実施形態によれば、ステップ７１０において、当該方法は、１つ以上のマイクロプロセッサを含むコンピュータにおいて、当該コンピュータ上で実行されるとともに少なくとも１つのデータ次元の階層構造をサポートする多次元データベースサーバを提供し得る。
【００８５】
一実施形態によれば、ステップ７２０において、当該方法は、上記少なくとも１つのデータ次元の階層構造を、各々が複数のノードのサブセットを含む複数のレベルに編成し得る。
【００８６】
一実施形態によれば、ステップ７３０において、当該方法は、複数のノードのうちのリーフノードにソースデータをロードし得る。リーフノードは複数のレベルのうちの最下位レベルにあるノードであり、当該リーフノードは上位レベルの１つ以上のノードに関連付けられ、当該関連付けはメタデータを含む。
【００８７】
一実施形態によれば、ステップ７４０において、当該方法は、ソースデータをリーフノードにロードすると、当該ソースデータを上位レベルの１つ以上のノードに集約し得る。
【００８８】
一実施形態によれば、ステップ７５０において、当該方法は、ソースデータを上位レベルの１つ以上のノードに集約すると、当該ソースデータが集約されたものをメタデータに関連付け得る。
【００８９】
一実施形態によれば、ステップ７６０において、当該方法は、ソースデータが集約されたものをメタデータに関連付けると、上記リーフノードにロードされたソースデータを破棄し得る。
【００９０】
本発明の様々な実施形態を説明してきたが、上記実施形態が限定ではなく例示として提示されていることが理解されるべきである。上記実施形態は、本発明の原理およびその実際の適用例を説明するために選択され記載されたものである。上記実施形態は、新たな特徴および／もしくは改善された特徴を提供することによって、ならびに／または、リソース利用の低減、容量の増加、効率の向上および待ち時間の低下などの利点を提供することによって、システムおよび方法の性能を向上させるために本発明が利用されているシステムおよび方法を例示している。
【００９１】
いくつかの実施形態においては、本発明の特徴は、全体的または部分的に、プロセッサ、メモリなどの記憶媒体、および他のコンピュータと通信するためのネットワークカードを含むコンピュータにおいて実現される。いくつかの実施形態においては、本発明の特徴は、コンピュータの１つ以上のクラスタがローカルエリアネットワーク（Local Area Network：ＬＡＮ）、スイッチファブリックネットワーク（例えば、インフィニバンド）、またはワイドエリアネットワーク（Wide Area Network：ＷＡＮ）などのネットワークによって接続されている分散コンピューティング環境において実現される。分散コンピューティング環境は、一箇所において全てのコンピュータを有していてもよく、または、ＷＡＮによって接続されているさまざまな遠隔地理位置においてコンピュータのクラスタを有していてもよい。
【００９２】
いくつかの実施形態においては、本発明の特徴は、全体的または部分的に、ウェブ技術を用いたセルフサービスの調整された態様でユーザに送達される共有型で融通性のあるリソースに基づいて、クラウド・コンピューティング・システムの一部またはサービスとしてクラウドにおいて実現される。（米国標準技術局（National Institute of Standards and Technology）よって定義される）クラウドの５つの特徴がある。すなわち、オン・デマンドのセルフサービス、広域ネットワークアクセス、リソースプール化、高速伸縮性、およびメジャードサービスである。例えば、本明細書に引用によって援用されている「クラウドコンピューティングのＮＩＳＴ定義（The NIST Definition of Cloud Computing）」（特殊出版（Special Publication）８００〜１４５（２０１１））を参照されたい。クラウド展開モデルは、パブリック、プライベートおよびハイブリッドを含む。クラウドサービスモデルは、ソフトウェア・アズ・ア・サービス（Software as a Service：ＳａａＳ）、プラットフォーム・アズ・ア・サービス（Platform as a Service：ＰａａＳ）、データベース・アズ・ア・サービス（Database as a Service：ＤＢａａＳ）およびインフラストラクチャ・アズ・ア・サービス（Infrastructure as a Service：ＩａａＳ）を含む。本明細書で使用するとき、クラウドは、セルフサービスの調整された態様で、共有される融通性のあるリソースをユーザに対して配信する、ハードウェア技術とソフトウェア技術とネットワーク技術とウェブ技術とを組合せたものである。特に指定がなければ、クラウドは、本明細書で使用するとき、パブリッククラウド、プライベートクラウドおよびハイブリッドクラウドの実施形態を包含しており、全てのクラウド展開モデルは、クラウドＳａａＳ、クラウドＤＢａａＳ、クラウドＰａａＳおよびクラウドＩａａＳを含むもののこれらに限定されない。
【００９３】
いくつかの実施形態においては、本発明の特徴が、ハードウェア、ソフトウェア、ファームウェアまたはそれらの組合せを用いて、またはそれらの組合せの助けを借りて実現される。いくつかの実施形態においては、本発明の特徴は、本発明の１つ以上の機能を実行するように構成されたかまたはプログラムされたプロセッサを用いて実現される。プロセッサは、いくつかの実施形態においては、シングルプロセッサもしくはマルチチッププロセッサ、デジタル信号プロセッサ（digital signal processor：ＤＳＰ）、システム・オン・ア・チップ（system on a chip：ＳＯＣ）、特定用途向け集積回路（application specific integrated circuit：ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（field programmable gate array：ＦＰＧＡ）もしくは他のプログラマブルロジックデバイス、ステートマシン、離散的なゲートもしくはトランジスタ論理、離散的なハードウェアコンポーネント、または、本明細書に記載される機能を実行するように設計されたそれらのいずれかの組合せである。いくつかの実現例においては、本発明の特徴が、特定の機能に特化した回路類によって実現され得る。他の実現例においては、これらの特徴は、例えば、コンピュータ可読記憶媒体上に格納された命令を用いて特定の機能を実行するように構成されたプロセッサにおいて実現され得る。
【００９４】
いくつかの実施形態においては、本発明の特徴は、処理システムおよび／またはネットワーキングシステムのハードウェアを制御するために、かつ、プロセッサおよび／またはネットワークが本発明の特徴を利用する他のシステムと対話することを可能にするために、ソフトウェアおよび／またはファームウェアに組込まれている。このようなソフトウェアまたはファームウェアは、アプリケーションコード、デバイスドライバ、オペレーティングシステム、仮想マシン、ハイパーバイザ、アプリケーションプログラミングインターフェイス、プログラミング言語、および実行環境／コンテナを含み得るがこれらに限定されない。適切なソフトウェアコーディングは、ソフトウェア技術に精通した当業者にとって明らかになるように、熟練したプログラマであれば本開示の教示に基づいて容易に準備することができる。
【００９５】
いくつかの実施形態においては、本発明は、命令が格納された記憶媒体またはコンピュータ可読媒体であるコンピュータプログラムプロダクトを含む。これらの命令を用いて、本発明の処理または機能のいずれかを実行するように、コンピュータなどのシステムをプログラムするか、または他の方法で構成することができる。記憶媒体またはコンピュータ可読媒体は、フロッピー（登録商標）ディスク、光ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、マイクロドライブ、および磁気光ディスクを含む任意のタイプのディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＤＲＡＭ、ＶＲＡＭ、フラッシュメモリデバイス、磁気または光カード、ナノシステム（分子メモリＩＣを含む）、ならびに、命令および／またはデータを格納するのに適した任意のタイプの媒体または装置、を含み得るが、これらには限定されない。特定の実施形態においては、記憶媒体またはコンピュータ可読媒体は、非一時的な記憶媒体または非一時的なコンピュータ可読媒体である。
【００９６】
上述の記載は、網羅的となるように意図されたものではなく、または、本発明を開示通りの形態に限定するように意図されたものではない。また、本発明の実施形態を特定の一連のトランザクションおよびステップを用いて説明したが、本発明の範囲が上述の一連のトランザクションおよびステップに限定されないことは、当業者にとって明らかであろう。さらに、本発明の実施形態をハードウェアとソフトウェアとの特定の組合せを用いて説明したが、ハードウェアとソフトウェアとの他の組合せが本発明の範囲内にあることも認識すべきである。さらに、さまざまな実施形態で本発明の特徴の特定の組合せを記載したが、一実施形態の特徴が別の実施形態に組込まれ得るというように、これらの特徴の異なる組合せが本発明の範囲内にあることは当業者にとって明らかであることを理解すべきである。さらに、本発明の精神および範囲から逸脱することなく、形態、詳細、実施および用途のさまざまな追加、削減、削除、変形および他の変更がなされ得ることも、当業者にとっては明らかであろう。変更および変形は、開示された特徴の任意の適切な組合せを含む。より広い本発明の精神および範囲を添付の特許請求の範囲およびその均等物によって規定することを意図している。
【図１】
0006827127.tif 000002
【図２】
0006827127.tif 000003
【図３】
0006827127.tif 000004
【図４】
0006827127.tif 000005
【図５】
0006827127.tif 000006
【図６】
0006827127.tif 000007
【図７】
0006827127.tif 000008