(57)【特許請求の範囲】
【請求項１】
タイムスタンプが付与された複数のデータが、前記タイムスタンプの昇順に一列に並んで継続的に到来する、時系列データの流れであるストリームを継続的に解析処理するストリームデータの処理方法であって、
新規データが入力された際に、前記新規データのタイムスタンプと、ストリーム上での時間軸上で連続して到来するデータの部分列からなるデータクラスタにおける任意の時点での解析処理の対象となる解析対象クラスタに属するデータの最も古いデータのタイムスタンプとの時間差を算出するステップと、
算出した時間差が、任意に設定された時間しきい値以内である場合には、前記新規データを前記解析対象クラスタに追加し、算出した時間差が、前記時間しきい値を越える場合には、前記解析対象クラスタに属する全てのデータを削除して、前記新規データのみから構成されるデータクラスタを生成して解析対象クラスタとし、前記解析対象クラスタの更新が発生する度に、前記解析対象クラスタに属するデータ集合に対する解析を実行し、ストリームデータを処理するステップとを有することを特徴とするストリームデータの処理方法。
【請求項２】
請求項１記載のストリームデータの処理方法において、
新規データが入力された際に、前記新規データのタイムスタンプと、新しい方から数えて指定された任意の同時対象クラスタ数分のデータクラスタからなる解析対象クラスタ群において、最も新しい一つのデータクラスタである最新解析対象クラスタに属するデータのうち、最も古いデータのタイムスタンプとの時間差を算出するステップと、
算出した時間差が、前記時間しきい値以内である場合には、前記新規データを前記最新解析対象クラスタに追加し、算出した時間差が、前記時間しきい値を越える場合には、前記解析対象クラスタ群における最も古い一つのデータクラスタである最古解析対象クラスタに属する全てのデータを削除して、前記新規データのみから構成されるデータクラスタを生成して最新解析対象クラスタとし、前記解析対象クラスタ群の更新が発生する度に、前記解析対象クラスタ群に属するデータ集合に対する解析を実行し、ストリームデータを処理するステップとを有することを特徴とするストリームデータの処理方法。
【請求項３】
請求項１記載のストリームデータの処理方法において、
任意のカラムが指定された場合に、各データを、前記カラムの値が同一であるデータ集合を単位としてグループ分けし、新規データが入力された際に、前記データのカラムの値を参照して、前記データが属するグループ毎の解析対象クラスタとなるグループ別解析対象クラスタを抽出し、前記新規データのタイムスタンプと、前記グループ別解析対象クラスタに属するデータのうち、最も古いデータのタイムスタンプとの時間差を算出するステップと、
算出した時間差が、前記時間しきい値以内である場合には、前記新規データを、前記グループ別解析対象クラスタに追加し、算出した時間差が、前記時間しきい値を越える場合には、前記グループ別解析対象クラスタに属する全てのデータを削除して、前記新規データのみから構成されるデータクラスタを生成して、グループ解析対象クラスタとし、解析対象クラスタ群の更新が発生する度に、前記解析対象クラスタ群に属するデータ集合に対する解析を実行し、ストリームデータを処理するステップとを有することを特徴とするストリームデータの処理方法。
【請求項４】
タイムスタンプが付与された複数のデータが、前記タイムスタンプの昇順に一列に並んで継続的に到来する、時系列データの流れであるストリームを継続的に解析処理するストリームデータの処理方法であって、
任意の時間しきい値が指定された場合に、新規データが入力された際に、前記新規データのタイムスタンプと、ストリーム上での時間軸上で連続して到来するデータの部分列からなるデータクラスタにおいて、ある時点での解析処理の対象となる解析対象クラスタに属するデータの最も古いデータのタイムスタンプとの時間差を算出するステップと、
算出した時間差が、任意に設定された時間しきい値以内である場合には、前記新規データを前記解析対象クラスタに追加し、算出した時間差が、前記時間しきい値以内である場合には、前記新規データを、前記解析対象クラスタに追加し、算出した時間差が、前記時間しきい値を越える場合には、前記解析対象クラスタに属する全てのデータを削除して、前記新規データのみから構成されるデータクラスタを生成して解析対象クラスタとし、前記解析対象クラスタの更新が発生する度に、前記解析対象クラスタに属するデータ集合に対する解析を実行し、ストリームデータを処理するステップとを有することを特徴とするストリームデータの処理方法。
【請求項５】
請求項４記載のストリームデータの処理方法において、
新規データが入力された際に、前記新規データのタイムスタンプと、ユーザから特定の同時対象クラスタ数が指定された場合に、新しい方から数えて、前記指定された個数分のデータクラスタからなる解析対象クラスタ群のうち、最も新しい一つのデータクラスタとなる最新解析対象クラスタに属するデータにおいて最も新しいデータのタイムスタンプとの時間差を算出するステップと、
算出した時間差が、前記時間しきい値以内である場合には、前記新規データを、前記最新解析対象クラスタに追加し、算出した時間差が、前記時間しきい値を越える場合には、前記解析対象クラスタ群のうち、最も古い一つのデータクラスタとなる最古解析対象クラスタに属する全てのデータを削除して、前記新規データのみから構成されるデータクラスタを生成して、最新解析対象クラスタとし、前記解析対象クラスタ群の更新が発生する度に、前記解析対象クラスタ群に属するデータ集合に対する解析を実行し、ストリームデータを処理するステップとを有することを特徴とするストリームデータの処理方法。
【請求項６】
請求項４記載のストリームデータ処理の方法において、
新規データが入力された際に、前記データにおける指定された任意のカラムの値を参照して、任意のカラムが指定された場合に、各データを前記カラムの値が同一であるデータ集合を単位としてグループ分けしたクラスタのうち、前記データが属する解析対象クラスタからなるグループ別解析対象クラスタを抽出し、前記新規データのタイムスタンプと、前記グループ別解析対象クラスタに属するデータのうち、最も新しいデータのタイムスタンプとの時間差を算出するステップと、
算出した時間差が、前記時間しきい値以内である場合には、前記新規データを、前記グループ別解析対象クラスタに追加し、算出した時間差が、前記時間しきい値を越える場合には、前記グループ別解析対象クラスタに属する全てのデータを削除して、前記新規データのみから構成されるデータクラスタを生成して、グループ解析対象クラスタとし、前記グループ別解析対象クラスタ群の更新が発生する度に、前記解析対象クラスタ群に属するデータ集合に対する解析を実行し、ストリームデータを処理するステップとを有することを特徴とするストリームデータの処理方法。
【請求項７】
タイムスタンプが付与された複数のデータが、前記タイムスタンプの昇順に一列に並んで継続的に到来する時系列データの流れであるストリームを継続的に解析処理するストリームデータ処理システムであって、
前記ストリーム上において、時間軸上で連続して到来するデータの部分列からなるデータクラスタに属するデータ集合に対して、解析処理を実行するデータ解析部と、
時間しきい値を保存する時間しきい値保存領域と、
新規にデータが到来した際に、前記新規データのタイムスタンプを、ある時点における解析処理の対象となる前記データクラスタである解析対象クラスタに属するデータのうち、最も古い、または最も新しいデータのタイムスタンプに前記時間しきい値を加算した時刻からなるクラスタ時刻と比較して両時刻の前後を判定するデータ時刻比較部と、
前記タイムスタンプが前記クラスタ時刻以前である場合は、前記新規データを、その時点の解析対象クラスタに加え、前記タイムスタンプが前記クラスタ時刻より後である場合は、その時点の解析対象クラスタに属する全てのデータを前記データ解析部から削除し、前記新規データのみで構成されるデータクラスタを新たな解析対象クラスタとし、前記新規データを前記データ解析部に挿入する解析対象データ判定部とを備えることを特徴とするストリームデータ処理システム。
【請求項８】
請求項７記載のストリームデータ処理システムにおいて、
指定された任意の同時対象クラスタ数を保存する同時解析対象クラスタ数保存領域を備え、
前記データ時刻比較部は、
新規にデータが到来した際に、前記新規データのタイムスタンプを、最新解析対象クラスタに属するデータのうち、最も古い、または最も新しいデータのタイムスタンプに、前記時間しきい値を加算した時刻であるクラスタ時刻と比較して両時刻の前後を判定し、
前記解析対象データ判定部は、前記タイムスタンプが前記クラスタ時刻以前である場合は、前記新規データを、その時点の最新解析対象クラスタに加え、前記タイムスタンプが前記クラスタ時刻より後である場合は、新しい方から数えて、指定された任意の同時対象クラスタ数の個数分のデータクラスタである解析対象クラスタ群において、最も新しい一つのデータクラスタからなる最新解析対象クラスタのうち、最も古い一つのデータクラスタである最古解析対象クラスタに属する全てのデータを前記データ解析部から削除し、前記新規データのみで構成されるデータクラスタを新たな最新解析対象クラスタとし、前記新規データを前記データ解析部に挿入することを特徴とするストリームデータ処理システム。
【請求項９】
請求項７記載のストリームデータ処理システムにおいて、
任意のカラムが指定された場合に、各データを前記カラムの値が同一であるデータ集合を単位としてグループ分けし、前記グループ毎の解析対象クラスタとするグループ別解析対象クラスタ毎に、前記グループ別解析対象クラスタに属するデータにおいて最も古い、または最も新しいデータのタイムスタンプに、前記時間しきい値を加算したクラスタ時刻を記憶するグループ別格納領域と、
前記カラムの値と、前記グループ別格納領域との対応関係を保持するグループ別格納領域管理表を格納するグループ別格納領域管理部とを備え、
前記データ時刻比較部は、
前記ストリームデータ処理システムに新規データが入力された際に、前記データのカラム値を参照して、前記データが属するグループ別格納領域を、前記グループ別格納領域管理表から抽出し、前記新規データのタイムスタンプと、前記グループ別格納領域に記憶されたクラスタ時刻とを比較して両時刻の前後を判定し、
前記解析対象データ判定部は、
前記タイムスタンプが前記クラスタ時刻以前である場合は、前記新規データを、その時点のグループ別解析対象クラスタに加えて、前記タイムスタンプが前記クラスタ時刻より後である場合は、その時点のグループ別解析対象クラスタに属する全てのデータを、前記データ解析部から削除し、該新規データのみで構成されるデータクラスタを新たなグループ別解析対象クラスタとし、前記新規データを前記データ解析部に挿入することを特徴とするストリームデータ処理システム。
【請求項１０】
請求項７記載のストリームデータ処理システムにおいて、
タイムスタンプが付与された複数のデータが、前記タイムスタンプの昇順に一列に並んで継続的に到来する時系列データの流れであるストリームにおいて、時間軸上で連続して到来するデータの部分列からなるデータクラスタの番号を保存するクラスタ番号保存領域と、
前記タイムスタンプが前記クラスタ時刻以前である場合は、その時点で前記クラスタ番号保存領域に保存されているクラスタ番号をデータに付与してデータベースに格納し、前記タイムスタンプが前記クラスタ時刻より後である場合は、その時点で前記クラスタ番号保存領域に保存されているクラスタ番号に１を加算して、前記クラスタ番号保存領域に保存し、加算後のクラスタ番号をデータに付与してデータベース格納するクラスタ判定部とを備え
前記データ時刻比較部は、
新規データが到来した際に、前記新規データのタイムスタンプを、ある時点における最新のデータクラスタである最新クラスタに属するデータにおいて最も古い、または最も新しいデータの、タイムスタンプに前記時間しきい値を加算した時刻であるクラスタ時刻と比較して両時刻の前後を判定することを特徴とするストリームデータ処理システム。
【請求項１１】
請求項１０記載のデータ処理システムにおいて、
前記クラスタ判定部は、
新規にデータが到来した際に、前記新規データのタイムスタンプを前記クラスタ時刻と比較し、前記タイムスタンプが前記クラスタ時刻以前である場合は、前記新規データをデータ出力し、前記タイムスタンプが前記クラスタ時刻より後である場合は、データ集合の区切りを示す信号を送出した後で、前記新規データをデータ出力することを特徴とするストリームデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高レートで継続的に生成される時系列データをリアルタイムに処理する技術に関し、特に、ストリームデータ処理における、ある現象の発生を監視して生成され続ける観測データの系列から、個別の現象に対応したデータ集合を時間軸上の近接関係に基づいて抽出する処理に有効な技術に関する。
【背景技術】
【０００２】
ユビキタス情報社会の到来に伴い、ＲＦＩＤ（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ  ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）読み取り情報、センサネットによる観測データ、ネットワークモニタリング、システムモニタリング、株価監視、交通情報といった、高レートで継続的に生成される時系列データが増加しており、これら時系列データを瞬時に解析し、ユーザにフィードバックするような、新たなサービスが望まれている。
【０００３】
このようなサービスを構築するためのデータ処理方式として、ストリームデータ処理という技術が、データベース関連の学会で提案されている。ストリームデータ処理を利用すれば、従来のリレーショナルデータベースで利用されている、関係代数に基づいたデータ処理モデルを、時系列データの解析にも適用し、ユーザによるデータ処理の定義を、ＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）に類似した宣言型の検索言語で記述可能である。これにより、前記のようなサービスの開発作業を、大幅に効率化する。また、ストリームデータ処理の原理、実現方式は非特許文献１に開示されている（非特許文献１参照）。
【０００４】
以降では、時系列データを表す用語として、無限に継続するデータ系列をストリームと呼び、ストリーム上の各データを、ストリームタプル、あるいは単にタプルと呼ぶ。ストリームタプルには、必ずタイムスタンプが付与されており、ストリームタプルは、ストリーム上において、タイムスタンプの昇順に整列される。
【０００５】
ストリームデータ処理を利用すれば、結合演算、和・差・積集合演算、集計演算、グループ分け処理、重複排除といった、関係代数で定義されているデータ集合上の各種演算をストリームに対して実施することが可能である。
【０００６】
但し、これらの演算は、有限要素数のデータ集合を対象とするため、絶え間なくタプルが到来し続ける（即ち、無限に集合の要素が増え続ける）ストリームに対してこれらの演算を適用するには、処理を実施する各時点で、解析対象となるタプルの集合を常に限定しつつ実行する必要がある。
【０００７】
ストリーム上から、解析対象となるタプル集合を限定する方法の一つとして、タプルの時間軸上での順序関係に基づき、ある時点で解析対象となるタプル集合を、常時切り出す、スライディングウィンドウ方式が提案されている。
【０００８】
該方式は、非特許文献１に開示されている。既存のスライディングウィンドウは、時間指定ウィンドウと個数指定ウィンドウの二種類に分類される。
【０００９】
時間指定ウィンドウは、各タプルが解析対象となる期間を、該タプルのタイムスタンプを起点、該タイムスタンプよりある定数時間経過した時刻を終点とする期間に限定する。該定数時間は、ユーザにより任意の時間に指定可能である。個数指定ウィンドウは、同時に解析対象となるタプルを、最新の定数個に限定する。該個数は、ユーザにより任意の個数に指定可能である。
【００１０】
ストリーム上から、解析対象のタプル集合を限定するもう一つの方法として、該集合の終了を示す、区切り信号をストーム中に挿入する方式が提案されている。この方式は、非特許文献２に開示されている（非特許文献２参照）。
【００１１】
以上のように、ストリームデータ処理では、時系列データの中から解析対象となる集合を限定する機能を備えることで、データの変化量、移動平均値の算出、データの発生順序の検知、など、時系列データの解析における重要処理を、柔軟に定義することが可能である。
【非特許文献１】Ｂ．Ｂａｂｃｏｃｋ、Ｓ．Ｂａｂｕ、Ｍ．Ｄａｔａｒ、Ｒ．Ｍｏｔｗａｎｉ  ａｎｄ  Ｊ．Ｗｉｄｏｍ、“Ｍｏｄｅｌｓ  ａｎｄ  ｉｓｓｕｅｓ  ｉｎ  ｄａｔａ  ｓｔｒｅａｍ  ｓｙｓｔｅｍｓ”、Ｉｎ  Ｐｒｏｃ．  ｏｆ  ＰＯＤＳ  ２００２、  ｐｐ．１−１６．（２００２）
【非特許文献２】Ｔ．Ｊｏｈｏｎｓｏｎ、Ｓ．Ｍｕｔｈｕｋｒｉｓｈｎａｎ、Ｖ．Ｓｈｋａｐｅｎｙｕｋ  ａｎｄ  Ｏ．Ｓｐａｔｓｃｈｅｃｋ、“Ａ  Ｈｅａｒｔｂｅａｔ  Ｍｅｃｈａｎｉｓｍ  ａｎｄ  ｉｔｓ  Ａｐｐｌｉｃａｔｉｏｎ  ｉｎ  Ｇｉｇａｓｃｏｐｅ”、Ｉｎ  Ｐｒｏｃ．  ｏｆ  ＶＬＤＢ  ２００５、  ｐｐ．１０７９−１０８８．（２００５）
【発明の開示】
【発明が解決しようとする課題】
【００１２】
今後、ユビキタス情報機器の技術が発達することで、ＲＦＩＤの輻輳読み取りによる検品業務の効率化、センサネットによる環境モニタリング、車載センサの高機能化によるテレマティクスの高度化、といったサービスが実現可能となる。
【００１３】
これらのサービスを実現するためには、各種機器が生成する観測データから、リアルワールドで発生する現象を解析するデータ処理技術が必須になる。ストリームデータ処理は、このようなサービスの実現に適した技術と考えられている。
【００１４】
機器が生成する観測データから、現象解析を実現するためには、時系列な観測データの並びから、各現象に対応する部分データ列を抽出する処理が必須となる。
【００１５】
この処理の必要性を、図４のＲＦＩＤの輻輳読み取りを利用した入荷検品の例を用いて示す。この場合、ダンボール１３０３、１３０４が読み取りゲート１３０２を通過することで、該ダンボール中に梱包された各製品に関する情報を表す、表１３１０のようなデータが生成される。
【００１６】
各行１３１１〜１３１７が、各製品に関するデータであり、製品ＩＤを示すｉｄカラム、製品重量を示すｗｅｉｇｈｔカラム、および製造日を示すｄａｔｅカラムから成る。ダンボール１３０３を読み取ることでデータ１３１１〜１３１３が、ダンボール１３０４を読み取ることでデータ１３１４〜１３１７が生成される。ストリームデータ処理システム１１０は、該データを受け取り、各ダンボールについて、梱包製品数、総重量、製造期間を算出し、検査員などに通知する。
【００１７】
また、検査員による作業のタイミングおよび読み取りデータが生成されるタイミングは、表１３１０の下方のタイミングウィンドウ１３２０に示される。検査員が、９：１５’０２にダンボール１となるダンボール１３０３を読み取りゲート１３０２を通過させることで、該ダンボールに梱包された各製品のデータ１３２１が９：１５’０２〜９：１５’０４の間に生成される。
【００１８】
該データをストリームデータ処理システム１１０で集計した結果を検査員が９：１５’０６に確認する。ダンボール２（１３０４）についても同様である。この処理において、ストリームデータ処理システムは、各ダンボール別に集計結果を生成する必要がある。
【００１９】
ここで、個々のダンボールの読み取りを一つの現象と捉えると、ストリームデータ処理は、時系列の製品データから、各ダンボール（即ち一つの現象）に対応する部分データ列を抽出する必要がある。
【００２０】
別の例として、図７のセンサネットによる環境監視の例を示す。空間に散らばって配置されたセンサ１４０１（ＩＤがＳ０１〜Ｓ２３）により、音声、光量、温度、湿度、気圧、風圧、風速、振動、といった物理量を計測し、該計測データに基づいて、地震、火災、爆発、事故といった現象を解析する。
【００２１】
観測する物理量、現象の種類、および両者の組合せを問わず、このような現象解析に、センサネットが適用可能である。ここで、１０：２５、１０：２８、および１０：３２の各時刻に、現象１４０２、１４０３、および１４０４が発生し、それぞれの現象によって起因する物理量を、１４０５、１４０６、および１４０７の各線に囲まれたセンサ群が検知し、計測する。
【００２２】
表１４１０は、該計測データを示す。各行１４１１〜１４２２が、各計測データであり、計測したセンサのＩＤを示すｉｄカラム、および計測値を示すｖａｌｕｅカラムから成る。現象１４０２により、データ１４１１〜１４１４が、現象１４０３により、データ１４１５〜１４１７が、現象１４０４により、データ１４１８〜１４２２が、それぞれ生成される。なお、センサが現象の発生場所に近い程、計測値は大きくなる。
【００２３】
ウィンドウ１４３０は、現象の発生タイミング、およびセンサによる計測データが生成されるタイミングを示した図である。このようなデータ系列から、個々の現象ごとの解析を実現するために、ストリームデータ処理は、時系列の計測データから、各現象に対応する部分データ列を抽出する必要がある。
【００２４】
以上のように、ストリームデータ処理を、ユビキタス機器が生成する観測データに基づく現象解析に適用するためには、ストリーム上のタプルを現象単位で切り分ける処理が必須となる。
【００２５】
これに対し、非特許文献１に開示されている、既存のスライディングウィンドウ方式である、時間指定ウィンドウ、および個数指定ウィンドウでは、このような処理が実現不可能であることを、図４の例で示す。
【００２６】
時間指定ウィンドウ１３３０は、タイミングウィンドウ１３２０に示したストリームに、時間指定ウィンドウを適用する場合を示す。ウィンドウ１３３１は、各製品データ１３２１が、解析対象となる期間を、黒丸から右方向（時間軸における未来方向）に伸びる線分で表している。
【００２７】
全ての線分の長さは、ユーザにより指定された解析対象期間１３３３と同一の長さとなる。ウィンドウ１３３２は、ウィンドウ１３３１に示した解析対象期間を持つストリームタプルから、製品合計数を算出した結果を示す。９：１５’０６において、検査員が該結果を確認する際には、ダンボール１３０３の製品数３が正しく確認される。
【００２８】
一方、９：１５’１８に検査員が該結果を確認する際には、まだダンボール１３０３の読み取りデータが解析対象期間として残っているため、ダンボール１３０４の製品数４とは異なる間違った値７が確認されることになる。
【００２９】
ウィンドウ１３４０は、解析対象期間を短くして、タイミングウィンドウ１３２０に示したストリームに、時間指定ウィンドウを適用する場合を示す。１３４３は、解析対象期間の長さを示す。ウィンドウ１３４１は、各データが解析対象となる期間を、またウィンドウ１３４２は、製品合計数を算出した結果を示す。
【００３０】
データの解析対象期間が短い場合、そこから算出した結果の継続期間も短くなるため、９：１５’０６、９：１５’１８どちらの時刻においても、検査員は間違った値を確認することになる。
【００３１】
検査員の作業スピードは一定ではないので、解析対象期間を長くとっても、短くとっても、以上のような不具合を完全に回避することは不可能である。
【００３２】
個数指定ウィンドウ１３５０は、タイミングウィンドウ１３２０に示したストリームに、個数指定ウィンドウとして同時解析対象個数３個を適用する場合を示す。ウィンドウ１３５１は、各データが解析対象となる期間を、またウィンドウ１３５２は、製品合計数を算出した結果を示す。個数指定ウィンドウでは、常に最新の３個のデータのみが解析対象として残るため、製品合計数は、ダンボールに含まれる製品数に関わらず３となり、正しい結果が得られない。
【００３３】
同様に、図７のセンサネットの例においても、現象の発生間隔、および各現象に対応する計測データ数は不定であるため、時間指定ウィンドウと個数指定ウィンドウでは、現象単位に計測データを切り分けることは不可能である。
【００３４】
また、非特許文献２に開示されている、ストリーム中に区切り信号を挿入する方式においても、時系列データを現象単位に切り分ける処理において課題があることを、図４、図７の例を用いて示す。
【００３５】
図４の例に、区切り信号を挿入する方式を適用する場合、ダンボール間に仕切り棒を配置し、該仕切り棒の読み取りデータ時に、区切り信号をストリームに挿入することで、ＲＦＩＤ読み取りデータをダンボール単位で切り分けることが可能である。
【００３６】
または、読み取りゲート１３０２に赤外線センサを増設することで、ダンボールの区切りを検知することも可能である。または、検査員が、一つのダンボールを、読み取りゲート１３０２を通過させるごとに、読み取り終了ボタンを押すなどの操作によって、ダンボールの区切りを明示することも可能である。
【００３７】
但し、これらの方法のいずれにおいても、仕切り棒の配置、赤外線センサの増設、読み取り終了ボタンの操作、などの余計な手間とコストが必要となる。
【００３８】
また、図７の例において、一現象に対応する計測データ列の終了を示す区切り信号を、ストリームに挿入するためには、一つの現象が発生した際に、該現象を検知したセンサの全てが、計測データを生成し終えたことを、判定する処理が必要である。
【００３９】
しかし、センサネットでは、分散して配置された各センサが、独立に計測データを生成するため、このような判定処理の実現が困難である。
【００４０】
以上のように、ストリームデータ処理を、ユビキタス機器が生成する観測データに基づく現象解析に適用するためには、ストリーム上のタプルを現象単位で切り分ける処理が必須となるが、従来技術である、時間指定ウィンドウ、個数指定ウィンドウでは、このような処理は実現不可能であり、区切り信号挿入方式においても、実現のためにはユーザに余計な手間がかかる、コストがかかる、あるいは実現自体が困難な場合がある、といった問題があった。
【００４１】
本発明の目的は、ストリームデータ処理において、ストリーム上のタプルを、現象単位の部分タプル列に切り分ける処理を、ユーザの手間とコストを必要とせずに、実現することのできる技術を提供することにある。
【００４２】
本発明の前記ならびにそのほかの目的と新規な特徴については、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００４３】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００４４】
以下、本願発明の概要を簡単に示す。
【００４５】
本発明は、ストリーム上の各ストリームタプルに付与されたタイムスタンプの、時刻の近接関係系に基づいて、ストリーム上のタプル列を部分タプル列に分割し、各時刻において最新の部分タプル列に属するタプル集合を、該時刻における解析対象として、ストリームデータ処理システムのデータ解析部に渡す。
【００４６】
以下では、該部分タプル列をデータクラスタと呼び、データクラスタを構成する際に参照する、タプルのタイムスタンプに関する条件を、クラスタ構成条件と呼ぶ。
【００４７】
より具体的には、以下の処理より構成する、解析対象データ切り出し部を、システムのデータ入力口に備える、ストリームデータ処理システムを提供する。
（ａ）ユーザによるデータ処理定義から、クラスタ構成条件を抽出する処理。
（ｂ）該システムに新規タプルが入力された場合は、該クラスタ構成条件に基づいて、該新規タプルのタイムスタンプをチェックし、該新規タプルが、その時点で解析対象となっているデータクラスタに、追加されるか否かを判定する処理。
（ｃ）該新規タプルが、該解析対象となっているデータクラスタに追加されない場合には、該データクラスタに属する全てのタプルを、解析対象から外すように、データ解析部に通知し、新たなデータクラスタを解析対象として定義し、該新規タプルをデータクラスタに追加する処理。
（ｄ）該新規タプルを解析対象としてデータ解析部に渡す処理。
【００４８】
クラスタ構成条件に基づく判定は、具体的に次の２タイプの何れかとする。
【００４９】
（１）新規タプルが到着した際に、該新規タプルのタイムスタンプと、その時点で解析  対象となっているデータクラスタに属するタプルのうち、最古のタプルのタイムスタンプとを比較し、両タイムスタンプの差がユーザによって指定された時間しきい値以内である場合には、該新規タプルを、該データクラスタに追加し、そうでない場合には、前記（ｃ）の処理を実施する。
【００５０】
（２）新規タプルが到着した際に、該新規タプルのタイムスタンプと、その時点で解析対象となっているデータクラスタに属するタプルのうち、最新のタプルのタイムスタンプとを比較し、両タイムスタンプの差がユーザによって指定された時間しきい値以内である場合には、該新規タプルを、該データクラスタに追加し、そうでない場合には、前記（ｃ）の処理を実施する。
【００５１】
以上により、時系列データにおいて、発生時間が近接している一固まりのデータ集合を、ストリームデータ処理の解析対象として切り出す。
【発明の効果】
【００５２】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００５３】
（１）ストリームデータ処理において、各現象に対応する観測データの集合を過不足なく抽出することが可能となる。
【００５４】
（２）また、データの発生時刻のみに基づいて、該抽出処理が可能となるため、データの区切り信号を生成するための手間やコストなどを不要にすることができる。
【００５５】
（３）さらに、データの生成源が複数に分散されているので、データの区切り信号を生成することが困難な場合であっても抽出処理を実現することができる。
【発明を実施するための最良の形態】
【００５６】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００５７】
図１は、本発明の一実施の形態によるストリームデータ処理システムの構成例を示すブロック図、図２は、図１のストリームデータ処理システムによるデータクラスタ切り出し処理例を示すフローチャート、図３は、図１のストリームデータ処理システムによるストリームデータ処理の説明図、図４は、図１のストリームデータ処理システムを用いたＲＦＩＤの輻輳読み取りによる入荷検品作業処理の一例を示す説明図、図５は、図１のストリームデータ処理システムによるデータクラスタ切り出し処理の他の例を示すフローチャート、図６は、図１のストリームデータ処理システムによるストリームデータ処理の他の例を示す説明図、図７は、本発明の一実施の形態によるセンサネットによるデータ処理の一例を示す説明図、図８は、一実施の形態によるデータ切り出し処理を実現するストリームデータ処理システムの構成例を示すブロック図、図９は、図８のストリームデータ処理システムによるデータクラスタ切り出し処理の一例を示すフローチャート、図１０は、図８のストリームデータ処理システムを用いたセンサネットによるストリームデータ処理の説明図、図１１は、本発明の一実施の形態によるネットワークモニタリングの一例を示す説明図、図１２は、図１１のネットワークモニタリングを用いたデータ切り出し処理の説明図、図１３は、図１２のネットワークモニタリングによるデータ切り出し処理の一例を示すフローチャート、図１４は、本発明の一実施の形態によるストリームデータ分割システムの構成例を示すブロック図、図１５は、図１２のネットワークモニタリングによるストリームデータ処理例を示す説明図である。
【００５８】
本実施の形態において、ストリームデータ処理システム１１０は、図１に示すように、ユーザが定義するデータ処理定義１０１を受け付けるデータ処理定義登録ユーザインタフェース１１１、解析対象データ切り出し部１２０、およびデータ解析部１３０から構成される。
【００５９】
解析対象データ切り出し部１２０は、定義１０１に含まれるクラスタ構成条件に従って、入力ストリーム１４１から、解析対象データクラスタを抽出する処理を、実行する。データ解析部１３０は、定義１０１に従って、該データクラスタに対する解析処理を実行し、その結果ストリーム１４３，１４４をクライアントなどに出力する。
【００６０】
データ処理定義登録ユーザインタフェース１１１は、受け取った定義１０１を解釈し、定義１０１の中からクラスタ構成条件の定義を抽出し、解析対象データ切り出し部１２０に対して通知する。また、定義１０１の内容に従い、データ解析処理実行木１３１を構成し、解析部１３０上に配置する。
【００６１】
本実施の形態では、定義１０１中の記述“［ＣＬＵＳＴＥＲ  ＷＩＴＨＩＮ  ３  ｓｅｃｏｎｄｓ］”が、クラスタ構成条件の定義である。“ＷＩＴＨＩＮ”は、前記クラスタ構成条件（１）のタイプであることを意味する。
【００６２】
同部分の文字列が“ＩＮＴＥＲＶＡＬ”である場合は、前記クラスタ構成条件（２）のタイプであることを意味する。以降では（１）をＷＩＴＨＩＮ条件、（２）をＩＮＴＥＲＶＡＬ条件と呼ぶ。また、“３  ｓｅｃｏｎｄｓ”は、時間閾値が３秒であることを意味する。なお、時間閾値は、任意の時間を定義可能である。
【００６３】
以下、図１、および図２を用いて、解析対象データ切り出し部１２０の構成、および動作を説明する。但し、図２は、ＷＩＴＨＩＮ条件を実現する、解析対象データ判定部１２１の動作を示す。
【００６４】
解析対象データ切り出し部１２０は、まず、データ処理定義登録ユーザインタフェース１１１から通知された該時間しきい値を、時間しきい値保存領域１２８に保存する。さらに、初期化処理Ｓ５０１に従って、クラスタ時刻格納領域１２６に時刻Ｔｉｍｅ．ＭＩＮを格納し、クラスタ番号格納領域１２７に−１を格納する。
【００６５】
なお、Ｔｉｍｅ．ＭＩＮは、如何なる実時刻と比較しても、過去と判定される時刻とする。初期化Ｓ５０１が済むと、新規入力データの受信待ち処理Ｓ５０２に移行する。
【００６６】
解析対象データ判定部１２１は、システム１１０の外部から新規入力データである入力ストリーム１４１を受信した際に、該データのタイムスタンプを入力データ時刻格納領域１２２に格納し、処理Ｓ５０３に従って、データ時刻比較部１２３を用いて、領域１２２に格納された該新規入力データのタイムスタンプと、クラスタ時刻格納領域１２６に格納されたクラスタ時刻を比較する。
【００６７】
その比較により、該新規入力データのタイムスタンプが、該クラスタ時刻を超える場合には、処理Ｓ５０４に従って、該新規入力データのタイムスタンプに該時間しきい値を加算した時刻を、クラスタ時刻の更新値として、クラスタ時刻格納領域１２６に格納する。
【００６８】
さらに、処理Ｓ５０５に従って、その時点でクラスタ番号格納領域１２７に格納されているクラスタ番号を、解析対象外データ削除部１２５に通知する。続いて、処理Ｓ５０６に従って、クラスタ番号格納領域１２７に格納されたクラスタ番号を、インクリメントする。なお、初期化処理Ｓ５０１の後、最初に入力データを受信した際は、必ず、処理Ｓ５０４〜Ｓ５０６を実行することになる。これら処理の後、処理Ｓ５０７に移行する。
【００６９】
一方、処理Ｓ５０３の比較により、新規入力データのタイムスタンプが、該クラスタ時刻以前の場合には、直接、処理Ｓ５０７に移行する。この処理Ｓ５０７では、該新規入力データに、その時点でクラスタ番号格納領域１２７に格納されているクラスタ番号を付与し、解析対象データ挿入部１２４に渡す。処理Ｓ５０７が終了すると、再び新規入力データの受信待ち処理Ｓ５０２に移行する。
【００７０】
データ挿入部１２４は、該新規入力データを、データ解析部１３０が保持する解析対象データバッファ１３２に挿入する。一方、データ削除部１２５は、通知されたクラスタ番号を付与された全てのデータを、バッファ１３２から削除する。
【００７１】
データ解析部１３０は、バッファ１３２に対するデータ挿入／削除が発生する度に、データ解析処理実行木１３１に基づいて、バッファ１３２上に存在するデータ１４２の集合を対象とした解析処理を実施し、その結果を外部に送信する。なお、データ解析部１３０の実現方法は、たとえば、非特許文献１に開示されている。
【００７２】
以下、図３を用いて、図１の構成と図２の動作によって実現されるストリームデータ処理方法を、図４に示すＲＦＩＤの輻輳読み取りによる入荷検品作業に適用した場合の結果を示す。
【００７３】
図３は、ストリームデータ処理システム１１０が、表１３１０（図４）に示すデータを、タイミングウィンドウ１３２０に示すタイミングで受信して、データ処理定義１０１に従って処理する際に、該処理方法を適用した結果を示している。
【００７４】
定義１０１は、表１３１０のデータ（ｒｆｉｄ）を、時間しきい値３秒のＷＩＴＨＩＮ条件によりデータクラスタに分割し、各データクラスタについて、梱包製品数、総重量、製造期間を算出することを意味する。
【００７５】
図３において、ウィンドウ６０１は、各データの解析対象期間を示しており、ウィンドウ６０３は、時間しきい値の長さを示しており、時間しきい値の長さは、たとえば、３秒程度である。
【００７６】
９：１５’０２にデータａ（１３１１）が読み込まれると、データクラスタが新規に生成される。クラスタ番号は０となる。この際、クラスタ時刻は、データａのタイムスタンプ９：１５’０２に該時間しきい値３秒を加算した９：１５’０５に定まる。
【００７７】
データａ〜ｃ（１３１１〜１３１３）のタイムスタンプは、該クラスタ時刻９：１５’０５以前であるので、データａと同一のデータクラスタ０に追加される（以降、クラスタ番号Ｎが付与されたデータから成るデータクラスタを、データクラスタＮと表記する）。
【００７８】
この後、９：１５’１２にデータｄ（１３１４）を受信した際には、該クラスタ時刻を超えているので、この時点におけるクラスタ番号０が付与された、データａ〜ｃの解析対象期間が終了する。
【００７９】
一方、新たなデータクラスタ１が生成され、データｄは該クラスタに追加される。また、クラスタ時刻は、データｄのタイムスタンプ９：１５’１２に該時間しきい値３秒を加算した９：１５’１５に定まる。データｅ〜ｇ（１３１５〜１３１７）のタイムスタンプは、該クラスタ時刻９：１５’１５以前であるので、データｄと同一のデータクラスタ１に追加される。
【００８０】
ウィンドウ６０２は、時間しきい値の長さを示しており、各データの解析対象期間を持つストリームタプルから、製品合計数を算出した結果を示す。９：１５’０６、および９：１５’１８において、検査員が該結果を確認する際には、ダンボール１の製品数３、およびダンボール２の製品数４が、共に正しく確認されることになる。総重量、および製造期間についても、同様に正しい値が確認される。
【００８１】
表６１０は、処理結果データを示す。データ１３１１〜１３１７の入力により、それぞれデータ６１１〜６１７を出力する。検査員は、９：１５’０６にデータ６１３を、９：１５’１８にデータ６１７を、それぞれ確認することになる。これらは、それぞれダンボール１およびダンボール２の集計値を正しく表している。
【００８２】
以上のように、図１の構成と図２の動作を用いることで、ユーザに余計な手間やコストを強いることなく、正しい現象解析を実現することが可能となる。
【００８３】
次に、図５を用いて、ＩＮＴＥＲＶＡＬ条件を実現する、解析対象データ判定部１２１の動作を示す。
【００８４】
この図５においは、処理Ｓ５０４の実行位置以外は、図２の動作と全く同一である。処理Ｓ５０４が該位置にあることで、新規入力データが現時点の解析対象データクラスタに追加されるか否かに関わらず、クラスタ時刻は、必ず、該新規入力データのタイムスタンプ＋時間しきい値の値に更新される。
【００８５】
これにより、新規入力データが到着した際には、必ず、解析対象データクラスタにおける最新のデータのタイムスタンプと比較した、時間しきい値内か否かの判定が実施されることになる。
【００８６】
以下、図６を用いて、図１の構成と図５の動作によって実現される、ストリームデータ処理方法を、ＲＦＩＤの輻輳読み取りによる入荷検品作業に適用した場合の結果を示す。
【００８７】
この場合、ストリームデータ処理システム１１０が、図６のタイミングウィンドウ８１０で示されるタイミングでデータを受信して、データ処理定義８０１に従って処理する際に、該処理方法を適用した結果を示している。
【００８８】
定義８０１は、データ（ｒｆｉｄ）を、時間しきい値４秒のＩＮＴＥＲＶＡＬ条件によりデータクラスタに分割し、各データクラスタについて、梱包製品数、総重量、製造期間を算出することを意味する。
【００８９】
９：１５’０２にデータａが読み込まれると、データクラスタが新規に生成される。クラスタ番号は０となる。この際、クラスタ時刻は、データａのタイムスタンプ９：１５’０２に該時間しきい値８２３（４秒）を加算した９：１５’０６に定まる。
【００９０】
データｂのタイムスタンプ９：１５’０３は該クラスタ時刻９：１５’０６以前であるので、データａと同一のデータクラスタ０に追加される。同時に、クラスタ時刻は、データｂのタイムスタンプ９：１５’０３に該時間しきい値４秒を加算したクラスタ時刻は９：１５’０７に更新される。
【００９１】
データｃ〜ｅについても同様に、該時間しきい値４秒以内で連続しているため、全てデータクラスタ０に追加される。データｅ入力後のクラスタ時刻は、データｅのタイムスタンプ９：１５’０７に該時間しきい値４秒を加算したクラスタ時刻は９：１５’１１に更新される。
【００９２】
この後、９：１５’１３にデータｆを受信した際には、該クラスタ時刻を超えているので、この時点におけるクラスタ番号０が付与された、データａ〜ｅの解析対象期間（解析対象期間８２１で示す）が終了する。
【００９３】
一方、新たなデータクラスタ１が生成され、データｆは該クラスタに追加される。また、クラスタ時刻は、データｆのタイムスタンプ９：１５’１３に該時間しきい値８２３の４秒を加算した９：１５’１７に定まる。データｇ〜ｉは、該時間しきい値８２３の４秒以内で連続しているため、全てデータクラスタ１に追加される。
【００９４】
９：１５’０９、および９：１５’１９において、検査員が、解析対象期間８２１を持つストリームタプルから、製品合計数を算出した結果８２２を確認する際には、ダンボール１の製品数５、およびダンボール２の製品数４が、共に正しく確認されることになる。総重量、および製造期間についても、同様に正しい値が確認される。
【００９５】
以上のように、図１の構成と図５の動作を用いることで、ユーザに余計な手間やコストを強いることなく、正しい現象解析を実現することが可能となる。また、大きなダンボールは、一定の時間しきい値以内にゲートを通過し終えることが困難であるため、図２の動作で実現されるＷＩＴＨＩＮ条件では、一つのダンボールに対応するデータを正しく纏めることができない。
【００９６】
このような場合でも、ＲＦＩＤ読み取りデータが途切れることなく生成されている間は、一つのダンボールの通過中と見做すことができるので、図５の動作で実現されるＩＮＴＥＲＶＡＬ条件を用いることで、該期間に生成されたデータ集合を、一つのダンボールに対応するデータとして抽出することが可能である。
【００９７】
この例のように、一つの現象に対応するデータが、一定時間に収まらないものの、連続して生成され続ける場合は、本方法を適用できる。
【００９８】
次に、図７のセンサネットの例において想定するデータ処理の内容を示す。
【００９９】
図７の例では、各センサの計測値の大小による、現象の発生頻度が高い位置を推定する。図では、センサＳ１７の周辺で発生頻度が高いことが示されている。
【０１００】
該推定処理として、各現象に対応するデータクラスタの中で、最も大きい値を示すデータを抽出し、該値を計測したセンサＩＤを抽出することが、本例で想定するデータ処理である。
【０１０１】
但し、このような推定処理においては、一つの現象に関する計測データ集合のみを対象にデータ処理を実施しても、正確な値は得られず、複数の現象に関するデータの解析が必要になる。これに対し、複数のデータクラスタを同時に解析対象とする、データ切り出し方法を提供する。
【０１０２】
以下、図８を用いて、該データ切り出し方法を実現するための構成を示す。
【０１０３】
データ処理定義３０１における記述“［ＣＬＵＳＴＥＲ  ２  ＷＩＴＨＩＮ  ３  ｓｅｃｏｎｄｓ］”が、該切り出し方法の定義であり、該記述は、時間しきい値３秒のＷＩＴＨＩＮ条件で切り出されるデータクラスタの、最新の２個を、同時に解析対象とすることを意味する。
【０１０４】
データ処理定義登録ユーザインタフェース１１１は、“ＣＬＵＳＴＥＲ”文字列の後に続く数字を、同時に解析対象とするデータクラスタ数と解釈し、解析対象データ切り出し部１２０に通知する。
【０１０５】
解析対象データ切り出し部１２０は、該値を同時対象クラスタ数保存領域３１１に保存する。該構成は、領域３１１が追加されていることを除き、図１に示したストリームデータ処理システム１１０の構成と同一である。
【０１０６】
以下、図９を用いて、該データ切り出し方法を実現するための動作を示す。
【０１０７】
この場合、処理Ｓ９０１が、図２における処理Ｓ５０５の代わりに位置することを除き、図２の動作と同一である。処理Ｓ５０５は、新規入力データが新規のデータクラスタに属すると判定される場合、その時点で解析対象であったデータクラスタのクラスタ番号を、解析対象外データ削除部１２５に通知することであった。
【０１０８】
一方、図９の処理Ｓ９０１は、その時点のクラスタ番号より、同時対象クラスタ数を減じた値に、さらに１を加えた値を、削除するデータクラスタのクラスタ番号として、データ削除部１２５に通知する。外処理により、新規に生成されるデータを含めて、同時対象クラスタ数のデータクラスタを、解析対象として保持することになる。なお、同時対象クラスタ数が１の場合、処理Ｓ９０１は処理Ｓ５０５と一致する。
【０１０９】
以上は、ＷＩＴＨＩＮ条件に対して、同時対象クラスタ数の指定を追加したデータ切り出し方法に関する説明である。
【０１１０】
ＩＮＴＥＲＶＡＬ条件に対しても、同様にして、同時対象クラスタ数の指定を追加したデータ切り出し方法を実現可能であることは自明である。該切り出し方法を実現するための構成は、図８と同一であり、動作は、図５の処理Ｓ５０５を処理Ｓ９０１に置き換えたもので実現できる。
【０１１１】
以下、図１０を用いて、図８の構成と図９の動作によって実現される、ストリームデータ処理方法を、図７に示すセンサネットによる環境監視に適用した場合の結果を示す。
【０１１２】
図１０は、ストリームデータ処理システム１１０が、表１４１０に示すデータを、図１０のウィンドウ１４３０のタイミングで受信して、データ処理定義３０１，１００１に従って処理する際に、該処理方法を適用した結果を示している。
【０１１３】
定義３０１は、データ（ｓｅｎｓｏｒ）１４１０を、時間しきい値３秒のＷＩＴＨＩＮ条件によりデータクラスタに分割し、最新のデータクラスタ２個を同時に解析対象とし、センサごとに計測値を加算することを意味する。また、定義１００１は、該加算値が最大となるセンサのＩＤを抽出することを意味する。ウィンドウ１０１０は、各データの解析対象期間を示しており、ウィンドウ１０１０においては、時間しきい値１０１１，１０１２，１０１３の長さ（たとえば、３秒）をそれぞれ示している。
【０１１４】
データ１４１１〜１４１４は、データクラスタ０に、データ１４１５〜１４１７は、データクラスタ１に、データ１４１８〜１４２２は、データクラスタ２に、それぞれ属することになる。
【０１１５】
データ１４１１〜１４１４までが入力された状態において、１０：２８の時点でデータ１４１５が入力されると、処理Ｓ５０３の条件分岐でＮｏに倒れ、処理Ｓ５０４、Ｓ９０１、Ｓ５０６が実行される。
【０１１６】
但し、処理Ｓ９０１では、その時点でのクラスタ番号０から同時対象クラスタ数２を減じて１を加えたクラスタ番号−１が負であるため、何も実行されない。そのため、データクラスタ０に属するデータは解析対象として残ることになる。
【０１１７】
一方、データ１４１１〜１４１７が入力された状態において、１０：３２の時点でデータ１４１８が入力されると、処理Ｓ５０３の条件分岐でＮｏに倒れ、処理Ｓ５０４、Ｓ９０１、Ｓ５０６が実行される。
【０１１８】
このとき、その時点でのクラスタ番号１から同時対象クラスタ数２を減じて１を加えたクラスタ番号が０となるため、データクラスタ０に属するデータ１４１１〜１４１４が解析対象から外れることになる。
【０１１９】
一方、新しいデータクラスタ２が生成され、データ１４１８が追加される。その結果、同時対象クラスタ数２個のデータクラスタ１、および２が、解析対象として切り出されることになる。
【０１２０】
表１０２０は、定義３０１による処理結果データを示す。データ１４１１〜１４２２の入力により、それぞれデータ１０２１〜１０３２を算出する。データ１０２６は、データクラスタ０、および１に属する、センサＳ１７による計測データの計測値を加算した値が、ｖａｌｕｅ＿ｓｕｍカラムの値となる。
【０１２１】
同様に、データ１０２７は、データクラスタ０、および１に属する、センサＳ１８による計測データの計測値加算した値が、データ１０３２は、データクラスタ１、および２に属する、センサＳ１７による計測データの計測値を加算した値が、それぞれ、ｖａｌｕｅ＿ｓｕｍカラムの値となる。
【０１２２】
表１０４０は、定義１００１による処理結果データを示す。データ１０２１〜１０３２が算出されることで、それぞれデータ１０４１〜１０５２を出力する。データ１０４４、１０４７、および１０５２が、それぞれ現象１４０２、１４０３、および１４０４の発生後の解析結果となる。２つの現象を解析対象とした結果である、データ１０４７、１０５２においては、想定する答えであるセンサＩＤＳ１７が含まれることになる。
【０１２３】
以上のように、図８の構成と図９の動作を用いることで、複数のデータクラスタを解析対象とするデータ切り出し方法が実現され、複数の現象を対象とした解析が可能となる。該データ切り出し方法は、解析精度の向上などを目的に利用することができる。
【０１２４】
次に、図１１を用いて、ネットワークモニタリングの例を示す。
【０１２５】
ネットワークモニタリングは、図示するように、ネットワークルータ１５０１、および計算機１５０２，１５０３，１５０４から構成されている。
【０１２６】
ルータ１５０１をパケットが通過することで、表１５１０のようなデータが生成される。各行１５１１〜１５２２が、各パケットに関するデータであり、送信元を示すｓｒｃカラム、送信先を示すｄｓｔカラム、およびデータ長を示すｌｅｎｇｔｈカラムからなる。
【０１２７】
ストリームデータ処理システム１１０は、該データを受け取り、発生時間が近接する複数のパケットを、一つのメッセージとして切り出し、メッセージ毎のメッセージ長を算出する。
【０１２８】
図１１におけるタイミングウィンドウ１５３０は、パケットに関する情報が生成されるタイミングを示した図である。このように、複数の計算機１５０２，１５０３，１５０４から送出されるパケットに関するデータが、一本のストリームに混在するため、データのタイムスタンプの近接関係のみに基づいて、該切り出し処理を実現することはできない。
【０１２９】
一方で、送信元となる個別の計算機に着目すれば、一つのメッセージを構成するパケット列は、連続して送出され、異なるメッセージ間の送信間隔は、それに比べて十分長い時間となるため、ＩＮＴＥＲＶＡＬ条件を適用することで、パケットに関するデータを、メッセージ単位で切り出すことが可能である。
【０１３０】
図１１におけるウィンドウ１５４０，１５５０，１５６０は、タイミングウィンドウ１５３０に示したデータ系列から、それぞれ計算機１５０２，１５０３，１５０４を送信元とするパケットに関するデータのみを抽出した図である。
【０１３１】
このように分類することで、計算機１５０２を送信元とするパケットに関するデータは、データクラスタ１５４１，１５４２に、計算機１５０３を送信元とするパケットに関するデータは、データクラスタ１５５１，１５５２に、計算機１５０４を送信元とするパケットに関するデータは、データクラスタ１５６１に、それぞれ切り分けることが可能となる。該分類処理は、データ１５１１〜１５２２のｓｒｃカラムに基づくことで実現できる。
【０１３２】
以下、図１２を用いて、該データ切り出し方法を実現するための構成を示す。
【０１３３】
データ処理定義４０１における記述“［ＰＡＲＴＩＴＩＯＮ  ＢＹ  ｓｒｃ  ＣＬＵＳＴＥＲ  ＩＮＴＥＲＶＡＬ  １  ｓｅｃｏｎｄｓ］”が、該切り出し方法の定義であり、該記述は、ｓｒｃカラムの値同一性に基づいてデータをグループ分けし、グループごとに、時間しきい値１秒のＩＮＴＥＲＶＡＬ条件で切り出されるデータクラスタを解析対象とすることを意味する。
【０１３４】
データ処理定義登録ユーザインタフェース１１１は、“ＰＡＲＴＩＴＩＯＮ  ＢＹ”文字列の後に続く文字列を、データのグループ分けに利用するカラムの名称と解釈し、解析対象データ切り出し部１２０に通知する。以降、該カラムをグループ識別子と呼ぶ。
【０１３５】
この構成は、図１に示したストリームデータ処理システム１１０の構成を、グループ別のデータ切り出し処理に対応するように拡張した形となる。クラスタ時刻格納領域１２６、およびクラスタ番号格納領域１２７は、グループごとに必要である。両領域をまとめて、グループ別格納領域と呼ぶ。
【０１３６】
グループ別格納領域は、一つのグループに対して一つ、また一つのみ存在する必要がある。この管理を実現するために、グループ識別子の値とグループ別格納領域との対応関係を保持する、グループ別格納領域管理表４１１を備える。
【０１３７】
グループ別格納領域４１２〜４１４は、それぞれ送信元の計算機１５０２，１５０３，１５０４のパケットに関するデータを、データクラスタに切り分けるために利用する。管理表４１１には、グループ識別子の値Ａ〜Ｃと、グループ別格納領域４１２〜４１４との対応関係を保持する。
【０１３８】
以下、図１３を用いて、該データ切り出し方法を実現するための動作を示す。
【０１３９】
図１３の動作では、図２の動作に、処理Ｓ１１０１，Ｓ１１０２を追加し、処理Ｓ５０１，Ｓ５０５を、それぞれ処理Ｓ５０１Ｇ，Ｓ５０５Ｇに置き換えた形となる。該動作は新規入力データの受信待ち処理Ｓ５０２から開始する。
【０１４０】
新規入力データを受信すると、処理Ｓ１１０１に従って、該データのグループ識別子の値を参照し、グループ別格納領域管理表４１１より、該値に対応するグループ別格納領域を抽出する。
【０１４１】
さらに、処理Ｓ１１０２に従って、該グループ別格納領域が抽出されなかった場合は、処理Ｓ５０１Ｇに移行する。処理Ｓ５０１Ｇは、グループ別格納領域を新規に生成し、該グループ識別子の値と、該グループ別格納領域との対応関係を、管理表４１１に登録し、該グループ別格納領域を初期化する。該初期化処理は、処理Ｓ５０１と同様である。
【０１４２】
以上の処理によって得られたグループ別格納領域を利用して、処理Ｓ５０３〜Ｓ５０７の処理を実行する。但し、処理Ｓ５０５では、解析対象外データ削除部に、解析対象外となったデータクラスタのクラスタ番号と、グループ識別子の値を併せて通知する。
【０１４３】
以上は、ＷＩＴＨＩＮ条件に対して、グループ分け指定を追加したデータ切り出し方法に関する説明である。ＩＮＴＥＲＶＡＬ条件に対しても、同様にして、グループ分け指定を追加したデータ切り出し方法を実現可能であることは自明である。
【０１４４】
該切り出し方法を実現するための構成は、図１２と同一であり、動作は、図１３の処理Ｓ５０４を、処理Ｓ５０７の直前に移したもので実現できる。
【０１４５】
以下、図１５を用いて、図１２の構成と図１３の動作によって実現されるストリームデータ処理方法を、図１１に示すネットワークモニタリングに適用した場合の結果を示す。
【０１４６】
図１５は、ストリームデータ処理システム１１０が、表１５１０に示すデータを、タイミングウィンドウ１５３０に示すタイミングで受信して、データ処理定義４０１に従って処理する際に、該処理方法を適用した結果を示している。
【０１４７】
定義４０１は、データ（ｎｌｏｇ）１５１０を、ｓｒｃカラムの値同一性に基づいてデータをグループ分けし、グループごとに、時間しきい値１秒のＩＮＴＥＲＶＡＬ条件で切り出されるデータクラスタを解析対象とし、送信元計算機ごとに、パケット長を加算することを意味する。
【０１４８】
ウィンドウ１２１０，１２２０，１２３０は、ｓｒｃカラムの値Ａ，Ｂ，Ｃの各データの解析対象期間をそれぞれ示している。また、ウィンドウ１２１０においては、時間しきい値１２０１の値の長さ（たとえば、１秒）を示している。
【０１４９】
表１２４０は、定義４０１による処理結果データを示す。データ１５１１〜１５２２の入力により、それぞれデータ１２４１〜１２５２を算出する。データ１２４４，１２５１，１２４５，１２５２，１２４８が、データクラスタ１５４１，１５４２，１５５１，１５５２，１５６１からそれぞれ算出されるメッセージ長を示している。
【０１５０】
以上のように、図１２の構成と図１３の動作を用いることで、一本のストリームに複数の現象が混在する場合にも、データ列を分離したうえで、現象単位のデータ切り出しが可能となる。
【０１５１】
次に、図１４を用いて、時系列データをデータクラスタに分割し、各データにクラスタ番号を付与して、データベースに格納するストリームデータ分割システムの構成を示す。
【０１５２】
図１４に示す構成は、図１の構成における、解析対象データ切り出し部１２０の変形である。ストリームデータ分割システム２１０は、ユーザによるクラスタ分割方法定義２０１を受け付けるクラスタ分割方法定義登録ユーザインタフェース２１１、および、クラスタ決定部２１２から構成される。
【０１５３】
クラスタ決定部２１２の構成、および動作は、図１の構成、および図２の動作と同一である。但し、データ挿入部１２４Ｃは、データベース２２０上の関係表に、データ２２１とクラスタ番号２２２の組を挿入する。また、解析対象外データ削除部１２５は存在しない。
【０１５４】
以上は、クラスタ分割方法として、ＷＩＴＨＩＮ条件を指定する場合の説明であるが、クラスタ決定部の構成、および動作を切り替えることで、ＩＮＴＥＲＶＡＬ条件の指定、および、グループ分け指定も可能であることは自明である。
【０１５５】
以上の構成により、現象単位に時系列データを分割したうえで、データベースに格納することが可能となる。仮に、データをタイムスタンプと共に、データベースに格納したとしても、該タイムスタンプに基づいて、事後分析により現象単位に切り分ける処理を、ＳＱＬで定義することは困難である。これに対し、本構成を適用することで、そのような処理が不要となる。
【０１５６】
また、図１４の構成を、非特許文献２に示される、区切り信号方式の入り口に配置し、クラスタ番号がインクリメントされる際に、データ挿入部１２４Ｃが、区切り信号を併せて送出する機能を追加することで、区切り信号方式の拡張機能として、本発明を適用することも可能である。
【０１５７】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【０１５８】
本発明は、ＲＦＩＤ読み取り情報、センサネットによる観測データ、ネットワークモニタリング、システムモニタリング、株価監視、交通情報といった高レートで継続的に生成される時系列データをリアルタイムに処理するストリームデータ処理技術において、時系列データから、ある時点で解析対象となるデータを抽出するスライディングウィンドウ処理に関し、特に、ある現象の発生を監視して生成され続ける観測データの系列から、個別の現象に対応したデータ集合を時間軸上の近接関係に基づいて、抽出する技術に適している。
【図面の簡単な説明】
【０１５９】
【図１】本発明の一実施の形態によるストリームデータ処理システムの構成例を示すブロック図である。
【図２】図１のストリームデータ処理システムによるデータクラスタ切り出し処理例を示すフローチャートである。
【図３】図１のストリームデータ処理システムによるストリームデータ処理の説明図である。
【図４】図１のストリームデータ処理システムを用いたＲＦＩＤの輻輳読み取りによる入荷検品作業処理の一例を示す説明図である。
【図５】図１のストリームデータ処理システムによるデータクラスタ切り出し処理の他の例を示すフローチャートである。
【図６】図１のストリームデータ処理システムによるストリームデータ処理の他の例を示す説明図である。
【図７】本発明の一実施の形態によるセンサネットによるデータ処理の一例を示す説明図である。
【図８】本発明の一実施の形態によるデータ切り出し処理を実現するストリームデータ処理システムの構成例を示すブロック図である。
【図９】図８のストリームデータ処理システムによるデータクラスタ切り出し処理の一例を示すフローチャートである。
【図１０】図８のストリームデータ処理システムを用いたセンサネットによるストリームデータ処理の説明図である。
【図１１】本発明の一実施の形態によるネットワークモニタリングの一例を示す説明図である。
【図１２】図１１のネットワークモニタリングを用いたデータ切り出し処理の説明図である。
【図１３】図１２のネットワークモニタリングによるデータ切り出し処理の一例を示すフローチャートである。
【図１４】図１４は、本発明の一実施の形態によるストリームデータ分割システムの構成例を示すブロック図である。
【図１５】図１２のネットワークモニタリングによるストリームデータ処理例を示す説明図である。
【符号の説明】
【０１６０】
１１０  ストリームデータ処理システム
１１１  データ処理定義登録ユーザインタフェース
１２０  解析対象データ切り出し部
１２１  解析対象データ判定部
１２２  入力データ時刻格納領域
１２３  データ時刻比較部
１２４  解析対象データ挿入部
１２４Ｃ  データ挿入部
１２５  解析対象外データ削除部
１２６  クラスタ時刻格納領域
１２７  クラスタ番号格納領域
１２８  時間しきい値保存領域
１３０  データ解析部
１３１  データ解析処理実行木
１３２  解析対象データバッファ
１４１  入力ストリーム
１４３，１４４  結果ストリーム
２１０  ストリームデータ分割システム
２１１  クラスタ分割方法定義登録ユーザインタフェース
２１２  クラスタ決定部
２１４Ｃ  データ挿入部
２２０  データベース
４１１  グループ別格納領域管理表
４１２〜４１４  グループ別格納領域
６０１〜６０３  ウィンドウ
８１０  タイミングウィンドウ
１３２０  タイミングウィンドウ
１５０１  ネットワークルータ
１５０２，１５０３，１５０４  計算機
１５３０  タイミングウィンドウ
１５４１，１５４２  データクラスタ
１５５１，１５５２，１５６１  データクラスタ
【図１】
0004990696.tif 000002
【図２】
0004990696.tif 000003
【図３】
0004990696.tif 000004
【図４】
0004990696.tif 000005
【図５】
0004990696.tif 000006
【図６】
0004990696.tif 000007
【図７】
0004990696.tif 000008
【図８】
0004990696.tif 000009
【図９】
0004990696.tif 000010
【図１０】
0004990696.tif 000011
【図１１】
0004990696.tif 000012
【図１２】
0004990696.tif 000013
【図１３】
0004990696.tif 000014
【図１４】
0004990696.tif 000015
【図１５】
0004990696.tif 000016