(57)【要約】  オンライン分析処理（ＯＬＡＰ）データ・キューブの動的増分更新のためのシステムおよび方法が開示される。実施形態において、コンピュータ実施方法が、複数のデータ・フィールドを含む実時間トランザクショナル事象データを受け取ることと、更新されるターゲット・データ・キューブの複数の標準クエリ言語（ＳＱＬ）クエリのそれぞれに対して集計コンピューティング関数を識別することであって、ターゲット・データ・キューブが、フィールドに編成される数値の形でＯＬＡＰデータを記憶するための多次元の形である、識別することと、更新された集計されたフィールド・データベースから取得された現在の集計された値と複数のデータ・フィールドのうちの１つの値とに基づいて集計コンピューティング関数を増分的に計算することと、ターゲット・データ・キューブのための更新されたフィールド・データを取得するために複数のＳＱＬクエリのそれぞれに対して増分計算を繰り返すことと、更新された集計されたフィールド・データベースを、更新されたフィールド・データで更新することとを含む。
2021529367.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ実施方法であって、
実時間トランザクショナル事象データを１つまたは複数のリモート・トランザクション・コンピューティング・デバイスから受け取ることであって、前記実時間トランザクショナル事象データが、値を含む複数のデータ・フィールドを含む、前記受け取ることと、
更新されるターゲット・データ・キューブの複数の標準クエリ言語（ＳＱＬ）クエリのそれぞれに対して集計コンピューティング関数を識別することであって、前記ターゲット・データ・キューブが、フィールドに編成される数値の形でオンライン分析処理（ＯＬＡＰ）データを記憶するための多次元の形である、前記識別することと、
更新された集計されたフィールド・データベースから取得された現在の集計された値と、前記複数のデータ・フィールドのうちの１つの値とに基づいて前記集計コンピューティング関数を増分的に計算することと、
前記ターゲット・データ・キューブのための更新されたフィールド・データを取得するために前記複数のＳＱＬクエリのそれぞれに対して前記増分計算を繰り返すことと、
前記更新された集計されたフィールド・データベースを、前記更新されたフィールド・データで更新すること
とを含み、
前記実時間トランザクショナル事象データを前記受け取ることおよび前記集計コンピューティング関数を前記増分的に計算することが、継続的に動的に実施される、方法。
【請求項２】
前記複数のデータ・フィールドを前記実時間トランザクショナル事象データから抽出することをさらに含む、請求項１に記載の方法。
【請求項３】
ファクト・テーブル・データベースを前記複数のデータ・フィールドで更新することをさらに含む、請求項２に記載の方法。
【請求項４】
更新される前記ターゲット・データ・キューブを識別することをさらに含む、請求項１に記載の方法。
【請求項５】
前記更新された集計されたフィールド・データベースから前記ＳＱＬクエリの定義を抽出することをさらに含む、請求項１に記載の方法。
【請求項６】
ビジネス・インテリジェンス報告書における使用のために前記更新された集計されたフィールド・データベースからの報告データをリモート参加コンピューティング・デバイスに提供することをさらに含む、請求項１に記載の方法。
【請求項７】
請求項１ないし６のいずれかに記載の方法のすべてのステップを実行するように適合された手段を備えるシステム。
【請求項８】
コンピュータ・プログラムがコンピュータ・システムで実行されるとき、請求項１ないし６のいずれかに記載の方法のすべてのステップを実行するための命令を含むコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、キャッシュされたデータを管理することおよび更新することに関し、より詳しくは、オンライン分析処理（ＯＬＡＰ）データ・キューブの動的増分更新に関する。
【背景技術】
【０００２】
ビジネス・インテリジェンス（ＢＩ：Ｂｕｓｉｎｅｓｓ  Ｉｎｔｅｌｌｉｇｅｎｃｅ）は、トランザクショナル・データベースからのデータを分析し、集計するための技術主導型プロセスであり、そこでは、データのキューブが、規則的な間隔で（通常毎夜）準備され、リフレッシュされる。オンライン分析処理（ＯＬＡＰ：ｏｎｌｉｎｅ  ａｎａｌｙｔｉｃａｌ  ｐｒｏｃｅｓｓｉｎｇ）は、多くのＢＩ適用例の背後にある技術であり、そこでは、１つまたは複数のコンピュータ・プロセッサが、データの多次元分析を実施する。ＯＬＡＰ中に集められたすべてのデータは、ファクト・テーブルに収集される。膨大な量のデータを生成するほんとんどの顧客システムは、「トランザクション的に」分析または評価することができない。したがって、ＯＬＡＰデータは、典型的にはＯＬＡＰデータ・キューブに集計される。このプロセス中に生成されたＯＬＡＰデータ・キューブは、製品管理者または顧客層に対してそれらがビジネス・インサイトを収集するためにダッシュボードまたは報告書として顕在化させることができる。ＯＬＡＰを介して分析することができるデータの例には、ポータル・サイトおよび検索エンジンのウェブ・ログからのクリック・ストリーム・データ、銀行取引、店舗ロジスティクス、販売時点情報管理データなどが含まれ、次いで、それらは、ユーザに対して報告書として顕在化される。典型的には、１つまたは複数のプロセッサは、トランザクショナル・データを読み取り、データ・ログを利用し、計算、合計、集計などを実施するためにバッチ・ジョブを実行し、毎夜、毎週、毎月、または毎年で、結果をＯＬＡＰデータ・キューブにロードする。
【発明の概要】
【０００３】
本発明は、請求項１において特許請求される方法、および対応するシステムおよびコンピュータ・プログラムを提供する。
【０００４】
本発明は、本発明の例示的な実施形態の非限定例により、示された複数の図面を参照して、後に続く詳細な説明において説明する。
【図面の簡単な説明】
【０００５】
【図１】本発明の実施形態によるコンピューティング・インフラストラクチャを示す図である。
【図２】本発明の態様に従った例示的な環境を示す図である。
【図３Ａ】本発明の態様に従った方法のステップのフローチャートである。
【図３Ｂ】本発明の態様に従った方法のステップのフローチャートである。
【図４】本発明の態様に従った例示的な方法のフロー・ダイヤグラムである。
【図５】本発明の実施形態に従ったコンピュータ関数の増分集計の例示的な例を示す図である。
【図６】動的増分リフレッシュ可能データ・キューブ・キャッシュ・サブセットのブロック図である。
【発明を実施するための形態】
【０００６】
本発明は、一般に、キャッシュされたデータを管理することおよび更新することに関し、より詳しくは、オンライン分析処理（ＯＬＡＰ）データ・キューブの動的増分更新に関する。上記のように、典型的には、１つまたは複数のオンライン分析処理（ＯＬＡＰ）コンピュータ・プロセッサは、トランザクショナル・データを読み取り、データ・ログを利用し、計算、合計、集計などを実施するためにバッチ・ジョブを実行し、毎夜、毎週、毎月、または毎年に、結果をＯＬＡＰデータ・キューブにロードする。そのようなバッチ・ジョブは、合計数百テラバイトのデータになることもある膨大なデータ・セットがディスクから読み取られ、メモリ構造上にロードされ、データ計算に利用され、ターゲット・データ・キューブにロードされるので、非常に資源集約的である。典型的には、バッチＯＬＡＰ更新は、ピーク・ビジネス時間中にデータベース性能が影響を受けないように、オフピーク時間中に実施される。しかしながら、分析されるデータ量が増加するにつれて、これらの大きなデータ・セットを処理するのに必要な時間も増加し、正規またはピーク・ビジネス時間に超過して食い込み、結果として大きなビジネス上の問題になる虞がある処理停止を生じさせる場合がある。結果として、バッチ・ジョブのスケジューリングが常に縮小することが典型的であり、それによって、ＯＬＡＰコンピューティング・システムが、常にバッチ・ジョブの処理に追いつこうとするのである。
【０００７】
大きなデータ・セットの問題に対する代替解決策は、ＯＬＡＰコンピューティング・システムがデータを別のサーバに転送して処理をすることである。この方式は、追加のハードウェア、ソフトウェアおよび保守努力を必要とし、全ＯＬＡＰコストを増加させる。コンピュータの能力を増加させて、集計ジョブをビッグ・データ・プラットフォーム（例えば、Ａｐａｃｈｅ  Ｈａｄｏｏｐ（登録商標））上のデータ・クラスタに委譲することによって、この問題に対処しようとした者もいる。この解決策は、膨大な量のデータをリレーショナル・データ・ベース管理システム（ＲＤＢＭＳ）からＨａｄｏｏｐ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｆｉｌｅ  Ｓｙｓｔｅｍ（ＨＤＦＳ）ベースのクラスタに転送することを必要とする。この解決策は、また、これらのＨＤＦＳクラスタを準備するためにハードウェアおよびソフトウェアの観点から大きな投資を必要とする。この解決策のためのファイルのオフローディングおよび転送もやはり時間のかかるステップであり、問題の根本原因に対処しないし、拡張可能な解決策ももたらさない。
【０００８】
現在、トランザクショナル・フィード（入力トランザクショナル・データ）に基づいてＯＬＡＰデータ・キューブを増分的におよび正確に最新に保持するメカニズムはない。有利には、本発明の実施形態は、実時間トランザクショナル事象データに基づいて増分ＯＬＡＰデータ・キューブ更新を実施するために、機能を、独創的なプログラミングを有する特殊コンピューティング・デバイスを使用してＯＬＡＰコンピューティング・システムに追加する。実時間トランザクショナル事象データは、データが生成されるにつれて継続的に取得することができる。態様において、本発明の実施形態は、資源集約的なＯＬＡＰバッチ・ジョブおよびＯＬＡＰデータ・キューブ生成の技術的問題を解決するために拡張可能な方法を提供する。本発明の実施形態は、新たなプロセスを利用する（例えば、更新されたＯＬＡＰデータ・キューブを作り出すために、集計されていない実時間入力フィールド・データを集計されたフィールド・データと比較する）新たな種類のデータを利用する（例えば、更新のためにターゲットＯＬＡＰデータ・キューブを識別する）。実施形態において、ＯＬＡＰコンピューティング・システムは、継続的に更新された集計されたデータ・キューブからの報告書またはダッシュボードあるいはその両方の直接生成を可能にする。さらに、本発明の実施形態は、本発明の態様に従ったＯＬＡＰコンピューティング・システムが従来のバッチ型ＯＬＡＰコンピューティング・システムに比較してより少ない処理資源を必要とするので、ＯＬＡＰコンピュータ・システムの改善を構成する。すなわち、本発明の実施形態により、ジョブが実行されるたびにＯＬＡＰデータ・キューブ全体を最初から構築するために膨大なバッチ・ジョブを実行する必要がなくなる。
【０００９】
本発明は、統合の任意の可能な技術的詳細レベルにおいてシステム、方法、またはコンピュータ・プログラム製品あるいはその組合せであってもよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためにその上にコンピュータ可読プログラム命令を有する１つのまたは複数のコンピュータ可読記憶媒体を含むことができる。
【００１０】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持し、記憶することができる有形デバイスであることができる。例えば、コンピュータ可読記憶媒体は、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁気記憶デバイス、半導体記憶デバイス、または前述のものの任意の適切な組合せであってもよいが、それに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには、携帯用コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラム可能読み取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、携帯用コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピ・ディスク、パンチカードまたはその上に命令を記録した溝における持ち上がった構造などの機械的にエンコードされたデバイス、および前述のものの任意の適切な組合せが含まれる。コンピュータ可読記憶媒体は、本明細書で使用されるとき、電波または他の自由に伝播する電磁波、導波路または他の伝送媒体中を伝播する電磁波（例えば、光ファイバ・ケーブル中を通過する光パルス）、または電線を通じて伝送される電気信号などの、それ自体が一過性の信号であると解釈されないものとする。
【００１１】
本明細書に説明するコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング／処理デバイスに、またはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークまたは無線ネットワークあるいはその組合せを介して外部コンピュータまたは外部記憶デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルーター、ファイアウォール、スイッチ、ゲートウェイ・コンピュータまたはエッジ・サーバあるいはその組合せを備えることができる。各コンピューティング／処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ可読プログラム命令をネットワークから受け取り、それぞれのコンピューティング／処理デバイス内のコンピュータ可読記憶媒体への記憶のためにコンピュータ可読プログラム命令を転送する。
【００１２】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ）命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、またはＳｍａｌｌｔａｌｋ（登録商標）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または同様のプログラミング言語などの手続きプログラミング言語を含む、１つまたは複数のプログラミング言語の任意の組合せで作成されたソース・コードもしくはオブジェクト・コードのいずれかでもよい。コンピュータ可読プログラム命令は、全体的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、独立型のソフトウェア・パッケージとして、部分的にユーザのコンピュータ上および部分的にリモート・コンピュータ上で、または全体的にリモート・コンピュータもしくはサーバ上で実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）を含む、任意の種類のネットワークを通じてユーザのコンピュータに接続することができ、または外部コンピュータに接続することができる（例えば、インターネット・サービス・プロバイダを使用してインターネットを通じて）。いくつかの実施形態において、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはプログラマブル・ロジック・アレイ（ＰＬＡ）を含む電子回路は、本発明の態様を実施するために、電子回路を個別化するコンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行することができる。
【００１３】
本発明の態様は、本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して本明細書において説明する。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方のブロックの組合せは、コンピュータ可読プログラム命令によって実施することができることが理解されよう。
【００１４】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供されて、マシンを作り出すものであってもよい。これらのコンピュータ可読プログラム命令は、中に記憶された命令を有するコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／動作の態様を実施する命令を含んだ製品を備えるべく、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラム可能データ処理装置、または他のデバイスあるいはその組合せに特定の方式で機能するように指示するものであってもよい。
【００１５】
コンピュータ可読プログラム命令は、コンピュータ、他のプログラム可能装置、または他のデバイスで実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックで指定された機能／動作を実施するように、コンピュータ実施プロセスを生成するべく、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
【００１６】
図におけるフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実施のアーキテクチャ、機能、および動作を示す。この点において、フローチャートまたはブロック図における各ブロックは、指定された論理機能（複数可）を実施するための１つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または一部分を表すことができる。いくつかの代替実施において、ブロックに記載された機能は、図に記載された順番以外で行われる場合がある。例えば、連続して示す２つのブロックは、実質的に同時に実行することができ、またはブロックは、関与する機能に応じて時には逆の順番で実行することもできる。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組合せは、指定された機能または動作を実施し、または専用ハードウェアとコンピュータ命令との組合せを実行する、専用ハードウェアベースのシステムによって実施することができることも留意される。
【００１７】
次に図１を参照すると、コンピューティング・インフラストラクチャの例の概略が示される。コンピューティング・インフラストラクチャ１０は、適切なコンピューティング・インフラストラクチャの一例に過ぎず、本明細書に説明する本発明の実施形態の使用または機能の範囲に関する任意の限定を提案することが意図されていない。それにもかかわらず、コンピューティング・インフラストラクチャ１０を実施することができ、またはコンピューティング・インフラストラクチャ１０は上記に記載された機能のいずれかを実施することができ、あるいはその両方ができる。
【００１８】
コンピューティング・インフラストラクチャ１０には、コンピュータ・システム（またはサーバ）１２があり、それは数多くの他の汎用または専用コンピューティング・システム環境または構成に対して動作可能である。コンピュータ・システム１２に使用するのに適切であることができる、周知のコンピューティング・システム、環境、または構成あるいはその組合せの例には、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラマブル・コンシューマ・エレクトロニクス、ネットワークＰＣ、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記のシステムまたはデバイスのうちのいずれかを含む分散クラウド・コンピューティング環境などが含まれるが、それに限定されない。
【００１９】
コンピュータ・システム１２は、コンピュータ・システムによって実行される、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な文脈で説明することができる。一般に、プログラム・モジュールには、特定のタスクを実施し、または特定の抽象データ型を実施する、ルーチン、プログラム、オブジェクト、構成要素、論理回路、およびデータ構造などが含まれる場合がある。コンピュータ・システム１２は、タスクが、通信ネットワークを通じてリンクされるリモート処理デバイスによって実施される分散クラウド・コンピューティング環境において実行することができる。分散クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ記憶デバイスを含む、ローカルおよびリモート・コンピュータ・システム記憶媒体の両方に配置することができる。
【００２０】
図１に示すように、コンピューティング・インフラストラクチャ１０におけるコンピュータ・システム１２は、汎用コンピューティング・デバイスの形で示される。コンピュータ・システム１２の構成要素は、１つまたは複数のプロセッサまたは処理ユニット（例えば、ＣＰＵ）１６、システム・メモリ２８、およびシステム・メモリ２８を含む様々なシステム構成要素をプロセッサ１６に結合するバス１８を含むことができるが、それに限定されない。
【００２１】
バス１８は、メモリ・バスまたはメモリ・コントローラ、周辺機器用バス、アクセラレイティッド・グラフィックス・ポート、および様々なバス・アーキテクチャのうちのいずれかを使用するプロセッサまたはローカル・バスを含む、いくつかの種類のバス構造のうちのいずれかの１つまたは複数を表す。例として、および限定ではなく、そのようなアーキテクチャには、インダストリー・スタンダード・アーキテクチャ（ＩＳＡ）バス、マイクロ・チャネル・アーキテクチャ（ＭＣＡ）バス、エンハンストＩＳＡ（ＥＩＳＡ）バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション（ＶＥＳＡ）ローカル・バス、およびペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）バスが含まれる。
【００２２】
コンピュータ・システム１２は、典型的には、様々なコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム１２によってアクセス可能である任意の利用可能な媒体であってもよく、それは揮発性および不揮発性媒体、取り外し可能および取り外し不可能媒体の両方を含む。
【００２３】
システム・メモリ２８は、コンピュータ・システム可読媒体をランダム・アクセス・メモリ（ＲＡＭ）３０またはキャッシュ・メモリ３２あるいはその両方などの揮発性メモリの形で含むことができる。コンピュータ・システム１２は、他の取り外し可能／取り外し不可能、揮発性／不揮発性コンピュータ・システム記憶媒体をさらに含むことができる。一例として、記憶システム３４を取り外し不可能、不揮発性磁気媒体（図示せず、および典型的には「ハード・ドライブ」と呼ばれる）との読み取りおよび書き込みのために設けることができる。図示しないが、取り外し可能、不揮発性磁気ディスク（例えば、「フロッピ・ディスク」）との読み取りおよび書き込みのための磁気ディスク・ドライブと、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭまたは他の光学媒体などの取り外し可能、不揮発性光学ディスクとの読み取りおよび書き込みのための光学ディスク・ドライブとを設けることができる。そのような場合には、それぞれを１つまたは複数のデータ媒体インターフェースを介してバス１８に接続することができる。以下にさらに図示し、説明するように、メモリ２８は、本発明の実施形態の機能を実行するように構成されるプログラム・モジュールの組（例えば、少なくとも１つ）を有する少なくとも１つのプログラム製品を含むことができる。
【００２４】
プログラム・モジュール４２の組（少なくとも１つ）を有するプログラム／ユーティリティ４０、ならびにオペレーティング・システム、１つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データは、例として、また、限定ではなく、メモリ２８に記憶することができる。オペレーティング・システム、１つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データまたはそのいくつかの組合せのそれぞれは、ネットワーキング環境の実施を含むことができる。プログラム・モジュール４２は、一般に、本明細書に説明するように、本発明の実施形態の機能または方法あるいはその両方を実行する。
【００２５】
コンピュータ・システム１２は、キーボード、ポインティング・デバイス、ディスプレイ２４などの１つまたは複数の外部デバイス１４、ユーザがコンピュータ・システム１２と対話することを可能にする１つまたは複数のデバイス、またはコンピュータ・システム１２が１つまたは複数の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス（例えば、ネットワーク・カード、モデムなど）あるいはその組合せと通信することもできる。そのような通信は、入出力（Ｉ／Ｏ）インターフェース２２を介して行われ得る。さらにまた、コンピュータ・システム１２は、ネットワーク・アダプタ２０を介してローカル・エリア・ネットワーク（ＬＡＮ）、一般的なワイド・エリア・ネットワーク（ＷＡＮ）、またはパブリック・ネットワーク（例えば、インターネット）あるいはその組合せなどの１つまたは複数のネットワークと通信することができる。図示するように、ネットワーク・アダプタ２０は、バス１８を介してコンピュータ・システム１２の他の構成要素と通信する。図示しないが、他のハードウェアまたはソフトウェア構成要素あるいはその組合せをコンピュータ・システム１２と併せて使用することができることを理解されたい。例には、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、およびデータ記録記憶システムなどが含まれるが、それに限定されない。
【００２６】
図２は、本発明の態様に従った例示的なオンライン分析処理（ＯＬＡＰ）環境５０を示す。ＯＬＡＰ環境５０は、１つまたは複数の参加コンピューティング・デバイス６０、１つまたは複数のトランザクション・コンピューティング・デバイス６２およびＯＬＡＰコンピューティング・システム６４（参加コンピューティング・デバイス６０およびトランザクション・コンピューティング・デバイス６２と破線で分離して示す。）と通信するネットワーク５５を含む。図示する例示的なＯＬＡＰコンピューティング・システム６４は、事象プロセッサ６６、データ・メモリ・バッファ・キャッシュ６８、集計コンピューティング・エンジン７０、および集計キューブ定義抽出器７２を備える。ＯＬＡＰコンピューティング・システム６４は、図１の少なくとも１つのコンピュータ・システム１２を備えることができ、少なくとも１つのコンピュータ・システム１２は、図１のネットワーク・アダプタ２０を介してネットワーク５５に接続することができる。ＯＬＡＰコンピューティング・システム６４は、ビジネス・インテリジェンス・システム・インフラストラクチャの一部である、１つまたは複数の専用コンピューティング・デバイスとして構成することができる。例えば、ＯＬＡＰコンピューティング・システム６４は、データ・メモリ・バッファ・キャッシュ６８の集計ＯＬＡＰデータ・キューブ・キャッシュ７６への記憶のための増分ＯＬＡＰデータ・キューブ更新を生成するために、リモート・トランザクション・コンピューティング・デバイス６２のトランザクショナル事象データベース７４から実時間トランザクショナル事象データを分析するように構成することができる。ＯＬＡＰコンピューティング・システム６４は、顧客固有の更新されたＯＬＡＰデータ・キューブを、それぞれの参加コンピューティング・デバイス６０の報告モジュール７８に提供するために、複数の異なる参加コンピューティング・デバイス６０およびトランザクション・コンピューティング・デバイス６２と同時に通信するように構成することができる。
【００２７】
ネットワーク５５は、ローカル・エリア・ネットワーク（ＬＡＮ）、一般的なワイド・エリア・ネットワーク（ＷＡＮ）、またはパブリック・ネットワーク（例えば、インターネット）あるいはその組合せなどの任意の適切な通信ネットワークまたはネットワークの組合せであってもよい。参加コンピューティング・デバイス６０は、図１のコンピューティング・デバイス１２の形であってもよく、デスクトップ・コンピュータ、ラップトップ・コンピュータ、タブレット・コンピュータ、スマートフォンなどであってもよい。実施形態において、参加コンピューティング・デバイス６０は、ユーザへの報告書またはダッシュボードの形でビジネス・インテリジェンス・データを提供するために、報告モジュール７８を介してアプリケーション・プログラムを実行する。
【００２８】
さらに図２を参照すると、事象プロセッサ６６が、本明細書に説明する機能のうちの１つまたは複数を実施するように構成された複数のコンピューティング・モジュールを備えることができ、コンピューティング・モジュールは、事象プロセッサ６６によって実行される、１つまたは複数のプログラム・モジュール（例えば、図１のプログラム・モジュール４２）を含むことができる。実施形態において、事象プロセッサ６６の事象記憶モジュール８０は、実時間トランザクショナル事象データを１つまたは複数のトランザクション・コンピューティング・デバイス６２から受け取り、トランザクショナル事象データをファクト・テーブル・データベース８２における１つまたは複数のファクト・テーブルに記憶するように構成される。ファクト・テーブル・データベース８２からのデータは、データ・メモリ・バッファ・キャッシュ６８のデータ・ブロック・キャッシュ８４を更新するために利用することができる。態様において、事象プロセッサ６６のパーサおよび抽出モジュール８６は、入力トランザクショナル事象データを構文解析し、集計コンピューティング・エンジン７０への伝送のためにデータ・フィールドを抽出する。
【００２９】
引き続き図２を参照すると、集計コンピューティング・エンジン７０が、本明細書に説明する機能のうちの１つまたは複数を実施するように構成された集計モジュール８８を含むことができ、集計モジュール８８は、集計コンピューティング・エンジン７０によって実行される、１つまたは複数のプログラム・モジュール（例えば、図１のプログラム・モジュール４２）を含むことができる。実施形態において、集計モジュール８８は、標準クエリ言語（ＳＱＬ：ｓｔａｎｄａｒｄ  ｑｕｅｒｙ  ｌａｎｇｕａｇｅ）クエリ（ＳＱＬコード）によってデータ・キューブのリストを取得し、各ＳＱＬクエリに対して実施するために集計コンピュータ関数（例えば、ＳＵＭ、ＭＩＮ、ＭＡＸ、ＡＶＥＲＡＧＥ、ＭＥＤＩＡＮ、ＶＡＲＩＡＮＣＥなど）を識別し、更新された集計されたフィールド・データベース９０における現在の集計された値および入力フィールドの値（入力トランザクショナル事象データからの）を使用して集計を増分的に計算する（集計コンピュータ関数を実施する）ように構成される。態様において、集計モジュール８８は、増分計算に基づいて、更新された集計されたフィールド・データベース９０における集計されたフィールドを更新する。実施形態において、集計モジュール８８は、ＳＱＬクエリを集計キューブ定義抽出器７２から取得する。
【００３０】
さらに図２を参照すると、集計キューブ定義抽出器７２が、本明細書に説明する機能のうちの１つまたは複数を実施するように構成された定義抽出モジュール９２を含むことができ、定義抽出モジュール９２は、集計キューブ定義抽出器７２によって実行される、１つまたは複数のプログラム・モジュール（例えば、図１のプログラム・モジュール４２）を含むことができる。実施形態において、定義抽出モジュール９２は、ＯＬＡＰデータ・キューブ定義を、更新された集計されたフィールド・データベース９０から抽出し、ＯＬＡＰデータ・キューブ定義を集計コンピューティング・エンジン７０に供給する。
【００３１】
実施形態において、ＯＬＡＰコンピューティング・システム６４は、追加のまたは図２に示すものよりも少ない構成要素を含むことができる。実施形態において、別々の構成要素は、単一のコンピューティング構成要素またはモジュールに統合することができる。さらに、または代替案として、単一の構成要素は、複数のコンピューティング構成要素またはモジュールとして実施することができる。
【００３２】
さらに、ＯＬＡＰ環境５０におけるデバイスまたはネットワークあるいはその両方の数量は、図２に示すものに限定されない。実際には、ＯＬＡＰ環境５０は、追加のデバイスまたはネットワークあるいはその両方、より少ないデバイスまたはネットワークあるいはその両方、異なるデバイスまたはネットワークあるいはその両方、または図２に示すのとは異なって配置されたデバイスまたはネットワークあるいはその両方を含むことができる。さらに、いくつかの実施において、ＯＬＡＰ環境５０のデバイスのうちの１つまたは複数は、ＯＬＡＰ環境５０のデバイスのうちの別の１つまたは複数によって実施されると説明された１つまたは複数の機能を実施することができる。ＯＬＡＰ環境５０のデバイスは、有線接続、無線接続、または有線接続と無線接続との組合せを介して相互接続することができる。
【００３３】
図３Ａおよび図３Ｂは、本発明の態様に従った方法のフローチャートを示す。図３の方法のステップは、図２に示すＯＬＡＰ環境５０において実施することができ、図２示す要素を参照して説明される。
【００３４】
まず図３Ａを参照すると、ステップ３００において、事象プロセッサ６６が、実時間トランザクショナル事象データを１つまたは複数のトランザクション・コンピューティング・デバイス６２から受け取る。実施形態において、事象プロセッサ６６の事象記憶モジュール８０は、実時間トランザクショナル事象データを受け取る。トランザクショナル事象データは、例えば、ポータル・サイトまたは検索エンジンのウェブ・ログのクリック・ストリーム・データ、銀行取引、店舗ロジスティクス、販売時点情報管理データなどを含むことができる。態様において、トランザクショナル事象データは、時間にわたって収集された集計されたデータではなく、実時間事象データを含む。ステップ３００は、複数の発生源（例えば、リモート・トランザクション・コンピューティング・デバイス）からの実時間トランザクショナル事象データの受領を含むことができる。実施形態において、ステップ３００は、周期的ではなく、継続的に実施される。
【００３５】
ステップ３０１において、事象プロセッサ６６が、個別フィールド・データを入力トランザクショナル事象データから抽出し、トランザクショナル事象データをファクト・テーブル・データベース８２の１つまたは複数のファクト・テーブルに記憶する。実施形態において、事象プロセッサ６６の事象記憶モジュール８０は、ステップ３０１を実施する。態様において、事象記憶モジュール８０は、所定のターゲットＯＬＡＰデータ・キューブ（以下「データ・キューブ」）およびそれらの構成要素であるＳＱＬクエリのリストに基づいてトランザクショナル事象データをファクト・テーブル・データベース８２に記憶する。本明細書で使用されるとき、データ・キューブ（ＯＬＡＰデータ・キューブまたはターゲット・データ・キューブ）という用語は、報告目的でデータを多次元の形で記憶する方法を表し、データ・キューブは、ユーザに関心のあるファクトを代表する数値を含み、それらはデータ・フィールド（関心のあるデータ・フィールド）に編成される。事象プロセッサ６６に関心のあるデータ・フィールドは、トランザクショナル事象データにおけるすべての利用可能なデータ・フィールドを構成することができ、またはトランザクショナル事象データにおける利用可能なデータ・フィールドのすべて未満を構成することができる。例示的なファクト・テーブルを例示的な目的で以下の表１に示す。
【００３６】
【表１】
2021529367.tif 000003
【００３７】
ステップ３０２において、ファクト・テーブル・データベース８２からの最近使用した（Ｍｏｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ，ＭＲＵ）データ（Ｍｏｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ，ＭＲＵ）データをデータ・メモリ・バッファ・キャッシュ６８のデータ・ブロック・キャッシュ８４に記憶することができる。実施形態において、データ・メモリ・バッファ・キャッシュ６８は、ファクト・テーブル・データベース８２からのＭＲＵデータを決定し、それをデータ・ブロック・キャッシュ８４に記憶する。従来のＭＲＵデータ記憶技法は、ステップ３０２の実行において利用することができる。
【００３８】
ステップ３０３において、集計コンピューティング・エンジン７０が、それぞれが少なくとも１つのＳＱＬクエリに関連付けられた、計算すべきターゲット・データ・キューブのリストを取得する。例えば、集計コンピューティング・エンジン７０は、１つのデータ・キューブが計算されることになっていることを決定することができ、ここでは、データ・キューブは、それに関連付けられた１０のＳＱＬクエリを有する。集計コンピューティング・エンジン７０は、集計コンピューティング・エンジン７０に記憶されたデータ・キューブの所定のリストからデータ・キューブのリスト、またはリモート・コンピューティング・デバイス（例えば、トランザクション・コンピューティング・デバイス６２）から受け取ったデータ・キューブのリストを決定することができる。
【００３９】
ステップ３０４において、集計キューブ定義抽出器７２が、ステップ３０３において取得されたターゲット・データ・キューブのリストに基づいて、ＳＱＬクエリのリストおよびそれらの定義を、更新された集計されたフィールド・データベース９０から抽出する。すなわち、計算する必要がある各ターゲット・データ・キューブに対して、集計キューブ定義抽出器７２が、必要とする計算の種類を識別する、関連したＳＱＬクエリ定義のリストを抽出する。実施形態において、集計キューブ定義抽出器７２は、更新された集計されたフィールド・データベース９０と、集計データ・キューブ定義との間の関係を識別する。１つまたは複数の関係が、更新された集計されたフィールド・データベース９０とデータ・キューブ定義との間に存在する場合、集計コンピューティング・エンジン７０は、以下のステップ３０５〜３０７に詳述するように、集計ＯＬＡＰデータ・キューブ・キャッシュ７６を更新するためにオンライン計算／増分集計を実施する。
【００４０】
ステップ３０５において、集計コンピューティング・エンジン７０が、ステップ３０４において抽出された定義に基づいて、ステップ３０４において抽出された各ＳＱＬクエリに対して集計コンピューティング関数のリストを識別する。すなわち、ステップ３０５において、集計コンピューティング・エンジン７０が、ＳＱＬクエリ定義を集計キューブ定義抽出器７２から受け取り、それに基づいて、ターゲット・データ・キューブの各ＳＱＬクエリに対して集計コンピューティング関数のリストを識別する。集計コンピューティング関数の数および種類は、異なることがあり、ＳＵＭ、ＭＩＮＩＭＵＭ（ＭＩＮ）、ＭＡＸＩＭＵＭ（ＭＡＸ）、ＡＶＥＲＡＧＥ（ＡＶＧ）、ＭＥＤＩＡＮ、ＶＡＲＩＡＮＣＥなどの、典型的にはビジネス・インテリジェンス分析中に実施されるコンピューティング関数を含むことができる。
【００４１】
ステップ３０６において、ＳＱＬクエリにおける各フィールドに対して、集計コンピューティング・エンジン７０は、更新された集計されたフィールド・データベース９０からの現在の集計値と入力個別フィールドの値とを使用して、集計コンピューティング関数（ステップ３０５において識別された）を増分的に計算する。集計コンピューティング・エンジン７０は、現在の集計値を、更新された集計されたフィールド・データベース９０から取得し、現在の集計値を、ステップ３００において受け取った、関連した入力個別フィールド値と比較する。例えば、ＭＩＮの集計コンピュータ関数（すなわち、最小値を計算する）に対して、集計コンピューティング・エンジン７０は、入力個別フィールド値が、更新された集計されたフィールド・データベース９０における現在のＭＡＸ値よりも小さいかどうかをチェックすることができる。別の例において、ＭＡＸを計算する（すなわち、最大値を計算する）ために、集計コンピューティング・エンジン７０は、入力個別フィールド値が、更新された集計されたフィールド・データベース９０における現在のＭＡＸ値よりも大きいかどうかをチェックすることができる。さらに別の例において、ＡＶＧを計算するために、集計コンピューティング・エンジン７０は、（現在のＡＶＧ＋入力個別フィールド値）÷（現在の行数＋１）を使用して平均を再計算することができる。
【００４２】
ステップ３０７において、集計コンピューティング・エンジン７０が、ステップ３０６において実施された増分計算に基づいて、更新された集計されたフィールド・データベース９０における集計されたフィールドを更新する。実施形態において、集計モジュール８８は、ステップ３０７を実施する。
【００４３】
ステップ３０８において、ステップ３０３〜３０７が、ステップ３０３において取得された各ターゲット・データ・キューブに対して繰り返される。ステップ３０３〜３０７は、関心のある複数のターゲット・データ・キューブ（ＯＬＡＰコンピューティング・システム６４によって計算されるターゲット・データ・キューブ）に対して同時に実施することができることを理解されたい。
【００４４】
図３Ｂを参照すると、図３Ａの方法は、ステップ３０９で継続される。ステップ３０９において、更新された集計されたフィールド・データベース９０のＭＲＵデータ・キューブが、ＭＲＵアルゴリズムに基づいてデータ・メモリ・バッファ・キャッシュ６８の集計ＯＬＡＰデータ・キューブ・キャッシュ７６にアップロードされる。ステップ３０９は、データ・メモリ・バッファ・キャッシュ６８によって継続的に実施することができる。態様において、集計ＯＬＡＰデータ・キューブ・キャッシュ７６には、１つまたは複数のサード・パーティ（例えば、参加コンピューティング・デバイス６０）によってアクセス可能である。
【００４５】
ステップ３１０において、データ・メモリ・バッファ・キャッシュ６８が、利用可能なメモリが不十分であることを決定し、最長時間未使用（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ，ＬＲＵ）アルゴリズムに基づいてデータ・メモリ・バッファ・キャッシュ６８における記憶空間を消去する。データ・メモリ・バッファ・キャッシュ６８は、ステップ３１０の実施において、既存のメモリ消去方法およびツールを利用することができる。
【００４６】
ステップ３１１において、集計ＯＬＡＰデータ・キューブ・キャッシュ７６が、更新されたデータ・キューブの形で報告データを１つまたは複数の参加コンピューティング・デバイス６０に提供する。実施形態において、１つまたは複数の参加コンピューティング・デバイス６０は、参加者に関心のある更新されたデータ・キューブを取得するために集計ＯＬＡＰデータ・キューブ・キャッシュ７６に周期的にアクセスする。実施形態において、集計ＯＬＡＰデータ・キューブ・キャッシュ７６は、報告データを１つまたは複数の参加コンピューティング・デバイス６０に周期的に送る。
【００４７】
ステップ３１２において、参加コンピューティング・デバイス６０の報告モジュール７８が、ステップ３１１において取得された報告データに基づいて、ユーザに対して報告書またはダッシュボードあるいはその両方を生成し、表示するためにプログラム・アプリケーションを利用する。ステップ３１２の実施において、複数の既存のビジネス・インテリジェンス報告技法を利用することができる。
【００４８】
ステップ３１３において、ステップ３００〜３１２が、継続的に繰り返される。したがって、図３Ａおよび図３Ｂの方法は、ＯＬＡＰデータ・キューブの継続的増分更新を可能とし、ビジネス・インテリジェンス・データの大きなバッチ処理に関連した遅延なしで、最新ビジネス・インテリジェンスを提供する。図３Ａおよび図３Ｂのステップが、事象プロセッサ６６、集計コンピューティング・エンジン７０、および集計キューブ定義抽出器７２によって実施されるものとして説明されているが、ＯＬＡＰ環境５０の様々な要素は、本発明の複数の方法ステップを実施することができることを理解されたい。
【００４９】
図４は、本発明の態様に従った例示的な方法のフロー・ダイヤグラムである。図４に表すステップは、図３Ａおよび図３Ｂにおいて明らかにされている。図４に示すように、実時間トランザクショナル事象データは、事象プロセッサ６６に継続的に供給され、事象プロセッサ６６は、例えば、図３Ａのステップ３００および３０１において説明したように、集計コンピューティング・エンジン７０による使用のために、データを構文解析し、個別フィールド・データを抽出する。実時間トランザクショナル事象データから抽出されたフィールド・データは、図３Ａのステップ３０１に従ってファクト・テーブル・データベース８２に記憶することができ、ファクト・テーブル・データベース８２からのＭＲＵファクト・データは、図３Ａのステップ３０２に従ってデータ・ブロック・キャッシュ８４にキャッシュされる。集計キューブ定義抽出器７２は、例えば、図３Ａのステップ３０４において説明したように、集計ＯＬＡＰデータ・キューブ・キャッシュ７６におけるターゲット・データ・キューブ定義を読み取り、ＳＱＬクエリおよび定義を集計コンピューティング・エンジン７０に供給する。集計コンピューティング・エンジン７０は、ターゲット・データ・キューブに関連付けられたＳＱＬクエリおよび定義を利用して、ターゲット・データ・キューブのための更新を計算する。具体的には、各ターゲット・データ・キューブに対して、集計コンピューティング・エンジン７０は、例えば、図３Ａのステップ３０５〜３０６において説明したように、関連したＳＱＬクエリを取得し、各ＳＱＬクエリに対する集計コンピュータ関数を識別し、各集計関数（例えば、Ｍｉｎ、ＭＡＸ、ＡＶＧ）を計算して、更新されたフィールド・データを取得する。次いで、更新されたフィールド・データが、適切なデータ・キューブ４００とともに集計ＯＬＡＰデータ・キューブ・キャッシュ７６にキャッシュされ、その場合、それには、例えば、図３Ａのステップ３１１において説明したように、１つまたは複数の参加コンピューティング・デバイス６０によっていつでもアクセスすることができる。有利なことに、本発明の実施形態の場合、ＯＬＡＰジョブが実行されるたびにデータ・キューブ全体を最初から構築するための膨大なバッチ・ジョブを実行する必要がない。本発明の実施形態は、ＯＬＡＰデータ・キューブ集計が実時間で行われることを可能にする。結果として、実時間速度近くで、かつ、従来の集計計算ジョブが大きく依存する膨大な量の計算および記憶資源なしで、ビジネス・インテリジェンスが利用可能である。
【００５０】
図５は、本発明の実施形態に従ったコンピュータ機能の増分集計の例示的な例である。図５の集計は、図３Ａおよび図３Ｂに関して説明した方法を使用して実施することができる。
【００５１】
テーブル５００は、ＯＬＡＰコンピューティング・システム６４が入力トランザクショナル事象レコード＃９９を処理する前の月間銀行取引の集計計算を表し、テーブル５００は、更新された集計されたフィールド・データベース９０に記憶される。テーブル５０１は、図３Ａのステップ３０１に従って事象プロセッサ６６によって抽出され、ファクト・テーブル・データベース８２に記憶された日間銀行取引の入力トランザクショナル事象レコード＃９９を表す。テーブル５０２は、ＯＬＡＰコンピューティング・システム６４が入力トランザクショナル事象レコード＃９９を処理した後の月間銀行取引の集計計算を表す。この例において、集計コンピューティング・エンジン７０は、例えば、図３Ａのステップ３０６において説明したように、テーブル５００によって表される更新された集計されたフィールド・データベース９０からの現在の集計値および５０４に示す入力フィールドｔｒａ＿ａｍｔからの値を使用して、集計コンピュータ関数ＳＵＭ（合計）およびＭＥＤＩＡＮを増分的に計算する。図５に示すように、集計コンピューティング・エンジン７０は、合計関数を実施し、テーブル５００からの２３，４１５，０１６．５６の取引金額が、テーブル５０１の新たな取引金額１４，５７６．３３に追加されて、２３，４２２，８７２．５９の合計取引金額が得られる。したがって、テーブル５０２における合計（ｔｒａ＿ａｍｔ）フィールドが、図３Ａのステップ３０７に従って新たな取引金額２３，４２２，８７２．５９で更新される。同様に、集計コンピューティング・エンジン７０は、中央値関数を実施し、テーブル５００の１１，５７１．７８の中間取引金額およびテーブル５０１の取引金額１４，５７６．３３が、９，７１３．９０の新たな中央値取引金額を計算するのに利用される。したがって、テーブル５０２における中央値（ｔｒａ＿ａｍｔ）フィールドが、図３Ａのステップ３０７に従って９，７１３．９０の新たな中央値取引金額で更新される。
【００５２】
図６は、動的増分リフレッシュ可能データ・キューブ・キャッシュ・サブセットのブロック図である。図６のブロック図は、図２のＯＬＡＰ環境５０の構成要素を利用して実施することができる。
【００５３】
図６は、トランザクション・ワークロード６００およびデータベース・トランザクション・ログ６０１を含むトランザクショナル事象データベース７４のサブセットを示す。トランザクショナル事象データベース７４のデータベース・トランザクション・ログ６０１からのデータは、事象プロセッサ６６のトランザクション・ログ・ストア６０２に記憶することができる。事象プロセッサ６６におけるトランザクション・ログ・ストア６０２から取得されたターゲット集計キューブ６０３のリストは、メタデータ６０４を取り出すのに利用され、メタデータ６０４は、抽出テーブル・リスト６０５によって利用される。６０７において、トランザクション・ログからの列値が、抽出列リスト６０６およびターゲット集計キューブ６０３のリストに基づいて抽出される。ターゲット集計キューブ６０３のリストは、集計キューブのメタデータ６０９という名称の列における集計キューブ６０８の索引に利用される。６１０において、キューブのメタデータおよびキューブＳＱＬ定義が、メタデータ取り出し６０４、テーブル・リスト抽出６０５、列リスト抽出６０６から取得される。６１２において、集計コンピューティング・エンジン７０が、各入力フィールド・トランザクション行に対して集計関数（例えば、ＳＵＭ、ＤＩＳＴＩＮＣＴ、ＭＩＮ、ＭＡＸ、ＡＶＧ、ＭＥＤＩＡＮなど）をキューブ６１１のメタデータから取得する。６１３において、更新された集計値が、集計コンピューティング・エンジン７０によって計算される。６１４において、増分キューブ更新６１４が、データ・キューブ６１５Ａ、６１５Ｂおよび６１５Ｃによって表される、それぞれのターゲット・データ・キューブ６１５に適用される。
【００５４】
実施形態において、サービス・プロバイダが、本明細書に説明するプロセスを実施することを提供することができる。この場合、サービス・プロバイダは、１つまたは複数の顧客に対して本発明のプロセス・ステップを実施するコンピュータ・インフラストラクチャを作成し、維持し、展開し、サポートするなどをすることができる。これらの顧客は、例えば、技術を使用する任意の企業であってもよい。見返りとして、サービス・プロバイダは、購読予約または手数料契約あるいはその両方による顧客（複数可）からの支払いを受け取ることができ、またはサービス・プロバイダは、１つまたは複数のサード・パーティへの広告コンテンツの販売からの支払いを受け取ることができ、あるいはその組合せを行うことができる。
【００５５】
さらに別の実施形態において、本発明は、オンライン分析処理（ＯＬＡＰ）データ・キューブの動的増分更新のためのコンピュータ実施方法を提供する。この場合、コンピュータ・システム１２（図１）などのコンピュータ・インフラストラクチャを提供することができ、本発明のプロセスを実施するための１つまたは複数のシステムを取得し（例えば、作成し、購入し、使用し、変更するなど）、コンピュータ・インフラストラクチャに展開することができる。この程度まで、システムの展開は、（１）プログラム・コードをコンピュータ可読媒体からコンピュータ・システム１２などの（図１に示すように）コンピューティング・デバイスにインストールすること、（２）１つまたは複数のコンピューティング・デバイスをコンピュータ・インフラストラクチャに追加すること、および（３）コンピュータ・インフラストラクチャが本発明のプロセスを実施することを可能にするために、コンピュータ・インフラストラクチャの１つまたは複数の既存のシステムを組み込むことまたは変更することあるいはその両方をすることのうちの１つまたは複数を含むことができる。
【図１】
2021529367.tif 000004
【図２】
2021529367.tif 000005
【図３Ａ】
2021529367.tif 000006
【図３Ｂ】
2021529367.tif 000007
【図４】
2021529367.tif 000008
【図５】
2021529367.tif 000009
【図６】
2021529367.tif 000010
【国際調査報告】
2021529367.tif 000011
2021529367.tif 000012