(57)【要約】【課題】ストリームデータが複数のデータ蓄積装置に分散して記憶されている場合に、各データ蓄積装置に分散された蓄積データの再処理の効率化を図るため、蓄積データの再構成を行う。【解決手段】分散ストリーム処理システム１の情報管理装置３０は、参照クライアント７０から再構成するデータの情報源ＩＤを取得する。そして情報管理装置３０の再構成プラン作成部３５は、情報源ＩＤに基づきデータ位置管理ＤＢ３２２に記憶された蓄積データ位置情報を検索し、各データ蓄積装置２０に記憶されたストリームデータの再構成プランを作成する。次に、再構成プラン作成部３５は、作成した再構成プランを各データ蓄積装置２０の再構成処理部２４に送信する。再構成処理部２４は、再構成プランに基づき、移動対象となるストリームデータを記憶する他のデータ蓄積装置２０から、ストリームデータを取得し蓄積データの再構成を行う。【選択図】図１
2011100359.tif 000002
【特許請求の範囲】
【請求項１】
（１）複数の情報源端末から送信されたストリームデータを蓄積する複数のデータ蓄積装置と、（２）前記データ蓄積装置から取得した前記ストリームデータに対しデータ処理を実行する複数のデータ処置装置と、（３）前記データ蓄積装置に蓄積されたストリームデータの記憶位置およびデータサイズに関する蓄積データ位置情報を記憶し、前記蓄積データ位置情報を用いて前記データ蓄積装置に蓄積された前記ストリームデータを特定し、前記データ蓄積装置および前記データ処理装置に前記ストリームデータの処理に関する指示を行う情報管理装置と、を備える分散ストリーム処理における蓄積データの再構成システムであって、
前記情報管理装置は、
前記蓄積データ位置情報を記憶するデータ位置管理ＤＢ（DataBase）が格納される記憶部と、
前記データ蓄積装置から送信された前記蓄積データ位置情報を、前記データ位置管理ＤＢに記憶するデータ位置管理部と、
前記データ位置管理ＤＢに記憶された前記蓄積データ位置情報に基づき、前記データ蓄積装置に蓄積されたストリームデータのデータサイズの平均値を理想データサイズとして算出し、前記理想データサイズ以下の前記ストリームデータを抽出し、前記抽出したストリームデータの中から移動対象となるストリームデータと、当該ストリームデータを他のデータ蓄積装置から取得するコレクタノードとを示す再構成プランを作成し、前記作成した再構成プランを前記複数のデータ蓄積装置に配信する再構成プラン作成部と、を備え、
前記データ蓄積装置は、
前記情報源端末から送信された前記ストリームデータを記憶する蓄積データ記憶部と、
前記蓄積データ記憶部に前記ストリームデータが記憶される度に、当該ストリームデータの前記蓄積データ位置情報を、前記情報管理装置に送信するデータ位置情報送信部と、
自己のデータ蓄積装置以外の他のデータ蓄積装置から前記ストリームデータを取得するデータ取得部と、
自己の蓄積データ記憶部に記憶された前記ストリームデータを、他のデータ蓄積装置に送信するデータ送信部と、
前記再構成プラン作成部から前記再構成プランを受信し、前記再構成プランを用いて、前記自己のデータ蓄積装置が、前記他のデータ蓄積装置から前記移動対象となるストリームデータを収集する前記コレクタノードか否かを判定し、前記自己のデータ蓄積装置が、前記コレクタノードであれば、前記移動対象となるストリームデータを記憶する前記他のデータ蓄積装置にデータ移動要求メッセージを前記データ取得部を介して送信し、前記移動対象となるストリームデータを取得して、前記取得したストリームデータを統合し、
前記自己のデータ蓄積装置が、前記コレクタノードでなければ、前記コレクタノードである他のデータ蓄積装置からの前記データ移動要求メッセージに応じて、前記移動対象となるストリームデータを、前記送信部を介して、前記コレクタノードである他のデータ蓄積装置に送信する再構成処理部と、
を備えることを特徴とする蓄積データの再構成システム。
【請求項２】
前記再構成プラン作成部は、
前記データ蓄積装置を前記コレクタノードに選択するか否かの指標としてのスコアを、前記理想データサイズ以下の前記ストリームデータを記憶する各データ蓄積装置に対して、前記ストリームデータのデータサイズが大きいほど当該スコアが高くなるように設定し、かつ単位時間あたりに処理する前記ストリームデータのデータ量が大きいほど当該スコアが低くなるように設定して、前記各データ蓄積装置毎に前記スコアを計算し、前記計算したスコアが高い前記データ蓄積装置から順に前記コレクタノードとして選択し、
前記コレクタノードに選択された前記データ蓄積装置のストリームデータのデータサイズに、前記計算したスコアが低い順に前記他のデータ蓄積装置のストリームデータのデータサイズを前記理想データサイズを超えるまで加え、前記理想データサイズを超えるまで加えた前記他のデータ蓄積装置のストリームデータを前記移動対象となるストリームデータとし、
前記選択したコレクタノードと前記理想データサイズを超えるまで加えた前記移動対象となるストリームデータとを対応付けて、前記再構成プランを作成すること
を特徴とする請求項１に記載の蓄積データの再構成システム。
【請求項３】
（１）複数の情報源端末から送信されたストリームデータを蓄積する複数のデータ蓄積装置と、（２）前記データ蓄積装置から取得した前記ストリームデータに対しデータ処理を実行する複数のデータ処置装置と、（３）前記データ蓄積装置に蓄積されたストリームデータの記憶位置およびデータサイズに関する蓄積データ位置情報を記憶し、前記蓄積データ位置情報を用いて前記データ蓄積装置に蓄積された前記ストリームデータを特定し、前記データ蓄積装置および前記データ処理装置に前記ストリームデータの処理に関する指示を行う情報管理装置と、を備える分散ストリーム処理システムにおける蓄積データの再構成方法であって、
前記データ蓄積装置は、
前記情報源端末から送信された前記ストリームデータを記憶する蓄積データ記憶部を備え、
前記蓄積データ記憶部に前記ストリームデータが記憶される度に、当該ストリームデータの前記蓄積データ位置情報を、前記情報管理装置に送信し、
前記情報管理装置は、
前記蓄積データ位置情報を記憶するデータ位置管理ＤＢが格納される記憶部を備え、
前記データ蓄積装置から送信された前記蓄積データ位置情報を、前記データ位置管理ＤＢに記憶し、
前記データ位置管理ＤＢに記憶された前記蓄積データ位置情報に基づき、前記データ蓄積装置に蓄積されたストリームデータのデータサイズの平均値を理想データサイズとして算出し、前記理想データサイズ以下の前記ストリームデータを抽出し、前記抽出したストリームデータの中から移動対象となるストリームデータと、当該ストリームデータを他のデータ蓄積装置から取得するコレクタノードとを示す再構成プランを作成し、前記作成した再構成プランを前記複数のデータ蓄積装置に配信し、
前記データ蓄積装置は、
前記情報管理装置から前記再構成プランを受信し、前記再構成プランを用いて、前記自己のデータ蓄積装置が、前記他のデータ蓄積装置から前記移動対象となるストリームデータを収集する前記コレクタノードか否かを判定し、前記自己のデータ蓄積装置が、前記コレクタノードであれば、前記移動対象となる前記ストリームデータを記憶する前記他のデータ蓄積装置にデータ移動要求メッセージを送信し、前記移動対象となるストリームデータを取得して、前記取得したストリームデータを統合し、
前記自己のデータ蓄積装置が、前記コレクタノードでなければ、前記コレクタノードである他のデータ蓄積装置からの前記データ移動要求メッセージに応じて、前記移動対象となるストリームデータを、前記コレクタノードである他のデータ蓄積装置に送信すること、
を特徴とする蓄積データの再構成方法。
【請求項４】
前記再構成プラン作成部は、
前記データ蓄積装置を前記コレクタノードに選択するか否かの指標としてのスコアを、前記理想データサイズ以下の前記ストリームデータを記憶する各データ蓄積装置に対して、前記ストリームデータのデータサイズが大きいほど当該スコアが高くなるように設定し、かつ単位時間あたりに処理する前記ストリームデータのデータ量が大きいほど当該スコアが低くなるように設定して、前記各データ蓄積装置毎に前記スコアを計算し、前記計算したスコアが高い前記データ蓄積装置から順に前記コレクタノードとして選択し、
前記コレクタノードに選択された前記データ蓄積装置のストリームデータのデータサイズに、前記計算したスコアが低い順に前記他のデータ蓄積装置のストリームデータのデータサイズを前記理想データサイズを超えるまで加え、前記理想データサイズを超えるまで加えたストリームデータを前記移動対象となるストリームデータとし、
前記選択したコレクタノードと前記理想データサイズを超えるまで加えた前記移動対象となるストリームデータとを対応付けて、前記再構成プランを作成すること
を特徴とする請求項３に記載の蓄積データの再構成方法。
【請求項５】
請求項３または請求項４に記載の蓄積データの再構成方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散ストリーム処理における蓄積データの再構成システム、再構成方法およびプログラムに関する。
【背景技術】
【０００２】
ユビキタス社会の進展に伴って、情報を収集し蓄積するコストが低下してきている。例えば、ＶｏＩＰ（Voice over Internet Protocol）技術により携帯電話の通話記録を容易に収集したり、センシング機器（センサ）やＩＣ（Integrated Circuits）タグの発達・普及により、様々な場所や状況で情報を自動的に収集したりできるようになった。さらに、ネットワークコストの低下により、これらの情報を広域から大量に収集することが可能となった。
【０００３】
このように、各種センサやＩＣタグ、携帯電話等により様々なデータを収集し、その収集したデータを処理して、所定の利用先へ流通させるストリームデータ処理技術がある。このストリームデータ処理において、単位時間あたりにデータサイズが変化するストリームデータを複数受けた場合でも、効率的に処理できるように、ストリームデータを受け付けるデータ蓄積装置を複数設け、さらに、複数のデータ処理装置を設けて、効率的に処理を分散させることができる分散ストリーム処理システムが開示されている（例えば、特許文献１参照）。
【０００４】
また、大量のデータを扱う分散ストリーム処理システムにおいて、一度処理を終えた過去のデータの洗い直しやマイニング等のため、データ蓄積装置に記憶されたストリームデータを再度呼び出し、再処理する技術が開示されている（例えば、特許文献２参照）。
【０００５】
図１３は、従来技術における分散ストリーム処理システム５を示す図である。
この分散ストリーム処理システム５は、計測データやログデータ等の時系列で作成されるデータをストリームデータとして送信する追記クライアント（情報源）５０（５０Ａ，５０Ｂ，…，５０Ｎ）と、追記クライアント５０から送信されたストリームデータを蓄積するデータ蓄積装置２０（２０Ａ，２０Ｂ，…，２０Ｎ）と、このデータ蓄積装置２０からストリームデータを取得し、所定のデータ処理を実行するデータ処理装置１０（１０Ａ，１０Ｂ，…，１０Ｎ）と、このデータ処理後のストリームデータを蓄積するデータベース装置６０（６０Ａ，６０Ｂ，…，６０Ｎ）と、このデータベース装置６０のデータの検索を行ったり、データベース装置６０からデータの配信を受けたりする参照クライアント（外部装置）７０（７０Ａ，７０Ｂ，…，７０Ｎ）と、このデータ蓄積装置２０やデータ処理装置１０を動作させるための情報を管理する情報管理装置３０とを含んで構成される。
【０００６】
この分散ストリーム処理システム５によれば、情報管理装置３０の接続先割当部３１が、追記クライアント５０からのストリームデータを、どのデータ蓄積装置２０に割り当てるか決定する。そして、ストリームデータを受け付けたデータ蓄積装置２０の追記部２１は、蓄積データ記憶部２２に、ストリームデータを記憶する。そして、追記部２１内のデータ位置情報送信部２１４が、その記憶した位置情報を情報管理装置３０に送信する。続いて、位置情報を受信した情報管理装置３０のデータ位置管理部３４は、そのストリームデータの位置情報をデータ位置管理ＤＢ（DataBese）３２２に記憶する。一方、データ処理装置１０は、ストリームデータの取得元となるデータ蓄積装置２０のキー状態情報（入力スループット、出力スループット、ＣＰＵコスト等）をもとに、キュー選択部１１がデータ蓄積装置２０を選択して、データ受付部１２がストリームデータを取得し、データ処理部１３においてデータ処理を行う。そして、データ処理後のストリームデータを、データベース装置６０に出力することで、参照クライアント７０がデータの検索を行ったり、データの配信を受けたりする。
【０００７】
また、この分散ストリーム処理システム５においては、参照クライアント７０から情報管理装置３０に対し、ストリームデータの再処理指示を受け付ける。再処理指示を受け付けた情報管理装置３０のデータ再処理制御部３３は、指示されたストリームデータがどのデータ蓄積装置２０のどの記憶位置に記憶されているかを、データ位置管理部３４を介してデータ位置管理ＤＢ３２２を検索し、該当するデータ蓄積装置２０のプロセス管理部２３に指示を出す。そして、プロセス管理部２３は、再処理の対象となるストリームデータを抽出して追記部２１へ送り、データ処理装置１０での再処理を実行させる。
【０００８】
このような分散ストリーム処理システム５では、多数の追記クライアント（情報源）５０から入力される大量のストリームデータを処理する必要がある。しかし、限られたセッション数しか対応できないため、セッションを切断することがある。また、センサ等の情報源側の何らかの理由で、セッションが切断されることもある。これらの場合、セッションをつなぎ直す時点で、それ以前と同じ追記部２１にセッションを張るためには、追記クライアント５０を認証し、切断時と同じ追記部２１をすべてのデータ蓄積装置２０の中から検索する処理が必要となる。また、切断前に接続していた追記部２１が他の追記クライアント５０から大量のストリームデータを受け付けた場合や、データ蓄積装置２０の故障等で、接続できない可能性もある。
【０００９】
そこで、情報管理装置３０の接続先割当部３１は、追記クライアント５０への追記レスポンスを高速にし、可用性を高めるために、負荷の少ない追記部２１の中からデータを受け付ける追記部２１を決定する方針をとっている。これにより、どのデータ蓄積装置２０が壊れても、他の負荷が少ないデータ蓄積装置２０の追記部２１を使用し、ストリームデータを受け付けることが可能となる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００８−８３８０８号公報
【特許文献２】特開２００８−２９４７７４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、従来の分散ストリーム処理システム５においては、ストリームデータを送信する追記クライアント５０と情報管理装置３０の追記部２１との対応関係が決定されていないため、一つの追記クライアント５０から送信されるデータが、複数の追記部２１に、送信されることになる。また、その際、追記クライアント（情報源）５０の種類によって、データサイズに大きなバラつきが発生する。
【００１２】
さらに、追記クライアント（情報源）５０の種類によっては、セッションの扱いが異なり、一度セッションを確立した後は、何らかの問題が発生するまでは同一のセッションの中で追記を行い続ける方法（以下、「セッション維持型」という）と、情報源が数秒から数分毎にセッションの確立を行いながらデータの追記を行う（以下、「都度セッション確立型」という）がある。
【００１３】
図１４は、分散ストリーム処理システムのデータ蓄積方法を説明するための図である。
図１４は、情報源「１」，「２」，「３」が存在し、情報源「１」，「２」が都度セッション確立型の追記、情報源「３」がセッション維持型の追記である例を示している。
この例では、追記部「Ａ」に、情報源「１」系列「１」のデータと情報源「２」系列「１」のデータが送られ、蓄積データとして記憶される。追記部「Ｂ」に、情報源「１」系列「２」のデータと情報源「２」系列「２」のデータが送られ、蓄積データとして記憶される。追記部「Ｃ」に、情報源「３」系列「１」のデータが送られ、蓄積データとして記憶される。また、追記部「Ｄ」に、情報源「１」系列「３」のデータと情報源「２」系列「３」のデータが送られ、蓄積データとして記憶される。
【００１４】
このように、情報管理装置３０の接続先割当部３１は、処理負荷の少ない追記部２１へストリームデータをランダムに割り当てると、細かなデータファイルがシステム全体に多数存在する状態となり、蓄積データを再処理する場合に、細かなファイルのＯｐｅｎ／Ｃｌｏｓｅが多数発生し、再処理の効率が低下するという問題が生じる。また、情報管理装置３０内のデータ位置管理ＤＢ３２２においても、管理対象レコード数が増大することになる。
【００１５】
また、このような細かなデータファイルが多数存在する状態で、セッション維持型の情報源「３」からのデータの追記が発生すると、そのセッションに対応する追記部２１（図１４の追記部「Ｃ」）だけの蓄積データが増加し、各追記部２１による蓄積データ量のバランスが崩れた状態になる。
【００１６】
このような蓄積データ量の偏りを解決する方法として、各データ蓄積装置２０に蓄積されたデータ量の平均値による再構成を行う方法が考えられる。図１５は、蓄積データ量を平均化して再構成した例を示す図である。
【００１７】
まず、接続先割当部３１によりストリームデータの振り分けが決定され、追記部「Ａ」に情報源「１」系列「１」のデータ「１００ＭＢ」、追記部「Ｂ」に情報源「１」系列「２」のデータ「１００ＭＢ」、追記部「Ｃ」に情報源「１」系列「３」のデータ「１０００ＭＢ」、追記部「Ｄ」に情報源「１」系列「４」のデータ「４００ＭＢ」が蓄積されたとする。ここで、平均値によるデータの再構成を行うと、追記部「Ｃ」のデータを追記部「Ａ」，「Ｂ」に移動させることにより、蓄積データ量が平均化される。そして、その結果、蓄積データの再処理に対して、大きなデータの偏りがなくなり、再処理時間を短縮することができる。
【００１８】
しかし、蓄積データ量を平均化するために、情報源から連続して受け取ったストリームデータを分断してしまうと、再処理を行う際において、データの連続性を必要とする場合に対応できないという問題がある。例えば、フィルタリングで検出されたデータの前後のデータを利用する場合や、ストリームデータ管理システムの機能の一つであるＷｉｎｄｏｗ処理のように、特定のデータについて、その前後の区間のデータをまとめて参照する処理等に対応できない。例えば、追記部「Ｃ」に存在したデータが、平均値による再構成後に、追記部「Ａ」，「Ｂ」，「Ｃ」に分割されてしまうと、再構成以前では可能であったＷｉｎｄｏｗ処理が、データが分割されたことによりできなくなってしまう。
【００１９】
このように、分散ストリーム処理システム５において、都度セッション型の追記が行われると、情報源からの蓄積データが細かい単位で多数の追記部２１に割り当てられ分散されることで、再処理を行う際に処理時間の無駄が発生する。また、データ位置管理ＤＢ３２２の管理対象レコードが大幅に増大し、性能が劣化する。そして、セッション維持型と都度セッション型が混在するシステムにおいては、単純に蓄積データ量を平均化するような再構成を行うと、再構成後の再処理時に、再構成前には行えたＷｉｎｄｏｗ処理等が行えなくなるという課題がある。
【００２０】
このような背景に鑑みて本発明がなされたのであり、本発明は、各データ蓄積装置に分散された蓄積データの再処理の効率化を図ることができる、分散ストリーム処理における蓄積データの再構成システム、再構成方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００２１】
前記課題を解決するため、請求項１に記載の発明は、（１）複数の情報源端末から送信されたストリームデータを蓄積する複数のデータ蓄積装置と、（２）前記データ蓄積装置から取得した前記ストリームデータに対しデータ処理を実行する複数のデータ処置装置と、（３）前記データ蓄積装置に蓄積されたストリームデータの記憶位置およびデータサイズに関する蓄積データ位置情報を記憶し、前記蓄積データ位置情報を用いて前記データ蓄積装置に蓄積された前記ストリームデータを特定し、前記データ蓄積装置および前記データ処理装置に前記ストリームデータの処理に関する指示を行う情報管理装置と、を備える分散ストリーム処理における蓄積データの再構成システムであって、前記情報管理装置が、前記蓄積データ位置情報を記憶するデータ位置管理ＤＢ（DataBase）が格納される記憶部と、前記データ蓄積装置から送信された前記蓄積データ位置情報を、前記データ位置管理ＤＢに記憶するデータ位置管理部と、前記データ位置管理ＤＢに記憶された前記蓄積データ位置情報に基づき、前記データ蓄積装置に蓄積されたストリームデータのデータサイズの平均値を理想データサイズとして算出し、前記理想データサイズ以下の前記ストリームデータを抽出し、前記抽出したストリームデータの中から移動対象となるストリームデータと、当該ストリームデータを他のデータ蓄積装置から取得するコレクタノードとを示す再構成プランを作成し、前記作成した再構成プランを前記複数のデータ蓄積装置に配信する再構成プラン作成部と、を備え、前記データ蓄積装置が、前記情報源端末から送信された前記ストリームデータを記憶する蓄積データ記憶部と、前記蓄積データ記憶部に前記ストリームデータが記憶される度に、当該ストリームデータの前記蓄積データ位置情報を、前記情報管理装置に送信するデータ位置情報送信部と、自己のデータ蓄積装置以外の他のデータ蓄積装置から前記ストリームデータを取得するデータ取得部と、自己の蓄積データ記憶部に記憶された前記ストリームデータを、他のデータ蓄積装置に送信するデータ送信部と、前記再構成プラン作成部から前記再構成プランを受信し、前記再構成プランを用いて、前記自己のデータ蓄積装置が、前記他のデータ蓄積装置から前記移動対象となるストリームデータを収集する前記コレクタノードか否かを判定し、前記自己のデータ蓄積装置が、前記コレクタノードであれば、前記移動対象となるストリームデータを記憶する前記他のデータ蓄積装置にデータ移動要求メッセージを前記データ取得部を介して送信し、前記移動対象となるストリームデータを取得して、前記取得したストリームデータを統合し、前記自己のデータ蓄積装置が、前記コレクタノードでなければ、前記コレクタノードである他のデータ蓄積装置からの前記データ移動要求メッセージに応じて、前記移動対象となるストリームデータを、前記送信部を介して、前記コレクタノードである他のデータ蓄積装置に送信する再構成処理部と、を備えることを特徴とする蓄積データの再構成システムとした。
【００２２】
また、請求項３に記載の発明は、（１）複数の情報源端末から送信されたストリームデータを蓄積する複数のデータ蓄積装置と、（２）前記データ蓄積装置から取得した前記ストリームデータに対しデータ処理を実行する複数のデータ処置装置と、（３）前記データ蓄積装置に蓄積されたストリームデータの記憶位置およびデータサイズに関する蓄積データ位置情報を記憶し、前記蓄積データ位置情報を用いて前記データ蓄積装置に蓄積された前記ストリームデータを特定し、前記データ蓄積装置および前記データ処理装置に前記ストリームデータの処理に関する指示を行う情報管理装置と、を備える分散ストリーム処理システムにおける蓄積データの再構成方法であって、前記データ蓄積装置が、前記情報源端末から送信された前記ストリームデータを記憶する蓄積データ記憶部を備え、前記蓄積データ記憶部に前記ストリームデータが記憶される度に、当該ストリームデータの前記蓄積データ位置情報を、前記情報管理装置に送信し、前記情報管理装置は、前記蓄積データ位置情報を記憶するデータ位置管理ＤＢが格納される記憶部を備え、前記データ蓄積装置から送信された前記蓄積データ位置情報を、前記データ位置管理ＤＢに記憶し、前記データ位置管理ＤＢに記憶された前記蓄積データ位置情報に基づき、前記データ蓄積装置に蓄積されたストリームデータのデータサイズの平均値を理想データサイズとして算出し、前記理想データサイズ以下の前記ストリームデータを抽出し、前記抽出したストリームデータの中から移動対象となるストリームデータと、当該ストリームデータを他のデータ蓄積装置から取得するコレクタノードとを示す再構成プランを作成し、前記作成した再構成プランを前記複数のデータ蓄積装置に配信し、前記データ蓄積装置が、前記情報管理装置から前記再構成プランを受信し、前記再構成プランを用いて、前記自己のデータ蓄積装置が、前記他のデータ蓄積装置から前記移動対象となるストリームデータを収集する前記コレクタノードか否かを判定し、前記自己のデータ蓄積装置が、前記コレクタノードであれば、前記移動対象となる前記ストリームデータを記憶する前記他のデータ蓄積装置にデータ移動要求メッセージを送信し、前記移動対象となるストリームデータを取得して、前記取得したストリームデータを統合し、前記自己のデータ蓄積装置が、前記コレクタノードでなければ、前記コレクタノードである他のデータ蓄積装置からの前記データ移動要求メッセージに応じて、前記移動対象となるストリームデータを、前記コレクタノードである他のデータ蓄積装置に送信すること、を特徴とする蓄積データの再構成方法とした。
【００２３】
このようにすることで、複数のデータ蓄積装置に、各情報端末から取得したストリームデータが分散して記憶されており、各データ蓄積装置のデータ蓄積量に偏りがある場合であっても、情報管理装置が蓄積データ位置情報に基づき、ストリームデータの理想データサイズを計算し、理想データサイズ以下のストリームデータを統合する再構成プランを作成する。そして、情報管理装置は、作成した再構成プランを各データ蓄積装置に送信する。再構成プランを受信したデータ蓄積装置は、自己が他のストリームデータを収集するコレクタノードであるか否かを判定し、コレクタノードである場合は、他のデータ蓄積装置から再構成プランで移動対象となるストリームデータを取得して、コレクタノードのストリームデータと取得したストリームデータとを統合する再構成を行う。
【００２４】
よって、本発明によれば、複数のストリームデータを統合し再構成することにより、ストリームデータの再処理を行う際の処理時間を短縮することができる。また、情報管理装置のデータ位置管理ＤＢにおける管理対象レコードの増大を抑えることができる。
【００２５】
請求項２に記載の発明は、前記再構成プラン作成部が、前記データ蓄積装置を前記コレクタノードに選択するか否かの指標としてのスコアを、前記理想データサイズ以下の前記ストリームデータを記憶する各データ蓄積装置に対して、前記ストリームデータのデータサイズが大きいほど当該スコアが高くなるように設定し、かつ単位時間あたりに処理する前記ストリームデータのデータ量が大きいほど当該スコアが低くなるように設定して、前記各データ蓄積装置毎に前記スコアを計算し、前記計算したスコアが高い前記データ蓄積装置から順に前記コレクタノードとして選択し、前記コレクタノードに選択された前記データ蓄積装置のストリームデータのデータサイズに、前記計算したスコアが低い順に前記他のデータ蓄積装置のストリームデータのデータサイズを前記理想データサイズを超えるまで加え、前記理想データサイズを超えるまで加えた前記他のデータ蓄積装置のストリームデータを前記移動対象となるストリームデータとし、前記選択したコレクタノードと前記理想データサイズを超えるまで加えた前記移動対象となるストリームデータとを対応付けて、前記再構成プランを作成することを特徴とする請求項１に記載の蓄積データの再構成システムとした。
【００２６】
また、請求項４に記載の発明は、前記再構成プラン作成部が、前記データ蓄積装置を前記コレクタノードに選択するか否かの指標としてのスコアを、前記理想データサイズ以下の前記ストリームデータを記憶する各データ蓄積装置に対して、前記ストリームデータのデータサイズが大きいほど当該スコアが高くなるように設定し、かつ単位時間あたりに処理する前記ストリームデータのデータ量が大きいほど当該スコアが低くなるように設定して、前記各データ蓄積装置毎に前記スコアを計算し、前記計算したスコアが高い前記データ蓄積装置から順に前記コレクタノードとして選択し、前記コレクタノードに選択された前記データ蓄積装置のストリームデータのデータサイズに、前記計算したスコアが低い順に前記他のデータ蓄積装置のストリームデータのデータサイズを前記理想データサイズを超えるまで加え、前記理想データサイズを超えるまで加えたストリームデータを前記移動対象となるストリームデータとし、前記選択したコレクタノードと前記理想データサイズを超えるまで加えた前記移動対象となるストリームデータとを対応付けて、前記再構成プランを作成することを特徴とする請求項３に記載の蓄積データの再構成方法とした。
【００２７】
このようにすることで、個々のストリームデータはデータ蓄積装置間で分割されることがないため、ストリームデータ管理システムのＷｉｎｄｏｗ処理機能に対応して、ストリームデータの再処理が可能となる。また、理想データサイズを超えるまで移動対象となるストリームデータを加えることで、各データ蓄積装置間でのデータ量の偏りをなくすことができる。また、スコアが低い順にストリームデータのデータサイズを加えることで、より多くのストリームデータを統合し、再構成することが可能となる。
【００２８】
請求項５に記載の発明は、請求項３または請求項４に記載の蓄積データの再構成方法をコンピュータに実行させるためのプログラムとした。
【００２９】
このようなプログラムによれば、請求項３または請求項４に記載の蓄積データの再構成方法を一般的なコンピュータで実現させることができる。
【発明の効果】
【００３０】
本発明によれば、各データ蓄積装置に分散された蓄積データの再処理の効率化を図る、分散ストリーム処理における蓄積データの再構成システム、再構成方法およびプログラムを提供することができる。
【図面の簡単な説明】
【００３１】
【図１】本実施形態に係る分散ストリーム処理システムの構成例を示す機能ブロック図である。
【図２】本実施形態に係るデータ位置管理ＤＢに記憶される蓄積データ位置情報のデータ構成の一例を示す図である。
【図３】本実施形態に係る再構成プラン作成部が行う再構成プラン作成処理の流れを示すフローチャートである。
【図４】本実施形態に係る再構成プラン作成処理を説明するための図である。
【図５】本実施形態に係るスコア計算処理の流れを示すフローチャートである。
【図６】単位時間あたりのデータサイズを計算した一例を示す図である。
【図７】本実施形態に係るスコアの算出方法を説明するための図である。
【図８】本実施形態に係るマージ対象リストの作成方法を説明するための図である。
【図９】本実施形態に係るマージ対象リストの一例を示す図である。
【図１０】本実施形態に係る再構成プランの一例を示す図である。
【図１１】本実施形態に係る再構成処理の流れを示すフローチャートである。
【図１２】本実施形態に係る蓄積データの再構成処理を終えた後の蓄積データ位置情報の一例を示す図である。
【図１３】従来技術における分散ストリーム処理システムを示す図である。
【図１４】分散ストリーム処理システムのデータ蓄積方法を説明するための図である。
【図１５】蓄積データ量を平均化して再構成した例を示す図である。
【発明を実施するための形態】
【００３２】
次に、本発明を実施するための形態（「実施形態」という）について、適宜図面を参照しながら詳細に説明する。
【００３３】
図１は、本発明の実施形態に係る分散ストリーム処理システム１の構成例を示す機能ブロック図である。
【００３４】
分散ストリーム処理システム１は、計測データやログデータ等の時系列で作成されるデータを、ストリームデータとして送信する追記クライアント（情報源）５０（５０Ａ，５０Ｂ，…，５０Ｎ）と、追記クライアント５０から送信されたストリームデータを蓄積するデータ蓄積装置２０（２０Ａ，２０Ｂ，…，２０Ｎ）と、このデータ蓄積装置２０からストリームデータを取得し、データ処理を行うデータ処理装置１０（１０Ａ，１０Ｂ，…，１０Ｎ）と、データ処理後のストリームデータを蓄積するデータベース装置６０（６０（６０Ａ，…，６０Ｎ）と、このデータベース装置６０からデータの検索を行う参照クライアント（外部装置）７０（７０Ａ，…，７０Ｎ）と、このデータ蓄積装置２０やデータ処理装置１０を動作させるための情報を管理する情報管理装置３０とを含んで構成される。
【００３５】
なお、（１）追記クライアント５０と、情報管理装置３０およびデータ蓄積装置２０（２０Ａ，２０Ｂ，…，２０Ｎ）との間、（２）情報管理装置３０と、データ蓄積装置２０（２０Ａ，２０Ｂ，…、２０Ｎ）との間、（３）データ蓄積装置２０（２０Ａ，２０Ｂ，…，２０Ｎ）同士、（４）データ蓄積装置２０（２０Ａ，２０Ｂ，…２０Ｎ）と、データ処理装置１０（１０Ａ，１０Ｂ，…，１０Ｎ）との間、（５）データ処理装置１０（１０Ａ，１０Ｂ，…，１０Ｎ）とデータベース装置６０（６０Ａ，…，６０Ｎ）との間、（６）データベース装置６０（６０Ａ，…，６０Ｎ）と、参照クライアント７０（７０Ａ，…，７０Ｎ）との間はそれぞれ、図示しない通信ネットワークにより接続される。さらに、追記クライアント５０、データ蓄積装置２０、データ処理装置１０、データベース装置６０、参照クライアント７０は、それぞれＮ個としたが、これに限定されない。
【００３６】
＜追記クライアント＞
追記クライアント（情報源）５０は、通信インタフェース等を備えるコンピュータである。この追記クライアント５０は、センサ等からの計測データやログデータ等の時系列で作成されるデータを、ストリームデータとしてデータ蓄積装置２０へ送信する。
このストリームデータの送信先であるデータ蓄積装置２０の追記部２１は、情報管理装置３０の後記する接続先割当部３１から指示（割り当て）されたものとする。
【００３７】
＜情報管理装置＞
情報管理装置３０は、分散ストリーム処理システム１の全体を制御するのに用いる情報を格納するとともに、追記クライアント５０の接続先の割り当てや、データ蓄積装置２０におけるストリームデータの蓄積情報（位置情報）の記録、参照クライアント７０から蓄積データの再構成プラン作成処理およびデータ再処理に関する指示の受付等を行う。
【００３８】
この情報管理装置３０は、記憶部３２と、接続先割当部３１と、データ再処理制御部３３と、データ位置管理部３４と、再構成プラン作成部３５とを含んで構成される。なお、ここでは、図示を省略しているが、情報管理装置３０は、各種データの入力を司る入力部と、出力を司る出力部と、ＣＰＵ（Central Processing Unit）、メモリ、通信インタフェース等を備えるコンピュータにより実現される。
【００３９】
記憶部３２は、制御情報ＤＢ（DataBase）３２１およびデータ位置管理ＤＢ３２２を備える。ここで、制御情報ＤＢ３２１は、追記クライアント５０の識別情報や、ストリームデータのスキーマ情報の識別情報、ストリームデータの送信先を示すデータ蓄積装置２０の識別情報、データ処理装置１０が適用すべき処理手順に関する情報等が記憶される。
【００４０】
データ位置管理ＤＢ３２２は、分散ストリーム処理システム１内のデータ蓄積装置２０（２０Ａ，２０Ｂ，…，２０Ｎ）に蓄積されるストリームデータの記憶位置を示した蓄積データ位置情報が記憶される。
【００４１】
図２は、本実施形態に係るデータ位置管理ＤＢ３２２に記憶される蓄積データ位置情報１００のデータ構成の一例を示す図である。蓄積データ位置情報１００は、情報源ＩＤ１０１と、開始時刻１０２と、終了時刻１０３と、ノード（データ蓄積装置）１０４と、データパス１０５と、データサイズ１０６とを含んで構成される。
【００４２】
情報源ＩＤ１０１は、追記クライアント５０において、計測データやログデータ等の時系列で作成されるデータのサービス毎に付される識別子である。開始時刻１０２は、データ蓄積装置２０が、そのストリームデータの記憶を開始した時刻を示し、終了時刻１０３は、ストリームデータの記憶を終了した時刻を示す。ノード１０４は、データ蓄積装置２０（２０Ａ，２０Ｂ，…，２０Ｎ）を一意に識別するためのノード番号である。データパス１０５は、追記クライアント５０から送信された各データの記憶位置を示す位置情報である。データサイズ１０６は、データ蓄積装置２０が受信し蓄積データ記憶部２２に記憶された各ストリームデータのデータサイズを示す。
なお、図２において、終了時刻１０３、データパス１０５およびデータサイズ１０６の各情報が格納されていない位置情報レコードは、現在追記クライアント５０からデータ蓄積装置２０が、ストリームデータを受付中であることを示している。
【００４３】
図１に戻り、接続先割当部３１は、追記クライアント５０から接続先割当要求を受信すると、各データ蓄積装置２０の負荷状態を考慮して、より処理負荷の少ない接続先を選択し、追記クライアント５０へ返信する。
【００４４】
データ再処理制御部３３は、参照クライアント７０からストリームデータの再処理要求を受け付けると、指示されたストリームデータがどのデータ蓄積装置２０のどの記憶位置に記憶されているかを、データ位置管理部３４を介してデータ位置管理ＤＢ３２２を検索し、該当するデータ蓄積装置２０に、その記憶位置に関する情報を含めた再データ処理の指示を出す。このストリームデータの再処理は、例えば、データ処理に用いる閾値や、パラメータ、データ処理の手順等が変更された上で、データ蓄積装置２０から再度ストリームデータを受け取ったデータ処理装置１０が実行する。
【００４５】
データ位置管理部３４は、各データ蓄積装置２０から受信した蓄積データ位置情報１００を、データ位置管理ＤＢ３２２に記憶する。
【００４６】
データ位置管理部３４は、データ蓄積装置２０の追記部２１から蓄積データ位置情報１００を受信すると、その蓄積データ位置情報１００を順次、データ位置管理ＤＢ３２２に追加登録していく。また、このデータ位置管理部３４は、データ再処理制御部３３および後記する再構成プラン作成部３５からの指示に基づき、蓄積データ位置情報１００を検索する。つまり、対象となるストリームデータが、どのデータ蓄積装置２０のどの記憶位置に記憶されているかを検索する。
【００４７】
再構成プラン作成部３５は、各データ蓄積装置２０の蓄積データ記憶部２２に記憶された蓄積データについて、その各蓄積データ記憶部２２毎の蓄積データのデータ量をできるだけ平均化し、かつ、データをマージ（統合）してデータファイル数を減らすような、蓄積データの再構成プランを作成する。
【００４８】
具体的には、再構成プラン作成部３５は、データ位置管理ＤＢ３２２に記憶された蓄積データ位置情報１００に基づき、再構成の対象となる情報源ＩＤ１０１に対応する位置情報レコード群を、データ位置管理部３４を介して取得する。そして、各位置情報レコードに記憶されたデータサイズ１０６の平均値を理想データサイズとして計算する。次に、再構成プラン作成部３５は、理想データサイズより小さいデータサイズ１０６の位置情報レコードを抽出し、各ノード（データ蓄積装置）毎のスコアを計算する。続いて、再構成プラン作成部３５は、最上位のスコアのノードをコレクタノードに設定し、そのコレクタノードのデータサイズ１０６に、最下位のスコアのノードのデータサイズ１０６から順に加える処理を、その合計値が理想データサイズを上回るまで繰り返す。そして、まだデータサイズ１０６を加算していないノードのうち、次にスコアの高いノードの順にコレクタノードを設定し、同様の処理を行う。このようにして、再構成プラン作成部３５は、統合するデータの集合であるマージ対象リストを生成し、他のデータ蓄積装置２０からストリームデータを収集するコレクタノードと、移動対象となるストリームデータとを示す再構成プランを作成する。
【００４９】
ここで、再構成プラン作成部３５により計算されるスコアは、現在そのノードがストリームデータを受け付けていない場合には、その位置情報レコードのデータサイズ１０６の値が設定される。また、現在そのノードがストリームデータを受け付けている場合には、以下の（式１）に基づき、スコアが計算される。
【００５０】
【数１】
2011100359.tif 000003
【００５１】
このスコアの計算方法のポリシーは、ノード毎のデータサイズ１０６が大きいほどスコアが高くなるように計算させ、かつ、単位時間あたりに処理するデータ量が大きいほど、つまり処理に忙しいノードほどスコアが低くなるように計算させるものである。よって、そのノードがストリームデータを現在受付中ではなく、データサイズ１０６が大きい場合は、スコアの値が高くなる。一方、ストリームデータを現在受付中のノードであり、データサイズ１０６が小さく、単位時間あたりに受け付けるデータサイズの合計が大きいほど、スコアが小さくなるものである。このスコア計算処理の詳細は、後記する図５において説明する。
【００５２】
なお、前記した記憶部３２は、ＲＡＭ（Random Access Memory）やハードディスク等により実現される。また、接続先割当部３１、データ再処理制御部３３、データ位置管理部３４、および再構成プラン作成部３５は、ＣＰＵによるプログラム実行処理または専用のハードウェアにより実現される。ＣＰＵによるプログラム実行処理により実現する場合、記憶部３２は、これらのプログラムを記憶する。
【００５３】
＜データ蓄積装置＞
データ蓄積装置２０（２０Ａ，２０Ｂ，…，２０Ｎ）は、それぞれ追記クライアント５０から送信されたストリームデータを一時的に蓄積する。このデータ蓄積装置２０は、追記部２１と、蓄積データ記憶部２２と、プロセス管理部２３と、再構成処理部２４と、データ取得部２５と、データ送信部２６とを含んで構成される。なお、追記部２１の数は、１つに限定されず１つのデータ蓄積装置２０内に複数の追記部２１があってもよい。
【００５４】
追記部２１は、追記クライアント５０からストリームデータを受信し、受信したストリームデータを、蓄積データ記憶部２２に記憶する。また、追記部２１は、蓄積したストリームデータを、データ処理装置１０へ出力する。この追記部２１は、ストリーム受付部２１１、追記データ蓄積部２１２、キュー管理部２１３およびデータ位置情報送信部２１４を含んで構成される。
【００５５】
ストリーム受付部２１１は、追記クライアント５０から、不図示の入力部経由でストリームデータを受信する。そして、受信したストリームデータを追記データ蓄積部２１２およびキュー管理部２１３へ出力する。
【００５６】
追記データ蓄積部２１２は、ストリームデータを蓄積データ記憶部２２に記憶する。
【００５７】
キュー管理部２１３は、ストリーム受付部２１１から出力されたデータを取得し、データ処理装置１０からストリームデータの取得要求があったとき、取得したストリームデータをデータ処理装置１０へ送信する。
【００５８】
データ位置情報送信部２１４は、追記データ蓄積部２１２によりストリームデータが蓄積データ記憶部２２に記憶されると、そのストリームデータの蓄積データ位置情報１００を作成し、情報管理装置３０へ送信する。
【００５９】
次に、蓄積データ記憶部２２は、追記部２１から出力されたストリームデータを記憶する。
【００６０】
プロセス管理部２３は、情報管理装置３０から再データ処理の指示を受信すると、その指示に基づき、追記部２１に、蓄積データ記憶部２２内の再処理の対象となるストリームデータの取得を指示する。
【００６１】
再構成処理部２４は、情報管理装置３０の再構成プラン作成部３５から、各データの移動先を示す再構成プランを受信する。そして、取得した再構成プランに基づき、自ノードがコレクタノードである否かを判定する。自ノードがコレクタノードである場合には、再構成処理部２４は、データ取得部２５を介して、マージ対象となるデータ（移動対象となるストリームデータ）を記憶するデータ蓄積装置２０にデータ移動要求メッセージを送信して、そのマージ対象となったデータを取得する。続いて、再構成処理部２４は、収集したデータを１つに統合するマージ処理を行い、マージ処理したデータを蓄積データ記憶部２２に記憶させる。
【００６２】
一方、自ノードがコレクタノードではなく、他のデータ蓄積装置２０からデータ移動要求メッセージを受信した場合は、そのデータ蓄積装置２０の再構成処理部２４は、マージ対象となるデータ（移動対象となるストリームデータ）を蓄積データ記憶部２２から取得し、そのデータを、データ送信部２６を介して、コレクタノードとなるデータ蓄積装置２０へ送信する。
【００６３】
データ取得部２５は、再構成処理部２４の指示を受け、データ移動要求メッセージを送信し、マージ対象となるデータを記憶するデータ蓄積装置２０から、そのストリームデータを受信する。また、データ送信部２６は、再構成処理部２４の指示を受け、マージ対象となるストリームデータを、コレクタノードとなるデータ蓄積装置２０へ送信する。
【００６４】
このデータ蓄積装置２０は、コンピュータにより実現され、蓄積データ記憶部２２は、例えば、ＲＡＭ、ハードディスク等により実現される。また、追記部２１、プロセス管理部２３、再構成処理部２４、データ取得部２５、およびデータ送信部２６は、ＣＰＵによるプログラムの実行処理または専用ハードウェア等により実現される。
【００６５】
＜データ処理装置＞
データ処理装置１０は、データ蓄積装置２０（２０Ａ，２０Ｂ，…，２０Ｎ）から、ストリームデータを取得し、取得したストリームデータに対して、データ処理を実行する。このデータ処理は、例えば、所定の閾値を越えるストリームデータを抽出することや、ある所定の期間内のストリームデータの平均を算出する等の様々な処理内容が設定され実行される。また、情報管理装置３０のデータ再処理制御部３３によるデータ再処理の指示を受けた場合、データ処理をする際の閾値を変更したり、処理手順を変更したりして、データ蓄積装置２０から取得したストリームデータの再処理を行う。なお、このデータ処理装置１０も、ＣＰＵ、ＲＡＭ、ハードディスク、通信インタフェース等を備えるコンピュータにより実現される。
【００６６】
＜データベース装置＞
データベース装置６０は、データ処理装置１０においてデータ処理されたストリームデータを受け付けて記憶する。そして、参照クライアント７０からの検索要求に応じて、データを検索し、検索結果を参照クライアント７０に出力する。また、データベース装置６０は、記憶したデータを所定の参照クライアント７０に対して配信する。このデータベース装置６０も、ＣＰＵ、ＲＡＭ、ハードディスク、通信インタフェース等を備えるコンピュータにより実現される。
【００６７】
＜参照クライアント＞
参照クライアント７０は、データベース装置６０に記憶されたストリームデータの検索を行ったり、データベース装置６０からのデータの配信を受け付けたりする。また、情報管理装置３０に対し、ストリームデータの再処理要求を送信する。さらに、参照クライアント７０は、各データ蓄積装置２０内のストリームデータの再構成プラン作成のため、その再構成の対象とするデータの情報源ＩＤ１０１を情報管理装置３０に対して送信する。なお、この参照クライアント７０も、ＣＰＵ、ＲＡＭ、ハードディスク、通信インタフェース等を備えるコンピュータにより実現される。
【００６８】
なお、データ蓄積装置２０（２０Ａ，２０Ｂ，…，２０Ｎ）およびデータ処理装置１０（１０Ａ，１０Ｂ，…，１０Ｎ）は、それぞれ別個のコンピュータ（装置）により実現してもよいし、これらをまとめて１つのコンピュータにより実現してもよい。
【００６９】
＜蓄積データの再構成方法＞
次に、本実施形態に係る分散ストリーム処理システム１における蓄積データの再構成方法について、図１、図２を参照しつつ、図３〜図１２を用いて詳細に説明する。
【００７０】
まず、本実施形態に係る分散ストリーム処理システム１における蓄積データの再構成処理の全体の流れを図１を参照して説明する。最初に、情報管理装置３０の再構成プラン作成部３５が、参照クライアント７０から、再構成するデータの情報源ＩＤ１０１を取得する。そして、再構成プラン作成部３５は、データ位置管理ＤＢ３２２に記憶された蓄積データ位置情報１００を用いて、各データ蓄積装置２０（２０Ａ，２０Ｂ，…，２０Ｎ）に記憶されたストリームデータの再構成プランを作成する。次に、再構成プラン作成部３５は、作成した再構成プランを各データ蓄積装置２０（２０Ａ，２０Ｂ，…，２０Ｎ）の再構成処理部２４に送信する。再構成プランを受信した各再構成処理部２４は、再構成プランに基づき、自身が他のストリームデータを収集するコレクタノードであるか否かを判定する。そして自身がコレクタノードである場合に、移動対象となるストリームデータを記憶する他のデータ蓄積装置２０に対し、データ移動要求メッセージを送信しストリームデータを収集し、ストリームデータのマージ処理を行う。
【００７１】
このような蓄積データの再構成処理は、追記クライアント５０から、ストリームデータを各データ蓄積装置２０が受け取り、さらにデータ処理装置１０により、データが処理された後、参照クライアント７０による、データ再処理の指示が情報管理装置３０に出される前に行われる。その結果として、ストリームデータの再処理を行うのに先立ち、事前に、細かい単位で多数のデータ蓄積装置２０に分散されていた蓄積データを統合し、データを再処理する際の効率化を図るものである。
【００７２】
＜再構成プラン作成処理＞
図３は、本実施形態に係る再構成プラン作成部３５が行う再構成プラン作成処理の流れを示すフローチャートである。
【００７３】
まず、再構成プラン作成部３５は、参照クライアント７０から、再構成するデータに関する情報源ＩＤ１０１を取得する（ステップＳ１０１）。
【００７４】
次に、再構成プラン作成部３５は、取得した情報源ＩＤ１０１を用いて、データ位置管理部３４を介して、データ位置管理ＤＢ３２２から位置情報レコード（図２参照）を、抽出する（ステップＳ１０２）。
【００７５】
続いて、再構成プラン作成部３５は、抽出した各位置情報レコードのデータサイズの平均値を、１ノードあたりの理想格納サイズ（Ｄ）として計算する（ステップＳ１０３）。
【００７６】
そして、再構成プラン作成部３５は、理想格納サイズ（Ｄ）以下のデータサイズの位置情報レコードを選択する（ステップＳ１０４）。
【００７７】
図４は、本実施形態に係る再構成プラン作成処理のステップＳ１０２〜Ｓ１０４を説明するための図である。
再構成プラン作成部３５は、参照クライアント７０から取得した情報源ＩＤ１０１（例えば、「ｄｂｌｏｇ」）を用いて、図４に示す位置情報レコード群を抽出し、抽出した位置情報レコード群のデータサイズ１０６を平均し、理想データサイズ（Ｄ）として「19300000」を計算する。そして、再構成プラン作成部３５は、理想データサイズ（Ｄ）以下のデータサイズ１０６の位置情報レコードを選択する。図４に示す、「192.168.02」「192.168.03」「192.168.04」のノード１０４は、データサイズが、それぞれ「70000000」「50000000」「30000000」であり、理想データサイズ（Ｄ）を超えているので、選択されないことを示す。
【００７８】
図３に戻り、ステップＳ１０５において、再構成プラン作成部３５は、選択した位置情報レコードのノード１０４毎に、スコアを計算する（スコア計算処理）。なお、この再構成プラン作成部３５によるスコア計算処理は、後記する図５において詳細に説明する。
【００７９】
続いて、再構成プラン作成部３５は、ステップＳ１０６において、マージ対象リストの生成処理を行う（マージ対象リスト生成処理）。具体的には、再構成プラン作成部３５は、ステップＳ１０５で計算したスコアの値が大きい順に位置情報レコードをソートする。そして、スコアが最上位のノードからコレクタノードに設定し、スコアが下位のノードからマージ対象として設定する。そして、コレクタノードのデータサイズに、設定したマージ対象となるノードのデータサイズを、計算した理想格納サイズ（Ｄ）を超えるまで加えていく。次に、スコアが２番目に高いノードをコレクタノードとして設定し、まだマージ対象になっていないノードのうち、スコアが下位のノードからデータサイズを、理想格納サイズ（Ｄ）を超えるまで加えていく。このようにして、コレクタノードとマージ対象となるノードとの組み合わせであるマージ対象リストを生成する。なお、後記する図８、図９において、具体例を用いてマージ対象リストの作成方法を詳細に説明する。
【００８０】
次に、再構成プラン作成部３５は、生成したマージ対象リストに基づき、各データの移動先を示す再構成プランを作成する（ステップＳ１０７）。
【００８１】
＜スコア計算処理＞
次に、図３のステップＳ１０５における、スコア計算処理について説明する。
図５は、本実施形態に係るスコア計算処理の流れを示すフローチャートである。
まず、再構成プラン作成部３５は、図３のステップＳ１０４で選択した位置情報レコード（図４参照）に含まれるノード１０４の１つを選択する（Ｓ２０１）。
【００８２】
次に、再構成プラン作成部３５は、選択したノード１０４が現在、ストリームデータを受付中か否かを判定する（ステップＳ２０２）。ここで、ストリームデータを受付中であれば（ステップＳ２０２→Ｙｅｓ）、ステップＳ２０３へ進む。一方、ストリームデータを受付中でなければ（ステップＳ２０２→Ｎｏ）、ステップＳ２０７へ進む。ここで、選択したノード１０４が、ストリームデータを受付中であることは、図２に示したデータ位置管理ＤＢ３２２内の蓄積データ位置情報１００において、終了時刻１０３、データパス１０５、およびデータサイズ１０６の情報が格納されていないことから判定される。
【００８３】
続いて、再構成プラン作成部３５は、現在に最も近い時刻にストリームデータの取得を完了した情報源ＩＤ１０１毎に、単位時間あたりのデータサイズを計算する（ステップＳ２０３）。
【００８４】
図６は、情報源ＩＤ１０１毎に、単位時間あたりのデータサイズを計算した結果の一例を示す図である。図６に示すように、データの取得が完了した情報源ＩＤ１０１毎に、現在に最も近い位置情報レコードについて、データサイズ１０６を、開始時刻１０２と終了時刻１０３の差分である経過時間１０７で割ることによって、再構成プラン作成部３５は、単位時間あたりのデータサイズ１０８を算出する。なお、現在に最も近い位置情報レコードを用いて算出するのは、現在受付中のストリームデータの送信状況に最も近いと予測されるからである。
【００８５】
図５に戻り、再構成プラン作成部３５は、選択したノードが現在受け付けているストリームデータの情報源毎の数を示す、受付中ストリームデータを抽出する（ステップＳ２０４）。そして、受付中ストリームデータのデータサイズの合計を計算し（ステップＳ２０５）、前記した（式１）に基づき、スコアを算出する（ステップＳ２０６）。
【００８６】
図７は、本実施形態に係るスコアの算出方法を説明するための図である。ステップＳ２０４において、再構成プラン作成部３５は、図６に示したデータ受付中の位置情報レコード群を参照し、選択したノードがどの情報源のデータをいくつ受付中かを算出する。そして、図７に示すように、受付中ストリームデータ１０９が算出される。例えば、図７の上から３番目のレコードであるノード「192.168.0.5」は、図６の受付中の位置情報レコードから、情報源ＩＤ１０１が「ｄｂｌｏｇ」のストリームデータを２つ受付中であることを示している。
【００８７】
そして、再構成プラン作成部３５は、ステップＳ２０４で算出した受付中ストリームデータ１０９と、ステップＳ２０３で計算した単位時間あたりのデータサイズ１０８（図６参照）を用いて、図７に示す、受付中ストリームデータのデータサイズの合計（符号１１０）を算出する。なお、この受付中ストリームデータのデータサイズの合計（符号１１０）は、（式１）の分母である「現在受け付けているストリームの単位時間あたりのデータサイズの合計」に相当する。
【００８８】
図５に戻り、次に、ステップＳ２０６において、再構成プラン作成部３５は、（式１）を用いて、スコア１１１を計算する。ここでは、（式１）は、
スコア（符号１１１）＝データサイズ（符号１０６）／受付中ストリームデータのデータサイズの合計（符号１１０）
として計算される。
【００８９】
一方、ステップＳ２０２において、選択したノードが、現在ストリームデータを受付中でなければ（ステップＳ２０２→Ｎｏ）、データサイズ１０６をスコア１１１に設定する。例えば、ノード１０４が「192.168.0.7」のストリームデータは、図６の現在受付中の位置情報レコードにはないため、図７の１番目のレコードに示すように、データサイズ１０６がそのままスコアに設定される。
【００９０】
このようにすることで、再構成プラン作成部３５は、現在ストリームデータを受け付けてなく、データサイズ１０６が大きいほどスコアが高くなるように計算させ、かつ、単位時間あたりに処理するデータ量が大きいほど、つまり処理に忙しいノードほどスコアが低くなるように計算することができる。
【００９１】
このようにして、ステップＳ２０６、または、ステップＳ２０７の処理を終えると、再構成プラン作成部３５は、対象となるすべてのノードの処理を終えたか否かを判定する（ステップＳ２０８）。ここで、まだ処理していないノード１０４があれば（ステップＳ２０８→Ｎｏ）、ステップＳ２０１へ戻り、処理を続ける。一方、対象となるすべてのノード１０４の処理を終えていれば（ステップＳ２０８→Ｙｅｓ）、スコア計算処理を終える。
【００９２】
＜マージ対象リスト作成処理＞
次に、図３のステップＳ１０６におけるマージ対象リスト生成処理について説明する。図８は、本実施形態に係るマージ対象リストの作成方法を説明するための図である。
【００９３】
ここで図８は、ステップＳ１０４で選択された位置情報レコード（図４参照）が、ステップＳ１０５で計算されたスコア１１１（図７参照）の大きい順にソートされた状態を示している。
【００９４】
再構成プラン作成部３５は、まず、スコア１１１の値が最上位のノード「192.168.0.7」をコレクタノードに設定する。そして、スコアが最下位のノード「192.168.0.10」をマージ対象として設定する。次に、再構成プラン作成部３５は、この２つのノードのデータサイズを合計し「10700000」を得る。この値は、理想格納サイズ（Ｄ）「19300000」を超えていないので、次にスコアの小さいノード「192.168.0.8」をマージ対象として設定する。再構成プラン作成部３５は、この処理をデータサイズが理想格納サイズ（Ｄ）を超えるまで繰り返す。
【００９５】
そして、再構成プラン作成部３５は、コレクタノードのデータサイズと、マージ対象として設定したデータのデータサイズとの合計値が理想格納サイズ（Ｄ）を超えると、次にスコアが大きいノード「192.168.0.1」をコレクタノードとして設定し、処理を続ける。
【００９６】
図９は、本実施形態に係るマージ対象リスト２００の一例を示す図である。再構成プラン作成部３５は、図８で説明した処理を行うことにより、図３のステップＳ１０６において、図９に示すようなマージ対象リスト２００を生成する。符号２０１に示すレコードは、コレクタノードとしてノード「192.168.07」を設定した場合のマージ対象となるノードとその蓄積データを示している。符号２０２に示すレコードは、コレクタノードとして「192.168.01」を設定した場合のマージ対象となるノードとその蓄積データを示している。
【００９７】
図１０は、本実施形態に係る再構成プラン３００の一例を示す図である。再構成プラン作成部３５は、図９のように生成されたマージ対象リスト２００を用いて、図３のステップＳ１０７において再構成プラン３００を作成する。図１０に示すように、再構成プラン３００は、コレクタノードと、そのコレクタノードにデータを統合するデータのＵＲＩ（ノード１０４＋データパス１０５）からなるデータである。このＵＲＩで示されるノード１０４の各蓄積データが、コレクタノードに統合され、再構成されることを示している。このようにして、再構成プラン作成部３５は、再構成プラン３００を作成する。
【００９８】
＜蓄積データの再構成処理＞
次に、本分散ストリーム処理システム１における蓄積データの再構成処理について説明する。図１１は、本実施形態に係る再構成処理の流れを示すフローチャートである。
【００９９】
まず、情報管理装置３０の再構成プラン作成部３５により、データ蓄積装置２０の蓄積データ記憶部２２に記憶された蓄積データの移動先を示す再構成プラン作成処理（図３〜図１０参照）が実行される（ステップＳ３０１）。
【０１００】
次に、再構成プラン作成部３５は、各データ蓄積装置２０の再構成処理部２４に、再構成プラン（図１０参照）を配布する（ステップＳ３０２）。
【０１０１】
続いて、再構成プランを受け取った各データ蓄積装置２０の再構成処理部２４は、取得した再構成プランを用いて、自ノードがコレクタノードであるか否かを判定する（ステップＳ３０３）。ここで、自ノードが、コレクタノードでなければ（ステップＳ３０３→Ｎｏ）、ステップＳ３０９へ進む。一方、自ノードがコレクタノードであれば（ステップＳ３０３→Ｙｅｓ）、次のステップＳ３０４へ進む。
【０１０２】
そして、再構成処理部２４は、データ取得部２５を介して、再構成プランで示されたマージ対象データを記憶するデータ蓄積装置２０にデータ移動要求メッセージを送信し、そのデータ移動要求メッセージを受信した各データ蓄積装置２０のデータ送信部２６を介して、マージ対象データを収集する（ステップＳ３０４）。
【０１０３】
続いて、再構成処理部２４は、収集したデータを１つにまとめるマージ処理を行う（ステップＳ３０５）。なお、このとき自ノードにおいて、マージ対象となる２以上の蓄積データがある場合も、収集した他のマージ対象データとともに、１つのデータに統合する。
【０１０４】
次に、再構成処理部２４は、情報管理装置３０の再構成プラン作成部３５に、データ収集完了メッセージを送信する（ステップＳ３０６）。
【０１０５】
そして、再構成プラン作成部３５は、コレクタノードとなったすべてのデータ蓄積装置２０からデータ収集完了メッセージを受信したことを契機に、データ位置管理ＤＢ３２２の蓄積データ位置情報１００を更新する（ステップＳ３０７）。
【０１０６】
続いて、再構成プラン作成部３５は、各データ蓄積装置２０の再構成処理部２４に、移動元となったデータの削除指示メッセージを送信する（ステップＳ３０８）。
【０１０７】
次に、削除指示メッセージを受信した各データ蓄積装置２０の再構成処理部２４は、自ノードに削除対象となるデータが存在するか否かを判定する（ステップＳ３０９）。
【０１０８】
そして、再構成処理部２４は、削除対象となるデータが存在しなければ（ステップＳ３０９→Ｎｏ）、処理を終える。
【０１０９】
一方、削除対象となるデータが存在する場合は（ステップＳ３０９→Ｙｅｓ）、その削除対象となるマージ対象データの削除を行う（ステップＳ３１０）。そして、再構成処理部２４は、データ削除完了メッセージを、情報管理装置３０の再構成プラン作成部３５へ送信し（ステップＳ３１１）、処理を終える。このようにして、蓄積データの再構成処理を行うことができる。
【０１１０】
図１２は、本実施形態に係る蓄積データの再構成処理を終えた後の蓄積データ位置情報１００の一例を示す図である。図１２に示す例では、図４で示した蓄積データ位置情報１００と比べて、ストリームデータを蓄積するノード数が１０から５に減少し、また、個々のデータサイズ１０６についても、理想データサイズ（Ｄ）以下のノードはなくなり、蓄積データが統合され再構成される。
【０１１１】
以上説明したように、本実施形態に係る蓄積データの再構成システム、再構成方法およびプログラムによれば、細かい単位で多数のデータ蓄積装置２０に分散されていた蓄積データを統合することにより、ストリームデータの再処理において効率化を図ることができる。そして、追記部２１が受け付けたストリームデータを分割することもないため、ストリームデータ管理システムにおけるＷｉｎｄｏｗ処理にも対応することが可能となる。
【０１１２】
なお、本実施形態に係る分散ストリーム処理における蓄積データの再構成システム、再構成方法およびプログラムは、例えば、以下のようなストリームデータの分散処理に利用することができる。
【０１１３】
個人の行動記録を蓄積し、この行動記録に基づき広告を配信するシステムにおいては、例えば、情報源である追記クライアント５０が、個人のＷｅｂ閲覧記録、ファイル操作記録等を取得し、データ蓄積装置２０の追記部２１へ送信する。Ｗｅｂ閲覧記録は、対象となる個人の嗜好により、多くのＷｅｂページを見るときもあれば、閲覧の少ないときもある。また、コンピュータの電源が切られるとセッションも切断される。このようなストリームデータを追記部２１が受け付けると、結果的に各追記部２１により蓄積されるデータには、データサイズのバラつきが発生し、かつデータサイズの小さなデータも増加する。
【０１１４】
参照クライアント７０が、大量のユーザの全体傾向の調査のため、この蓄積データの再処理を実行する前に、本実施形態に係る蓄積データの再構成処理を行っておけば、複数のデータ蓄積装置２０に分散して蓄積されたストリームデータを統合することができ、再処理を実行する際に、開く必要のあるファイルを大幅に減少させ、処理時間を短縮することが可能となる。
【符号の説明】
【０１１５】
１，５  分散ストリーム処理システム
１０    データ処理装置
１１    キュー選択部
１２    データ受付部
１３    データ処理部
２０    データ蓄積装置
２１    追記部
２２    蓄積データ記憶部
２３    プロセス管理部
２４    再構成処理部
２５    データ取得部
２６    データ送信部
３０    情報管理装置
３１    接続先割当部
３２    記憶部
３３    データ再処理制御部
３４    データ位置管理部
３５    再構成プラン作成部
５０    追記クライアント
６０    データベース装置
７０    参照クライアント
１００  蓄積データ位置情報
２００  マージ対象リスト
２１１  ストリーム受付部
２１２  追記データ蓄積部
２１３  キュー管理部
２１４  データ位置情報送信部
３００  再構成プラン
３２１  制御情報ＤＢ
３２２  データ位置管理ＤＢ
【図１】
2011100359.tif 000004
【図２】
2011100359.tif 000005
【図３】
2011100359.tif 000006
【図４】
2011100359.tif 000007
【図５】
2011100359.tif 000008
【図６】
2011100359.tif 000009
【図７】
2011100359.tif 000010
【図８】
2011100359.tif 000011
【図９】
2011100359.tif 000012
【図１０】
2011100359.tif 000013
【図１１】
2011100359.tif 000014
【図１２】
2011100359.tif 000015
【図１３】
2011100359.tif 000016
【図１４】
2011100359.tif 000017
【図１５】
2011100359.tif 000018