特許第6030144号(P6030144)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アリババ・グループ・ホールディング・リミテッドの特許一覧

特許6030144分散データストリーム処理の方法及びシステム
<>
  • 特許6030144-分散データストリーム処理の方法及びシステム 図000002
  • 特許6030144-分散データストリーム処理の方法及びシステム 図000003
  • 特許6030144-分散データストリーム処理の方法及びシステム 図000004
  • 特許6030144-分散データストリーム処理の方法及びシステム 図000005
  • 特許6030144-分散データストリーム処理の方法及びシステム 図000006
  • 特許6030144-分散データストリーム処理の方法及びシステム 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6030144
(24)【登録日】2016年10月28日
(45)【発行日】2016年11月24日
(54)【発明の名称】分散データストリーム処理の方法及びシステム
(51)【国際特許分類】
   G06F 9/50 20060101AFI20161114BHJP
【FI】
   G06F9/46 465E
【請求項の数】23
【全頁数】19
(21)【出願番号】特願2014-537381(P2014-537381)
(86)(22)【出願日】2012年11月20日
(65)【公表番号】特表2014-531092(P2014-531092A)
(43)【公表日】2014年11月20日
(86)【国際出願番号】US2012066113
(87)【国際公開番号】WO2013078231
(87)【国際公開日】20130530
【審査請求日】2014年4月21日
(31)【優先権主張番号】13/681,271
(32)【優先日】2012年11月19日
(33)【優先権主張国】US
(31)【優先権主張番号】201110378247.3
(32)【優先日】2011年11月24日
(33)【優先権主張国】CN
【前置審査】
(73)【特許権者】
【識別番号】510330264
【氏名又は名称】アリババ・グループ・ホールディング・リミテッド
【氏名又は名称原語表記】ALIBABA GROUP HOLDING LIMITED
(74)【代理人】
【識別番号】110000028
【氏名又は名称】特許業務法人明成国際特許事務所
(72)【発明者】
【氏名】ジャーン・シュー
(72)【発明者】
【氏名】ヤーン・ジシオーン
(72)【発明者】
【氏名】シュー・ジア
(72)【発明者】
【氏名】ダン・ジョーンホア
【審査官】 田中 幸雄
(56)【参考文献】
【文献】 米国特許出願公開第2005/0138111(US,A1)
【文献】 特開2006−338432(JP,A)
【文献】 特開平4−167079(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
(57)【特許請求の範囲】
【請求項1】
分散データストリーム処理方法であって、
データ認識モジュールによって、生データストリームに含まれているタイムスタンプおよび設定された分割点に少なくとも一部基づいて、前記生データストリームをリアルタイムデータストリームと過去データストリームとに分割し、
複数の機能モジュールによって、
前記リアルタイムデータストリームと前記過去データストリームとを並列に処理し、
前記リアルタイムデータストリーム及び前記過去データストリームのそれぞれの処理結果を別々に生成し、
データ統合モジュールによって、前記それぞれの生成された処理結果を統合すること、
を備える方法。
【請求項2】
請求項1に記載の方法であって、
前記リアルタイムデータストリームを処理することは、データの性質またはタイプに基づいて実施され、前記リアルタイムデータストリームのあるデータブロックは、前記リアルタイムデータストリームの別のデータブロックと並列に処理される、方法。
【請求項3】
請求項2に記載の方法であって、
前記リアルタイムデータストリームを処理することは、
前記リアルタイムデータストリームを複数のデータブロックに分割し、
各データブロックを複数のデータ単位に分割し、
前記複数のデータ単位を並列に処理し、
前記複数のデータ単位の処理の結果を集約させること、
を含む、方法。
【請求項4】
請求項1に記載の方法であって、
前記過去データストリームを処理することは、データの性質またはタイプに基づいて前記過去データストリームを分割することを含み、前記過去データストリームの分割は、並列に実施される、方法。
【請求項5】
請求項3に記載の方法であって、
前記リアルタイムデータストリームを前記複数のデータブロックに分割することは、時間に基づく、方法。
【請求項6】
請求項1に記載の方法であって、
前記リアルタイムデータストリームと前記過去データストリームとは別に処理される、方法。
【請求項7】
請求項4に記載の方法であって、
前記データは、ユーザの行動に関する、方法。
【請求項8】
請求項4に記載の方法であって、
ユーザの異なる嗜好は、異なるデータの性質またはタイプに対応し、異なるデータの性質またはタイプに関するデータ単位は、別々のモジュールによって処理され、前記データ単位はユーザの行動に関係する、方法。
【請求項9】
分散データストリーム処理装置であって、
複数のプロセッサであって、
生データストリームに含まれているタイムスタンプおよび設定された分割点に少なくとも一部基づいて、前記生データストリームをリアルタイムデータストリームと過去データストリームとに分割し、
前記リアルタイムデータストリームと前記過去データストリームとを並列に処理し、それぞれの処理結果を別々に生成し、
前記それぞれの生成された処理結果を統合するように構成されている、複数のプロセッサと、
前記複数のプロセッサに接続され、前記複数のプロセッサに命令を提供するように構成されているメモリと、
を備える、
装置。
【請求項10】
請求項9に記載の装置であって、
前記リアルタイムデータストリームを処理することは、データの性質またはタイプに基づいて前記リアルタイムデータストリームを分割することを含み、前記リアルタイムデータストリームのあるデータブロックは、前記リアルタイムデータストリームの別のデータブロックと並列に処理される、装置。
【請求項11】
請求項10に記載の装置であって、
前記リアルタイムデータストリームを処理することは、
前記リアルタイムデータストリームを複数のデータブロックに分割し、
各データブロックを並列に複数のデータ単位に分割し、前記複数のデータ単位を、それらを並列に処理するために、対応する複数の機能モジュールに伝送し、
前記複数の機能モジュールによるデータ処理の結果を集約させること、
を含む、装置。
【請求項12】
請求項9に記載の装置であって、
前記過去データストリームを処理することは、データの性質またはタイプに基づいて前記過去データストリームを分割することを含み、前記過去データストリームの分割は、並列に実施される、装置。
【請求項13】
請求項11に記載の装置であって、
前記リアルタイムデータストリームを前記複数のデータブロックに分割することは、時間に基づく、装置。
【請求項14】
生データストリームを処理するためのコンピュータプログラムであって、
前記生データストリームに含まれているタイムスタンプおよび設定された分割点に少なくとも一部基づいて、前記生データストリームをリアルタイムデータストリームと過去データストリームとに分割するための機能をデータ認識モジュールによって実現させ、
前記リアルタイムデータストリームと前記過去データストリームとを並列に処理するための機能と、
前記リアルタイムデータストリーム及び前記過去データストリームのそれぞれの処理の結果を別々に生成するための機能を複数の機能モジュールによって実現させ、
前記それぞれの生成された処理結果を統合するための機能をデータ統合モジュールによって実現させる、コンピュータプログラム。
【請求項15】
請求項14に記載のコンピュータプログラムであって、
前記リアルタイムデータストリームを処理することは、データの性質またはタイプに基づいて実施され、前記リアルタイムデータストリームのあるデータブロックは、前記リアルタイムデータストリームの別のデータブロックと並列に処理される、コンピュータプログラム。
【請求項16】
請求項15に記載のコンピュータプログラムであって、
前記リアルタイムデータストリームを処理することは、
前記リアルタイムデータストリームを複数のデータブロックに分割、
各データブロックを並列に複数のデータ単位に分割し、
前記各データ単位を分割することを受けて、前記複数のデータ単位を並列処理のために対応する複数の機能モジュールに別々に伝送し、
前記複数の機能モジュールの処理結果を集約させること、
を含む、コンピュータプログラム。
【請求項17】
請求項14に記載のコンピュータプログラムであって、
前記過去データストリームを処理することは、データの性質またはタイプに基づいて前記過去データストリームを分割することを含み、前記過去データストリームの分割は、並列に実施される、コンピュータプログラム。
【請求項18】
請求項16に記載のコンピュータプログラムであって、
前記リアルタイムデータストリームを前記複数のデータブロックの分割は、時間に基づく、コンピュータプログラム。
【請求項19】
分散データストリーム処理システムであって、
複数のアプリケーションサーバを備え、
前記複数のアプリケーションサーバは、
生データストリームに含まれているタイムスタンプおよび設定された分割点に少なくとも一部基づいて、前記生データストリームをリアルタイムデータストリームと過去データストリームとに分割するように構成されたデータ認識モジュールと、
前記リアルタイムデータストリームと前記過去データストリームとを並列に処理し、それぞれの処理結果を別々に生成するように構成された並列処理モジュールと、
前記それぞれの生成された処理結果を統合するように構成されたデータ統合モジュールと、
を含む、システム。
【請求項20】
請求項19に記載のシステムであって、
前記並列処理モジュールは、データの性質またはタイプに基づいて前記リアルタイムデータストリームを分割し、前記リアルタイムデータストリームのあるデータブロックは、前記リアルタイムデータストリームの別のデータブロックと並列に処理される、システム。
【請求項21】
請求項20に記載のシステムであって、
前記並列処理モジュールは、
前記リアルタイムデータストリームを複数のデータブロックに分割するように構成された水平分割モジュールと、
各データブロックを並列に複数のデータ単位に分割し、前記複数のデータ単位を、それらを並列に処理するために、対応する複数の機能モジュールに伝送するように構成された複数の垂直分割モジュールと、
前記複数の機能モジュールによるデータ処理の結果を集約させるように構成された結果集約モジュールと、
を含む、システム。
【請求項22】
請求項19に記載のシステムであって、
前記過去データストリームを処理することは、データの性質またはタイプに基づいて前記過去データストリームを分割することを含み、前記過去データストリームの分割は、並列に実施される、システム。
【請求項23】
請求項21に記載のシステムであって、
前記水平分割モジュールは、前記リアルタイムデータストリームを時間に基づいて前記複数のデータブロックに分割する、システム。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願の相互参照]
本出願は、あらゆる目的のために、参照によって本明細書に組み込まれる、2011年11月24日に出願された発明の名称を「A DISTRIBUTED STREAM DATA PROCESSING METHOD AND CORRESPONDING SYSTEM(分散ストリームデータを処理する方法及び対応するシステム)」とする中国特許出願第201110378247.3号に基づく優先権を主張する。
【0002】
本出願は、分散データストリーム処理の方法及びシステムに関する。
【背景技術】
【0003】
データストリーム処理は、データマイニング及びデータ分析の主要手段の1つになっている。データストリームの一例は、ウェブログであり、これは、大量のデータを含むデータストリームである。データストリームの別の一例は、製品投稿情報を絶えず追加し続けたりテキストメッセージ伝送記録を絶えず追加し続けたりする電子商取引ウェブサイトである。このようなデータストリームは、以下の特徴を有する。すなわち、(1)大量のデータ、(2)各データが識別子(ID)を有し、各IDの特性分析が必要である、及び(3)例えば時系列的性質などの時間属性である。
【0004】
データストリーム分析は、総じて、分析がリアルタイムに尚且つ高速に実施されることを要する。したがって、データストリーム分析システムは、特定のユーザの現時点の操作に基づいて、リアルタイムな応答を提供することができる。例えば、ログのリアルタイム分析を実施することによって、ユーザの現時点の状態及び最近のアクセス活動を分析し、推薦の精度を効果的に高める又はリアルタイムなスパム防止を提供することができる。しかしながら、リアルタイム要件を満たすために高速でデータストリームを分析することは、常に、技術的に困難であった。なかでも特に、データ量が非常に大きいときは、技術的分析はよりいっそう困難である。
【0005】
従来の分散データストリーム処理システムの一実施形態が、図1に示されている。生データストリームSが、複数の機能モジュールFに分散される。複数の機能モジュールFは、処理を同時的に実施し、処理の結果をデータ統合モジュールIに伝送する。データ統合モジュールIは、処理されたデータを統合し、統合されたデータを出力する。しかしながら、既存の分散データストリーム処理システムでは、以下の制約が生じる。
【0006】
(1)大量のデータを有するデータストリームの処理では、データ処理及びデータ分析に、非常に時間を要するようになる。また、既存の分散データストリーム処理システムは、一般に、共有メモリモデルを利用する。共有メモリモデルは、異なるモジュール間でデータを交換する方法である。具体的には、データの交換は、上流モジュールと下流モジュールとの間で発生する。例えば、モジュールAの結果は、メモリ(データベースやファイルなど)のなかに置かれ、次いで、モジュールBが、そのメモリからそれらの結果を読み出す。こうして、モジュールAとモジュールBとの間でデータ交換が発生する。このようなモデルでは、リアルタイム計算は容易に実現可能ではなく、疑似リアルタイム計算のみが実現可能である。言い換えると、モデルが既存のデータストリームの処理を扱うことができないときは、既存の処理技術の大半は、リアルタイムデータストリーム内の大量のデータの成長速度を満足させることができず、データ処理における遅延は、比較的長くなるだろう。したがって、オフラインでしかデータ分析を実施することができず、これは、データ分析及びデータマイニングにおける更なる遅延につながる。したがって、これらの遅延ゆえに、ユーザの現時点の又は最近の操作に適時に応答することは困難である。
【0007】
(2)大量のデータを処理するものとして、分散並列計算が既に普及してきている。しかしながら、既存の並列計算システムは、基本的に、機能的再現(機能再生)のフレームワークに限定される。機能的再現は、並列計算を実施する方法であり、この方法では、全ての計算モデルが同じ機能を有し、尚且つ同じプロセスを実行している。計算モジュールどうしは、計算されるデータのみが異なっており、計算システムは、これらの計算モジュールを使用して並列計算を実施する。したがって、これらの計算モジュールゆえに、より正確に並列計算を実施することは不可能である。また、これらの計算モジュールゆえに、モジュール化及びホップスワップの実現は不可能である。また、計算モジュールのメインテナンスを実施することは困難である。
【図面の簡単な説明】
【0008】
以下の詳細な説明及び添付の図面のなかで、本発明の様々な実施形態が開示される。
【0009】
本出願の実施形態は、図面を参照にして以下で説明される。
【0010】
図1】従来の分散データストリーム処理システムの一例を示す概略図である。
【0011】
図2】大データ量分散データストリーム処理システムの一実施形態を示す概略図である。
【0012】
図3図2の大データ量分散データストリーム処理システムに対応する大データ量分散データストリーム処理方法の一実施形態を示すフローチャートである。
【0013】
図4】リアルタイム処理システムの一実施形態を示す概略図である。
【0014】
図5図4のリアルタイム処理システムに対応するリアルタイム処理方法の一実施形態を示すフローチャートである。
【0015】
図6】大データ量分散データストリーム処理システムの別の一実施形態を示す図である。
【発明を実施するための形態】
【0016】
本発明は、プロセス、装置、システム、合成物、コンピュータ読み取り可能なストレージ媒体に実装されたコンピュータプログラム製品、並びに/又は結合先のメモリに記憶された命令及び/若しくは結合先のメモリによって提供される命令を実行するように構成されるプロセッサなどのプロセッサのような、数々の形態で実現することができる。本明細書では、これらの実現形態、又は本発明がとりうるその他のあらゆる形態が、技術と称されるだろう。総じて、開示されたプロセスのステップの順序は、本発明の範囲内で変更されてよい。別途明記されない限り、タスクを実施するように構成されたものとして説明されるプロセッサ又はメモリなどのコンポーネントは、所定時にタスクを実施するように一時的に構成された汎用コンポーネントとして、又はタスクを実施するように製造された特殊コンポーネントとして実現されてよい。本明細書で使用される「プロセッサ」という用語は、コンピュータプログラム命令などのデータを処理するように構成される1つ以上のデバイス、回路、並びに/又は処理コアを言う。
【0017】
本発明の原理を例示する添付の図面とともに、以下で、本発明の1つ以上の実施形態の詳細な説明が提供される。本発明は、このような実施形態との関わりのもとで説明されるが、いずれの実施形態にも限定されない。本発明の範囲は、特許請求の範囲によってのみ限定され、本発明は、数々の代替形態、変更形態、及び均等物を包含している。以下の説明では、本発明の完全な理解を与えるために、数々の具体的詳細が明記されている。これらの詳細は、例示を目的として提供されたものであり、本発明は、これらの詳細の一部又は全部を伴わずとも、特許請求の範囲にしたがって実施されえる。明瞭さを期するために、本発明に関係する技術分野で知られる技術要素は、本発明が不必要に不明瞭にされないように、詳細な説明を省略されている。
【0018】
本出願は、以下で詳しく説明される。
【0019】
本出願の方法及びシステムの実施形態は、ウェブログデータストリームの例を使用して以下で説明されるが、本出願は、システムの、個別推薦、リアルタイムスパム防止、製品一覧、テキストメッセージ伝送、科学計算データなどのデータストリームを処理するためにも使用されてよいことがわかる。
【0020】
図2は、大データ量分散データストリーム処理システムの一実施形態を示す概略図である。
【0021】
図2の大データ量分散データストリーム処理システムは、データ認識モジュール10と、現時点から30日を超える(30日超)データ処理システム20と、リアルタイムデータ処理システム30と、現時点から30日以内(30日以内)データ処理システム40と、データ統合モジュール50とを含む。データ認識モジュール10は、生(未加工)データストリームに含まれるデータがリアルタイムデータであるか、30日以内データであるか、又は30日超データであるかを決定する。30日超データ処理システム20、リアルタイムデータ処理システム30、及び30日以内データ処理システム40は、それぞれ、データを処理し、その処理されたデータをデータ統合モジュール50に伝送する。データ統合モジュール50は、受信されたデータを統合する。これらのモジュールは、1台のコンピュータ若しくは計算能力若しくは処理能力を有する類似の機器、複数のそのような機器で形成されたネットワーク、又はそのような機器のハードウェア若しくはソフトウェアの一部分によって実現されてよい。
【0022】
図3は、大データ量分散データストリーム処理方法の一実施形態を示すフローチャートである。大データ量分散データストリーム処理方法は、図の大データ量分散データストリーム処理システム上で実施することができる。
【0023】
ステップS100:生データストリーム100が取り出される。ウェブログデータストリームの例を使用すると、生データストリームは、未処理のウェブログを含む。
【0024】
ステップS101:データ認識モジュール10によって生データストリーム100が取り出された後、データ認識モジュール10は、生データストリーム100に含まれるデータがリアルタイムデータであるか、30日以内データであるか、又は30日超データであるかを決定する。一部の実施形態では、この決定は、データに関連付けられたタイムスタンプを評価することによってなされる。データ認識モジュール10は、そうして、生データストリーム100を時系列的に、30日超データストリーム200と、リアルタイムデータストリーム300と、30日以内データストリーム400とに分割する。30日超データストリーム200は、30日超データ処理システム20に伝送され、リアルタイムデータストリーム300は、リアルタイムデータ処理システム30に伝送され、30日以内データストリーム400は、30日以内データ処理システム40に伝送される。一部の実施形態では、データストリームは、そのデータストリームが過去2日以内に受信された場合にリアルタイムデータストリームであると決定され、2日前よりも古いデータストリームは、30日以内データストリームであると決定される。一部の実施形態では、リアルタイムデータを30日以内データから区別する時点が、1日、1週間、又はその他の任意の長さの時間であってよい。
【0025】
ステップS102:30日超データ処理システム20は、30日超データストリーム200からの30日超データを処理し、その処理結果をデータ統合モジュール50に伝送する。ステップS103:リアルタイムデータ処理システム30は、リアルタイムデータストリーム300からのリアルタイムデータを処理し、その処理結果をデータ統合モジュール50に伝送する。ステップS104:30日以内データ処理システム40は、30日以内データストリーム400からの30日以内データを処理し、その処理結果をデータ統合モジュール50に伝送する。ステップS102、S103、及びS104は、並列に実行される。
【0026】
リアルタイムデータストリーム300からのデータは、ユーザ行動を含むことができる。例えば、各ユーザクリックが、リアルタイムデータストリーム300の中の一項目であってよい。この項目は、ユーザ情報、行動情報、時間などを含むことができる。
【0027】
リアルタイムデータ処理システム30の場合は、リアルタイムデータストリーム300の各項目が、ユーザのリアルタイム行動を表すことができ、リアルタイムで処理することができる。すなわち、リアルタイムデータストリーム300は、ユーザが何を行ったかと、リアルタイムデータ処理システム30によって決定された対応するリアルタイム判断とを含むことができる。同じ項目は、ログファイルに記録され、2日後に、30日以内データ処理システム40が、そのログファイルを処理する。その後、30日以内データ処理システム40の結果が、データ統合モジュール50に送信される。
【0028】
一方で、リアルタイムデータ処理システム30は、リアルタイムデータストリーム300を処理し続ける。リアルタイムデータ処理システム30からの結果が計算される。また、このときに、30日以内データ処理システム40の結果も計算される。
【0029】
30日超データ処理システム20及び30日以内データ処理システム40の場合は、その相違は、30日超データ処理システム20が30日超データを処理し、30日以内データ処理システム40が30日以内データを処理することである。これらのデータ処理システムの結果は、データ統合システム50によって合体される。したがって、全てのデータが処理される。
【0030】
一部の実施形態では、リアルタイムデータ処理システム30と30日以内データ処理システム40とが、同じデータを処理する。すなわち、リアルタイムデータストリーム300からのデータと、30日以内データストリーム400からのデータとが同じである。リアルタイムデータストリーム300は、リアルタイムデータ処理システム30及びログファイルに同時に書き込まれる。そのログファイルの日々のコピーが、30日以内データ処理システム40に出力される。30日以内データ処理システム40は、ログファイルを日々読み出し、30日以内データストリーム400を処理し、その結果を出力する。30日以内データ処理システム40の結果は、ログファイルにデータが出力された実際の時間の2日後に、30日以内データ処理システム40によって使用される。言い換えると、リアルタイムデータ処理システム30は、リアルタイムデータストリーム300からのデータを2日以内に処理し、30日以内データ処理システム40は、その結果を2日遅れで生成する。リアルタイムデータ処理システム30は、リアルタイムデータストリーム300からのデータ(2日以内のデータであって、リアルタイム結果を形成するデータ)を維持及び処理するものであり、リアルタイムデータストリーム300からのデータが30日以内データ処理システム40によって処理及び使用されるまでには、2日間の遅れがある。リアルタイムデータ処理システム30及び30日以内データ処理システム40の結果は、その後、2日経過した時点で合体される。
【0031】
一部の実施形態では、リアルタイムデータ処理システム30は、リアルタイムデータストリーム300からのデータを、そのデータが入力される時点で処理する。更に、リアルタイムデータ処理システム30は、新しいデータが受信されると常に、その受信されたデータをリアルタイムで処理する。
【0032】
ステップS105:データ統合モジュール50は、30日超データ処理システム20、リアルタイムデータ処理システム30、及び30日以内データ処理40から受信された処理結果を統合し、統合されたデータを出力する。一部の実施形態では、30日超データ処理システム20及び30日以内データ処理システム40は、ログファイルへの出力を行う。30日超データ処理システム20によって処理されたデータは、30日超のタイムスタンプを有し、30日以内データ処理システム40によって処理されたデータは、30日以内のタイムスタンプを有する。一部の実施形態では、処理システム20、30、及び40からの処理結果は、統合を容易にするために同じ形式を有する。
【0033】
統合結果は、ユーザの行動と、それに対応するユーザの操作とを提供することができる。例えば、リアルタイム処理システム30は、ユーザAが製品p1及びp2を購入したことを決定することができる。それらの結果は、データ統合モジュール50に送信される。それと同時に、データ統合モジュール50は、30日以内データ処理システム40からの結果も処理することができる。30日以内データ処理システム40からの結果は、ユーザAが30日以内にp3、p2、及びp4も購入したことを示すことができる。それと同時に、データ統合モジュール50は、30日超データ処理システム20からの結果も処理することができる。30日超データ処理システム20からの結果は、30日前よりも以前に製品p5、p6、及びp7が購入されたことを示す。データ統合モジュール50は、ユーザAの全ての操作の記録を提供する。
【0034】
生データストリーム100は、データ認識モジュール10によって、3つの既定の時間制限で分けられた30日超データストリーム200、リアルタイムデータストリーム300、及び30日以内データストリーム400を含む3つの異なるデータストリームに分割される。しかしながら、当業者ならば、実際の要件に基づいて、その他の時間制限を使用して生データストリームを分割してよい。例えば、生データストリームは、2つ以下の若しくは4つ以上の時間区分に分割されてよく、30日区分以外の時間制限又は「リアルタイム」であると見なされる時間範囲が、実際の要件に基づいて決定されてよい。
【0035】
上記のように、大データ量分散データストリーム処理方法は、基本的に、3段階に分割される。これら3つの段階は、時系列的な分割、データ処理、及びデータ統合を含む。
【0036】
時系列的な分割の段階では、ウェブログデータが絶えず増加し続けているので、データ認識モジュール10は、先ず、リアルタイムデータストリーム300をリアルタイム処理システム30に伝送し、過去データストリームは、過去データ処理システムに伝送される。過去データストリームは、30日超データストリーム200と、30日以内データストリーム400とを含んでいてよく、過去データ処理システムは、30日超データ処理システム20と、30日以内データ処理システム40とを含んでいてよい。過去データストリームのデータは、既にファイルに記憶されているので、過去データストリームは、リアルタイム処理システム30には送信されない。
【0037】
データ処理の段階では、過去処理システム及びリアルタイム処理システムが、異なる時間区分からのデータを並列に処理する。
【0038】
データ統合の段階では、異なる時間区分からのデータの並列処理の結果が、データ統合モジュール50に伝送される。結果が統合された後、その統合された結果は、外部サービスに出力されてよい。
【0039】
データを複数のデータストリームに時系列的に分割するシステムの利点の1つは、時系列的性質を有する大量データストリームの処理がより速やかに実施されうることにある。
【0040】
データストリームのなかの各情報(例えば特定のログデータ)がタイムスタンプを有すると想定すると、最も早いデータから現在のデータまでのデータ(増え続ける)が、合計のデータストリームを構成している。特定の時点が、分割点として設定されてよい。データストリームのデータは、設定された分割点に基づいて、過去データとリアルタイムデータとに分割されてよい。データストリームに関して、過去データは、時間分割点前の特定の時点で既に存在していたと想定され得る。例えば、時間分割点よりも1日早くストリームされたデータは、リアルタイムで処理される必要はなく、オフラインで処理されてよい。その後、リアルタイム処理システムの結果と、過去データ処理システムの結果とが統合されてよい。
【0041】
過去データとリアルタイムデータとの別々の処理、及び過去データのオフライン処理は、リアルタイム計算を著しく軽減するだろう。リアルタイム計算の削減は、より速やかにリアルタイムデータが計算されることを可能にする。それと同時に、過去データもまた、より徹底的に計算されるだろう。
【0042】
過去データは、30日超データ処理システム20及び30日以内データ処理システム40によって出力されたログファイルを言う。リアルタイム処理システム30によって処理されたデータは、リアルタイムで処理される。30日超データ処理システム20及び30日以内データ処理システム40の場合は、処理されるデータが速く変化せず、したがって、データは、過去データと称される。
【0043】
一例では、過去データとリアルタイムデータとの異なる処理は、異なる計算プラットフォーム及び異なる計算方法で表される。30日超データ処理システム20は、大半のデータを処理するので、30日超データ処理システム20は、分散プラットフォームを使用することができる。30日以内データ処理システム40は、30日超データ処理システム20ほど多くのデータは処理しないので、30日以内データ処理システム40は、データウェアハウスプラットフォームを使用することができる。リアルタイム処理システム30は、例えば2日分のデータのように、最も少ないデータを処理し、しかしながら、リアルタイム計算を必要とするので、リアルタイム処理システム30は、リアルタイム処理のために複数のマシンを使用し、データをメモリに記憶させることができる。
【0044】
30日超データ処理システム20及び30日以内データ処理システム40は、複雑な式を使用すること及びオフラインでデータを処理することができるので、30日超データ処理システム20及び30日以内データ処理システム40は、計算の正確さを必要とし、計算の時間及び効率に関しては、あまり問題にされない。例えば、30日超データ処理システム20及び30日以内データ処理システム40は、ユーザ嗜好の減衰の計算において、指数関数を使用してよい。他方で、リアルタイム処理システム30は、リアルタイム計算を使用しており、事象に対してリアルタイムに応答しなければならない。したがって、リアルタイム処理システム30は、速やかに計算を実施し、正確さは効率よりも重要でない。
【0045】
プロセスの一実施形態は、異なる時間区分(リアルタイムな時間区分及び過去の時間区分を含む)からのデータを処理するために、データを順次分割し、異なる時間区分からのデータの並列処理に進む。したがって、本出願は、リアルタイムデータが適時に処理されることを保証する。
【0046】
リアルタイムデータ処理システムのパフォーマンスを更に向上させるために、リアルタイムデータ処理システムは、次元にしたがって、時間的に分離されたデータストリームを異なるデータ単位に更に分割してよい。本明細書で使用される次元とは、データの性質又はタイプを言う。例えば、異なる次元を有するデータは、異なるタイプの機能モジュールによって処理されてよい。データの情報の単位、すなわちデータ単位は、データブロックと呼ばれてよい。データの情報の単位(データブロック)の処理は、リアルタイムデータ処理システム30の一実施形態を使用して以下で説明される。
【0047】
例えば、データは、ユーザの行動に関するものであってよい。データは、製品の閲覧、情報のレビュー、キーワードの探索などに関する情報を含むことができる。異なるデータタイプは、それぞれ、異なる次元を指しており、異なる次元は、それぞれ、異なるモジュールによって計算することができる。
【0048】
例えば、モジュールM1は、ユーザがどのような情報を好むかを決定するために、ユーザの閲覧情報の記録を処理し、モジュールM2は、ユーザがどのような製品を好むかを決定するために、ユーザが訪れている製品の記録を処理し、モジュールM3は、ユーザがどのようなキーワードを好むかを決定するために、ユーザのキーワード検索の記録を処理する。モジュールM1、M2、及びM3は、互いに独立しており、並列に処理することができる。モジュールM1、M2、及びM3からの結果を合体させたものが、ユーザの嗜好を示す。ユーザ嗜好は、情報嗜好、製品嗜好、キーワード嗜好、及びその他の任意の適切な次元を含む。
【0049】
図4は、リアルタイム処理システムの一実施形態を示す概略図である。
【0050】
図4に示されるように、リアルタイム処理システム30は、1つの水平分割モジュール400と、複数のN縦分割モジュール500と、各N縦分割モジュール500が複数の関連のM機能モジュールを有する複数のN×M機能モジュール群600と、結果集約モジュール700とを含む。本出願において、「水平」という用語は、分割のレベルを特定することのみを意図しており、方向性の概念を特定することは意図していない。本出願において、「垂直」という用語は、分割のレベルを特定することのみを意図しており、方向性の概念を特定することは意図していない。
【0051】
図5は、リアルタイム処理方法の一実施形態を示すフローチャートである。この方法は、図4のリアルタイム処理システム30によって実施することができる。
【0052】
ステップS200:リアルタイムデータストリーム300が取り出される。
【0053】
ステップS201:水平分割モジュール400が、取り出されたリアルタイムデータストリーム300を複数のNデータブロック(1、2、…… N)に分割する。ステップS201における分割は、水平分割として言及される。水平分割は、既定の時間分割点に基づいていてよい。一部の実施形態では、時間分割点は、リアルタイムデータストリームを30日以内データストリームから分ける時点である。例えば、過去データが日付によって記憶されており、図2の30日超データ処理システム20は、30日よりも前のデータを処理し、図2の30日以内データ処理システム40は、2日間遅れの30日以内のデータを使用して30日以内データを処理し、図2のリアルタイム処理システム30は、最新2日間のデータを処理する。水平分割モジュール400は、分割されたデータブロックを対応する複数のN垂直分割モジュール500に伝送する。
【0054】
この例では、30日分割を手動で設定することができる。一部の実施形態では、設定は、設定ファイルを通じて変更することができる。モジュール1〜Nは、それぞれ、同じ能力(M1、M2、…… )を有する。例えば、ユーザの嗜好を計算するためには、ユーザ1の情報がリアルタイムで得られたときに、モジュールM1(hash(user1)=1)を使用してユーザ1の嗜好を計算するために、マッピング技術(例えばhash)が使用される。同様に、ユーザ2の情報がリアルタイムで得られたときは、3(hash(user2)=3)が得られ、したがって、ユーザ3のデータが、処理のためにモジュールM3に送信される。モジュールM1、M2、M3などは、それぞれ、異なるユーザからのデータを同時に処理することができる。
【0055】
図4に示されるように、第1のデータブロックは、第1の垂直分割モジュール500に伝送され、第2のデータブロックは、第2の垂直分割モジュール500に伝送され、これは、以下同様に、第Nのデータブロックが第Nの垂直分割モジュール500に伝送されるまで続く。リアルタイムデータストリームは、制限はないが、一過性である。N垂直分割モジュール500は、それぞれ、その垂直分割モジュール500によるデータブロックの処理が完了した後に再び使用されてよい。したがって、垂直分割モジュール500の数は、リアルタイムデータストリームの(データ)流量に基づいて決定されてよい。
【0056】
ステップS202:各垂直分割モジュール500は、受信されたデータブロックを複数のデータ単位に分割する。実際の状況によっては、受信されたデータブロックは、M個の多さのデータ単位に分割されてよい。一部の実施形態では、モジュールの数Mは、利用可能なリソースに基づいて、すなわち利用可能なマシンの数に基づいて決定される。一部の実施形態では、モジュールの数Mは、設定ファイルによって決定される。設定ファイルの内容は、利用可能なリソースを表している。このステップにおけるデータブロックの分割は、垂直分割として言及され、該垂直分割は、次元に基づいていてよい。各垂直分割モジュール500は、分割されたデータ単位を、機能モジュール群600に含まれる複数の異なる機能モジュールに別々に伝送する。機能モジュールの番号は、データ単位の番号に対応していてよい。機能モジュールの数は、M個の多さであってよい。
【0057】
垂直分割は、異なる次元のデータを取り上げて、その垂直分割データを、それぞれ異なる機能を有する異なる処理モジュールに送信する。異なる処理モジュールは、垂直分割データを並列に処理する。ユーザ嗜好に関係する3つの次元の例として、製品嗜好、情報嗜好、及びキーワード嗜好が挙げられ、これらは、それぞれ異なる処理モジュールに送信される。
【0058】
別の例として、製品の情報のリアルタイム処理が挙げられる。製品の情報がリアルタイム処理システム30に入力されたときに、製品情報は、製品の写真情報、製品の価格、製品の名前などの次元を含んでいる。この時点で、分割モジュールは、製品情報を分割する。例えば、分割モジュールは、写真情報を写真処理モジュールに送信し、価格情報を価格処理モジュールに送信し、名前情報を内容処理モジュールに送信する。これらの異なるモジュールは、異なる次元を処理する。合体された結果が、製品情報を処理した結果である。この例では、異なる情報次元を処理するために、異なるモジュールが事前に定められる。
【0059】
図4に示されるように、第1の垂直分割モジュール500は、データブロック1をM個のデータ単位に分割し、第1のデータ単位を第1の機能モジュール群600の第1の機能モジュールに伝送し、第2のデータ単位を第1の機能モジュール群600の第2の機能モジュールに伝送し、これは、以下同様に、第1の垂直分割モジュール500が第Mのデータ単位を第Mの機能モジュールに伝送するまで続けられる。
【0060】
したがって、図2のリアルタイムデータストリーム300の流量が十分に大きいことを受けて、第2の垂直分割モジュール500は、データブロック2を複数のMデータ単位に分割し、第1のデータ単位を第2の機能モジュール群600の第1の機能モジュールに伝送し、第2のデータ単位を第2の機能モジュール群600の第2の機能モジュールに伝送し、これは、以下同様に、第2の垂直分割モジュール500が第Mのデータ単位を第2の機能モジュール群600の第Mの機能モジュールに伝送するまで続けられる。
【0061】
したがって、リアルタイムデータストリーム300の流量が十分に大きいことを受けて、その他の垂直分割モジュール500は、その他のデータ単位をその他の機能モジュール群600の機能モジュールに伝送してよい。垂直分割モジュール500、機能モジュール群600、及び機能モジュール群600に含まれる機能モジュールの数は、リアルタイムデータストリーム300の流量に基づいて決定されてよい。
【0062】
ステップS203:各機能モジュールは、受信されたデータ単位を処理し、その処理の結果を結果集約モジュール700に伝送する。
【0063】
ステップS202及びステップS203は、並列に実行することができる。
【0064】
ステップS204:結果集約モジュール700は、受信された結果を集約させ、その集約結果を出力する。
【0065】
本出願で説明されるように、リアルタイムデータストリームは、水平に分割され、同じ機能をそれぞれ有する各プロセッサに割り当てられる。プロセッサは、並列に処理を実施し、これは、リアルタイムデータストリームの処理の速度を大幅に増加させる。プロセッサは、垂直分割モジュール500に対応していてよい。
【0066】
次いで、垂直分割モジュール500は、次元にしたがってデータの垂直分割を実施する。言い換えると、垂直分割モジュール500は、データから、異なる次元のデータ単位を抽出する。続いて、対応する次元のデータ単位が、対応する機能処理モジュールに伝送され、それらのデータ単位は、機能処理モジュールによって並列に処理される。機能処理モジュールは、機能モジュールに対応していてよい。
【0067】
生データストリームに対応するウェブログデータストリームの例に基づくと、ウェブログデータストリームは、先ず、複数のログ情報データブロックに水平分割されてよい。該水平分割は、時間に基づいていてよい。一部の実施形態では、データブロックは、リアルタイムデータブロックと、30日以内データブロックと、30日超データブロックとに分割される。各ログ情報データブロックは、対応する垂直分割モジュール500に割り当てられてよい。続いて、各垂直分割モジュール500は、対応するログ情報データブロックを別の次元にしたがって垂直分割する。その別の次元は、時間に対応していなくてよい。例えば、ログ情報データブロックから、製品情報が抽出されてよく、該抽出された製品情報は、製品処理要素に送信されてよく、それと並列に、ログ情報データブロックからキーワード情報が抽出されてよく、該抽出されたキーワード情報は、キーワード処理要素に送信されてよい。この例では、各情報ブロックは、更に、より細かい粒度を有する更に小さいデータ単位に分割される。これらの更に細かいデータ単位は、並列処理のために、様々な機能モジュールに分散される。別の例では、機能モジュールがリアルタイムウェブログデータストリームを処理する間に、製品情報機能モジュールが製品情報データを処理し、アクセス経路機能モジュールがアクセス経路データを処理し、これらの各機能モジュールは、データを並列に処理する。続いて、並列に処理されるために、ユーザ情報及び製品情報は、ユーザ情報及び製品情報に基づいて製品の推薦を行う推薦機能モジュールに送信されてよく、ユーザ情報及びアクセス経路情報は、スパム防止モジュールに送信されてよく、その他の情報は、その他の機能モジュールに送信されてよい。
【0068】
スパム防止モジュールに送信されうる情報の一例は、ユーザの訪問回数が所定の時間内における閾値を超えたことをリアルタイム処理システム30が決定したときに、発生することができる。例えば、情報は、ユーザが5分以内に200回訪問したときに、スパム防止モジュールに送信することができる。
【0069】
別の例は、ユーザが衣類及び低価格を好むことを過去データが示しているときである。しかしながら、もしある日、ユーザが高価格の電気製品を何度も訪問したならば、その情報は、ユーザのアカウントが危険に曝されているかもしれないことを示しており、警告システムがトリガされる。
【0070】
各機能モジュールの処理結果は、インテグレータ(統合部)に伝送されてよく、このインテグレータは、処理結果の統合(集約)を実施する。例えば、インテグレータは、結果集約モジュール700に対応していてよい。インテグレータは、また、図2のデータ統合モジュール50を更に含んでいてもよい。
【0071】
本出願におけるデータの分割は、リアルタイムデータ処理システムの上記の実施形態を使用して説明されてきた。当業者ならば、過去データ処理システムの場合も、リアルタイムデータ処理システムと同様なフレームワークが使用されてよいことがわかる。過去データ処理システムとリアルタイムデータ処理システムとの相違は、過去データ処理が、定期的実行の方法を用いてよいことにある。定期的実行の方法は、過去データをリアルタイムに処理するのではなく一定時間ごとに処理することを伴っていてよい。したがって、低コストのクラスタ分散型の計算システムが、過去データ処理システムとして使用されてよい。
【0072】
上記のように、既存の分散データストリーム処理システムと異なり、本出願は、共有メモリモデルを用いず、その代わりに、本出願は、データの時系列的性質又はその他の次元に基づいて、データに対して複数の水平分割及び垂直分割を実施する。言い換えると、本出願は、データを処理するために、時系列的性質を用いるとともに、マルチレベルフレームワークを利用する。本出願は、既存の並列計算システムで見られた機能的再現のフレームワークに限定されず、むしろ、処理のために、時間に基づいてデータを複数の区分に分割し(水平分割)、新しい分散フレームワークを使用して、異なる次元を用いてデータストリームの垂直分割を実施する(垂直分割)。言い換えると、上述された方法の並列処理では、全ての計算モジュールが、計算モジュール間で異なる部分が計算データである以外は全ての計算モジュールが同じ機能を有していて尚且つ同じプロセスを実行するのではない。したがって、本出願は、より細かい粒度でデータの並列処理を実行することができ、また、機能モジュールのモジュール化及びホットスワップを実現することもできる。したがって、機能モジュールのモジュール化能力及びホットスワップ能力が向上されているゆえに、システムは、より容易に維持することができる。
【0073】
本出願は、大量のデータのリアルタイム処理を可能にする。分散並列処理は、大量のデータのリアルタイム処理を確実にする及びシステムの応答性を向上させるために、リアルタイムデータストリームを同時に処理するために使用される。
【0074】
本出願に基づく大データ量分散データストリーム処理方法は、計算能力及び処理能力を有する1つの又は複数の処理機器を使用して実現されてよい。本出願に基づく大データ量分散データストリーム処理システムは、1つの又は複数の処理機器であってよい。例えば、処理機器は、コンピュータによって実行可能な命令を走らせる1台の又は複数のコンピュータであってよい。個々のモジュール又は要素は、機器のコンポーネントであって、コンピュータによって実行可能な命令が処理機器によって実行されるときに対応する機能を有するものであってよい。本出願に基づく一実施形態では、上記の大データ量分散データストリーム処理方法及び対応するシステムを実現するために、Linux(登録商標)又はWindows(登録商標)をベースにしたシステム上で、JAVA(登録商標)又はSQLなどの言語が使用されてよい。
【0075】
図6は、図4のリアルタイム処理システムに対応するリアルタイム処理方法の一実施形態を示すブロック図である。この例では、システム602は、複数のアプリケーションサーバ612、614、616、及び618を含む。例示を目的として、4つのアプリケーションサーバが使用されているが、その他の実施形態では、異なる数のアプリケーションサーバが使用されてよい。604や606などのクライアントからのリアルタイムデータストリームが、アプリケーションサーバによって受信される。クライアント及びアプリケーションサーバは、TCP/IP又はその他の任意のネットワークプロトコルを通じて通信してよい。
【0076】
アプリケーションサーバ612、614、616、及び618は、生データストリームをリアルタイムデータストリームと過去データストリームとに分割するように構成されたデータ認識モジュールと、リアルタイムデータストリームと過去データストリームとを並列に処理し、それぞれの処理結果を別々に生成するように構成された並列処理モジュールと、生成された処理結果を統合するように構成されたデータ統合モジュールとを含む。
【0077】
上述されたモジュールは、1つ以上の汎用プロセッサ上で実行されるソフトウェアコンポーネントとして、又はプログラム可能論理装置及び/若しくは特定の機能を実施するように設計された特殊用途向け集積回路などのハードウェアとして、又はそれらの組み合わせとして実装することができる。一部の実施形態では、モジュールは、本発明の実施形態で説明される方法を(パソコン、サーバ、ネットワーク機器などの)計算装置に実行させるための幾つかの命令を含み尚且つ(光ディスク、フラッシュストレージデバイス、モバイルハードディスクなどの)不揮発性のストレージ媒体に記憶させることができるソフトウェア製品の形で具現化することができる。モジュールは、1つのデバイスに実装されてよい、又は複数のデバイスに分散されてよい。モジュールの機能は、互いに合体されてよい、又は複数の小モジュールに更に分割されてよい。
【0078】
本出願は、代表的な実施形態との関連のもとで既に説明されているが、使用された用語は、説明のための代表的な用語であって、制限的な用語ではないことが、理解されるべきである。本出願は、本発明の主旨又は実態から逸脱することなく多様な形態で実現することができ、したがって、上記の実施形態は、上記のいずれの詳細によっても制限されず、添付の特許請求の範囲の主旨及び範囲内であるものと広義に解釈されるべきであることが、理解されるべきである。したがって、特許請求の範囲又はそれらの均等物の範囲内に入るあらゆる変更及び修正が、添付の特許請求の範囲によって網羅されるべきである。
【0079】
以上の実施形態は、理解を明瞭にすることを目的として、幾らか詳細に説明されてきたが、本発明は、与えられた詳細に限定されない。本発明を実現するには、多くの代替的手法がある。開示された実施形態は、例示的なものであり、非限定的である。
適用例1:分散データストリーム処理方法であって、生データストリームをリアルタイムデータストリームと過去データストリームとに分割し、前記リアルタイムデータストリームと前記過去データストリームとを並列に処理し、前記リアルタイムデータストリーム及び前記過去データストリームのそれぞれの処理結果を別々に生成し、前記それぞれの生成された処理結果を統合すること、を備える方法。
適用例2:適用例1に記載の方法であって、前記リアルタイムデータストリームを処理することは、次元に基づいて実施され、前記リアルタイムデータストリームのあるデータブロックは、前記リアルタイムデータストリームの別のデータブロックと並列に処理される、方法。
適用例3:適用例2に記載の方法であって、前記リアルタイムデータストリームを処理することは、前記リアルタイムデータストリームを複数のデータブロックに分割し、各データブロックを複数のデータ単位に分割し、前記複数のデータ単位を並列に処理し、前記複数のデータ単位の処理の結果を集約させること、を含む、方法。
適用例4:適用例1に記載の方法であって、前記過去データストリームを処理することは、次元に基づいて前記過去データストリームを分割することを含み、前記過去データストリームの分割は、並列に実施される、方法。
適用例5:適用例3に記載の方法であって、前記リアルタイムデータストリームを前記複数のデータブロックに分割することは、時間に基づく、方法。
適用例6:適用例1に記載の方法であって、前記リアルタイムデータストリームと前記過去データストリームとは別に処理される、方法。
適用例7:適用例4に記載の方法であって、前記次元は、ユーザの行動に関する、方法。
適用例8:適用例4に記載の方法であって、ユーザの異なる嗜好は、異なる次元に対応し、異なる次元に関するデータ単位は、別々のモジュールによって処理される、方法。
適用例9:分散データストリーム処理装置であって、少なくとも1つのプロセッサであって、生データストリームをリアルタイムデータストリームと過去データストリームとに分割し、前記リアルタイムデータストリームと前記過去データストリームとを並列に処理し、それぞれの処理結果を別々に生成し、前記それぞれの生成された処理結果を統合するように構成されている、少なくとも1つのプロセッサと、前記少なくとも1つのプロセッサに接続され、前記少なくとも1つのプロセッサに命令を提供するように構成されているメモリと、を備える、装置。
適用例10:適用例9に記載の装置であって、前記リアルタイムデータストリームを処理することは、次元に基づいて前記リアルタイムデータストリームを分割することを含み、前記リアルタイムデータストリームのあるデータブロックは、前記リアルタイムデータストリームの別のデータブロックと並列に処理される、装置。
適用例11:適用例10に記載の装置であって、前記リアルタイムデータストリームを処理することは、前記リアルタイムデータストリームを複数のデータブロックに分割し、各データブロックを並列に複数のデータ単位に分割し、前記複数のデータ単位を、それらを並列に処理するために、対応する複数の機能モジュールに伝送し、前記複数の機能モジュールによるデータ処理の結果を集約させること、を含む、装置。
適用例12:適用例9に記載の装置であって、前記過去データストリームを処理することは、次元に基づいて前記過去データストリームを分割し、前記過去データストリームの並列処理を実施することを含む、装置。
適用例13:適用例11に記載の装置であって、前記リアルタイムデータストリームを前記複数のデータブロックの分割は、時間に基づく、装置。
適用例14:非一過性のコンピュータ読み取り可能ストレージ媒体に実装された、生データストリームを処理するためのコンピュータプログラム製品であって、前記生データストリームをリアルタイムデータストリームと過去データストリームとに分割するためのコンピュータ命令と、前記リアルタイムデータストリームと前記過去データストリームとを並列に処理するためのコンピュータ命令と、前記リアルタイムデータストリーム及び前記過去データストリームのそれぞれの処理の結果を別々に生成するためのコンピュータ命令と、前記それぞれの生成された処理結果を統合するためのコンピュータ命令と、を備えるコンピュータプログラム製品。
適用例15:適用例14に記載のコンピュータプログラム製品であって、前記リアルタイムデータストリームを処理することは、次元に基づいて実施され、前記リアルタイムデータストリームのあるデータブロックは、前記リアルタイムデータストリームの別のデータブロックと並列に処理される、コンピュータプログラム製品。
適用例16:適用例15に記載のコンピュータプログラム製品であって、前記リアルタイムデータストリームを処理することは、前記リアルタイムデータストリームを複数のデータブロックに分割、各データブロックを並列に複数のデータ単位に分割し、前記各データ単位を分割することを受けて、前記複数のデータ単位を並列処理のために対応する複数の機能モジュールに別々に伝送し、前記複数の機能モジュールの処理結果を集約させること、を含む、コンピュータプログラム製品。
適用例17:適用例14に記載のコンピュータプログラム製品であって、前記過去データストリームを処理することは、次元に基づいて前記過去データストリームを分割することを含み、前記過去データストリームの分割は、並列に実施される、コンピュータプログラム製品。
適用例18:適用例16に記載のコンピュータプログラム製品であって、前記リアルタイムデータストリームを前記複数のデータブロックの分割は、時間に基づく、コンピュータプログラム製品。
適用例19:分散データストリーム処理システムであって、複数のアプリケーションサーバを備え、前記複数のアプリケーションサーバは、生データストリームをリアルタイムデータストリームと過去データストリームとに分割するように構成されたデータ認識モジュールと、前記リアルタイムデータストリームと前記過去データストリームとを並列に処理し、それぞれの処理結果を別々に生成するように構成された並列処理モジュールと、前記それぞれの生成された処理結果を統合するように構成されたデータ統合モジュールと、を含む、システム。
適用例20:適用例19に記載のシステムであって、前記並列処理モジュールは、次元に基づいて前記リアルタイムデータストリームを分割し、前記リアルタイムデータストリームのあるデータブロックは、前記リアルタイムデータストリームの別のデータブロックと並列に処理される、システム。
適用例21:適用例20に記載のシステムであって、前記並列処理モジュールは、前記リアルタイムデータストリームを複数のデータブロックに分割するように構成された水平分割モジュールと、各データブロックを並列に複数のデータ単位に分割し、前記複数のデータ単位を、それらを並列に処理するために、対応する複数の機能モジュールに伝送するように構成された複数の垂直分割モジュールと、前記複数の機能モジュールによるデータ処理の結果を集約させるように構成された結果集約モジュールと、を含む、システム。
適用例22:適用例19に記載のシステムであって、前記並列処理モジュールは、次元に基づいて前記過去データストリームを分割し、前記過去データストリームの並列処理を実施する、システム。
適用例23:適用例21に記載のシステムであって、前記水平分割モジュールは、前記リアルタイムデータストリームを時間に基づいて前記複数のデータブロックに分割する、システム。
図1
図2
図3
図4
図5
図6