(57)【特許請求の範囲】
【請求項１】
分散データストリーム処理方法であって、
データ認識モジュールによって、生データストリームに含まれているタイムスタンプおよび設定された分割点に少なくとも一部基づいて、前記生データストリームをリアルタイムデータストリームと過去データストリームとに分割し、
複数の機能モジュールによって、
前記リアルタイムデータストリームと前記過去データストリームとを並列に処理し、
前記リアルタイムデータストリーム及び前記過去データストリームのそれぞれの処理結果を別々に生成し、
データ統合モジュールによって、前記それぞれの生成された処理結果を統合すること、
を備える方法。
【請求項２】
請求項１に記載の方法であって、
前記リアルタイムデータストリームを処理することは、データの性質またはタイプに基づいて実施され、前記リアルタイムデータストリームのあるデータブロックは、前記リアルタイムデータストリームの別のデータブロックと並列に処理される、方法。
【請求項３】
請求項２に記載の方法であって、
前記リアルタイムデータストリームを処理することは、
前記リアルタイムデータストリームを複数のデータブロックに分割し、
各データブロックを複数のデータ単位に分割し、
前記複数のデータ単位を並列に処理し、
前記複数のデータ単位の処理の結果を集約させること、
を含む、方法。
【請求項４】
請求項１に記載の方法であって、
前記過去データストリームを処理することは、データの性質またはタイプに基づいて前記過去データストリームを分割することを含み、前記過去データストリームの分割は、並列に実施される、方法。
【請求項５】
請求項３に記載の方法であって、
前記リアルタイムデータストリームを前記複数のデータブロックに分割することは、時間に基づく、方法。
【請求項６】
請求項１に記載の方法であって、
前記リアルタイムデータストリームと前記過去データストリームとは別に処理される、方法。
【請求項７】
請求項４に記載の方法であって、
前記データは、ユーザの行動に関する、方法。
【請求項８】
請求項４に記載の方法であって、
ユーザの異なる嗜好は、異なるデータの性質またはタイプに対応し、異なるデータの性質またはタイプに関するデータ単位は、別々のモジュールによって処理され、前記データ単位はユーザの行動に関係する、方法。
【請求項９】
分散データストリーム処理装置であって、
複数のプロセッサであって、
生データストリームに含まれているタイムスタンプおよび設定された分割点に少なくとも一部基づいて、前記生データストリームをリアルタイムデータストリームと過去データストリームとに分割し、
前記リアルタイムデータストリームと前記過去データストリームとを並列に処理し、それぞれの処理結果を別々に生成し、
前記それぞれの生成された処理結果を統合するように構成されている、複数のプロセッサと、
前記複数のプロセッサに接続され、前記複数のプロセッサに命令を提供するように構成されているメモリと、
を備える、
装置。
【請求項１０】
請求項９に記載の装置であって、
前記リアルタイムデータストリームを処理することは、データの性質またはタイプに基づいて前記リアルタイムデータストリームを分割することを含み、前記リアルタイムデータストリームのあるデータブロックは、前記リアルタイムデータストリームの別のデータブロックと並列に処理される、装置。
【請求項１１】
請求項１０に記載の装置であって、
前記リアルタイムデータストリームを処理することは、
前記リアルタイムデータストリームを複数のデータブロックに分割し、
各データブロックを並列に複数のデータ単位に分割し、前記複数のデータ単位を、それらを並列に処理するために、対応する複数の機能モジュールに伝送し、
前記複数の機能モジュールによるデータ処理の結果を集約させること、
を含む、装置。
【請求項１２】
請求項９に記載の装置であって、
前記過去データストリームを処理することは、データの性質またはタイプに基づいて前記過去データストリームを分割することを含み、前記過去データストリームの分割は、並列に実施される、装置。
【請求項１３】
請求項１１に記載の装置であって、
前記リアルタイムデータストリームを前記複数のデータブロックに分割することは、時間に基づく、装置。
【請求項１４】
生データストリームを処理するためのコンピュータプログラムであって、
前記生データストリームに含まれているタイムスタンプおよび設定された分割点に少なくとも一部基づいて、前記生データストリームをリアルタイムデータストリームと過去データストリームとに分割するための機能をデータ認識モジュールによって実現させ、
前記リアルタイムデータストリームと前記過去データストリームとを並列に処理するための機能と、
前記リアルタイムデータストリーム及び前記過去データストリームのそれぞれの処理の結果を別々に生成するための機能を複数の機能モジュールによって実現させ、
前記それぞれの生成された処理結果を統合するための機能をデータ統合モジュールによって実現させる、コンピュータプログラム。
【請求項１５】
請求項１４に記載のコンピュータプログラムであって、
前記リアルタイムデータストリームを処理することは、データの性質またはタイプに基づいて実施され、前記リアルタイムデータストリームのあるデータブロックは、前記リアルタイムデータストリームの別のデータブロックと並列に処理される、コンピュータプログラム。
【請求項１６】
請求項１５に記載のコンピュータプログラムであって、
前記リアルタイムデータストリームを処理することは、
前記リアルタイムデータストリームを複数のデータブロックに分割、
各データブロックを並列に複数のデータ単位に分割し、
前記各データ単位を分割することを受けて、前記複数のデータ単位を並列処理のために対応する複数の機能モジュールに別々に伝送し、
前記複数の機能モジュールの処理結果を集約させること、
を含む、コンピュータプログラム。
【請求項１７】
請求項１４に記載のコンピュータプログラムであって、
前記過去データストリームを処理することは、データの性質またはタイプに基づいて前記過去データストリームを分割することを含み、前記過去データストリームの分割は、並列に実施される、コンピュータプログラム。
【請求項１８】
請求項１６に記載のコンピュータプログラムであって、
前記リアルタイムデータストリームを前記複数のデータブロックの分割は、時間に基づく、コンピュータプログラム。
【請求項１９】
分散データストリーム処理システムであって、
複数のアプリケーションサーバを備え、
前記複数のアプリケーションサーバは、
生データストリームに含まれているタイムスタンプおよび設定された分割点に少なくとも一部基づいて、前記生データストリームをリアルタイムデータストリームと過去データストリームとに分割するように構成されたデータ認識モジュールと、
前記リアルタイムデータストリームと前記過去データストリームとを並列に処理し、それぞれの処理結果を別々に生成するように構成された並列処理モジュールと、
前記それぞれの生成された処理結果を統合するように構成されたデータ統合モジュールと、
を含む、システム。
【請求項２０】
請求項１９に記載のシステムであって、
前記並列処理モジュールは、データの性質またはタイプに基づいて前記リアルタイムデータストリームを分割し、前記リアルタイムデータストリームのあるデータブロックは、前記リアルタイムデータストリームの別のデータブロックと並列に処理される、システム。
【請求項２１】
請求項２０に記載のシステムであって、
前記並列処理モジュールは、
前記リアルタイムデータストリームを複数のデータブロックに分割するように構成された水平分割モジュールと、
各データブロックを並列に複数のデータ単位に分割し、前記複数のデータ単位を、それらを並列に処理するために、対応する複数の機能モジュールに伝送するように構成された複数の垂直分割モジュールと、
前記複数の機能モジュールによるデータ処理の結果を集約させるように構成された結果集約モジュールと、
を含む、システム。
【請求項２２】
請求項１９に記載のシステムであって、
前記過去データストリームを処理することは、データの性質またはタイプに基づいて前記過去データストリームを分割することを含み、前記過去データストリームの分割は、並列に実施される、システム。
【請求項２３】
請求項２１に記載のシステムであって、
前記水平分割モジュールは、前記リアルタイムデータストリームを時間に基づいて前記複数のデータブロックに分割する、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
本出願は、あらゆる目的のために、参照によって本明細書に組み込まれる、２０１１年１１月２４日に出願された発明の名称を「Ａ  ＤＩＳＴＲＩＢＵＴＥＤ  ＳＴＲＥＡＭ  ＤＡＴＡ  ＰＲＯＣＥＳＳＩＮＧ  ＭＥＴＨＯＤ  ＡＮＤ  ＣＯＲＲＥＳＰＯＮＤＩＮＧ  ＳＹＳＴＥＭ（分散ストリームデータを処理する方法及び対応するシステム）」とする中国特許出願第２０１１１０３７８２４７．３号に基づく優先権を主張する。
【０００２】
本出願は、分散データストリーム処理の方法及びシステムに関する。
【背景技術】
【０００３】
データストリーム処理は、データマイニング及びデータ分析の主要手段の１つになっている。データストリームの一例は、ウェブログであり、これは、大量のデータを含むデータストリームである。データストリームの別の一例は、製品投稿情報を絶えず追加し続けたりテキストメッセージ伝送記録を絶えず追加し続けたりする電子商取引ウェブサイトである。このようなデータストリームは、以下の特徴を有する。すなわち、（１）大量のデータ、（２）各データが識別子（ＩＤ）を有し、各ＩＤの特性分析が必要である、及び（３）例えば時系列的性質などの時間属性である。
【０００４】
データストリーム分析は、総じて、分析がリアルタイムに尚且つ高速に実施されることを要する。したがって、データストリーム分析システムは、特定のユーザの現時点の操作に基づいて、リアルタイムな応答を提供することができる。例えば、ログのリアルタイム分析を実施することによって、ユーザの現時点の状態及び最近のアクセス活動を分析し、推薦の精度を効果的に高める又はリアルタイムなスパム防止を提供することができる。しかしながら、リアルタイム要件を満たすために高速でデータストリームを分析することは、常に、技術的に困難であった。なかでも特に、データ量が非常に大きいときは、技術的分析はよりいっそう困難である。
【０００５】
従来の分散データストリーム処理システムの一実施形態が、図１に示されている。生データストリームＳが、複数の機能モジュールＦに分散される。複数の機能モジュールＦは、処理を同時的に実施し、処理の結果をデータ統合モジュールＩに伝送する。データ統合モジュールＩは、処理されたデータを統合し、統合されたデータを出力する。しかしながら、既存の分散データストリーム処理システムでは、以下の制約が生じる。
【０００６】
（１）大量のデータを有するデータストリームの処理では、データ処理及びデータ分析に、非常に時間を要するようになる。また、既存の分散データストリーム処理システムは、一般に、共有メモリモデルを利用する。共有メモリモデルは、異なるモジュール間でデータを交換する方法である。具体的には、データの交換は、上流モジュールと下流モジュールとの間で発生する。例えば、モジュールＡの結果は、メモリ（データベースやファイルなど）のなかに置かれ、次いで、モジュールＢが、そのメモリからそれらの結果を読み出す。こうして、モジュールＡとモジュールＢとの間でデータ交換が発生する。このようなモデルでは、リアルタイム計算は容易に実現可能ではなく、疑似リアルタイム計算のみが実現可能である。言い換えると、モデルが既存のデータストリームの処理を扱うことができないときは、既存の処理技術の大半は、リアルタイムデータストリーム内の大量のデータの成長速度を満足させることができず、データ処理における遅延は、比較的長くなるだろう。したがって、オフラインでしかデータ分析を実施することができず、これは、データ分析及びデータマイニングにおける更なる遅延につながる。したがって、これらの遅延ゆえに、ユーザの現時点の又は最近の操作に適時に応答することは困難である。
【０００７】
（２）大量のデータを処理するものとして、分散並列計算が既に普及してきている。しかしながら、既存の並列計算システムは、基本的に、機能的再現（機能再生）のフレームワークに限定される。機能的再現は、並列計算を実施する方法であり、この方法では、全ての計算モデルが同じ機能を有し、尚且つ同じプロセスを実行している。計算モジュールどうしは、計算されるデータのみが異なっており、計算システムは、これらの計算モジュールを使用して並列計算を実施する。したがって、これらの計算モジュールゆえに、より正確に並列計算を実施することは不可能である。また、これらの計算モジュールゆえに、モジュール化及びホップスワップの実現は不可能である。また、計算モジュールのメインテナンスを実施することは困難である。
【図面の簡単な説明】
【０００８】
以下の詳細な説明及び添付の図面のなかで、本発明の様々な実施形態が開示される。
【０００９】
本出願の実施形態は、図面を参照にして以下で説明される。
【００１０】
【図１】従来の分散データストリーム処理システムの一例を示す概略図である。
【００１１】
【図２】大データ量分散データストリーム処理システムの一実施形態を示す概略図である。
【００１２】
【図３】図２の大データ量分散データストリーム処理システムに対応する大データ量分散データストリーム処理方法の一実施形態を示すフローチャートである。
【００１３】
【図４】リアルタイム処理システムの一実施形態を示す概略図である。
【００１４】
【図５】図４のリアルタイム処理システムに対応するリアルタイム処理方法の一実施形態を示すフローチャートである。
【００１５】
【図６】大データ量分散データストリーム処理システムの別の一実施形態を示す図である。
【発明を実施するための形態】
【００１６】
本発明は、プロセス、装置、システム、合成物、コンピュータ読み取り可能なストレージ媒体に実装されたコンピュータプログラム製品、並びに／又は結合先のメモリに記憶された命令及び／若しくは結合先のメモリによって提供される命令を実行するように構成されるプロセッサなどのプロセッサのような、数々の形態で実現することができる。本明細書では、これらの実現形態、又は本発明がとりうるその他のあらゆる形態が、技術と称されるだろう。総じて、開示されたプロセスのステップの順序は、本発明の範囲内で変更されてよい。別途明記されない限り、タスクを実施するように構成されたものとして説明されるプロセッサ又はメモリなどのコンポーネントは、所定時にタスクを実施するように一時的に構成された汎用コンポーネントとして、又はタスクを実施するように製造された特殊コンポーネントとして実現されてよい。本明細書で使用される「プロセッサ」という用語は、コンピュータプログラム命令などのデータを処理するように構成される１つ以上のデバイス、回路、並びに／又は処理コアを言う。
【００１７】
本発明の原理を例示する添付の図面とともに、以下で、本発明の１つ以上の実施形態の詳細な説明が提供される。本発明は、このような実施形態との関わりのもとで説明されるが、いずれの実施形態にも限定されない。本発明の範囲は、特許請求の範囲によってのみ限定され、本発明は、数々の代替形態、変更形態、及び均等物を包含している。以下の説明では、本発明の完全な理解を与えるために、数々の具体的詳細が明記されている。これらの詳細は、例示を目的として提供されたものであり、本発明は、これらの詳細の一部又は全部を伴わずとも、特許請求の範囲にしたがって実施されえる。明瞭さを期するために、本発明に関係する技術分野で知られる技術要素は、本発明が不必要に不明瞭にされないように、詳細な説明を省略されている。
【００１８】
本出願は、以下で詳しく説明される。
【００１９】
本出願の方法及びシステムの実施形態は、ウェブログデータストリームの例を使用して以下で説明されるが、本出願は、システムの、個別推薦、リアルタイムスパム防止、製品一覧、テキストメッセージ伝送、科学計算データなどのデータストリームを処理するためにも使用されてよいことがわかる。
【００２０】
図２は、大データ量分散データストリーム処理システムの一実施形態を示す概略図である。
【００２１】
図２の大データ量分散データストリーム処理システムは、データ認識モジュール１０と、現時点から３０日を超える（３０日超）データ処理システム２０と、リアルタイムデータ処理システム３０と、現時点から３０日以内（３０日以内）データ処理システム４０と、データ統合モジュール５０とを含む。データ認識モジュール１０は、生（未加工）データストリームに含まれるデータがリアルタイムデータであるか、３０日以内データであるか、又は３０日超データであるかを決定する。３０日超データ処理システム２０、リアルタイムデータ処理システム３０、及び３０日以内データ処理システム４０は、それぞれ、データを処理し、その処理されたデータをデータ統合モジュール５０に伝送する。データ統合モジュール５０は、受信されたデータを統合する。これらのモジュールは、１台のコンピュータ若しくは計算能力若しくは処理能力を有する類似の機器、複数のそのような機器で形成されたネットワーク、又はそのような機器のハードウェア若しくはソフトウェアの一部分によって実現されてよい。
【００２２】
図３は、大データ量分散データストリーム処理方法の一実施形態を示すフローチャートである。大データ量分散データストリーム処理方法は、図の大データ量分散データストリーム処理システム上で実施することができる。
【００２３】
ステップＳ１００：生データストリーム１００が取り出される。ウェブログデータストリームの例を使用すると、生データストリームは、未処理のウェブログを含む。
【００２４】
ステップＳ１０１：データ認識モジュール１０によって生データストリーム１００が取り出された後、データ認識モジュール１０は、生データストリーム１００に含まれるデータがリアルタイムデータであるか、３０日以内データであるか、又は３０日超データであるかを決定する。一部の実施形態では、この決定は、データに関連付けられたタイムスタンプを評価することによってなされる。データ認識モジュール１０は、そうして、生データストリーム１００を時系列的に、３０日超データストリーム２００と、リアルタイムデータストリーム３００と、３０日以内データストリーム４００とに分割する。３０日超データストリーム２００は、３０日超データ処理システム２０に伝送され、リアルタイムデータストリーム３００は、リアルタイムデータ処理システム３０に伝送され、３０日以内データストリーム４００は、３０日以内データ処理システム４０に伝送される。一部の実施形態では、データストリームは、そのデータストリームが過去２日以内に受信された場合にリアルタイムデータストリームであると決定され、２日前よりも古いデータストリームは、３０日以内データストリームであると決定される。一部の実施形態では、リアルタイムデータを３０日以内データから区別する時点が、１日、１週間、又はその他の任意の長さの時間であってよい。
【００２５】
ステップＳ１０２：３０日超データ処理システム２０は、３０日超データストリーム２００からの３０日超データを処理し、その処理結果をデータ統合モジュール５０に伝送する。ステップＳ１０３：リアルタイムデータ処理システム３０は、リアルタイムデータストリーム３００からのリアルタイムデータを処理し、その処理結果をデータ統合モジュール５０に伝送する。ステップＳ１０４：３０日以内データ処理システム４０は、３０日以内データストリーム４００からの３０日以内データを処理し、その処理結果をデータ統合モジュール５０に伝送する。ステップＳ１０２、Ｓ１０３、及びＳ１０４は、並列に実行される。
【００２６】
リアルタイムデータストリーム３００からのデータは、ユーザ行動を含むことができる。例えば、各ユーザクリックが、リアルタイムデータストリーム３００の中の一項目であってよい。この項目は、ユーザ情報、行動情報、時間などを含むことができる。
【００２７】
リアルタイムデータ処理システム３０の場合は、リアルタイムデータストリーム３００の各項目が、ユーザのリアルタイム行動を表すことができ、リアルタイムで処理することができる。すなわち、リアルタイムデータストリーム３００は、ユーザが何を行ったかと、リアルタイムデータ処理システム３０によって決定された対応するリアルタイム判断とを含むことができる。同じ項目は、ログファイルに記録され、２日後に、３０日以内データ処理システム４０が、そのログファイルを処理する。その後、３０日以内データ処理システム４０の結果が、データ統合モジュール５０に送信される。
【００２８】
一方で、リアルタイムデータ処理システム３０は、リアルタイムデータストリーム３００を処理し続ける。リアルタイムデータ処理システム３０からの結果が計算される。また、このときに、３０日以内データ処理システム４０の結果も計算される。
【００２９】
３０日超データ処理システム２０及び３０日以内データ処理システム４０の場合は、その相違は、３０日超データ処理システム２０が３０日超データを処理し、３０日以内データ処理システム４０が３０日以内データを処理することである。これらのデータ処理システムの結果は、データ統合システム５０によって合体される。したがって、全てのデータが処理される。
【００３０】
一部の実施形態では、リアルタイムデータ処理システム３０と３０日以内データ処理システム４０とが、同じデータを処理する。すなわち、リアルタイムデータストリーム３００からのデータと、３０日以内データストリーム４００からのデータとが同じである。リアルタイムデータストリーム３００は、リアルタイムデータ処理システム３０及びログファイルに同時に書き込まれる。そのログファイルの日々のコピーが、３０日以内データ処理システム４０に出力される。３０日以内データ処理システム４０は、ログファイルを日々読み出し、３０日以内データストリーム４００を処理し、その結果を出力する。３０日以内データ処理システム４０の結果は、ログファイルにデータが出力された実際の時間の２日後に、３０日以内データ処理システム４０によって使用される。言い換えると、リアルタイムデータ処理システム３０は、リアルタイムデータストリーム３００からのデータを２日以内に処理し、３０日以内データ処理システム４０は、その結果を２日遅れで生成する。リアルタイムデータ処理システム３０は、リアルタイムデータストリーム３００からのデータ（２日以内のデータであって、リアルタイム結果を形成するデータ）を維持及び処理するものであり、リアルタイムデータストリーム３００からのデータが３０日以内データ処理システム４０によって処理及び使用されるまでには、２日間の遅れがある。リアルタイムデータ処理システム３０及び３０日以内データ処理システム４０の結果は、その後、２日経過した時点で合体される。
【００３１】
一部の実施形態では、リアルタイムデータ処理システム３０は、リアルタイムデータストリーム３００からのデータを、そのデータが入力される時点で処理する。更に、リアルタイムデータ処理システム３０は、新しいデータが受信されると常に、その受信されたデータをリアルタイムで処理する。
【００３２】
ステップＳ１０５：データ統合モジュール５０は、３０日超データ処理システム２０、リアルタイムデータ処理システム３０、及び３０日以内データ処理４０から受信された処理結果を統合し、統合されたデータを出力する。一部の実施形態では、３０日超データ処理システム２０及び３０日以内データ処理システム４０は、ログファイルへの出力を行う。３０日超データ処理システム２０によって処理されたデータは、３０日超のタイムスタンプを有し、３０日以内データ処理システム４０によって処理されたデータは、３０日以内のタイムスタンプを有する。一部の実施形態では、処理システム２０、３０、及び４０からの処理結果は、統合を容易にするために同じ形式を有する。
【００３３】
統合結果は、ユーザの行動と、それに対応するユーザの操作とを提供することができる。例えば、リアルタイム処理システム３０は、ユーザＡが製品ｐ１及びｐ２を購入したことを決定することができる。それらの結果は、データ統合モジュール５０に送信される。それと同時に、データ統合モジュール５０は、３０日以内データ処理システム４０からの結果も処理することができる。３０日以内データ処理システム４０からの結果は、ユーザＡが３０日以内にｐ３、ｐ２、及びｐ４も購入したことを示すことができる。それと同時に、データ統合モジュール５０は、３０日超データ処理システム２０からの結果も処理することができる。３０日超データ処理システム２０からの結果は、３０日前よりも以前に製品ｐ５、ｐ６、及びｐ７が購入されたことを示す。データ統合モジュール５０は、ユーザＡの全ての操作の記録を提供する。
【００３４】
生データストリーム１００は、データ認識モジュール１０によって、３つの既定の時間制限で分けられた３０日超データストリーム２００、リアルタイムデータストリーム３００、及び３０日以内データストリーム４００を含む３つの異なるデータストリームに分割される。しかしながら、当業者ならば、実際の要件に基づいて、その他の時間制限を使用して生データストリームを分割してよい。例えば、生データストリームは、２つ以下の若しくは４つ以上の時間区分に分割されてよく、３０日区分以外の時間制限又は「リアルタイム」であると見なされる時間範囲が、実際の要件に基づいて決定されてよい。
【００３５】
上記のように、大データ量分散データストリーム処理方法は、基本的に、３段階に分割される。これら３つの段階は、時系列的な分割、データ処理、及びデータ統合を含む。
【００３６】
時系列的な分割の段階では、ウェブログデータが絶えず増加し続けているので、データ認識モジュール１０は、先ず、リアルタイムデータストリーム３００をリアルタイム処理システム３０に伝送し、過去データストリームは、過去データ処理システムに伝送される。過去データストリームは、３０日超データストリーム２００と、３０日以内データストリーム４００とを含んでいてよく、過去データ処理システムは、３０日超データ処理システム２０と、３０日以内データ処理システム４０とを含んでいてよい。過去データストリームのデータは、既にファイルに記憶されているので、過去データストリームは、リアルタイム処理システム３０には送信されない。
【００３７】
データ処理の段階では、過去処理システム及びリアルタイム処理システムが、異なる時間区分からのデータを並列に処理する。
【００３８】
データ統合の段階では、異なる時間区分からのデータの並列処理の結果が、データ統合モジュール５０に伝送される。結果が統合された後、その統合された結果は、外部サービスに出力されてよい。
【００３９】
データを複数のデータストリームに時系列的に分割するシステムの利点の１つは、時系列的性質を有する大量データストリームの処理がより速やかに実施されうることにある。
【００４０】
データストリームのなかの各情報（例えば特定のログデータ）がタイムスタンプを有すると想定すると、最も早いデータから現在のデータまでのデータ（増え続ける）が、合計のデータストリームを構成している。特定の時点が、分割点として設定されてよい。データストリームのデータは、設定された分割点に基づいて、過去データとリアルタイムデータとに分割されてよい。データストリームに関して、過去データは、時間分割点前の特定の時点で既に存在していたと想定され得る。例えば、時間分割点よりも１日早くストリームされたデータは、リアルタイムで処理される必要はなく、オフラインで処理されてよい。その後、リアルタイム処理システムの結果と、過去データ処理システムの結果とが統合されてよい。
【００４１】
過去データとリアルタイムデータとの別々の処理、及び過去データのオフライン処理は、リアルタイム計算を著しく軽減するだろう。リアルタイム計算の削減は、より速やかにリアルタイムデータが計算されることを可能にする。それと同時に、過去データもまた、より徹底的に計算されるだろう。
【００４２】
過去データは、３０日超データ処理システム２０及び３０日以内データ処理システム４０によって出力されたログファイルを言う。リアルタイム処理システム３０によって処理されたデータは、リアルタイムで処理される。３０日超データ処理システム２０及び３０日以内データ処理システム４０の場合は、処理されるデータが速く変化せず、したがって、データは、過去データと称される。
【００４３】
一例では、過去データとリアルタイムデータとの異なる処理は、異なる計算プラットフォーム及び異なる計算方法で表される。３０日超データ処理システム２０は、大半のデータを処理するので、３０日超データ処理システム２０は、分散プラットフォームを使用することができる。３０日以内データ処理システム４０は、３０日超データ処理システム２０ほど多くのデータは処理しないので、３０日以内データ処理システム４０は、データウェアハウスプラットフォームを使用することができる。リアルタイム処理システム３０は、例えば２日分のデータのように、最も少ないデータを処理し、しかしながら、リアルタイム計算を必要とするので、リアルタイム処理システム３０は、リアルタイム処理のために複数のマシンを使用し、データをメモリに記憶させることができる。
【００４４】
３０日超データ処理システム２０及び３０日以内データ処理システム４０は、複雑な式を使用すること及びオフラインでデータを処理することができるので、３０日超データ処理システム２０及び３０日以内データ処理システム４０は、計算の正確さを必要とし、計算の時間及び効率に関しては、あまり問題にされない。例えば、３０日超データ処理システム２０及び３０日以内データ処理システム４０は、ユーザ嗜好の減衰の計算において、指数関数を使用してよい。他方で、リアルタイム処理システム３０は、リアルタイム計算を使用しており、事象に対してリアルタイムに応答しなければならない。したがって、リアルタイム処理システム３０は、速やかに計算を実施し、正確さは効率よりも重要でない。
【００４５】
プロセスの一実施形態は、異なる時間区分（リアルタイムな時間区分及び過去の時間区分を含む）からのデータを処理するために、データを順次分割し、異なる時間区分からのデータの並列処理に進む。したがって、本出願は、リアルタイムデータが適時に処理されることを保証する。
【００４６】
リアルタイムデータ処理システムのパフォーマンスを更に向上させるために、リアルタイムデータ処理システムは、次元にしたがって、時間的に分離されたデータストリームを異なるデータ単位に更に分割してよい。本明細書で使用される次元とは、データの性質又はタイプを言う。例えば、異なる次元を有するデータは、異なるタイプの機能モジュールによって処理されてよい。データの情報の単位、すなわちデータ単位は、データブロックと呼ばれてよい。データの情報の単位（データブロック）の処理は、リアルタイムデータ処理システム３０の一実施形態を使用して以下で説明される。
【００４７】
例えば、データは、ユーザの行動に関するものであってよい。データは、製品の閲覧、情報のレビュー、キーワードの探索などに関する情報を含むことができる。異なるデータタイプは、それぞれ、異なる次元を指しており、異なる次元は、それぞれ、異なるモジュールによって計算することができる。
【００４８】
例えば、モジュールＭ１は、ユーザがどのような情報を好むかを決定するために、ユーザの閲覧情報の記録を処理し、モジュールＭ２は、ユーザがどのような製品を好むかを決定するために、ユーザが訪れている製品の記録を処理し、モジュールＭ３は、ユーザがどのようなキーワードを好むかを決定するために、ユーザのキーワード検索の記録を処理する。モジュールＭ１、Ｍ２、及びＭ３は、互いに独立しており、並列に処理することができる。モジュールＭ１、Ｍ２、及びＭ３からの結果を合体させたものが、ユーザの嗜好を示す。ユーザ嗜好は、情報嗜好、製品嗜好、キーワード嗜好、及びその他の任意の適切な次元を含む。
【００４９】
図４は、リアルタイム処理システムの一実施形態を示す概略図である。
【００５０】
図４に示されるように、リアルタイム処理システム３０は、１つの水平分割モジュール４００と、複数のＮ縦分割モジュール５００と、各Ｎ縦分割モジュール５００が複数の関連のＭ機能モジュールを有する複数のＮ×Ｍ機能モジュール群６００と、結果集約モジュール７００とを含む。本出願において、「水平」という用語は、分割のレベルを特定することのみを意図しており、方向性の概念を特定することは意図していない。本出願において、「垂直」という用語は、分割のレベルを特定することのみを意図しており、方向性の概念を特定することは意図していない。
【００５１】
図５は、リアルタイム処理方法の一実施形態を示すフローチャートである。この方法は、図４のリアルタイム処理システム３０によって実施することができる。
【００５２】
ステップＳ２００：リアルタイムデータストリーム３００が取り出される。
【００５３】
ステップＳ２０１：水平分割モジュール４００が、取り出されたリアルタイムデータストリーム３００を複数のＮデータブロック（１、２、…… Ｎ）に分割する。ステップＳ２０１における分割は、水平分割として言及される。水平分割は、既定の時間分割点に基づいていてよい。一部の実施形態では、時間分割点は、リアルタイムデータストリームを３０日以内データストリームから分ける時点である。例えば、過去データが日付によって記憶されており、図２の３０日超データ処理システム２０は、３０日よりも前のデータを処理し、図２の３０日以内データ処理システム４０は、２日間遅れの３０日以内のデータを使用して３０日以内データを処理し、図２のリアルタイム処理システム３０は、最新２日間のデータを処理する。水平分割モジュール４００は、分割されたデータブロックを対応する複数のＮ垂直分割モジュール５００に伝送する。
【００５４】
この例では、３０日分割を手動で設定することができる。一部の実施形態では、設定は、設定ファイルを通じて変更することができる。モジュール１〜Ｎは、それぞれ、同じ能力（Ｍ１、Ｍ２、…… ）を有する。例えば、ユーザの嗜好を計算するためには、ユーザ１の情報がリアルタイムで得られたときに、モジュールＭ１（ｈａｓｈ（ｕｓｅｒ１）＝１）を使用してユーザ１の嗜好を計算するために、マッピング技術（例えばｈａｓｈ）が使用される。同様に、ユーザ２の情報がリアルタイムで得られたときは、３（ｈａｓｈ（ｕｓｅｒ２）＝３）が得られ、したがって、ユーザ３のデータが、処理のためにモジュールＭ３に送信される。モジュールＭ１、Ｍ２、Ｍ３などは、それぞれ、異なるユーザからのデータを同時に処理することができる。
【００５５】
図４に示されるように、第１のデータブロックは、第１の垂直分割モジュール５００に伝送され、第２のデータブロックは、第２の垂直分割モジュール５００に伝送され、これは、以下同様に、第Ｎのデータブロックが第Ｎの垂直分割モジュール５００に伝送されるまで続く。リアルタイムデータストリームは、制限はないが、一過性である。Ｎ垂直分割モジュール５００は、それぞれ、その垂直分割モジュール５００によるデータブロックの処理が完了した後に再び使用されてよい。したがって、垂直分割モジュール５００の数は、リアルタイムデータストリームの（データ）流量に基づいて決定されてよい。
【００５６】
ステップＳ２０２：各垂直分割モジュール５００は、受信されたデータブロックを複数のデータ単位に分割する。実際の状況によっては、受信されたデータブロックは、Ｍ個の多さのデータ単位に分割されてよい。一部の実施形態では、モジュールの数Ｍは、利用可能なリソースに基づいて、すなわち利用可能なマシンの数に基づいて決定される。一部の実施形態では、モジュールの数Ｍは、設定ファイルによって決定される。設定ファイルの内容は、利用可能なリソースを表している。このステップにおけるデータブロックの分割は、垂直分割として言及され、該垂直分割は、次元に基づいていてよい。各垂直分割モジュール５００は、分割されたデータ単位を、機能モジュール群６００に含まれる複数の異なる機能モジュールに別々に伝送する。機能モジュールの番号は、データ単位の番号に対応していてよい。機能モジュールの数は、Ｍ個の多さであってよい。
【００５７】
垂直分割は、異なる次元のデータを取り上げて、その垂直分割データを、それぞれ異なる機能を有する異なる処理モジュールに送信する。異なる処理モジュールは、垂直分割データを並列に処理する。ユーザ嗜好に関係する３つの次元の例として、製品嗜好、情報嗜好、及びキーワード嗜好が挙げられ、これらは、それぞれ異なる処理モジュールに送信される。
【００５８】
別の例として、製品の情報のリアルタイム処理が挙げられる。製品の情報がリアルタイム処理システム３０に入力されたときに、製品情報は、製品の写真情報、製品の価格、製品の名前などの次元を含んでいる。この時点で、分割モジュールは、製品情報を分割する。例えば、分割モジュールは、写真情報を写真処理モジュールに送信し、価格情報を価格処理モジュールに送信し、名前情報を内容処理モジュールに送信する。これらの異なるモジュールは、異なる次元を処理する。合体された結果が、製品情報を処理した結果である。この例では、異なる情報次元を処理するために、異なるモジュールが事前に定められる。
【００５９】
図４に示されるように、第１の垂直分割モジュール５００は、データブロック１をＭ個のデータ単位に分割し、第１のデータ単位を第１の機能モジュール群６００の第１の機能モジュールに伝送し、第２のデータ単位を第１の機能モジュール群６００の第２の機能モジュールに伝送し、これは、以下同様に、第１の垂直分割モジュール５００が第Ｍのデータ単位を第Ｍの機能モジュールに伝送するまで続けられる。
【００６０】
したがって、図２のリアルタイムデータストリーム３００の流量が十分に大きいことを受けて、第２の垂直分割モジュール５００は、データブロック２を複数のＭデータ単位に分割し、第１のデータ単位を第２の機能モジュール群６００の第１の機能モジュールに伝送し、第２のデータ単位を第２の機能モジュール群６００の第２の機能モジュールに伝送し、これは、以下同様に、第２の垂直分割モジュール５００が第Ｍのデータ単位を第２の機能モジュール群６００の第Ｍの機能モジュールに伝送するまで続けられる。
【００６１】
したがって、リアルタイムデータストリーム３００の流量が十分に大きいことを受けて、その他の垂直分割モジュール５００は、その他のデータ単位をその他の機能モジュール群６００の機能モジュールに伝送してよい。垂直分割モジュール５００、機能モジュール群６００、及び機能モジュール群６００に含まれる機能モジュールの数は、リアルタイムデータストリーム３００の流量に基づいて決定されてよい。
【００６２】
ステップＳ２０３：各機能モジュールは、受信されたデータ単位を処理し、その処理の結果を結果集約モジュール７００に伝送する。
【００６３】
ステップＳ２０２及びステップＳ２０３は、並列に実行することができる。
【００６４】
ステップＳ２０４：結果集約モジュール７００は、受信された結果を集約させ、その集約結果を出力する。
【００６５】
本出願で説明されるように、リアルタイムデータストリームは、水平に分割され、同じ機能をそれぞれ有する各プロセッサに割り当てられる。プロセッサは、並列に処理を実施し、これは、リアルタイムデータストリームの処理の速度を大幅に増加させる。プロセッサは、垂直分割モジュール５００に対応していてよい。
【００６６】
次いで、垂直分割モジュール５００は、次元にしたがってデータの垂直分割を実施する。言い換えると、垂直分割モジュール５００は、データから、異なる次元のデータ単位を抽出する。続いて、対応する次元のデータ単位が、対応する機能処理モジュールに伝送され、それらのデータ単位は、機能処理モジュールによって並列に処理される。機能処理モジュールは、機能モジュールに対応していてよい。
【００６７】
生データストリームに対応するウェブログデータストリームの例に基づくと、ウェブログデータストリームは、先ず、複数のログ情報データブロックに水平分割されてよい。該水平分割は、時間に基づいていてよい。一部の実施形態では、データブロックは、リアルタイムデータブロックと、３０日以内データブロックと、３０日超データブロックとに分割される。各ログ情報データブロックは、対応する垂直分割モジュール５００に割り当てられてよい。続いて、各垂直分割モジュール５００は、対応するログ情報データブロックを別の次元にしたがって垂直分割する。その別の次元は、時間に対応していなくてよい。例えば、ログ情報データブロックから、製品情報が抽出されてよく、該抽出された製品情報は、製品処理要素に送信されてよく、それと並列に、ログ情報データブロックからキーワード情報が抽出されてよく、該抽出されたキーワード情報は、キーワード処理要素に送信されてよい。この例では、各情報ブロックは、更に、より細かい粒度を有する更に小さいデータ単位に分割される。これらの更に細かいデータ単位は、並列処理のために、様々な機能モジュールに分散される。別の例では、機能モジュールがリアルタイムウェブログデータストリームを処理する間に、製品情報機能モジュールが製品情報データを処理し、アクセス経路機能モジュールがアクセス経路データを処理し、これらの各機能モジュールは、データを並列に処理する。続いて、並列に処理されるために、ユーザ情報及び製品情報は、ユーザ情報及び製品情報に基づいて製品の推薦を行う推薦機能モジュールに送信されてよく、ユーザ情報及びアクセス経路情報は、スパム防止モジュールに送信されてよく、その他の情報は、その他の機能モジュールに送信されてよい。
【００６８】
スパム防止モジュールに送信されうる情報の一例は、ユーザの訪問回数が所定の時間内における閾値を超えたことをリアルタイム処理システム３０が決定したときに、発生することができる。例えば、情報は、ユーザが５分以内に２００回訪問したときに、スパム防止モジュールに送信することができる。
【００６９】
別の例は、ユーザが衣類及び低価格を好むことを過去データが示しているときである。しかしながら、もしある日、ユーザが高価格の電気製品を何度も訪問したならば、その情報は、ユーザのアカウントが危険に曝されているかもしれないことを示しており、警告システムがトリガされる。
【００７０】
各機能モジュールの処理結果は、インテグレータ（統合部）に伝送されてよく、このインテグレータは、処理結果の統合（集約）を実施する。例えば、インテグレータは、結果集約モジュール７００に対応していてよい。インテグレータは、また、図２のデータ統合モジュール５０を更に含んでいてもよい。
【００７１】
本出願におけるデータの分割は、リアルタイムデータ処理システムの上記の実施形態を使用して説明されてきた。当業者ならば、過去データ処理システムの場合も、リアルタイムデータ処理システムと同様なフレームワークが使用されてよいことがわかる。過去データ処理システムとリアルタイムデータ処理システムとの相違は、過去データ処理が、定期的実行の方法を用いてよいことにある。定期的実行の方法は、過去データをリアルタイムに処理するのではなく一定時間ごとに処理することを伴っていてよい。したがって、低コストのクラスタ分散型の計算システムが、過去データ処理システムとして使用されてよい。
【００７２】
上記のように、既存の分散データストリーム処理システムと異なり、本出願は、共有メモリモデルを用いず、その代わりに、本出願は、データの時系列的性質又はその他の次元に基づいて、データに対して複数の水平分割及び垂直分割を実施する。言い換えると、本出願は、データを処理するために、時系列的性質を用いるとともに、マルチレベルフレームワークを利用する。本出願は、既存の並列計算システムで見られた機能的再現のフレームワークに限定されず、むしろ、処理のために、時間に基づいてデータを複数の区分に分割し（水平分割）、新しい分散フレームワークを使用して、異なる次元を用いてデータストリームの垂直分割を実施する（垂直分割）。言い換えると、上述された方法の並列処理では、全ての計算モジュールが、計算モジュール間で異なる部分が計算データである以外は全ての計算モジュールが同じ機能を有していて尚且つ同じプロセスを実行するのではない。したがって、本出願は、より細かい粒度でデータの並列処理を実行することができ、また、機能モジュールのモジュール化及びホットスワップを実現することもできる。したがって、機能モジュールのモジュール化能力及びホットスワップ能力が向上されているゆえに、システムは、より容易に維持することができる。
【００７３】
本出願は、大量のデータのリアルタイム処理を可能にする。分散並列処理は、大量のデータのリアルタイム処理を確実にする及びシステムの応答性を向上させるために、リアルタイムデータストリームを同時に処理するために使用される。
【００７４】
本出願に基づく大データ量分散データストリーム処理方法は、計算能力及び処理能力を有する１つの又は複数の処理機器を使用して実現されてよい。本出願に基づく大データ量分散データストリーム処理システムは、１つの又は複数の処理機器であってよい。例えば、処理機器は、コンピュータによって実行可能な命令を走らせる１台の又は複数のコンピュータであってよい。個々のモジュール又は要素は、機器のコンポーネントであって、コンピュータによって実行可能な命令が処理機器によって実行されるときに対応する機能を有するものであってよい。本出願に基づく一実施形態では、上記の大データ量分散データストリーム処理方法及び対応するシステムを実現するために、Ｌｉｎｕｘ（登録商標）又はＷｉｎｄｏｗｓ（登録商標）をベースにしたシステム上で、ＪＡＶＡ（登録商標）又はＳＱＬなどの言語が使用されてよい。
【００７５】
図６は、図４のリアルタイム処理システムに対応するリアルタイム処理方法の一実施形態を示すブロック図である。この例では、システム６０２は、複数のアプリケーションサーバ６１２、６１４、６１６、及び６１８を含む。例示を目的として、４つのアプリケーションサーバが使用されているが、その他の実施形態では、異なる数のアプリケーションサーバが使用されてよい。６０４や６０６などのクライアントからのリアルタイムデータストリームが、アプリケーションサーバによって受信される。クライアント及びアプリケーションサーバは、ＴＣＰ／ＩＰ又はその他の任意のネットワークプロトコルを通じて通信してよい。
【００７６】
アプリケーションサーバ６１２、６１４、６１６、及び６１８は、生データストリームをリアルタイムデータストリームと過去データストリームとに分割するように構成されたデータ認識モジュールと、リアルタイムデータストリームと過去データストリームとを並列に処理し、それぞれの処理結果を別々に生成するように構成された並列処理モジュールと、生成された処理結果を統合するように構成されたデータ統合モジュールとを含む。
【００７７】
上述されたモジュールは、１つ以上の汎用プロセッサ上で実行されるソフトウェアコンポーネントとして、又はプログラム可能論理装置及び／若しくは特定の機能を実施するように設計された特殊用途向け集積回路などのハードウェアとして、又はそれらの組み合わせとして実装することができる。一部の実施形態では、モジュールは、本発明の実施形態で説明される方法を（パソコン、サーバ、ネットワーク機器などの）計算装置に実行させるための幾つかの命令を含み尚且つ（光ディスク、フラッシュストレージデバイス、モバイルハードディスクなどの）不揮発性のストレージ媒体に記憶させることができるソフトウェア製品の形で具現化することができる。モジュールは、１つのデバイスに実装されてよい、又は複数のデバイスに分散されてよい。モジュールの機能は、互いに合体されてよい、又は複数の小モジュールに更に分割されてよい。
【００７８】
本出願は、代表的な実施形態との関連のもとで既に説明されているが、使用された用語は、説明のための代表的な用語であって、制限的な用語ではないことが、理解されるべきである。本出願は、本発明の主旨又は実態から逸脱することなく多様な形態で実現することができ、したがって、上記の実施形態は、上記のいずれの詳細によっても制限されず、添付の特許請求の範囲の主旨及び範囲内であるものと広義に解釈されるべきであることが、理解されるべきである。したがって、特許請求の範囲又はそれらの均等物の範囲内に入るあらゆる変更及び修正が、添付の特許請求の範囲によって網羅されるべきである。
【００７９】
以上の実施形態は、理解を明瞭にすることを目的として、幾らか詳細に説明されてきたが、本発明は、与えられた詳細に限定されない。本発明を実現するには、多くの代替的手法がある。開示された実施形態は、例示的なものであり、非限定的である。
適用例１：分散データストリーム処理方法であって、生データストリームをリアルタイムデータストリームと過去データストリームとに分割し、前記リアルタイムデータストリームと前記過去データストリームとを並列に処理し、前記リアルタイムデータストリーム及び前記過去データストリームのそれぞれの処理結果を別々に生成し、前記それぞれの生成された処理結果を統合すること、を備える方法。
適用例２：適用例１に記載の方法であって、前記リアルタイムデータストリームを処理することは、次元に基づいて実施され、前記リアルタイムデータストリームのあるデータブロックは、前記リアルタイムデータストリームの別のデータブロックと並列に処理される、方法。
適用例３：適用例２に記載の方法であって、前記リアルタイムデータストリームを処理することは、前記リアルタイムデータストリームを複数のデータブロックに分割し、各データブロックを複数のデータ単位に分割し、前記複数のデータ単位を並列に処理し、前記複数のデータ単位の処理の結果を集約させること、を含む、方法。
適用例４：適用例１に記載の方法であって、前記過去データストリームを処理することは、次元に基づいて前記過去データストリームを分割することを含み、前記過去データストリームの分割は、並列に実施される、方法。
適用例５：適用例３に記載の方法であって、前記リアルタイムデータストリームを前記複数のデータブロックに分割することは、時間に基づく、方法。
適用例６：適用例１に記載の方法であって、前記リアルタイムデータストリームと前記過去データストリームとは別に処理される、方法。
適用例７：適用例４に記載の方法であって、前記次元は、ユーザの行動に関する、方法。
適用例８：適用例４に記載の方法であって、ユーザの異なる嗜好は、異なる次元に対応し、異なる次元に関するデータ単位は、別々のモジュールによって処理される、方法。
適用例９：分散データストリーム処理装置であって、少なくとも１つのプロセッサであって、生データストリームをリアルタイムデータストリームと過去データストリームとに分割し、前記リアルタイムデータストリームと前記過去データストリームとを並列に処理し、それぞれの処理結果を別々に生成し、前記それぞれの生成された処理結果を統合するように構成されている、少なくとも１つのプロセッサと、前記少なくとも１つのプロセッサに接続され、前記少なくとも１つのプロセッサに命令を提供するように構成されているメモリと、を備える、装置。
適用例１０：適用例９に記載の装置であって、前記リアルタイムデータストリームを処理することは、次元に基づいて前記リアルタイムデータストリームを分割することを含み、前記リアルタイムデータストリームのあるデータブロックは、前記リアルタイムデータストリームの別のデータブロックと並列に処理される、装置。
適用例１１：適用例１０に記載の装置であって、前記リアルタイムデータストリームを処理することは、前記リアルタイムデータストリームを複数のデータブロックに分割し、各データブロックを並列に複数のデータ単位に分割し、前記複数のデータ単位を、それらを並列に処理するために、対応する複数の機能モジュールに伝送し、前記複数の機能モジュールによるデータ処理の結果を集約させること、を含む、装置。
適用例１２：適用例９に記載の装置であって、前記過去データストリームを処理することは、次元に基づいて前記過去データストリームを分割し、前記過去データストリームの並列処理を実施することを含む、装置。
適用例１３：適用例１１に記載の装置であって、前記リアルタイムデータストリームを前記複数のデータブロックの分割は、時間に基づく、装置。
適用例１４：非一過性のコンピュータ読み取り可能ストレージ媒体に実装された、生データストリームを処理するためのコンピュータプログラム製品であって、前記生データストリームをリアルタイムデータストリームと過去データストリームとに分割するためのコンピュータ命令と、前記リアルタイムデータストリームと前記過去データストリームとを並列に処理するためのコンピュータ命令と、前記リアルタイムデータストリーム及び前記過去データストリームのそれぞれの処理の結果を別々に生成するためのコンピュータ命令と、前記それぞれの生成された処理結果を統合するためのコンピュータ命令と、を備えるコンピュータプログラム製品。
適用例１５：適用例１４に記載のコンピュータプログラム製品であって、前記リアルタイムデータストリームを処理することは、次元に基づいて実施され、前記リアルタイムデータストリームのあるデータブロックは、前記リアルタイムデータストリームの別のデータブロックと並列に処理される、コンピュータプログラム製品。
適用例１６：適用例１５に記載のコンピュータプログラム製品であって、前記リアルタイムデータストリームを処理することは、前記リアルタイムデータストリームを複数のデータブロックに分割、各データブロックを並列に複数のデータ単位に分割し、前記各データ単位を分割することを受けて、前記複数のデータ単位を並列処理のために対応する複数の機能モジュールに別々に伝送し、前記複数の機能モジュールの処理結果を集約させること、を含む、コンピュータプログラム製品。
適用例１７：適用例１４に記載のコンピュータプログラム製品であって、前記過去データストリームを処理することは、次元に基づいて前記過去データストリームを分割することを含み、前記過去データストリームの分割は、並列に実施される、コンピュータプログラム製品。
適用例１８：適用例１６に記載のコンピュータプログラム製品であって、前記リアルタイムデータストリームを前記複数のデータブロックの分割は、時間に基づく、コンピュータプログラム製品。
適用例１９：分散データストリーム処理システムであって、複数のアプリケーションサーバを備え、前記複数のアプリケーションサーバは、生データストリームをリアルタイムデータストリームと過去データストリームとに分割するように構成されたデータ認識モジュールと、前記リアルタイムデータストリームと前記過去データストリームとを並列に処理し、それぞれの処理結果を別々に生成するように構成された並列処理モジュールと、前記それぞれの生成された処理結果を統合するように構成されたデータ統合モジュールと、を含む、システム。
適用例２０：適用例１９に記載のシステムであって、前記並列処理モジュールは、次元に基づいて前記リアルタイムデータストリームを分割し、前記リアルタイムデータストリームのあるデータブロックは、前記リアルタイムデータストリームの別のデータブロックと並列に処理される、システム。
適用例２１：適用例２０に記載のシステムであって、前記並列処理モジュールは、前記リアルタイムデータストリームを複数のデータブロックに分割するように構成された水平分割モジュールと、各データブロックを並列に複数のデータ単位に分割し、前記複数のデータ単位を、それらを並列に処理するために、対応する複数の機能モジュールに伝送するように構成された複数の垂直分割モジュールと、前記複数の機能モジュールによるデータ処理の結果を集約させるように構成された結果集約モジュールと、を含む、システム。
適用例２２：適用例１９に記載のシステムであって、前記並列処理モジュールは、次元に基づいて前記過去データストリームを分割し、前記過去データストリームの並列処理を実施する、システム。
適用例２３：適用例２１に記載のシステムであって、前記水平分割モジュールは、前記リアルタイムデータストリームを時間に基づいて前記複数のデータブロックに分割する、システム。
【図１】
0006030144.tif 000002
【図２】
0006030144.tif 000003
【図３】
0006030144.tif 000004
【図４】
0006030144.tif 000005
【図５】
0006030144.tif 000006
【図６】
0006030144.tif 000007