(57)【特許請求の範囲】
【請求項１】
データ分析を実施するためのシステムであって、前記システムは、改善されたスケーリング特性を保有し、前記システムは、複数の計算ノードと１つ以上のメモリとを備え、
前記複数の計算ノードは、１つ以上の第１の計算ノード及び１つ以上の第２の計算ノードを含み、前記複数の計算ノードは、作動されると、ｎ次元キューブのスライスを維持し、前記スライスは、データ点の階層を含み、前記データ点は、１つ以上の固定次元と１つ以上の可変次元との交点に対応し、
前記１つ以上のメモリには、コンピュータ可読命令が記憶され、前記コンピュータ可読命令は、実行すると前記システムに少なくとも、
前記データ点の階層の第１のサブセットを前記１つ以上の第１の計算ノード上に維持することであって、データ点が、第１の分類の計算デマンドに関連付けられている前記階層のデータ点に少なくとも部分的に基づいて、前記第１のサブセットに含まれる、第１のサブセットを維持することと、
前記データ点の階層の第２のサブセットを前記１つ以上の第２の計算ノード上に維持することであって、データ点が、第２の分類の計算デマンドに関連付けられている前記階層のデータ点に少なくとも部分的に基づいて、前記第２のサブセットに含まれる、第２のサブセットを維持することと、
前記階層のデータ点にアクセスするための第１の要求を、前記１つ以上の第１の計算ノード上で前記要求を処理することによって処理することであって、前記１つ以上の第１の計算ノードが、前記第１の分類の計算デマンドに少なくとも部分的に基づいて、スケーリング機構と共に構成される、処理することと、
を行わせる、
システム。
【請求項２】
前記第１の分類は、高い書き込み頻度に基づき、前記スケーリング機構は、前記１つ以上の第１の計算ノードの中で前記階層の前記第１のサブセット内のデータ点を水平にパーティション化することを含む、
請求項１に記載のシステム。
【請求項３】
前記第１の分類は、高い読み取り頻度に基づき、前記スケーリング機構は、書き込み可能なパーティションの少なくとも１つの読み取り専用のレプリカを含む前記１つ以上の第１の計算ノードを含む、
請求項１に記載のシステム。
【請求項４】
コンピュータ可読命令が記憶されている１つ以上のメモリをさらに備え、前記コンピュータ可読命令は、実行すると前記システムに少なくとも、
前記階層に関連付けられた次元と前記次元に関連付けられた１つ以上の計算デマンドとの間のマッピングに少なくとも部分的に基づいて、前記階層の領域を分類させる、
請求項１に記載のシステム。
【請求項５】
コンピュータ可読命令が記憶されている１つ以上のメモリをさらに備え、前記コンピュータ可読命令は、実行すると前記システムに少なくとも、
前記階層内のパスを、前記パス内のデータ点へのアクセスの頻度に少なくとも部分的に基づいて、特定することと、
前記アクセスの頻度が閾値レベルを上回っている間、前記パスに関連付けられた前記データ点をメインメモリ内に維持することと、
を行わせる、
請求項１に記載のシステム。
【請求項６】
ｎ次元キューブを維持するためのコンピュータ実装方法であって、
前記ｎ次元キューブ内のデータ点の階層の第１のサブセットを特定するステップであって、前記階層の前記第１のサブセット内のデータ点に関連付けられた計算デマンドに少なくとも部分的に基づいて前記サブセットを特定するステップと、
前記データ点に関連付けられた前記計算デマンドに少なくとも部分的に基づいて、スケーリング機構を選択するステップと、
前記階層の前記第１のサブセットを、少なくとも第１の計算ノード及び第２の計算ノード上に維持するステップと、
を含み、前記階層の前記第１のサブセットは、前記選択されたスケーリング機構に基づいて、前記第１の計算ノードと前記第２の計算ノードとの間で少なくともパーティション化または複製される、
方法。
【請求項７】
前記スケーリング機構は、読み取り頻度と比較して高い書き込み頻度に少なくとも部分的に基づいて選択される、
請求項６に記載の方法。
【請求項８】
少なくとも前記第１の計算ノードと前記第２の計算ノードとの間で前記階層の前記第１のサブセットのデータ点を水平にパーティション化するステップをさらに含む、
請求項７に記載の方法。
【請求項９】
前記スケーリング機構は、前記階層の前記第１のサブセット内のデータを読み取る要求に応答する前記第１の計算ノードの能力と比較して、高い読み取り頻度に少なくとも部分的に基づいて選択される、
請求項６に記載の方法。
【請求項１０】
前記第２の計算ノード上に、前記階層の前記第１のサブセットの少なくとも一部分であって、前記第１の計算ノード上に維持される、前記階層の前記第１のサブセットの前記少なくとも一部分を複製するステップをさらに含む、
請求項９に記載の方法。
【請求項１１】
前記階層に関連付けられた次元と前記次元に関連付けられた計算デマンドとの間のマッピングに少なくとも部分的に基づいて、前記階層の領域を分類するステップをさらに含む、
請求項６に記載の方法。
【請求項１２】
前記階層内のパスを、前記パス内のデータ点へのアクセスの頻度に少なくとも部分的に基づいて、特定するステップと、
前記アクセスの頻度が閾値レベルを上回っている間、前記パスに関連付けられた前記データ点をメインメモリ内に維持するステップと、
をさらに含む、
請求項６に記載の方法。
【請求項１３】
前記階層の追加的なサブセットのための第２のスケーリング機構を、前記追加的なサブセット内のデータ点に関連付けられた計算デマンドに少なくとも部分的に基づいて選択するステップをさらに含む、
請求項６に記載の方法。
【請求項１４】
プロセッサと、
命令が記憶されている非一時的コンピュータ可読記憶媒体と、
を備えるシステムであって、
前記命令は、１つ以上の計算デバイスによって実行すると、前記１つ以上の計算デバイスに少なくとも、
少なくとも第１の計算ノード及び第２の計算ノード上にデータ点の階層を記憶するように決定することと、
前記データ点の階層の第１のサブセットを前記１つ以上の第１の計算ノード上に記憶することであって、データ点が、第１の分類の計算デマンドに関連付けられている前記階層のデータ点に少なくとも部分的に基づいて、前記第１のサブセットに含まれる、記憶することと、
前記データ点の階層の第２のサブセットを前記１つ以上の第２の計算ノード上に記憶することであって、データ点が、第２の分類の計算デマンドに関連付けられている前記階層のデータ点に少なくとも部分的に基づいて、前記第２のサブセットに含まれる、記憶することと、を行わせる、
システム。
【請求項１５】
さらなる命令を含み、前記さらなる命令は、前記１つ以上の計算デバイスによって実行すると、前記１つ以上の計算デバイスに少なくとも、
前記第１の計算ノード及び前記第２の計算ノードを含む複数の計算ノード上にｎ次元キューブのスライスを記憶するように決定することであって、前記スライスが、前記データ点の階層、及び１つ以上の固定次元と１つ以上の可変次元との交点に対応する追加的なデータ点を含む、決定することを行わせる、
請求項１４に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１４年６月２０日に出願された、「ＤＹＮＡＭＩＣ  ＣＵＢＥＳ  ＦＯＲ  ＣＬＯＵＤ−ＢＡＳＥＤ  ＡＮＡＬＹＴＩＣＳ」と題する米国仮特許出願第６２／０１５，３１２号、２０１４年９月２３日に出願された、「ＤＹＮＡＭＩＣ  Ｎ−ＤＩＭＥＮＳＩＯＮＡＬ  ＣＵＢＥＳ  ＦＯＲ  ＨＯＳＴＥＤ  ＡＮＡＬＹＴＩＣＳ」と題する米国特許出願第１４／４９４，５０６号、２０１４年９月２３日に出願された、「ＵＳＥ  ＯＦ  ＤＥＰＥＮＤＥＮＣＹ  ＧＲＡＰＨＳ  ＴＯ  ＤＹＮＡＭＩＣＡＬＬＹ  ＵＰＤＡＴＥ  Ｎ−ＤＩＭＥＮＳＩＯＮＡＬ  ＣＵＢＥＳ」と題する米国特許出願第１４／４９４，５１３号、及び２０１４年９月２３日に出願された、「ＤＡＴＡ  ＩＮＴＥＲＥＳＴ  ＥＳＴＩＭＡＴＩＯＮ  ＦＯＲ  Ｎ−ＤＩＭＥＮＳＩＯＮＡＬ  ＣＵＢＥ  ＣＯＭＰＵＴＡＴＩＯＮＳ」と題する米国特許第１４／４９４，５２４号の利益を主張し、それらの内容はその全体が参照により本明細書に援用される。
【０００２】
本出願はまた、２０１４年６月２０日に出願された、「ＥＭＢＥＤＤＡＢＬＥ  ＣＬＯＵＤ  ＡＮＡＬＹＴＩＣＳ」と題する同時係属出願の米国仮特許出願６２／０１５，３０２号、及び２０１４年６月２０日に出願された、「ＡＵＴＯＭＡＴＥＤ  ＨＩＥＲＡＲＣＨＹ  ＤＥＴＥＣＴＩＯＮ  ＦＯＲ  ＣＬＯＵＤ−ＢＡＳＥＤ  ＡＮＡＬＹＴＩＣＳ」と題する同時係属出願の米国仮特許出願６２／０１５，３０８号、及び２０１４年６月２０日に出願された、「ＲＥＡＬ−ＴＩＭＥ  ＨＯＳＴＥＤ  ＳＹＳＴＥＭ  ＡＮＡＬＹＴＩＣＳ」と題する同時係属出願の米国仮特許出願６２／０１５，２９４号、及び２０１４年６月２０日に出願された、「ＣＬＯＵＤ  ＡＮＡＬＹＴＩＣＳ  ＭＡＲＫＥＴＰＬＡＣＥ」と題する同時係属出願の米国仮特許出願６２／０１５，３０７号に関連し、それらはその全体が参照により本明細書に援用される。
【背景技術】
【０００３】
データウェアハウス及びオンライン分析処理（「ＯＬＡＰ」）システムは、データマイニング、レポート、及び外挿に関連する種々の機能を実施するために使用され得る。ＯＬＡＰシステムは、関係型データベースなどのトランザクションシステムから典型的に取得され、多次元キューブ構造内にロードされたデータの多次元分析を可能にする。種々の集約値などのデータ点が、それが含む種々の次元の各交点におけるｎ次元キューブ構造内で算出され得る。したがって、多次元キューブ構造を投入する過程は、著しい量の計算を含む。さらに、ｎ次元キューブは、新たなデータを組み込むために周期的に更新されてもよい。ｎ次元キューブの更新は、その次元の各交点のデータ点を再計算することを含み得る。再計算は、ｎ次元キューブに新たな次元が追加されるべきときに、さらに一層重荷となる場合がある。したがって、これらの種類のｎ次元キューブ構造は、動的データ環境には適していない。
【０００４】
以下の発明を実施するために形態は、添付の図面と合わせて読むことでよりよく理解され得る。例証の目的のため、本開示の態様の種々の例を図面に示すが、しかしながら、本発明は開示される特定の方法及び手段に限定されない。
【図面の簡単な説明】
【０００５】
【図１Ａ】クラウドベース分析に関連して使用可能なｎ次元キューブを維持するためのシステムの実施形態を描写するブロック図である。
【図１Ｂ】クラウドベース分析に関連して使用可能なｎ次元キューブを維持するためのシステムの実施形態の動作、即時データストリーム内に観察される新たな次元の追加に付随する動作を描写するブロック図である。
【図２Ａ】クラウドベース分析を実施するためのシステムの実施形態の動作、ｎ次元キューブへの新たな次元の追加の際の依存性グラフの維持に関与する動作を描写するブロック図である。
【図２Ｂ】クラウドベース分析を実施するためのシステムの実施形態の動作、ｎ次元キューブへの属性の追加に関与する動作を描写するブロック図である。
【図２Ｃ】スライス内に含まれる階層データのためのスケーラブル記憶機構の実施形態を描写する図である。
【図３Ａ】クラウドベース分析に適合させたｎ次元キューブを維持するための過程の実施形態を描写するフローチャートである。
【図３Ｂ】ｎ次元キューブ内のデータ点の計算を遅延するための過程の実施形態を描写するフローチャートである。
【図４】クラウドベース分析に適合させたｎ次元キューブ内の遅延された計算を実施するための過程の実施形態を描写するフローチャートである。
【図５Ａ】ホスト型分析サービスを提供するためのシステムの実施形態を描写するブロック図である。
【図５Ｂ】即時データソースからのデータの取り込み及び処理のための過程を描写する。
【図６】本開示の態様が実践され得る計算環境の実施形態を描写するブロック図である。
【図７】本開示の態様が実践され得る計算システムの実施形態を描写するブロック図である。
【発明を実施するための形態】
【０００６】
本開示の態様は、ホスト型分析プラットフォームを含む、動的データ環境に好適な構造を使用して、ｎ次元キューブを維持するために用いられ得る。実施形態は、ｎ次元キューブ内に含まれると分析に役立ち得る新たな属性、次元、または階層を導入し得るデータのストリームと共に、分析を提供するために用いられ得る。実施形態は、スライスベースのパーティション化スキームを使用して構造化されたｎ次元キューブを用い得る。各スライスは、スライス全体にわたり固定された次元値のセットと、変動可能な次元値のセットとに対応するデータ点を含み得る。属性、次元、または階層は、新たなスライスの追加または既存のスライスの修正によってｎ次元キューブに追加され得る。ｎ次元キューブのビューは、スライス、スライス領域、及び個々のデータ点の間の依存性リンクを形成することによって、部分的に事前計算され得る。本明細書に説明されるアプローチは、ｎ次元キューブの大部分を完全に再算出または再計算する必要なく追加的な次元及び属性に関して拡大または縮小され得る、ｎ次元キューブ構造を可能にするために用いられ得る。
【０００７】
図１Ａは、クラウドベース分析に関連して使用可能なｎ次元キューブ１００を維持するためのシステムの実施形態を描写するブロック図である。クラウドベース分析システムのユーザは、分析データを、集約されたデータと交点における関連属性とを含む多次元配列として見ることができる。多次元配列は、スパース型であってもよく、即ち、かかる場合、相対的に少数の交点がデータに関連付けられることを意味する。
【０００８】
クラウドベース分析システムは、ｎ次元キューブ１００を含んでもよく、これは、そのユーザには概念的に多次元配列として見られ得るが、複数のスライス１０２〜１０６及びレポジトリ１０８を含むことができる。スライス１０２は、集約されたデータのセットと、次元キューブの残りの次元に固定された配列交点の１次元リストに関する属性セットとを含んでもよい。種々の実施形態では、多次元「スライス」が用いられてもよく、即ち、スライスは、ｎ次元キューブの残りの次元に固定された多次元構造も含んでもよい。
【０００９】
レポジトリ１０８は、例えば、関係型または非関係型データベースなどの、スライス１０２〜１０６に関する情報の収集を維持するデータレポジトリを含んでもよい。レポジトリ１０８内に維持され得るデータの非限定的な例としては、スライス識別子、固定次元の識別子、可変次元の識別子、依存性情報、再読み込み、または陳腐化（ｓｔａｌｅｎｅｓｓ）データなどが挙げられる。
【００１０】
スライス１０２〜１０６は、パーティション１１０及び１１２などの１つ以上のパーティションの上に維持されてもよい。パーティションは、サーバ、またはデータベース管理システムをホストする他の計算ノード、またはスライス１０２〜１０６のうちの１つ以上の構成要素データを維持するための他の機構を備えてもよい。パーティション１１０と１１２との間に作業負荷及び記憶要件を分割するために、種々のパーティション化スキームが、用いられてもよい。
【００１１】
実施形態はまた、パーティション１１０及び１１２のレプリカ１１４及び１１６への複製を実施してもよい。実施形態は、複製を使用して、ｎ次元キューブ１００を用いるクラウドベース分析システムの信頼度及び性能を改善してもよい。スライス、階層、または階層の領域などのｎ次元キューブの部分は、ｎ次元キューブ内のデータ点の維持に関連付けられた計算デマンドを受け入れるために、パーティション化または複製されてもよい。例えば、高い読み取りアクティビティを受けるｎ次元キューブの一部分は、書き込み可能なパーティションをホストする計算ノード及び読み取り専用のパーティションをホストする多数の追加的な計算ノードを含むようにスケールアウトされるかもしれない。高い書き込みアクティビティに関連付けられたｎ次元キューブの一部分は、下位部分にさらに分割され、多数の計算ノード間でパーティション化されるかもしれない。
【００１２】
実施形態では、データは、アクセスパターンに基づいてノード間で割り振られてもよい。割り振りは、パーティション化スキームを特定し、実装すること、必要に応じて複製を可能にすること、負荷平衡機構を構成することなどを含んでもよい。パーティション化及び複製は、本明細書に説明される通り、スライスごと、階層ごと、階層の領域ごとなどの種々のレベルで生じてもよい。アクセスパターンは、ｎ次元キューブによって実施されるか、または特定のスライス上で実施される照会の傾向及びパターンを含んでもよい。アクセスパターンに関する種々の統計値及び他の測定基準が、収集され、割り振りのために使用され得る。これらとしては、更新動作の頻度及び比率を記録する測定基準、算出を要する動作の頻度及び比率、データ移動に関与する動作の頻度及び比率などが挙げられる。
【００１３】
実施形態では、スライス部分に関連する計算デマンドは、パーティションホストの性能特性と比較され、それに従ってデータがパーティションホスト間で割り振られてもよい。例えば、高度のデータ移動に関与しているスライスは、同一の計算ノード上に配列されるか、ネットワークの同一のブランチに接続された計算ノード上に置かれるか、または高速ネットワークによって接続された計算ノード上に置かれてもよい。別の例は、その性能特性が最適化された量のＣＰＵ電力及び／またはメモリを含む計算ノード上の高度の計算に関与するデータの割り振りに関与する。
【００１４】
実施形態では、データは、セキュリティへの配慮に基づいてノード間で割り振られてもよい。特定の次元またはレベルの階層が計算に使用されるが、ｎ次元キューブのユーザには見えていないということがあってもよい。データは、各計算ノードに関連付けられたセキュリティ属性に基づいて、計算ノード間で割り振られてもよい。例えば、計算ノードは、（計算が実施され得るように）ｎ次元キューブの部分をホストする計算ノードによって開始される要求を処理するように構成され、さらに、ｎ次元キューブの顧客から開始するものなどの他のものによる要求に応答しないように事前構成されるかもしれない。この計算ノードは、計算のために必要とされる割り振られたデータであるかもしれないが、ユーザには見えない。そのように構成されていない別の計算ノードは、ユーザに見えるデータをホストしてもよい。
【００１５】
図１Ｂは、クラウドベース分析に関連して使用可能なｎ次元キューブを維持するためのシステムの実施形態の動作、即時データストリーム内に観察される新たな次元の追加に付随する動作を描写するブロック図である。データストリーム１６０は、トランザクションデータ、即時データ、ログ情報などを含んでもよい。データストリーム１６０内に到着するデータは、そのデータの到着前にはｎ次元キューブ１５０に含まれていない属性及び次元を含んでもよい。
【００１６】
実施形態は、既存のｎ次元キューブ上で破壊的な動作を実施することなく、新たな次元１６２を反射する分析を可能にすることによって新たな次元１６２の到着に応答してもよい。ｎ次元キューブの先行技術の実施形態は、例えば、各交点の集約体または種々の抽出値などのｎ次元キューブ内の既存のデータ点の実質的な再計算を実施することなく、新たな次元を組み込むことができない場合がある。
【００１７】
図１Ｂに描写される通り、ｎ次元キューブ１５０は、スライス１５２〜１５６を含んでもよく、各スライスは、ｎ次元キューブの次元のサブセットに固定され、また残りの次元上では可変である。レポジトリ１５８は、例えば、場所、最後の再読み込みの時間、依存性情報などのスライス１５２〜１５６に関する情報を維持してもよい。
【００１８】
新たなスライス１６４は、データストリーム１６０を通して新たな次元１６２の到着に応答してｎ次元キューブ１５０に追加されてもよい。新たなスライス１６４は、新たな次元１６２を含む１つ以上の次元で変動してもよい。新たなスライス１６４を説明する入力が、レポジトリ１５８に追加されてもよい。既存のスライス１５２〜１５６は、それらのスライスの使用前に生じる実質的な再計算を伴わずに、そのまま使用されてもよい。実施形態は、新たなスライス１６４を示す情報をレポジトリ１５８に追加してもよい。実施形態はまた、新たなスライス１６４内のデータと既存のスライス１５２〜１５６との間の依存性関係を示す情報を追加してもよい。依存性情報は、スライス内に維持されたデータの依存性グラフを含んでもよい。依存性グラフは、スライス、次元、スライス領域、データ点などの間の依存性を示してもよい。実施形態はまた、レポジトリ１５８に、スライス、スライス領域、スライス内のデータ点などの算出優先度を示す情報を追加してもよい。優先度は、データ点内の関心の推定見込み、他のデータが算出に依存している度合いなどを含む、多様な因子に基づいてもよい。
【００１９】
図２Ａは、クラウドベース分析を実施するためのシステムの実施形態の動作、ｎ次元キューブへの新たな次元の追加の際の依存性グラフの維持に関与する動作を描写するブロック図である。図２Ａは、最初に国次元及び州次元を含むｎ次元キューブの関与の例を描写する。１つ以上の測定値若しくは他の値または属性が、これらの次元の各交点にて関連付けられてもよい。スライス２１８は、固定次元（「国Ａ」）２２２によって示される通り、国次元において「Ａ」に固定されてもよい。スライス２１８はさらに、図２Ａに可変次元入力２２４〜２３０によって描写される通り、非固定次元に沿って１つ以上の入力を含んでもよい。種々のデータ点が、次元入力２２４〜２３０に関連付けられてもよい。例えば、可変次元入力２２６が、データ点２３８に関連付けられてもよい。データ点２３８は、例えば、「国Ａ」の「州Ｂ」内の総売上などの種々の測定値を表してもよい。図２Ａにはデータ点２３８のみが具体的に呼出されているが、他の可変次元入力２２４、２２８、及び２３０の各々が、同様のデータ点を有してもよい。同様に、スライス２２０は、固定次元（「国Ｂ」）２４０によって示される通り国次元内の国「Ｂ」に固定されてもよく、また可変次元入力２３２〜２３６を有してもよく、それらの各々は関連付けられたデータ点を有してもよい。
【００２０】
実施形態は、データストリーム２００を処理して、新たなデータをｎ次元キューブに組み込んでもよい。入来データは、既存の次元に関連してもよく、関連するスライス、スライス領域、データ点などを古いまたは陳腐（ｓｔａｌｅ）であるとマークすることによって組み込まれてもよい。データディクショナリは、種々のスライス、スライス領域、及びデータ点に関する陳腐化データを維持するために使用されてもよい。実施形態はまた、データストリーム２００の処理を通して、新たな次元２０２が直面され、ｎ次元キューブに組み込まれてもよいことを決定してもよい。例えば、図２Ａは、新たな次元２０２、「領域」次元の追加を描写する。新たなスライス２１２は、スライス２１８及び２２０を既に含んでいるｎ次元キューブに追加されてもよい。新たなスライス２１２は、「固定次元（「領域Ｒ」）２０４に対して領域次元内に一定に保持されてもよく、また可変次元入力２０８及び２１０によって描写される通り、州次元などの１つ以上の他の次元において可変であってもよい。
【００２１】
実施形態は、新たなスライス２１２と既存のスライス２１８及び２２０との間に依存性関係を確立してもよい。例えば、依存性情報２１４は、スライス２２０内の情報上の可変次元入力２０８、またはより正確には、可変次元入力２３２に関連付けられたデータ点の依存性を示してもよい。同様に、依存性情報２１６は、スライス２１８上の可変次元入力２１０または可変次元入力２２６に関連付けられたデータ点の依存性を示してもよい。実施形態は、依存性関係の確立において種々のレベルの粒度及び方向性を利用してもよい。例えば、依存性関係は、スライス、可変次元入力、固定データ点などの間に形成されてもよく、既存のスライスと新たなスライスとの間、または既存のスライスの間に両方向に形成されてもよい。実施形態は、依存性関係を利用して、スライス、スライス領域、データ点などを陳腐であるとしてマークしてもよい。実施形態はまた、依存性関係を利用して、事前算出された集約体、または算出されたさらなる集約体、種々の抽出値などの他のコンポーネントを配置してもよい。可変次元入力２０８及び２１０は、空または陳腐な状態で形成されてもよく、その結果、関連値の算出が遅延されてもよいことに留意されたい。
【００２２】
図２Ｂは、クラウドベース分析を実施するためのシステムの実施形態の動作、ｎ次元キューブへの属性の追加に関与する動作を描写するブロック図である。実施形態は、データストリーム２５０を処理して、スライス２５８の既存の要素に関連付けられた新たな属性の存在を決定してもよく、スライス２５８は、固定次元（「国Ｂ」）２６０及び可変次元入力２６２〜２６４に関連付けられている。属性は、概念レベルにおいて、ｎ次元キューブ内の次元の交点に関連付けられた値と考えることができる。実施形態は、図２Ｂに描写される機構を使用して属性を記憶してもよく、ここでは、スライス入力は、リンクされたリスト属性入力２５６などの１つ以上の属性を有する他の構造を介して関連付けられる。「州Ａ」に関連付けられた新たな属性２５２の検出に際し、実施形態は、可変次元入力（「州Ａ」）２６２を配置し、関連付けられた属性のリストに新たな属性２５４を追加してもよい。実施形態は、追加的なスライス及び属性が関連付けられるであろう固定次元入力に対して、この動作を複数回反復してもよい。
【００２３】
依存性情報は、特定され、属性のために記憶されてもよい。例えば、図２Ｂは、依存性情報２６６を描写する。描写される依存性情報２６６は、新たな属性入力２５４と階層２６８との間の依存性関係を示してもよい。依存性関係はまた、既存の属性と階層との間で維持されてもよい。
【００２４】
階層及び種々の抽出または算出された値は、種々の属性値または属性の種類に依存してもよい。例えば、階層は、例えば色などの属性によってフィルタされた、製品の売り上げの集約値を含むかもしれない。属性の値の変更は、階層の再計算を必要とするかもしれない。したがって、製品の色属性と階層との間には依存性関係があってもよい。同様の関係が、他の抽出または算出された値にも存在してもよい。新たに追加される属性も、階層と関係を有してもよい。１つの例は、新たに追加される属性が、既存の属性と性質が類似であるか、既存の属性と同一の種類のものである場合に生じ得る。既存の属性が既存の階層の構成要素である場合、新たな属性が、既存の階層に平行する新たな階層の構成要素になるかもしれない。新たな階層を即座に算出するというよりもむしろ、依存性情報は、新たな属性と新たな階層との間の関係を示すために記憶されるかもしれず、それは次に、新たな階層の遅延された、またはオンデマンドの計算を可能にしてもよい。
【００２５】
図２Ｃは、スライス内に含まれる階層データのためのスケーラブル記憶機構の実施形態を描写する図である。いくつかの場合及び実施形態では、ｎ次元キューブのパーティション化は、スライス間であってもよく、その結果、データの各スライスは、分離した計算ノード上に維持されてもよい。スケーラビリティは、場合により、スライス間の複製及び負荷平衡を実施することによって達成されてもよい。他の実施形態では、パーティション化は、スライスベースのパーティション化の代わりに、またはそれに加えて、スライス内で行われてもよい。
【００２６】
いくつかの実施形態では、スライス内に含まれるデータ点の階層は、領域によって細分化され、多数の計算ノード上に記憶されてもよい。データ点の階層の領域は、階層のサブセットと称する場合もある。スケーリング機構は、その領域内に含まれるデータ点（単数または複数）に関連付けられた計算デマンドに基づいて、階層の各領域（またはサブセット）のために選択されてもよい。
【００２７】
ｎ次元キューブのスライスは、種々の次元データの階層を含んでもよい。例えば、スライスは、時間によって集約された売上データを含んでもよい。例証の目的のため、図２Ｃは、時間次元及び売上次元に関して説明される。しかしながら、図２Ｃの種々の態様を例証するための時間及び売上の使用は、本開示の範囲を制限するものと見なされるべきではないことが理解されるであろう。
【００２８】
図２Ｃにおいて、階層２８１は、階層ノード２８６〜２９８を含んでもよい。階層内の各ノードは、値の和の記憶された表現であってもよい。例として時間及び売上次元を使用して、階層ノード２９２、２９４、２９６、及び２９８は各々、６時間の期間の売上高の和を含むかもしれない。階層ノード２８８及び２９０は各々、６時間の総額の集約体を含むかもしれない。例えば、階層ノード２８８は、１２時間の期間を表し、階層ノード２９２及び２９４に関連付けられた値の集約体を含むかもしれない。同様に、階層ノード２９０は、第２の１２時間の期間を表し、階層ノード２９６及び２９８に関連付けられた値の集約体を含むかもしれない。階層ノード２８６は、階層ノード２８８及び２９０を含む２４時間の期間の集約体を含むかもしれない。実施形態は、階層内の時間次元の包含から、より最新の期間が頻繁な書き込みに関与している可能性が高いということを推測してもよい。実施形態は、時間次元から予想されるレベルの更新までのマッピングを利用して、それによって、階層の領域内の維持されたデータ点に関与する可能性が高い計算デマンドを推定してもよい。
【００２９】
ｎ次元キューブのスケーラビリティは、ツリーベース記憶機構を使用して増加されてもよい。実施形態では、ツリーベース記憶機構は、図２Ｃの階層２８１などの階層ツリーと並行してもよい。階層の更新は、いくつかの実施形態では、以下のように進行してもよい：１）新たなデータが葉ノード内に記憶され得、任意の集約値が調節される、２）葉ノードの親の集約値が調節され得る、３）葉ノードの親の親の集約値が調節され得る、など。
【００３０】
時間及び売上を例として使用すると、現在の期間を表すノードは、頻繁に更新されてもよい。これは次に、継承の連鎖を通じて逆流する集約値に対する調節として、ｎ次元キューブ内のその先祖を頻繁に更新させてもよい。例えば、階層ノード２９８は、現在の６時間の窓を表してもよい。現在の窓に関して売上データが収集されるにつれて、階層ノード２９８に関連付けられた値は、頻繁に調節されてもよい。これは次に、階層ノード２９０及び２８６の調節を生じさせるかもしれない。いくつかの実施形態は、種々のレベルの階層において集約体の算出を遅延してもよい。
【００３１】
階層データのためのスケーリング機構は、階層内の領域の分類に基づいてもよい。分類は、階層の一部または全部をホストする計算ノードに課せられる計算デマンドなどの因子を含んでもよい。分類としては、アクティビティの頻度及びアクティビティの種類が挙げられ得る。例えば、高い書き込みアクティビティ２８４に関連付けられた領域は、階層ノード２９８に関連付けられるかもしれないが、勿論、種々の場合及び実施形態では、１つを超える階層ノードがこの様式で分類されるかもしれない。高い書き込み数は、例えば、現在の期間からのデータを含む階層ノード２９８などの、階層内に含まれるデータの種類の結果であるかもしれない。階層２８１の別の領域は、高い計算負荷２８０に関連付けられた領域であると分類されるかもしれない。この領域２８０は、集約値の算出に関連付けられたより大きなデマンドに関連付けられるかもしれない。例えば、階層ノード２９８が追加的なデータを含むように更新されている場合、その先祖ノード２９０及び２８６は、集約体または他の抽出値の相対的に頻繁な再算出に関与しているかもしれない。別の分類が、低い書き込みアクティビティ２８２に関連付けられた領域を特定しているかもしれない。さらなる分類が、例えば、高い読み取りアクティビティ２８３に関連付けられた領域などの頻繁な照会及び検索動作に関わる領域、に関与しているかもしれない。分類はまた、相対的に小さいアクティビティを有する領域に関与してもよい。
【００３２】
階層を維持するためのスケーリング機構は、前述の計算デマンドの分類のうちの１つ以上に基づいてもよい。実施形態では、高い計算負荷２８０に関連付けられた領域内の階層ノードは、その領域内のノードに関連付けられた計算をさらに細分化することによってパーティション化されてもよい。例えば、階層ノード２８６に関連する算出は、階層ノード２９０に関連するものと分離している計算ノード上で実施されるかもしれない。階層ノード２８６に関連する算出は、多数の計算ノード間でさらにパーティション化されるかもしれない。例えば、階層ノード２８８から開始する階層のブランチに関連する計算は、階層ノード２９０から開始するブランチに関連するものと分離している計算ノード上で実施されるかもしれない。
【００３３】
高い書き込みアクティビティに関連付けられた領域内の階層ノードは、水平にパーティション化されて、書き込み負荷を複数の計算ノードに渡って分配してもよい。低い書き込みアクティビティを有するが、高い読み取りアクティビティを有する領域に関しては、複製は、読み取り負荷を複数の計算ノードに渡って分配するために使用されてもよい。
【００３４】
実施形態はまた、前述の分類に基づいて、特定のリソースの種類の使用を強調してもよい。例えば、頻繁な計算または書き込みに関連付けられた階層を維持する計算ノードは、データをインメモリに維持してもよく、一方で低いアクティビティに関連付けられたものは、従来的な記憶装置を利用してもよい。
【００３５】
種々の場合及び実施形態では、階層の領域は、階層を通じたパスで構成されてもよい。例えば、領域は、第１のノード、第１のノード親などで構成されるかもしれない。階層内のパスは、パス内のデータがアクセスされる頻度の間、メインシステムメモリ内か、または相対的に低いレイテンシの記憶デバイス上に維持されてもよい。パス内のより低いレベルのノード上で実施される書き込み動作は、連鎖更新を引き起こしてもよい。実施形態は、メインシステムメモリ内に頻繁に書き込まれるノードの親を維持して、これら及び類似の種類の更新を効率的に処理してもよい。アクセス頻度、特に書き込み頻度が閾値レベルを上回るとき、パスは、メインメモリ内に維持されてもよい。アクセス頻度が特定のレベルを下回るとき、パスは、比較的高いレイテンシを有するデバイス上に維持されてもよい。
【００３６】
種々の実施形態では、階層の領域は、計算ノードの分類に基づいて計算ノードにマッピングされてもよい。階層は、潜在的に可変的な構成を有する多数の計算ノード上にホストされてもよい。計算ノードのうちのいくつかは、例えば、計算ノードが算出の実施の改善された効率を提示するように構成された算出集中的なノードとして構成されるかもしれない。他の計算ノードは、データの記憶に関して改善された効率を提示するように構成されるかもしれない。
【００３７】
図３Ａは、クラウドベース分析に適合させたｎ次元キューブを維持するための過程の実施形態を描写するフローチャートである。一連の動作として描写されてはいるが、当業者は、描写される順番は、本開示の範囲を制限するものと解釈されるべきではないこと、また描写される動作のうちの少なくともいくつかは、変更されるか、省略されるか、再順番付けされるか、追加的な動作で補足されるか、または並行して実施されてもよいことを理解するであろう。描写される過程の実施形態は、本明細書に説明される計算システムなどの計算システムによって実行されるコンピュータ実行可能命令の種々の組み合わせを使用して実装されてもよい。
【００３８】
動作３００は、ｎ次元キューブに組み込まれ得る新たな次元、属性、測定値、または他の値の特定を描写する。実施形態は、新たな次元、属性、測定値、または他の値の追加を示す新たなデータのためのデータストリームを処理してもよい。データストリームは、即時データソース、ログファイル、または典型的にはデータの連続的または半連続的なストリームに関連付けられる他のデータソースに対応してもよい。これらのデータソースは、概して、漸進的にデータを提供するものとして説明され得る。
【００３９】
データストリームはまた、履歴データ、トランザクションデータなどに関連付けられてもよく、それらは、連続的にというよりもむしろ周期的に更新され、ｎ次元キューブに組み込まれてもよい。この種類のデータソースは、概して、一括ロードデータを提供するものとして説明され得る。
【００４０】
ｎ次元キューブへの組み込みのための新たなデータを特定するための過程は、漸進的にロードされるデータ及び一括ロードされるデータの両方に対して同様に動作してもよい。動作３０２は、新たに発見された次元に基づいた、ｎ次元キューブへの新たなスライスの追加を描写する。図１Ａを参照すると、新たなスライスの追加は、図１Ａのパーティション１１０などのパーティションを割り当ててスライスをホストすることと、スライスを、レプリカ１１４などのレプリカに複製することと、レポジトリ１０８を更新することと、を含んでもよい。種々の実施形態では、これらのステップが完了される前に、新たな次元を組み込む分析が実施されてもよい。
【００４１】
動作３０４は、データストリームから入来するデータ内に特定される新たな属性、測定値、または他の値に基づいた、１つ以上のスライスの更新を描写する。実施形態は、パーティション上に維持されたスライスデータを更新し、そのデータの複製を引き起こしてもよい。
【００４２】
実施形態はまた、データディクショナリを更新させて、更新されたデータの存在を反射させてもよく、これは、スライス、スライス領域、及びデータ点を、それらが新たに到着したデータのために古くなった場合に陳腐であるとマークすることを含む。動作３０６は、依存性情報の維持、及びスライス、スライス領域、及びデータ点の状態の再読み込みを描写する。実施形態は、依存性情報に関して異なるレベルの粒度を用いてもよい。実施形態は、例えば、データスライスレベルのみにおける粗い粒度を維持するかもしれない。
【００４３】
動作３０８は、新たに追加されるスライスの漸進的な投入、及び既存のスライスの漸進的な再読み込みを描写する。実施形態は、新たな次元の存在を発見すると、新たなスライスを追加してもよく、このとき、相対的に少量の関連データ−わずか１個またはさらには０個のデータ点−が利用可能であってもよい。したがって、スライスは、本質的に空の状態で作成され、データストリームを通じて到着するスライスに関連するデータとして投入されてもよい。
【００４４】
動作３１０によって描写される通り、種々の実施形態は、新たなスライスから、または新たなスライス内のスライス領域若しくはデータ点から、既存のスライス、スライス領域、またはデータ点への依存性リンクを形成することによって、新たに追加されたスライス内にビューを部分的に実現してもよい。リンクの可用性が、必要時に応じて新たなスライス内のデータ点のそれぞれの算出を可能にし得るため、新たなスライスは、部分的に実現されると考えられ得る。
【００４５】
動作３１２によって描写される通り、実施形態は、算出の優先度に基づいて、追加されたスライス内のデータ点を部分的に計算してもよい。実施形態は、種々の因子を利用して優先度を決定してもよい。実施形態では、算出の優先度を決定するために、ユーザの関心が種々の因子によって推定されてもよい。ユーザの関心は、例えば、データ点にマウスオーバーするなどのマウスの動きを監視することによって推定されてもよい。クライアントアプリケーションは、マウスの動きを監視して、対応する情報をクラウドベース分析プラットフォームに送信してもよい。情報は、データ内にドリルダウンしたいという要望を示し得る、ユーザがマウスオーバーしていたスライスデータの領域を示してもよい。実施形態は次に、ドリルダウンに必要とされるデータの算出を引き起こしてもよい。実施形態はまた、優先されるべきデータをカテゴライズし、そのカテゴリを各カテゴリに関する関心の推定されるレベルと相関させることによって、関心を推定してもよい。他のデータを伴う依存性の度合いなどの多様なさらなる技術が、優先度を決定するために用いられてもよい。
【００４６】
動作３１４は、集約データの再利用による、スライスの計算の最適化を描写する。スライス内の種々のデータ点の算出は、組み合わされて、より大きい数の値の集約体を形成するか、または分けられて、より小さい数の値の集約体を形成する、集約値に関与してもよい。実施形態は、集約体の再利用と共に使用するために、依存性グラフ情報を維持してもよい。
【００４７】
動作３１６は、反射に基づいたスライス計算の最適化を描写する。ここで、反射という用語は、関連する次元間に形成された対角軸上でｎ次元キューブマトリックス（これは１つ以上のスライス上に投影されてもよい）を処理することと、対角線の半分上で完了した計算を使用して、もう半分上の計算を完了することとに関与する技術を指し得る。例えば、モデル−年−売上に関与する算出は、年−モデル−売上に関与する算出を実施するために再利用されてもよい。この技術は、その数が閾値を上回っている属性の分配にわたって広がる単一のキー性能インジケータ（例えば、売上など）が存在するということに応答して、適用されてもよい。
【００４８】
種々の実施形態では、新たな次元が、ｎ次元キューブに追加されてもよい。新たな次元は、例えば、新たな次元を追加するための要求の受信、ｎ次元キューブ内に未だ表されていない次元に対応するデータストリームからのデータの受信などの、種々のイベントまたは条件に応答して追加されてもよい。実施形態は、データスライスを形成し、ｎ次元キューブを構成し得る複数の追加的なデータスライスにそれを追加することによって、新たな次元を追加してもよい。スライスがそこにホストされる計算ノードに関する情報を含み得る、新たなデータスライスを説明する情報が、ｎ次元キューブに関する情報を含むレポジトリに追加されてもよい。レポジトリは、スライス間の依存性情報を含んでもよい。
【００４９】
データスライスは、新たな次元と、ｎ次元キューブ内に既に表されている１つ以上の他の次元との交点に対応する複数のデータ点を含んでもよい。集約体及び他の抽出値などの値が、データ点に関連付けられてもよい。
【００５０】
新たなデータスライスの形成は、ｎ次元キューブ内のデータ点の階層を部分的に実現することを含んでもよい。部分的に実現された階層は、階層内のデータ点に関連付けられた値のうちの０個以上を算出することを含んでもよい。これらのデータ点の算出は、それらが必要とされるまで遅延されてもよい。データ点の各々を事前に算出する代わりに、実施形態は、データ点の依存性情報を事前に算出してもよい。例えば、第１のデータ点に関連付けられた値が、第２のデータ点に関連付けられた値を算出するために使用されてもよい。実施形態は、ｎ次元キューブへの新たな次元の追加時にこの依存性を特定し、また依存性を説明する情報を記憶してもよい。依存性を説明する情報は、データスライス内に記憶されてもよく、またはレポジトリ内に外部に記憶されてもよい。場合により、スライス間依存性が存在してもよい。かかる場合、実施形態は、データスライスをホストする計算ノード上というよりもむしろ、中央レポジトリ内に依存性情報を記憶してもよい。
【００５１】
実施形態は、決定された優先度に基づいて、データ点に関連付けられた値を算出してもよい。算出の優先度は、データ点に関連付けられた値を算出するための相対的な順序を示してもよく、また値が、その値を読み取るための要求に応答することが必要とされない限り、またはそれが必要とされるまで、計算されるべきではないことを示してもよい。
【００５２】
実施形態は、種々の因子に基づいて、遅延された算出の優先度を調節してもよい。これは、算出を即座に実施することを含んでもよい。実施形態は、限定されるものではないが、ユーザの行為、同一データまたは類似データ上の前のアクセスパターン、例えば、算出されるべきデータ点を含む階層に概念的に類似であり得る階層内のデータなどを含む、因子に対する優先度を調製してもよい。例えば、実施形態は、特定の種類のドリルダウン、ドリルアップ、またはピボット動作が一般的に実施され、高度に優先されるか、または関連する算出を即座に実施することを決定してもよい。
【００５３】
算出の優先度を決定するために利用され得る別の因子は、セキュリティである。実施形態は、例えば、次元、階層、またはｎ次元キューブに関連付けられたものなどの種々のセキュリティ属性に基づいて、データ点を算出するための優先度を決定してもよい。
【００５４】
実施形態は、決定された算出の優先度を示す値のソートに基づいて、データ点を算出するか、ないしは計算するように決定してもよい。例えば、実施形態は、データ点に（またはデータ点に関連付けられたスライスまたは階層の領域に）優先度スコアを割り当て、それに従ってデータ点をソートしてもよい。データ点に関連付けられた優先度値を代表するコンパクトでソート可能な構造を作成するために、種々の技術が用いられてもよい。
【００５５】
実施形態は、依存性情報を用いて、パスの基点の値への変更後の再算出を必要とし得る、データ点の階層内のパスを特定してもよい。例えば、階層の底部の値が更新されると、その先祖は再算出を必要としてもよい。実施形態は、変更された値に関連付けられたデータ点と先祖との間のパスを特定し、そのパスに沿ったデータ点を、子孫と比較して古いとマークしてもよい。次に、先祖データ点の算出が、本明細書に開示される種々の技術を使用して優先されてもよい。
【００５６】
場合により、データ点は、データの不完全なセットに依存してもよい。例えば、現在の２４時間の期間に関する集約値は、その２４時間の期間が経過するまでは不完全であってもよい。実施形態は、不完全なデータセットに関連付けられたデータ点を追跡し、データセットが完全であると考えられ得るときに少なくとも部分的に基づいて、計算の優先度を調節してもよい。例えば、不完全なデータセットに依存するデータ点の先祖は、そのデータセットが不完全である間、低い再計算の優先度としてマークされてもよい。優先度は次に、データセットが完全になったときに、上方調節されてもよい。
【００５７】
実施形態では、データ点は、計算されるべきデータ点の子孫に関連付けられた値の外挿に基づいて、計算されてもよい。例えば、現在の週の売上高の集約値は、その週の最終日より前では不完全であるかもしれない。しかしながら、欠落しているデータ点の値は、例えば、その前の週の対応する日に基づいて外挿されてもよい。
【００５８】
図３Ｂは、ｎ次元キューブ内のデータ点の計算を遅延するための過程の実施形態を描写するフローチャートである。一連の動作として描写されてはいるが、当業者は、描写される順番は、本開示の範囲を制限するものと解釈されるべきではないこと、また描写される動作のうちの少なくともいくつかは、変更されるか、省略されるか、再順番付けされるか、追加的な動作で補足されるか、または並行して実施されてもよいことを理解するであろう。描写される過程の実施形態は、本明細書に説明される計算システムなどの計算システムによって実行されるコンピュータ実行可能命令の種々の組み合わせを使用して実装されてもよい。
【００５９】
動作３５０は、第１のデータ点と第２のデータ点との間の依存性を特定する実施形態を描写する。依存性は、例えば、第２のデータ点の値を抽出するために使用される算出への入力として働く第１のデータ点などの、２つの値の間の関係を反射してもよい。第１のデータ点が変化すると、第２のデータ点は、正確性を保つために再算出される必要がある場合がある。しかしながら、実施形態は、第２のデータ点の算出を遅延し、本明細書に提示される通り、種々の技術及び機構を使用して算出をスケジュールしてもよい。
【００６０】
動作３５２は、第２のデータ点がアクセスされるであろう可能性の決定を描写する。データ点のアクセスは、別のデータ点に関連する計算におけるその使用に関与してもよい。この目的のためのアクセスの可能性は、依存性グラフまたは類似の構造を使用して、種々の実施形態によって算出されてもよい。第２のデータ点がアクセスされるであろう可能性を決定するために、多様な他の因子が、種々の実施形態によって利用されてもよい。
【００６１】
実施形態では、第２のデータ点がアクセスされ得る可能性は、現在または未来のドリルダウン、ドリルアップ、またはピボット動作を示すか、またはそれを示唆するインターフェースとのユーザの相互作用を示す情報の受信に少なくとも部分的に基づいて、決定されてもよい。より一般的な言い方では、ユーザは、データ点がアクセスされるであろう増加された可能性、または確実性を示す様式で、インターフェースと相互作用してもよい。これらの行為としては、データフィールドにマウスオーバーすること、ドリルダウン、ドリルアップ、またはピボットが実施されるべきことを示すボタンをクリックするか、またはそれにマウスオーバーすることなどが挙げられ得る。
【００６２】
実施形態はまた、ユーザへの表示のためにクライアントアプリケーションに送信されたデータを考慮してもよい。例えば、階層のレベル「Ｎ」におけるデータがクライアントアプリケーション内のディスプレイ上にある場合、レベル「Ｎ−１」及び「Ｎ＋１」におけるデータ点は、アクセスの増加された見込みを有してもよい。
【００６３】
実施形態は、データ点の算出の費用と、データ点の算出において経過され得る時間との比較を利用してもよい。場合により、ホスト型データ分析サービスの顧客は、費用よりも性能への選好を示すことがある。かかる場合では、実施形態は、遅延を最小にするために積極的に計算を優先させるかもしれない。他の場合では、顧客は、データ分析サービスの利用の費用を低減することを望む場合があり、費用削減への選好を示す場合がある。費用削減は、幾つかの例では、計算の遅延から生じたかもしれない減少された性能とのトレードオフとして達成されてもよい。
【００６４】
実施形態は、ｎ次元キューブの、またはｎ次元キューブに関連するトランザクションデータソースのアクセスパターンを利用してもよい。例えば、ｎ次元キューブに対して、またはトランザクションデータソースに対して実施された、前の照会は、他の値よりも高い有意性を有する特定の集約または他の値を示してもよい。かかる集約または他の値に関連するデータ点は、アクセスされる増加された見込みを有してもよい。したがって、これらのデータ点は、他のデータ点よりも高い算出の優先度に割り当てられもよい。
【００６５】
図４は、クラウドベース分析に適合させたｎ次元キューブ内の遅延された計算を実施するための過程の実施形態を描写するフローチャートである。一連の動作として描写されてはいるが、当業者は、描写される順番は、本開示の範囲を制限するものと解釈されるべきではないこと、また描写される動作のうちの少なくともいくつかは、変更されるか、省略されるか、再順番付けされるか、追加的な動作で補足されるか、または並行して実施されてもよいことを理解するであろう。描写される過程の実施形態は、本明細書に説明される計算システムなどの計算システムによって実行されるコンピュータ実行可能命令の種々の組み合わせを使用して実装されてもよい。
【００６６】
実施形態は、動作４００によって描写される通り、既存のメモリ構造にデータを付加することによって、ｎ次元キューブに新たに特定された属性及び関連する集約座標を追加してもよい。実施形態は、ランダムアクセスメモリ（「ＲＡＭ」）などのシステムメモリ内にスライスデータ構造を維持してもよい。実施形態は、追加的なパーティションに複製され得るバッキングパーティション上に、スライスデータ構造のコピーをさらに維持してもよい。
【００６７】
種々の実施形態では、新たな次元は、エンドユーザによって自動的に発見可能にされてもよい。実施形態は、新たな次元を示す情報を、埋め込み可能な分析モジュールを動作させるクライアントデバイスに送信してもよく、それは、新たな次元の指示をエンドユーザに表示してもよい。マウスの動きまたはマウスのクリックなどの、新たな次元に対するユーザの反応は、新たな次元内のユーザの関心を測定するため、及びｎ次元キューブ内のデータ点を計算するための優先度を調節するために使用されてもよい。
【００６８】
動作４０２によって描写される通り、実施形態は、集中型データディクショナリを通じてスライスを付加及び置き換えしてもよい。データディクショナリは、データベース管理システム内に１つ以上のテーブルを含み得る。データディクショナリは、改善された負荷平衡能力及び増加された信頼度を提供する目的のために、パーティション化及び複製されてもよい。動作４０４によって描写される通り、実施形態は、ｎ次元キューブの領域を示す種々のインデックス構造を維持してもよく、これは、マトリックス（単数または複数）という用語で言及される場合もある。実施形態はまた、スライス、スライス領域、及びデータ点に関するインデックス構造を維持してもよい。
【００６９】
実施形態は、動作４０６によって描写される通り、依存性ツリーを構築することによってｎ次元キューブのビューを部分的に実現してもよい。依存性ツリーの構築は、ｎ次元キューブ内の各交点のデータ点を直接算出する代わりに実施されてもよい。依存性ツリーを構築するために、例えば、動作４０８及び４１０によって描写されるものなどの種々の技術が用いられてもよい。
【００７０】
動作４０８は、依存性ツリーの構築のための、次元属性内の固有の階層の利用を描写する。実施形態は、最粗粒での集約体よりも高い優先度を有する最細粒での集約体を算出してもよい。細粒の集約体は次に粗粒の集約体を形成する様にプロジェクトされる。実施形態は、粗粒の集約体の算出を、例えば、ユーザの関心の指示に応答してなど、それが必要になるまで遅延してもよい。
【００７１】
動作４１０は、類似の依存性ツリーが適用されるべきｎ次元キューブ構造を特定するための、推測、推定、分類モデル、及び他の類似の技術の使用を描写する。新たな次元、測定値、または属性は、既存の次元性と類似性を有してもよく、その結果、その依存性モデルは、さらなる変更を伴って、または伴わずに、クローン化されてもよい。実施形態は、場合により、新たな属性間の独特の対応を特定することが可能であってもよい。例えば、新たな記憶は、既存の記憶と同一のデータ依存性を有してもよい。独特の対応が見出されない場合、分類などの技術を使用して最も近いものが見出されてもよい。次に、最も近いものの依存性ツリーが見出され、新たな次元、測定値、または属性への適用のために必要に応じて調節されてもよい。
【００７２】
クローン化されるべきｎ次元キューブ構造を特定するために、分類及び推測技術がｎ次元キューブのアクセスパターンに適用されてもよい。例えば、ｎ次元キューブのユーザは、群に分類されてもよい。群内のユーザのアクセスパターンは、例えば、どのｎ次元キューブ小僧が最も頻繁にアクセスされているかを決定すること、典型的なドリルダウン深さを特定すること、共通のピボットを特定することなどによって分析されてもよい。同一の群内に入る新たなユーザのためにｎ次元キューブ構造を作り上げるとき、この情報は、計算優先度などの新たなｎ次元キューブ構造の種々の態様に反射されてもよい。
【００７３】
図５Ａは、ホスト型分析サービスを提供するためのシステムの実施形態を描写するブロック図である。ホスト型分析システム５００は、システムの種々のモジュールのアクティビティを調整する制御プレーン５０２によって管理されてもよい。
【００７４】
画像レンダリング５０４モジュールは、グラフ及びチャートなどの、埋め込み型ユーザインターフェースコンポーネントのためのレンダリングサービスを提供してもよい。結果セット管理５０６モジュールは、分析の実施の結果に付随する履歴情報、データキャッシュなどを維持してもよい。ユーザインターフェースカタログ５０８モジュールは、画像などの、埋め込み型分析特徴を含むアプリケーションのユーザインターフェースに挿入され得る埋め込み型分析のためのユーザインターフェース要素のレポジトリを維持してもよい。レポートパラメータ管理５１０モジュールは、例えば、期間、地理的領域、レポート内に含むための次元、所望のドリルダウンレベルなどの、分析レポートの生成において使用するためのパラメータのレポジトリを含んでもよい。
【００７５】
集約５１２モジュールは、種々の次元及び次元の組み合わせ内の集約値を算出するための動作を実施してもよい。例えば、集約５１２モジュールは、特定の店舗、地理的領域、及び州に関する月次、週次、及び日次の売上データを算出してもよい。
【００７６】
抽出算出５１４モジュールは、集約体データ及び他の情報に基づいて、二次の算出を実施してもよい。カスタム算出５１６モジュールは、レポート特異的な、またはユーザによって提供される算出を実施してもよい。カスタム算出は、例えば、アプリケーションパブリッシャーによって提供されてもよい。
【００７７】
シナリオ層５１８モジュールは、シミュレーション、投影、または他の種類の「起こり得る事態」シナリオに関連する動作を実施してもよい。これらは、例えば、アプリケーションパブリッシャーによって提供される、カスタムシナリオであってもよい。
【００７８】
ソース及び接続パラメータカタログ５２０は、種々の情報ソースを配置及び接続するために使用される情報を維持してもよい。ソースを配置するための情報としては、ネットワークアドレス、ユニフォームリソースロケーター（「ＵＲＬ」）などが挙げられ得る。接続するための情報としては、種々の形態の認証情報、アカウント、ユーザ名などが挙げられ得る。
【００７９】
メタデータ管理５２２モジュールは、例えば、関係型データソース５２８、非関係型データソース５３０、ファイルベースソース５３２、ストリーミングソース５３４、及びクラウドベースデータソース５３６などの種々のデータソースとのインターフェース接続において使用される、種々の形式のメタデータ及び他の情報を維持してもよい。実施形態は、メタデータ管理５２２モジュールからのメタデータを、データ変換５２４モジュールと併せて用いてもよい。データ変換５２４モジュールは、入来データに対してデータ変換及びデータクレンジング動作を実施してもよい。
【００８０】
スケジューラ５２６モジュールは、ホスト型分析システム５００によって実施される種々のアクティビティのタイミングを調整してもよい。調整は、ｎ次元キューブの再構築をスケジュールすること、データ検索をスケジュールすることなどに関与してもよい。
【００８１】
種々のデータソースが用いられてもよい。これらとしては、ＳＱＬベースの関係型データベース管理システムなどの関係データソース５２８、及び非関係型データソース５３０が挙げられる。種々の非関係型データソース５３０としては、ＮｏＳＱＬデータベースシステム、キー値対データベース、オブジェクト関係型データベースなどが挙げられ得る。ドキュメントレポジトリ、ログファイルなどの種々のファイルベースソース５３２が使用されてもよい。ログファイルはまた、ストリーミングデータソース５３４として扱われてもよく、それはまた、データが継続的に更新され得る他の種類のデータソースを含んでもよい。他のストリーミングデータソース５３４によってカテゴライズされ得る別の例は、マルチプレイヤービデオゲームなどのビデオゲームから生成されるデータである。
【００８２】
種々の種類のクラウドベースデータソース５３６が使用されてもよい。これらとしては、ホスト型分析サービスのプロバイダ、アプリケーションパブリッシャー、アプリケーションのユーザ、または第三者によって維持される種々のウェブサイトまたはデータソースが挙げられ得る。
【００８３】
図５Ｂは、即時データソースからのデータの取り込み及び処理のための過程を描写する。データソース５６０は、アダプタ５５６及びクレンジングパイプライン５５２に通信可能に接続されてもよい。データソース５６２などの追加的なデータソースは、例えば、アダプタ５５８及びクレンジングパイプライン５５４などの他のアダプタ及びパイプラインに通信可能に接続されてもよい。
【００８４】
アダプタ５５６は、データソース５６０からのデータをクレンジングパイプライン５５２による処理に好適なフォーマットに変換してもよい。クレンジングパイプライン５５２によって実施される動作としては、入来データに１つ以上の翻訳または変換を実施することが挙げられ得る。例としては、ステミング、レンマ化などが挙げられる。クレンジングパイプライン５５２は、多重化であってもよい。これは、複数のパスに沿ってクレンジングを実施して、各目的地のｎ次元キューブ内で使用される正規化されたフォーマットに合致する正規化されたフォーマットでデータを生成することを含んでもよい。
【００８５】
図５Ｂは、分析及び記憶５５０モジュールを描写する。これは、図５Ａのモジュール５０２〜５２６などの分析を実施するための種々のコンポーネントを指す場合がある。クレンジングパイプライン５５２及び５５４から入来するクレンジングされたデータは、分析及び記憶５５０モジュールによって処理されるかもしれない。処理は、例えば、集約の実施、カスタム算出の実施、シナリオモデリングなどの動作が挙げられ得る。クレンジングパイプライン５５２及び５５４からのデータ、ならびに任意の算出または抽出された値は、適切なｎ次元キューブ内にルート指定及び記憶されてもよい。
【００８６】
本開示の実施形態は、多くの種類のデータベース管理システム（「ＤＢＭＳ」）と併せて用いられてもよい。ＤＢＭＳは、記憶及び検索動作が実施され得る組織化されたデータの集合収集を維持するためのソフトウェア及びハードウェアシステムである。ＤＢＭＳでは、データは典型的には、キー値と追加的なデータとの間の関連性によって組織化される。関連性の性質は、データの集合内に存在する実世界の関係に基づいてもよく、または任意であってもよい。ＤＢＭＳによって、データ定義、照会、更新、及び管理などの種々の動作が実施されてもよい。いくつかのＤＢＭＳは、構造化照会言語（「ＳＱＬ」）などの照会言語を使用したデータベースとの相互作用を提供するのに対し、他のＤＢＭＳは、ｐｕｔ及びｇｅｔなどの動作を含むＡＰＩを使用する。データベースとの相互作用はまた、ハイパーテキストマークアップ言語（「ＨＴＭＬ」）及び拡張マークアップ言語（「ＸＭＬ」）などの種々のプロトコルまたは規格に基づいてもよい。ＤＢＭＳは、例えば、ソリッドステートドライブなどの１つ以上の記憶デバイス上にデータを記憶するように働く記憶エンジンなどの種々のアーキテクチャコンポーネントを含んでもよい。
【００８７】
図６は、本発明の態様が実践され得る、分配された計算環境の例を描写する図である。種々のユーザ６００ａは、任意の種類の計算デバイス６０２ａ上で動作する種々のクライアントアプリケーションと相互作用して、データセンタ６２０内の種々の計算ノード６１０ａ、６１０ｂ、及び６１０ｃ上で実行する過程を用いて通信ネットワーク６０４上で通信してもよい。別法として、クライアントアプリケーション６０２ｂは、ユーザの介入を伴わずに通信してもよい。通信ネットワーク６０４は、インターネット、有線及び無線ローカルエリアネットワーク、光ファイバーネットワーク、衛星通信などを含む、通信技術の任意の組み合わせを含んでもよい。任意の数のネットワークプロトコルが用いられてもよい。
【００８８】
データセンタ６２０内で動作する、計算ノード６１０ａ，６１０ｂ，及び６１０ｃ上で実行する過程による通信は、ゲートウェイ６０６及びルータ６０８を介して提供されてもよい。多数の他のネットワーク構成も、用いられてもよい。図６には明白に描写されてはないが、種々の認証機構、ウェブサービス層、ビジネスオブジェクト、または他の中間層が、計算ノード６１０ａ、６１０ｂ、及び６１０ｃ上で実行する過程を用いた通信を媒介するために提供されてもよい。これらの中間層のうちのいくつかは、それ自体が、計算ノードのうちの１つ以上の上で実行する過程を含んでもよい。計算ノード６１０ａ、６１０ｂ、及び６１０ｃ、及びその上で実行する過程はまた、ルータ６０８を介して互いに通信してもよい。別法として、分離した通信パスが用いられてもよい。いくつかの実施形態では、データセンタ６２０は、計算ノード及びその上で実行する過程が、他のデータセンタ内で動作する計算ノード及び過程と通信し得るように、追加的なデータセンタと通信するように構成されてもよい。
【００８９】
計算ノード６１０ａは、１つ以上のプロセッサ６１６、１つ以上のメモリ６１８、及び１つ以上の記憶デバイス６１４を備える物理的ハードウェア上に存在するものとして描写される。計算ノード６１０ａ上の過程は、オペレーティングシステムと共に実行してもよく、または代替的に、プロセッサ６１６、メモリ６１８、または記憶デバイス６１４などの物理的リソースと直接相互作用するベアメタル過程として実行してもよい。
【００９０】
計算ノード６１０ｂ及び６１０ｃは、仮想マシンホスト６１２上で動作するものとして描写され、それは、物理的プロセッサ、メモリ、及び記憶デバイスなどの種々の物理的リソースへの共有アクセスを提供してもよい。計算ノードをホストするために、任意の数の仮想化機構が用いられ得る。
【００９１】
図６に描写される種々の計算ノードは、ウェブサービス、データベース管理システム、  ビジネスオブジェクト、監視及び診断設備などをホストするように構成されてもよい。計算ノードは、パーソナルコンピュータ、サーバ、クラスタ化された計算デバイスなどの種々の種類の計算リソースを参照してもよい。計算ノードは、例えば、携帯電話、スマートフォン、タブレット、埋め込み型デバイスなどの種々の計算デバイスを参照してもよい。ハードウェア形式で実装されるとき、計算ノードは概して、コンピュータ可読命令を記憶するように構成された１つ以上のメモリ、及びその命令を読み取り、実行するように構成された１つ以上のプロセッサに関連付けられる。ハードウェアベースの計算ノードはまた、１つ以上の記憶デバイス、ネットワークインターフェース、通信バス、ユーザインターフェースデバイスなどを含んでもよい。計算ノードはまた、ハイパーバイザを伴って、または伴わずに実装される仮想マシン、仮想化ベアメタル環境などの、仮想化された計算リソースを包含する。仮想化ベースの計算ノードは、ハードウェアリソースへの仮想化アクセス、及び非仮想化アクセスを有してもよい。計算ノードは、オペレーティングシステム及び１つ以上のアプリケーションプログラムを実行するように構成されてもよい。いくつかの実施形態では、計算ノードはまた、ベアメタルアプリケーションプログラムを含み得る。
【００９２】
少なくともいくつかの実施形態では、本明細書に説明される技術のうちの１つ以上の一部または全部を実装するサーバは、１つ以上のコンピュータアクセス可能媒体を含むか、またはそれにアクセスするように構成された汎用コンピュータシステムを含んでもよい。図７は、１つ以上のコンピュータアクセス可能媒体を含むか、またはそれにアクセスするように構成された汎用コンピュータシステムを描写する。例証される実施形態では、計算デバイス７００は、入力／出力（Ｉ／Ｏ）インターフェース７３０を介してシステムメモリ７２０に接続された１つ以上のプロセッサ７１０ａ、７１０ｂ、及び／または７１０ｎ（本明細書では単数形でプロセッサ７１０として、または複数形でプロセッサ（複数）７１０として言及される場合がある）を含む。計算デバイス７００は、Ｉ／Ｏインターフェース７３０に接続されたネットワークインターフェース７４０をさらに含む。
【００９３】
種々の実施形態では、計算デバイス７００は、１つのプロセッサ７１０を含むユニプロセッサシステム、または複数の（例えば、２、４、８、または別の好適な数の）プロセッサ７１０を含むマルチプロセッサシステムであってもよい。プロセッサ７１０は、命令を実行することができる任意の好適なプロセッサであってもよい。例えば、種々の実施形態では、プロセッサ６１０は、ｘ８６、ＰｏｗｅｒＰＣ、ＳＰＡＲＣ、またはＭＩＰＳ  ＩＳＡ、または任意の他の好適なＩＳＡなどの、多様な命令セットアーキテクチャ（ＩＳＡ）のいずれかを実装する汎用または埋め込み型プロセッサであってもよい。マルチプロセッサシステムでは、プロセッサ６１０の各々は、必ずではないが、同一のＩＳＡを共通して実装してもよい。
【００９４】
いくつかの実施形態では、グラフィック処理装置（「ＧＰＵ」）７１２は、グラフィックスレンダリング及び／または物理的処理能力の提供に関与してもよい。ＧＰＵは、例えば、グラフィック計算に特化した高度に並列化されたプロセッサアーキテクチャを含んでもよい。いくつかの実施形態では、プロセッサ７１０及びＧＰＵ７１２は、同種類のデバイスのうちの１つ以上として実装されてもよい。
【００９５】
システムメモリ７２０は、プロセッサ（単数または複数）６１０によってアクセス可能な命令及びデータを記憶するように構成されてもよい。種々の実施形態では、システムメモリ７２０は、例えば、静的ランダムアクセスメモリ（「ＳＲＡＭ」）、同時性動的ＲＡＭ（「ＳＤＲＡＭ」）、不揮発性／Ｆｌａｓｈ（登録商標）型メモリ、または任意の他の種類のメモリなどの任意の好適なメモリ技術を使用して実装されてもよい。例証される実施形態では、上記に説明される方法、技術、及びデータなどの１つ以上の所望の機能を実装するプログラム命令及びデータが、コード７２５及びデータ７２６としてシステムメモリ７２０内に記憶されるように示される。
【００９６】
１つの実施形態では、Ｉ／Ｏインターフェース７３０は、プロセッサ７１０と、システムメモリ７２０と、ネットワークインターフェース７４０または他の周辺インターフェースを含むデバイス内の任意の周辺機器との間のＩ／Ｏトラフィックを調整するように構成されてもよい。いくつかの実施形態では、Ｉ／Ｏインターフェース７３０は、あるコンポーネント（例えば、システムメモリ７２０）からのデータ信号を、別のコンポーネント（例えば、プロセッサ６１０）による使用のために好適なフォーマットに転換するための任意の必要なプロトコル、タイミング、または他のデータ変換を実施してもよい。いくつかの実施形態では、Ｉ／Ｏインターフェース７３０は、周辺コンポーネントインターコネクト（ＰＣＩ）バス規格またはユニバーサルシリアルバス（ＵＳＢ）規格の変形などの、種々の種類の周辺バスを通じて取り付けられたデバイスのためのサポートを含んでもよい。いくつかの実施形態では、Ｉ／Ｏインターフェース７３０の機能は、例えば、北ブリッジ及び南ブリッジなどの２つ以上の分離したコンポーネントに分けられてもよい。同様に、いくつかの実施形態では、例えば、システムメモリ６２０へのインターフェースなどのＩ／Ｏインターフェース７３０の機能性のうちの一部または全部は、プロセッサ７１０に直接組み込まれてもよい。
【００９７】
ネットワークインターフェース７４０は、データが、計算デバイス７００と、例えば、他のコンピュータシステムまたはデバイスなどのネットワーク（単数または複数）７５０に取り付けられた他のデバイス（単数または複数）７６０との間で交換されることを可能にするように構成されてもよい。種々の実施形態では、ネットワークインターフェース７４０は、例えば、イーサネットネットワークの種類などの任意の好適な有線または無線の一般的なデータネットワークを介して、通信をサポートしてもよい。それに加えて、ネットワークインターフェース７４０は、アナログ音声ネットワーク若しくはデジタルファイバー通信ネットワークなどの電気通信／電話ネットワークを介して、ファイバーチャンネルＳＡＮ（記憶エリアネットワーク）などの記憶エリアネットワークを介してか、または任意の他の好適な種類のネットワーク及び／若しくはプロトコルを介して、通信をサポートしてもよい。
【００９８】
いくつかの実施形態では、システムメモリ７２０は、対応する方法及び装置の実施形態を実装するための、上記に説明されるようなプログラム命令及びデータを記憶するように構成されたコンピュータアクセス可能媒体の１つの実施形態であってもよい。しかしながら、他の実施形態では、プログラム命令及び／またはデータは、異なる種類のコンピュータアクセス可能媒体上で受信、送信、または記憶されてもよい。一般的に、コンピュータアクセス可能媒体としては、例えば、Ｉ／Ｏインターフェース７３０を介して計算デバイス７００に接続されたディスクまたはＤＶＤ／ＣＤなどの磁気または光媒体などの、非一時的記憶媒体またはメモリ媒体が挙げられ得る。非一時的コンピュータアクセス可能記憶媒体としてはまた、システムメモリ７２０として計算デバイス７００のいくつかの実施形態に含まれ得る任意の揮発性または不揮発性媒体、例えば、ＲＡＭ（例えば、ＳＤＲＡＭ、ＤＤＲ  ＳＤＲＡＭ、ＲＤＲＡＭ、ＳＲＡＭなど）、ＲＯＭなど、または別の種類のメモリも挙げられ得る。さらに、コンピュータアクセス可能媒体としては、例えば、ネットワークインターフェース７４０を介して実装され得るものなどのネットワーク及び／または無線リンクなどの、通信媒体を介して伝達される、例えば、電気、電磁気、またはデジタル信号などの伝送媒体または信号が挙げられ得る。図７に例証されるものなどの複数の計算デバイスの一部分または全部が、種々の実施形態において、説明される機能性を実装するために使用されてもよく、例えば、多様な異なるデバイス及びサーバ上を走るソフトウェアコンポーネントが連携して、機能性を提供してもよい。いくつかの実施形態では、説明される機能性の一部分は、汎用コンピュータシステムを使用した実装に加えて、またはその代わりに、記憶デバイス、ネットワークデバイス、または特殊目的コンピュータシステムを使用して実装されてもよい。本明細書で使用されるとき、用語「計算デバイス」は、少なくとも全てのこれらの種類のデバイスを指し、またこれらの種類のデバイスに限定されるものではない。
【００９９】
コンピュートノード（ｃｏｍｐｕｔｅ  ｎｏｄｅ）は、計算ノード（ｃｏｍｐｕｔｉｎｇ  ｎｏｄｅ）と称される場合もあり、例えば、タブレットコンピュータ、パーソナルコンピュータ、スマートフォン、ゲームコンソール、コモディティハードウェアコンピュータ、仮想マシン、ウェブサービス、計算クラスタ、及び計算器具などの幅広い計算環境に実装されてもよい。これらの計算デバイスまたは環境のうちのいずれかは、便宜上、コンピュートノードまたは計算ノードとして説明される場合がある。
【０１００】
企業または公共部門機関などのエンティティによって、インターネット及び／または他のネットワークを介してアクセス可能な１つ以上のウェブサービス（例えば、種々の種類のクラウドベースの計算または記憶など）を分配されたクライアントのセットに提供するようにセットアップされたネットワークは、プロバイダネットワークと呼ばれ得る。かかるプロバイダネットワークは、プロバイダネットワークによって提示されるインフラストラクチャー及びウェブサービスを実装及び分配するために必要とされる、物理的及び／または仮想化されたコンピュータサーバ、記憶デバイス、ネットワーク設備などの一群などの、種々のリソースプールをホストする多数のデータセンタを含んでもよい。いくつかの実施形態では、例えば、記憶のための記憶容量、処理のための処理能力などのリソースが、インスタンスとして、関連サービスのセットとしてなど、ウェブサービスに関連する種々の装置内でクライアントに提示されてもよい。仮想計算インスタンスは、例えば、指定の計算能力（ＣＰＵの種類及び数、メインメモリサイズなどを指示することによって指定され得る）及び指定のソフトウェアスタック（例えば、特定のバージョンのオペレーティングシステムであり、これは次に、ハイパーバイザの上で走り得る）を有する１つ以上のサーバを含んでもよい。
【０１０１】
異なる実施形態においてプロバイダネットワークのリソースを実装するために、汎用または特殊目的コンピュータサーバ、記憶デバイス、ネットワークデバイスなどを含む多数の異なる種類の計算デバイスが、単一でまたは組み合わせて使用されてもよい。いくつかの実施形態では、クライアントまたはユーザは、例えば、ユーザに管理者ログイン及びパスワードを付与することによって、リソースインスタンスへの直接的なアクセスを提供されてもよい。他の実施形態では、プロバイダネットワークの操作者は、クライアントが、指定のクライアントアプリケーションのための実行要件を指定し、例えば、クライアントがインスタンスまたは実行プラットフォームに直接アクセスする必要なく、アプリケーションの実行を、そのアプリケーションに好適な実行プラットフォーム（例えば、アプリケーションサーバインスタンス、Ｊａｖａ（商標）仮想マシン（ＪＶＭ）、汎用若しくは特殊目的オペレーティングシステム、種々の解釈若しくはコンパイルされたプログラミング言語−例えば、Ｒｕｂｙ、Ｐｅｒｌ、Ｐｙｔｈｏｎ、Ｃ、Ｃ＋＋などをサポートするプラットフォーム、または高性能計算プラットフォームなど）上でクライアントの代わりにスケジュールすることを可能にしてもよい。いくつかの実装では、所与の実行プラットフォームが１つ以上のリソースインスタンスを利用してもよく、他の実装では、複数の実行プラットフォームが単一のリソースインスタンスにマッピングされてもよい。
【０１０２】
多くの環境では、異なる種類の仮想化された計算、記憶、及び／または他のネットワークアクセス可能機能性を実装するプロバイダネットワークの操作者は、顧客が、種々のリソース獲得モードでリソースへのアクセスを予約または購入することを可能にしてもよい。計算リソースプロバイダは、顧客が、所望の計算リソースを選択及び起動し、アプリケーションコンポーネントを計算リソースに展開し、その環境内で実行しているアプリケーションを維持するための設備を提供してもよい。それに加えて、計算リソースプロバイダは、顧客が、アプリケーションの変更のためのデマンドとしてか、またはその能力要件として、手動でまたは自動スケーリングを通じてのいずれかで、アプリケーションに割り振られるリソースの数及び種類を素早く容易に拡大または縮小するためのさらなる設備を提供してもよい。計算リソースプロバイダによって提供される計算リソースは、別々の装置内で利用可能にされてもよく、それはインスタンスと称され得る。インスタンスは、物理的サーバハードウェアプラットフォーム、サーバ上で実行している仮想マシンインスタンス、またはその２つの何らかの組み合わせを表してもよい。種々の種類及び構成のインスタンスは、異なるオペレーティングシステム（ＯＳ）及び／またはハイパーバイザを実行する異なるサイズのリソースを含んで、また種々のインストールされたソフトウェアアプリケーション、ランタイムなどを伴って、利用可能にされてもよい。インスタンスはさらに、例えば、論理領域、耐故障性領域、データセンタ、または基礎的な計算ハードウェアの他の地理的場所を表す、特定の可用性ゾーンで利用可能であってもよい。インスタンスは、インスタンスの冗長性を改善するために、可用性ゾーン内で、または可用性ゾーンを超えてコピーされてもよく、インスタンスは、特定の可用性ゾーン内で、または可用性ゾーンを超えて移動されてもよい。１つの例として、可用性ゾーン内の特定のサーバとのクライアント通信のレイテンシは、異なるサーバとのクライアント通信のレイテンシよりも少なくてもよい。したがって、インスタンスは、全体的なクライアント経験を改善するために、より高いレイテンシのサーバからより低いレイテンシのサーバに移動されてもよい。
【０１０３】
いくつかの実施形態では、プロバイダネットワークは、複数の地理的領域に組織化されてもよく、各領域は、１つ以上の可用性ゾーンを含んでもよい。次に、可用性ゾーン（可用性コンテナとも称され得る）は、所与の可用性ゾーン内のリソースが他の可用性ゾーン内の障害から単離または隔離され得るように構成された１つ以上の別個の場所またはデータセンタを含んでもよい。即ち、ある可用性ゾーン内の障害は、いかなる他の可用性ゾーン内の障害ももたらさないことが期待され得る。したがって、リソースインスタンスの可用性プロフィールは、異なる可用性ゾーン内のリソースインスタンスの可用性プロフィールとは独立していることが意図される。クライアントは、それぞれの可用性ゾーン内の複数のアプリケーションインスタンスを起動することによって、彼らのアプリケーションを単一の場所の障害から保護することが可能であり得る。同時に、いくつかの実装では、安価で低レイテンシのネットワーク接続性が、同一の地理的領域内に存在するリソースインスタンス間で提供されてもよい（また、同一の可用性ゾーンのリソース間のネットワーク伝送は、さらにより高速であってもよい）。
【０１０４】
前述の章に説明される過程、方法、及びアルゴリズムの各々は、１つ以上のコンピュータまたはコンピュータプロセッサによって実行されるコードモジュール内に具現化され、またそれによって完全または部分的に自動化されてもよい。コードモジュールは、ハードドライブ、ソリッドステートメモリ、光ディスクなどの任意の種類の非一時的コンピュータ可読媒体またはコンピュータ記憶デバイス上に記憶されてもよい。過程及びアルゴリズムは、特定用途向け回路内に部分的または全体的に実装されてもよい。開示される過程及び過程ステップの結果は、例えば、揮発性または不揮発性記憶装置として、任意の種類の非一時的コンピュータ記憶装置内に永続的にないしは別の方法で記憶されてもよい。
【０１０５】
上記に説明される種々の特徴及び過程は、互いに独立して使用されてもよく、または種々の方法で組み合わせられてもよい。全ての可能な組み合わせ及び部分組み合わせが、本開示の範囲内であることが意図される。それに加えて、特定の方法または過程ブロックは、いくつかの実装では省略されてもよい。本明細書に説明される方法及び過程はまた、いかなる特定の順番にも限定されず、それらに関連するブロックまたは状態は、適切な他の順番で実施され得る。例えば、説明されるブロック若しくは状態は、具体的に開示される順序以外の順序で実施されてもよく、または複数のブロック若しくは状態は、単一のブロック若しくは状態に組み合わされてもよい。ブロックまたは状態の例は、連続して、並行して、または何らかの他の様式で実施されてもよい。ブロックまたは状態は、開示される実施形態例に追加されるか、またはそれから除去されてもよい。本明細書に説明されるシステム及びコンポーネントの例は、説明されるものとは異なって構成されてもよい。例えば、要素は、開示される実施形態例に追加されるか、それから除去されるか、またはそれと比較して並べ替えられてもよい。
【０１０６】
種々の項目は、使用中にメモリ内または記憶装置上に記憶されるように例証されており、またこれらの項目またはその部分は、メモリの管理及びデータの整合性の目的のためにメモリと他の記憶デバイスとの間を移動されてもよいことも理解されるであろう。別法として、他の実施形態では、ソフトウェアモジュール及び／またはシステムのうちの一部または全部は、別のデバイス上のメモリ内で実行され、コンピュータ間通信を介して例証される計算システムと通信してもよい。さらに、いくつかの実施形態では、システム及び／またはモジュールのうちの一部または全部は、例えば、限定されるものではないが、１つ以上の特定用途向け集積回路（ＡＳＩＣ）、標準的な集積回路、制御装置（例えば、適切な命令を実行することによってなど、またマイクロ制御装置及び／または埋め込み型制御装置を含む）、フィールドプログラム可能ゲートアレイ（ＦＰＧＡ）、結合プログラム可能論理デバイス（ＣＰＬＤ）などを含むファームウェア及び／またはハードウェア内に少なくとも部分的に実装または提供されるなど、他の方法で実装または提供されてもよい。モジュール、システム、及びデータ構造のうちの一部または全部はまた、例えば、ハードディスク、メモリ、ネットワーク、または適切なデバイスによって若しくは適切な接続を介して読み取られる携帯型媒体物品などのコンピュータ可読媒体上に、（例えば、ソフトウェア命令または構造化データとして）記憶されてもよい。システム、モジュール、及びデータ構造はまた、無線ベース及び有線／ケーブルベースの媒体を含む多様なコンピュータ可読伝送媒体上に生成されるデータ信号として（例えば、搬送波または他のアナログ若しくはデジタル伝搬信号の一部として）送信されてもよく、多様な形態（例えば、単一若しくは多重アナログ信号の一部として、または複数の別個のデジタルパケット若しくはフレームとして）をとってもよい。かかるコンピュータプログラム製品はまた、他の実施形態では、他の形態をとってもよい。したがって、本発明は、他のコンピュータシステム構成と共に実践されてもよい。
【０１０７】
前述の内容は、以下の条項を考慮してよりよく理解され得る。
【０１０８】
１．データ分析を実施するためのシステムであって、前記システムは、改善されたスケーリング特性を保有し、前記システムは、
１つ以上の第１の計算ノード及び１つ以上の第２の計算ノードを含む複数の計算ノードであって、前記複数の計算ノードは、作動されると、ｎ次元キューブのスライスを維持し、前記スライスは、データ点の階層を含み、前記データ点は、１つ以上の固定次元と１つ以上の可変次元との交点に対応する、複数の計算ノードと、
コンピュータ可読命令をそこに記憶させた１つ以上のメモリであって、前記コンピュータ可読命令が、実行すると前記システムに少なくとも、
前記データ点の階層の第１のサブセットを前記１つ以上の第１の計算ノード上に維持することであって、データ点が、第１の分類の計算デマンドに関連付けられている前記階層のデータ点に少なくとも部分的に基づいて、前記第１のサブセットに含まれる、第１のサブセットを維持することと、
前記データ点の階層の第２のサブセットを前記１つ以上の第２の計算ノード上に維持することであって、データ点が、第２の分類の計算デマンドに関連付けられている前記階層のデータ点に少なくとも部分的に基づいて、前記第２のサブセットに含まれる、第２のサブセットを維持することと、
前記階層のデータ点にアクセスするための第１の要求を、前記１つ以上の第１の計算ノード上で前記要求を処理することによって処理することであって、前記１つ以上の第１の計算ノードが、前記第１の分類の計算デマンドに少なくとも部分的に基づいて、スケーリング機構と共に構成される、処理することと、を行わせる、１つ以上のメモリと、を備える、前記システム。
【０１０９】
２．前記第１の分類は、高い書き込み頻度に基づき、前記スケーリング機構は、前記１つ以上の第１の計算ノードの中で前記階層の前記第１のサブセット内のデータ点を水平にパーティション化することを含む、条項１に記載の前記システム。
【０１１０】
３．前記第１の分類は、高い読み取り頻度に基づき、前記スケーリング機構は、書き込み可能なパーティションの少なくとも１つの読み取り専用のレプリカを含む前記１つ以上の第１の計算ノードを含む、条項１に記載の前記システム。
【０１１１】
４．コンピュータ可読命令をそこに記憶させた１つ以上のメモリであって、前記コンピュータ可読命令が、実行すると前記システムに少なくとも、
前記階層に関連付けられた次元と前記次元に関連付けられた１つ以上の計算デマンドとの間のマッピングに少なくとも部分的に基づいて、前記階層の領域を分類させる、１つ以上のメモリをさらに備える、条項１に記載の前記システム。
【０１１２】
５．コンピュータ可読命令をそこに記憶させた１つ以上のメモリであって、前記コンピュータ可読命令が、実行すると前記システムに少なくとも、
前記階層内のパスを、前記パス内のデータ点へのアクセスの頻度に少なくとも部分的に基づいて、特定することと、
前記アクセスの頻度が閾値レベルを上回っている間、前記パスに関連付けられた前記データ点をメインメモリ内に維持することと、を行わせる、１つ以上のメモリをさらに備える、条項１に記載の前記システム。
【０１１３】
６．ｎ次元キューブを維持するためのコンピュータ実装方法であって、
前記ｎ次元キューブ内のデータ点の階層の第１のサブセットを特定することであって、前記サブセットが、前記階層の前記第１のサブセット内のデータ点に関連付けられた計算デマンドに少なくとも部分的に基づいて特定される、特定することと、
前記データ点に関連付けられた前記計算デマンドに少なくとも部分的に基づいて、スケーリング機構を選択することと、
前記階層の前記第１のサブセットを、少なくとも第１の計算ノード及び第２の計算ノード上に維持することであって、前記階層の前記第１のサブセットが、前記選択されたスケーリング機構に基づいて、前記第１の計算ノードと前記第２の計算ノードとの間で少なくともパーティション化または複製される、維持することと、を含む、前記方法。
【０１１４】
７．前記スケーリング機構は、読み取り頻度と比較して高い書き込み頻度に少なくとも部分的に基づいて選択される、条項６に記載の前記方法。
【０１１５】
８．少なくとも前記第１の計算ノードと前記第２の計算ノードとの間で前記階層の前記第１のサブセットのデータ点を水平にパーティション化することをさらに含む、条項７に記載の前記方法。
【０１１６】
９．前記スケーリング機構は、前記階層の前記第１のサブセット内のデータを読み取る要求に応答する前記第１の計算ノードの能力と比較して、高い読み取り頻度に少なくとも部分的に基づいて選択される、条項６に記載の前記方法。
【０１１７】
１０．前記第２の計算ノード上に、前記階層の前記第１のサブセットの少なくとも一部分であって、前記第１の計算ノード上に維持される、前記階層の前記第１のサブセットの前記少なくとも一部分を複製することをさらに含む、条項９に記載の前記方法。
【０１１８】
１１．前記階層に関連付けられた次元と前記次元に関連付けられた計算デマンドとの間のマッピングに少なくとも部分的に基づいて、前記階層の領域を分類することをさらに含む、条項６に記載の前記方法。
【０１１９】
１２．前記階層内のパスを、前記パス内のデータ点へのアクセスの頻度に少なくとも部分的に基づいて、特定することと、
前記アクセスの頻度が閾値レベルを上回っている間、前記パスに関連付けられた前記データ点をメインメモリ内に維持することと、をさらに含む、条項６に記載の前記方法。
【０１２０】
１３．前記階層の追加的なサブセットのための第２のスケーリング機構を、前記追加的なサブセット内のデータ点に関連付けられた計算デマンドに少なくとも部分的に基づいて選択することをさらに含む、条項６に記載の前記方法。
【０１２１】
１４．命令をそこに記憶させた非一時的コンピュータ可読記憶媒体であって、前記命令が、１つ以上の計算デバイスにより実行すると、前記１つ以上の計算デバイスに少なくとも、
少なくとも第１の計算ノード及び第２の計算ノード上にデータ点の階層を記憶するように決定することと、
前記データ点の階層の第１のサブセットを前記１つ以上の第１の計算ノード上に記憶することであって、データ点が、第１の分類の計算デマンドに関連付けられている前記階層のデータ点に少なくとも部分的に基づいて、前記第１のサブセットに含まれる、記憶することと、
前記データ点の階層の第２のサブセットを前記１つ以上の第２の計算ノード上に記憶することであって、データ点が、第２の分類の計算デマンドに関連付けられている前記階層のデータ点に少なくとも部分的に基づいて、前記第２のサブセットに含まれる、記憶することと、を行わせる、前記非一時的コンピュータ可読記憶媒体。
【０１２２】
１５．前記１つ以上の計算デバイスにより実行すると、前記１つ以上の計算デバイスに少なくとも、
前記第１の計算ノード及び前記第２の計算ノードを含む複数の計算ノード上にｎ次元キューブのスライスを記憶するように決定することであって、前記スライスが、前記データ点の階層、及び１つ以上の固定次元と１つ以上の可変次元との交点に対応する追加的なデータ点を含む、決定することを行わせる、さらなる命令を含む、条項１４に記載の前記非一時的コンピュータ可読記憶媒体。
【０１２３】
１６．前記１つ以上の計算デバイスにより実行すると、前記１つ以上の計算デバイスに少なくとも、
前記１つ以上の第１の計算ノードから前記データ点の階層の前記第１のサブセットの一部分を再配置することを決定することであって、前記決定することは、前記データ点に関連付けられた計算デマンドを監視することに少なくとも部分的に基づき、決定することを行わせる、さらなる命令を含む、条項１４に記載の前記非一時的コンピュータ可読記憶媒体。
【０１２４】
１７．前記第１の分類は、高い書き込み頻度に基づき、前記階層の前記第１のサブセットのデータ点は、前記１つ以上の第１の計算ノードの中で水平にパーティション化される、条項１４に記載の前記非一時的コンピュータ可読記憶媒体。
【０１２５】
１８．前記第１の分類は、高い読み取り頻度に基づき、前記１つ以上の第１の計算ノードは、書き込み可能なパーティション及び読み取り専用のレプリカを含む、条項１４に記載の前記非一時的コンピュータ可読記憶媒体。
【０１２６】
１９．前記１つ以上の計算デバイスによって実行すると、前記１つ以上の計算デバイスに少なくとも、
前記階層に関連付けられた次元と前記次元に関連付けられた１つ以上の計算デマンドとの間のマッピングに少なくとも部分的に基づいて、前記階層の領域を分類させる、さらなる命令を含む、条項１４に記載の前記非一時的コンピュータ可読記憶媒体。
【０１２７】
２０．前記１つ以上の計算デバイスにより実行すると、前記１つ以上の計算デバイスに少なくとも、
前記階層内のパスを、前記パス内のデータ点へのアクセスの頻度に少なくとも部分的に基づいて、特定することと、
前記アクセスの頻度が閾値レベルを上回っている間、前記パスに関連付けられた前記データ点をメインメモリ内に維持することと、を行わせる、さらなる命令を含む、条項１４に記載の前記非一時的コンピュータ可読記憶媒体。
【０１２８】
また、前述の内容は、以下のさらなる条項のセットを考慮してよりよく理解され得る。
【０１２９】
１．データのリアルタイムでストリームに関与するデータ上でオンライン分析処理を実施するためのシステムであって、
複数の次元を含むｎ次元キューブを維持する複数の計算ノードと、
コンピュータ可読命令をそれに記憶させた１つ以上のメモリであって、前記コンピュータ可読命令が、前記１つ以上の計算ノードによって実行すると、前記システムに少なくとも
前記ｎ次元キューブに追加的な次元を追加することを示す情報を受信することと、
データスライスを形成することであって、前記データスライスが、少なくとも前記追加的な次元と前記複数の次元のうちの少なくとも１つとの交点に対応する複数のデータ点を含む、形成することと、
前記複数のデータ点の階層を部分的に実現することであって、前記階層を部分的に実現することが、前記複数のデータ点の第１のデータ点と前記複数のデータ点の第２のデータ点との間の依存性を特定することを含み、前記複数のデータ点のうちの全てよりも少ないものが、部分的実現の間に計算される、部分的に実現することと、行わせる、１つ以上のメモリと、を備える、前記システム。
【０１３０】
２．コンピュータ可読命令をそこに記憶させた１つ以上のメモリであって、前記コンピュータ可読命令が、前記１つ以上の計算ノードによって実行すると、前記システムに少なくとも
前記複数の計算ノードのうちの少なくとも１つの上に維持されたレポジトリ内に、前記依存性を示す情報を記憶させる、１つ以上のメモリをさらに備える、条項１に記載の前記システム。
【０１３１】
３．前記レポジトリは、前記データスライスと前記ｎ次元キューブの追加的なデータスライスとの間の第２の依存性を示す情報を含む、条項２に記載の前記システム。
【０１３２】
４．コンピュータ可読命令をそこに記憶させた１つ以上のメモリであって、前記コンピュータ可読命令が、前記１つ以上の計算ノードによって実行すると、前記システムに少なくとも
前記階層の前記第１のデータ点に関連付けられた値を算出することと、
前記第１のデータ点から前記階層の追加的なデータ点までのパスを特定することであって、前記追加的なデータ点が、前記第１のデータ点の先祖である、特定することと、
前記追加的なデータ点が前記第１のデータ点と比較して古いという指示を記録することと、を行わせる、１つ以上のメモリをさらに備える、条項１に記載の前記システム。
【０１３３】
５．前記ｎ次元キューブに前記追加的な次元を追加することを示す前記情報は、前記追加的な次元に対応するデータを含む、条項１に記載の前記システム。
【０１３４】
６．コンピュータ可読命令をそこに記憶させた１つ以上のメモリであって、前記コンピュータ可読命令が、前記１つ以上の計算ノードによって実行すると、前記システムに少なくとも
データの不完全なセットに関連付けられている前記追加的なデータ点の子孫に少なくとも部分的に基づいて、前記階層の追加的なデータ点の計算を遅延させる、１つ以上のメモリをさらに備える、条項１に記載の前記システム。
【０１３５】
７．複数の計算ノード上にｎ次元キューブを維持するコンピュータ実装方法であって、
前記複数の計算ノードのうちの少なくとも１つの上にデータスライスを少なくとも形成することによって、前記ｎ次元キューブに追加的な次元を追加することであって、前記データスライスが、少なくとも前記追加的な次元と前記ｎ次元キューブの複数の次元のうちの少なくとも１つとの交点に対応する複数のデータ点を含む、追加することと、
前記複数のデータ点の階層を部分的に形成することであって、前記階層を部分的に形成することが、前記複数のデータ点の第１のデータ点と前記複数のデータ点の第２のデータ点との間の依存性を特定することを含む、部分的に形成することと、を含む、前記コンピュータ実装方法。
【０１３６】
８．前記データスライスと、前記複数の計算ノードのうちの第２の少なくとも１つの上に維持された別のデータスライスとの間の第２の依存性を特定することと、
前記複数の計算ノードのうちの第３の少なくとも１つの上に維持されたレポジトリ内に、前記依存性を示す情報を記憶することと、をさらに含む、条項７に記載の前記コンピュータ実装方法。
【０１３７】
９．前記階層の前記第１のデータ点の値を算出することと、
前記第１のデータ点から前記階層の追加的なデータ点までのパスを特定することであって、前記追加的なデータ点が、前記第１のデータ点の先祖である、特定することと、
前記追加的なデータ点が前記第１のデータ点と比較して古いという指示を記録することと、をさらに含む、条項７に記載の前記コンピュータ実装方法。
【０１３８】
１０．前記ｎ次元キューブに前記追加的な次元を追加することを示す情報を受信することであって、前記情報が、前記追加的な次元に対応するデータを含む、受信することをさらに含む、条項７に記載の前記コンピュータ実装方法。
【０１３９】
１１．データの不完全なセットに関連付けられている前記追加的なデータ点の子孫に少なくとも部分的に基づいて、前記階層の追加的なデータ点の計算を遅延することをさらに含む、条項７に記載の前記コンピュータ実装方法。
【０１４０】
１２．前記追加的なデータ点は、期間を代表する集約値に関連付けられる、条項１１に記載の前記コンピュータ実装方法。
【０１４１】
１３．前記ｎ次元キューブ内のデータの前のアクセスパターンに少なくとも部分的に基づいて、前記追加的なデータ点を計算することをさらに含む、条項１１に記載の前記コンピュータ実装方法。
【０１４２】
１４．前記追加的なデータ点の子孫に関連付けられた値の外挿に少なくとも部分的に基づいて、前記階層の追加的なデータ点を計算することをさらに含む、条項７に記載の前記コンピュータ実装方法。
【０１４３】
１５．前記階層が変更された属性値と比較して古いことを決定することと、
前記変更された属性値と比較して前記階層の第１のレベルの計算を優先することと、
前記階層の第２のレベルの計算を遅延することであって、前記第２のレベルは前記第１のレベルに依存する、遅延することと、
ドリルダウン、ドリルアップ、またはピボットイベントのうちの少なくとも１つに応答して前記階層の前記第２のレベルの計算を優先することと、をさらに含む、条項７に記載の前記コンピュータ実装方法。
【０１４４】
１６．命令をそこに記憶させた非一時的コンピュータ可読記憶媒体であって、前記命令が、１つ以上の計算デバイスによって実行すると、前記１つ以上の計算デバイスに少なくとも、
前記複数の計算ノードのうちの少なくとも１つの上にデータスライスを少なくとも形成することによって、ｎ次元キューブに追加的な次元を追加することであって、前記データスライスが、少なくとも前記追加的な次元と前記ｎ次元キューブの複数の次元のうちの少なくとも１つとの交点に対応する複数のデータ点を含む、追加することと、
前記複数のデータ点の階層を部分的に形成することであって、前記階層を部分的に形成することが、前記複数のデータ点の第１のデータ点と前記複数のデータ点の第２のデータ点との間の依存性を特定することを含む、部分的に形成することと、を行わせる、前記非一時的コンピュータ可読記憶媒体。
【０１４５】
１７．前記１つ以上の計算デバイスによって実行すると、前記１つ以上の計算デバイスに少なくとも、
前記データスライスと、前記複数の計算ノードのうちの第２の少なくとも１つの上に維持された別のデータスライスとの間の第２の依存性を特定することと、
前記複数の計算ノードのうちの第３の少なくとも１つの上に維持されたレポジトリ内に、前記依存性を示す情報を記憶することと、を行わせる、さらなる命令を含む、条項１６に記載の前記非一時的コンピュータ可読記憶媒体。
【０１４６】
１８．前記１つ以上の計算デバイスによって実行すると、前記１つ以上の計算デバイスに少なくとも、
前記階層の前記第１のデータ点の値を算出することと、
前記第１のデータ点から前記階層の追加的なデータ点までのパスを特定することであって、前記追加的なデータ点が、前記第１のデータ点の先祖である、特定することと、
前記追加的なデータ点に関連付けられた追加的な値が、前記第１のデータ点と比較して古いという指示を記録することと、を行わせる、さらなる命令を含む、条項１６に記載の前記非一時的コンピュータ可読記憶媒体。
【０１４７】
１９．前記１つ以上の計算デバイスによって実行すると、前記１つ以上の計算デバイスに少なくとも、
前記ｎ次元キューブに前記追加的な次元を追加することを示す情報を受信することであって、前記情報が、前記追加的な次元に対応するデータを含む、受信することを行わせる、さらなる命令を含む、条項１６に記載の前記非一時的コンピュータ可読記憶媒体。
【０１４８】
２０．前記１つ以上の計算デバイスによって実行すると、前記１つ以上の計算デバイスに少なくとも、
データの不完全なセットに関連付けられている前記追加的なデータ点の子孫に少なくとも部分的に基づいて、前記階層の追加的なデータ点に関連付けられた値の計算を遅延させる、さらなる命令を含む、条項１６に記載の前記非一時的コンピュータ可読記憶媒体。
【０１４９】
２１．前記１つ以上の計算デバイスによって実行すると、前記１つ以上の計算デバイスに少なくとも、
データの不完全なセットに基づいて、前記階層の追加的なデータ点の集約値を計算することであって、前記データの不完全なセットが、未だ経過していない期間に対応する、計算することと、
前記追加的なデータ点の先祖に関連付けられた値の計算を最初に遅延することと、
前記経過期間に応答して、前記追加的なデータ点の前記先祖に関連付けられた前記値の計算を優先することと、を行わせる、さらなる命令を含む、条項１６に記載の前記非一時的コンピュータ可読記憶媒体。
【０１５０】
２２．前記１つ以上の計算デバイスによって実行すると、前記１つ以上の計算デバイスに少なくとも、
前記階層が変更された属性値と比較して古いことを決定することと、
前記変更された属性値と比較して前記階層の第１のレベルの計算を優先することと、
前記階層の第２のレベルの計算を最初に遅延することであって、前記第２のレベルは前記第１のレベルに依存する、最初に遅延することと、
ドリルダウン、ドリルアップ、またはピボットイベントのうちの少なくとも１つに応答して前記階層の前記第２のレベルの計算を優先することと、を行わせる、さらなる命令を含む、条項１６に記載の前記非一時的コンピュータ可読記憶媒体。
【０１５１】
加えて、前述の内容は、これらのさらなる条項を考慮してよりよく理解され得る。
【０１５２】
１．データのリアルタイムストリームに関与するデータ上でオンライン分析処理を実施するためのシステムであって、
複数の次元と、前記複数の次元の少なくとも１つのサブセットの交点に対応する複数のデータ点とを含むｎ次元キューブを維持する１つ以上の計算ノードであって、前記複数のデータ点が、第１のデータ点及び第２のデータ点を含む、１つ以上の計算ノードと、
コンピュータ可読命令をそこに記憶させた１つ以上のメモリであって、前記コンピュータ可読命令が、前記１つ以上の計算ノードによって実行すると、前記システムに少なくとも
前記第１のデータ点と前記第２のデータ点との間の依存性を特定することであって、前記依存性が、前記第１のデータ点に基づいた前記第２のデータ点の算出を含む、特定することと、
前記第２のデータ点を算出するための優先度を決定することであって、前記優先度が、前記第２のデータ点にアクセスするための要求を受信する機会を示す情報に少なくとも部分的に基づく、決定することと、
前記優先度と前記第１のデータ点への変更とに少なくとも部分的に基づいて、前記第２のデータ点の算出をスケジュールすることと、を行わせる、１つ以上のメモリと、を備える、前記システム。
【０１５３】
２．コンピュータ可読命令をそこに記憶させた１つ以上のメモリであって、前記コンピュータ可読命令が、前記１つ以上の計算ノードによって実行すると、前記システムに少なくとも
ユーザインターフェースとの相互作用を示す情報の受信に少なくとも部分的に基づいて、前記第２のデータ点にアクセスするための前記要求を受信する前記機会を算出させる、１つ以上のメモリをさらに備える、条項１に記載の前記システム。
【０１５４】
３．コンピュータ可読命令をそこに記憶させた１つ以上のメモリであって、前記コンピュータ可読命令が、前記１つ以上の計算ノードによって実行すると、前記システムに少なくとも
前記ｎ次元キューブまたは前記ｎ次元キューブに関連するトランザクションデータソースのうちの少なくとも１つに対して実行される照会によって暗示されるアクセスパターンに少なくとも部分的に基づいて、前記第２のデータ点にアクセスするための前記要求を受信する前記機会を算出させる、１つ以上のメモリをさらに備える、条項１に記載の前記システム。
【０１５５】
４．コンピュータ可読命令をそこに記憶させた１つ以上のメモリであって、前記コンピュータ可読命令が、前記１つ以上の計算ノードによって実行すると、前記システムに少なくとも
ドリルダウン、ドリルアップ、またはピボットのうちの少なくとも１つを実施するための要求に少なくとも部分的に基づいて、前記第２のデータ点にアクセスするための前記要求を受信する前記機会を算出させる、１つ以上のメモリをさらに備える、条項１に記載の前記システム。
【０１５６】
５．コンピュータ可読命令をそこに記憶させた１つ以上のメモリであって、前記コンピュータ可読命令が、前記１つ以上の計算ノードによって実行すると、前記システムに少なくとも
前記第２のデータ点を算出する間に経過した時間に少なくとも部分的に基づいて、前記第２の値を算出するための前記優先度を決定させる、１つ以上のメモリをさらに備える、条項１に記載の前記システム。
【０１５７】
６．ｎ次元キューブのデータ点に関連付けられた値を算出するためのコンピュータ実装方法であって、
第１のデータ点と第２のデータ点との間の依存性を特定することと、
前記第２のデータ点を算出するための優先度を決定することであって、前記優先度が、前記第２のデータ点にアクセスするための要求を受信する機会を示す情報に少なくとも部分的に基づく、決定することと、
前記優先度と前記第１のデータ点への変更とに少なくとも部分的に基づいて、前記第２のデータ点の算出をスケジュールすることと、を含む、前記コンピュータ実装方法。
【０１５８】
７．前記第２のデータ点の前記算出をスケジュールすることは、前記優先度に少なくとも部分的に基づいて、前記第１及び第２のデータ点をソートすることを含む、条項６に記載の前記コンピュータ実装方法。
【０１５９】
８．ドリルダウン、ドリルアップ、またはピボット制御のうちの少なくとも１つとの相互作用を示す情報の受信に少なくとも部分的に基づいて、前記第２のデータ点にアクセスするための前記要求を受信する前記機会を算出することをさらに含む、条項６に記載の前記コンピュータ実装方法。
【０１６０】
９．前記ｎ次元キューブまたは前記ｎ次元キューブに関連するトランザクションデータソースのうちの少なくとも１つに対して実行される照会によって暗示されるアクセスパターンに少なくとも部分的に基づいて、前記第２のデータ点にアクセスするための前記要求を受信する前記機会を算出することをさらに含む、条項６に記載の前記コンピュータ実装方法。
【０１６１】
１０．前記アクセスパターンは、集約値へのアクセスを含む、条項９に記載の前記コンピュータ実装方法。
【０１６２】
１１．前記第２のデータ点を計算するコストに少なくとも部分的に基づいて、前記第２のデータ点を算出するための前記優先度を決定することをさらに含む、条項６に記載の前記コンピュータ実装方法。
【０１６３】
１２．前記第２のデータ点にアクセスするための前記要求の受信に少なくとも部分的に基づいて、前記第２のデータ点を算出することをさらに含む、条項６に記載の前記コンピュータ実装方法。
【０１６４】
１３．ユーザに表示するために計算デバイスに送信されている前記第１のデータ点に少なくとも部分的に基づいて、前記第２の値にアクセスするための前記要求の受信が増加されることを決定することをさらに含む、条項６に記載の前記コンピュータ実装方法。
【０１６５】
１４．命令をそこに記憶させた非一時的コンピュータ可読記憶媒体であって、前記命令が、１つ以上の計算デバイスによって実行すると、前記１つ以上の計算デバイスに少なくとも、
ｎ次元キューブの第１のデータ点と第２のデータ点との間の依存性を特定することと、
前記第２のデータ点を算出するための優先度を決定することであって、前記優先度が、前記第２のデータ点にアクセスするための要求を受信する機会を示す情報に少なくとも部分的に基づく、決定することと、
前記優先度と前記第１のデータ点への変更とに少なくとも部分的に基づいて、前記第２のデータ点の算出をスケジュールすることと、を行わせる、前記非一時的コンピュータ可読記憶媒体。
【０１６６】
１５．前記１つ以上の計算デバイスによって実行すると、前記１つ以上の計算デバイスに少なくとも、
ドリルダウン、ドリルアップ、またはピボット動作のうちの少なくとも１つの実施を示す情報の受信に少なくとも部分的に基づいて、前記第２のデータ点にアクセスするための前記要求を受信する前記機会を算出させる、さらなる命令を含む、条項１４に記載の前記非一時的コンピュータ可読記憶媒体。
【０１６７】
１６．前記１つ以上の計算デバイスによって実行すると、前記１つ以上の計算デバイスに少なくとも、
前記ｎ次元キューブまたは前記ｎ次元キューブに関連するトランザクションデータソースのうちの少なくとも１つに対して実行される照会によって暗示されるアクセスパターンに少なくとも部分的に基づいて、前記第２のデータ点にアクセスするための前記要求を受信する前記機会を算出させる、さらなる命令を含む、条項１４に記載の前記非一時的コンピュータ可読記憶媒体。
【０１６８】
１７．前記アクセスパターンは、前記ｎ次元キューブまたは前記ｎ次元キューブに関連する前記トランザクションデータソースのうちの少なくとも１つによって処理される照会を含み、前記照会は、集約句を含む、条項１６に記載の前記非一時的コンピュータ可読記憶媒体。
【０１６９】
１８．前記１つ以上の計算デバイスによって実行すると、前記１つ以上の計算デバイスに少なくとも、
前記第２のデータ点を計算するコストに少なくとも部分的に基づいて、前記第２のデータ点を算出するための前記優先度を決定させる、さらなる命令を含む、条項１４に記載の前記非一時的コンピュータ可読記憶媒体。
【０１７０】
１９．前記１つ以上の計算デバイスによって実行すると、前記１つ以上の計算デバイスに少なくとも、
前記第２のデータ点にアクセスするための前記要求の受信に少なくとも部分的に基づいて、前記第２のデータ点を算出させる、さらなる命令を含む、条項１４に記載の前記非一時的コンピュータ可読記憶媒体。
【０１７１】
２０．前記１つ以上の計算デバイスによって実行すると、前記１つ以上の計算デバイスに少なくとも、
ユーザに表示するために計算デバイスに送信されている前記第１の値に少なくとも部分的に基づいて、前記第２の値にアクセスするための前記要求の受信が増加されることを決定させる、さらなる命令を含む、条項１４に記載の前記非一時的コンピュータ可読記憶媒体。
【０１７２】
２１．前記１つ以上の計算デバイスによって実行すると、前記１つ以上の計算デバイスに少なくとも、
前記優先度に少なくとも部分的に基づいて、前記第２のデータ点を算出するように決定することであって、前記優先度が、前記ｎ次元キューブ内の他のデータ点を算出するための優先度と比較される、決定することを行わせる、さらなる命令を含む、条項１４に記載の前記非一時的コンピュータ可読記憶媒体。
【０１７３】
２２．前記１つ以上の計算デバイスによって実行すると、前記１つ以上の計算デバイスに少なくとも、
前記第２のデータ点、次元、階層、または前記ｎ次元キューブのうちの少なくとも１つに関連付けられたセキュリティ属性に少なくとも部分的に基づいて、前記第２のデータ点を算出することを決定させる、さらなる命令を含む、条項１４に記載の前記非一時的コンピュータ可読記憶媒体。
【０１７４】
本明細書で使用される条件付き文言、例えば、とりわけ「ｃａｎ」「ｃｏｕｌｄ」「ｍｉｇｈｔ」「ｍａｙ」「ｅ．ｇ．，」などは、別段に明確にそうではないことが示されるか、さもなければ使用される文脈内で理解されない限り、特定の実施形態が特定の特徴、要素、及び／またはステップを含み、一方で他の実施形態は含まないことを伝えることが意図される。したがって、かかる条件付き文言は、概して、特徴、要素、及び／またはステップが１つ以上の実施形態に任意の方法で必要とされること、または１つ以上の実施形態が、筆者の入力若しくは指示を伴って、若しくは伴わずに、これらの特徴、要素、及び／若しくはステップが任意の具体的な実施形態に含まれるか、若しくは任意の具体的な実施形態で実施されるべきであるかを決定するための論理を含む必要があることを意味することを意図するものではない。用語「ｃｏｍｐｒｉｓｉｎｇ」「ｉｎｃｌｕｄｉｎｇ」「ｈａｖｉｎｇ」などは、同義であり、オープンエンドな様式で包括的に使用され、さらなる要素、特徴、行為、動作などを排除するものではない。同様に、用語「ｏｒ」は、使用されるときに、例えば、要素のリストを接続するように、その包括的な意味で（その排他的な意味ではなく）使用され、用語「ｏｒ」は、そのリスト内の要素のうちの１つ、いくつか、または全てを意味する。
【０１７５】
特定の実施形態の例を説明してきたが、これらの実施形態は、単に例のために提示されており、本明細書に開示される発明の範囲を制限することを意図するものではない。したがって、前述の説明のいずれも、任意の具体的な特徴、特性、ステップ、モジュール、またはブロックが必要または必須であることを意味することを意図するものではない。実際、本明細書に説明される新規の方法及びシステムは、多様な他の形態で具現化されてもよく、さらに、本明細書に説明される方法及びシステムの形態の種々の省略、置換、及び変更が、本明細書に開示される発明の範囲から逸脱することなく行われてもよい。添付の特許請求の範囲及びその等価物は、本明細書に開示される特定の発明の範囲及び精神の範囲内であろう修正のかかる形態を網羅することが意図される。
【図１Ａ】
0006305645.tif 000002
【図１Ｂ】
0006305645.tif 000003
【図２Ａ】
0006305645.tif 000004
【図２Ｂ】
0006305645.tif 000005
【図２Ｃ】
0006305645.tif 000006
【図３Ａ】
0006305645.tif 000007
【図３Ｂ】
0006305645.tif 000008
【図４】
0006305645.tif 000009
【図５Ａ】
0006305645.tif 000010
【図５Ｂ】
0006305645.tif 000011
【図６】
0006305645.tif 000012
【図７】
0006305645.tif 000013