(57)【要約】【課題】ストリームデータ処理システムにおける結果発生の原因を特定する。【解決手段】ストリームデータに対して、予め設定された複数のクエリを実行することによって、逐次結果を出力するストリームデータ処理システムであって、複数のクエリは、第１クエリ、第２クエリ、及び第３クエリを含み、第１クエリが実行されることによって第１中間結果が出力され、第２クエリが実行されることによって第２中間結果が出力され、第１中間結果及び第２中間結果に基づいて、第３クエリが実行されることによって結果が出力され、第１ストリームデータのうち、第１中間結果に関与した第１関与入力情報を抽出し、第２中間結果に関与した第２関与入力情報を抽出し、前記結果に関与した第３関与入力情報を抽出し、結果と、抽出された第３関与入力情報とを対応づけて保持することを特徴とする。【選択図】図１
2011039818.tif 000002
【特許請求の範囲】
【請求項１】
継続して到来する第１ストリームデータに対して、予め設定された複数のクエリを実行することによって、逐次結果を出力するストリームデータ処理システムであって、
ストリームデータ処理システムは、プロセッサと、前記プロセッサと接続されるメモリとを備え、前記第１ストリームデータを処理するストリームデータ処理計算機を含み、
前記第１ストリームデータは、複数の入力情報を含み、
前記複数のクエリは、第１クエリ、第２クエリ、及び第３クエリを含み、
前記第１ストリームデータに基づいて、前記第１クエリが実行されることによって第１中間結果が出力され、前記第２クエリが実行されることによって第２中間結果が出力され、
前記第１中間結果及び前記第２中間結果が前記第３クエリに入力され、
前記第１中間結果及び前記第２中間結果に基づいて、前記第３クエリが実行されることによって前記結果が出力され、
前記ストリームデータ処理システムは、
前記第１クエリ、前記第２クエリ、及び前記第３クエリの操作内容を保持し、
前記第１ストリームデータ、及び、前記第１クエリの操作内容に基づいて、前記第１ストリームデータのうち、前記第１中間結果に関与した第１関与入力情報を抽出し、
前記第１ストリームデータ、及び、前記第２クエリの操作内容に基づいて、前記第１ストリームデータのうち、前記第２中間結果に関与した第２関与入力情報を抽出し、
前記抽出された第１関与入力情報及び前記抽出された第２関与入力情報に基づいて、前記第１ストリームデータのうち、前記結果に関与した第３関与入力情報を抽出し、
前記結果と、前記抽出された第３関与入力情報とを対応づけて保持することを特徴とするストリームデータ処理システム。
【請求項２】
前記ストリームデータ処理システムは、前記各々のクエリの操作内容として、前記各々のクエリの操作内容を定義するＣＱＬ定義情報を保持し、
前記各々のクエリのＣＱＬ定義情報は、前記第１ストリームデータのうち、前記各々のクエリにおける処理対象である前記入力情報を抽出するためのウィンドウオペレータの指示を含み、
前記ストリームデータ処理システムは、前記ＣＱＬ定義情報に基づいて、前記複数の入力情報のうち、前記結果に関与した、所定の数の入力情報のみを抽出することを特徴とする請求項１に記載のストリームデータ処理システム。
【請求項３】
前記第３関与入力情報を抽出する関与入力情報抽出部と、
前記抽出された第３関与入力情報を前記結果に付加する関与入力情報付加部と、
前記第３関与入力情報が付加された前記結果をトレース情報として保持するトレース情報記録部と、を備えることを特徴とする請求項２に記載のストリームデータ処理システム。
【請求項４】
前記入力情報は、複数のデータ列を含み、
前記各々のクエリのＣＱＬ定義情報は、さらに、前記抽出された入力情報のうち、前記各々のクエリにおいて実際に必要となるデータ列を抽出するための指示を含み、
前記関与入力情報抽出部は、
前記各々のクエリにおいて実際に必要となるデータ列を抽出するための指示に基づいて、前記入力情報のうち、前記第１中間結果に関与したデータ列を前記第１関与入力情報として抽出し、前記第２中間結果に関与したデータ列を前記第２関与入力情報として抽出し、及び、前記結果に関与したデータ列を前記第３関与入力情報として抽出することを特徴とする請求項３に記載のストリームデータ処理システム。
【請求項５】
前記関与入力情報付加部は、前記抽出された第１関与入力情報を前記第１中間結果に付加し、又は前記抽出された第２関与入力情報を前記第２中間結果に付加し、
前記トレース情報記録部は、前記第１関与入力情報が付加された第１中間結果、又は前記第２関与入力情報が付加された第２中間結果を前記トレース情報として保持することを特徴とする請求項４に記載のストリームデータ処理システム。
【請求項６】
前記ストリームデータ処理システムは、前記結果が出力される場合に、前記結果に付加された前記第３関与入力情報を除去し、前記第３関与入力情報が除去された結果を出力する関与入力情報除去部を備えることを特徴とする請求項３に記載のストリームデータ処理システム。
【請求項７】
過去に入力された前記第１ストリームデータを、第２ストリームデータとして保持する入力情報記録部と、
前記ＣＱＬ定義情報を保持するＣＱＬ定義情報記録部と、
前記ＣＱＬ定義情報記録部から取得されたＣＱＬ定義情報を解析するＣＱＬ操作内容解析部と、
前記第１ストリームデータに基づいて、前記各々のクエリを実行することによって前記結果を出力し、又は、前記入力情報記録部が保持する前記第２ストリームデータ及び前記ＣＱＬ定義情報記録部が保持する前記ＣＱＬ定義情報に基づいて、前記各々のクエリを実行することによって、前記結果、前記第１中間結果、及び前記第２中間結果を再現する、クエリ処理部と、
前記再現された結果、前記再現された第１中間結果、及び前記再現された第２中間結果を取得する再現情報取得部と、
前記ＣＱＬ定義情報の解析結果、前記第２ストリームデータ、前記再現された結果、前記再現された第１中間結果、及び前記再現された第２中間結果に基づいて、前記第３関与入力情報を抽出する関与情報復元部と、
前記結果と、前記第３関与入力情報とを対応づけてリプレイ情報として保持するリプレイ情報記録部と、を備えることを特徴とする請求項２に記載のストリームデータ処理システム。
【請求項８】
前記入力情報は、複数のデータ列を含み、
前記各々のクエリのＣＱＬ定義情報は、さらに、前記抽出された入力情報のうち、前記各々のクエリにおいて実際に必要となるデータ列を抽出するための指示を含み、
前記関与情報復元部は、
前記各々のクエリにおける処理対象である入力情報、及び前記各々のクエリのＣＱＬ定義情報の解析結果に基づいて、前記入力情報のうち、前記第１中間結果に関与したデータ列を前記第１関与入力情報として抽出し、
前記各々のクエリにおける処理対象である入力情報、及び前記各々のクエリのＣＱＬ定義情報の解析結果に基づいて、前記入力情報のうち、前記第２中間結果に関与したデータ列を第２関与入力情報として抽出することを特徴とする請求項７に記載のストリームデータ処理システム。
【請求項９】
前記第１クエリのＣＱＬ定義情報の解析結果、前記第２クエリのＣＱＬ定義情報の解析結果、前記抽出された第１関与入力情報、及び前記抽出された第２関与入力情報に基づいて、前記入力情報のうち、前記結果に関与したデータ列を前記第３関与入力情報として抽出することを特徴とする請求項８に記載のストリームデータ処理システム。
【請求項１０】
前記クエリ処理部は、
前記入力情報記録部から前記第２ストリームデータを取得し、
前記ＣＱＬ操作内容解析部から前記ＣＱＬ定義情報の解析結果を取得し、
前記取得された第２ストリームデータ及びＣＱＬ定義情報の解析結果に基づいて、前記結果、前記第１中間結果、及び前記第２中間結果を前記メモリ上に再現し、
再現情報取得部は、前記メモリ上に再現された、前記結果、前記第１中間結果、及び前記第２中間結果を取得することを特徴とする請求項７に記載のストリームデータ処理システム。
【請求項１１】
継続して到来する第１ストリームデータに対して、予め設定された複数のクエリを実行することによって、逐次結果を出力するストリームデータ処理システムにおけるストリームデータ処理方法であって、
ストリームデータ処理システムは、プロセッサと、前記プロセッサと接続されるメモリとを備え、前記第１ストリームデータを処理するストリームデータ処理計算機を含み、
前記第１ストリームデータは、複数の入力情報を含み、
前記複数のクエリは、第１クエリ、第２クエリ、及び第３クエリを含み、
前記第１ストリームデータに基づいて、前記第１クエリが実行されることによって第１中間結果が出力され、前記第２クエリが実行されることによって第２中間結果が出力され、
前記第１中間結果及び前記第２中間結果が前記第３クエリに入力され、
前記第１中間結果及び前記第２中間結果に基づいて、前記第３クエリが実行されることによって前記結果が出力され、
前記方法は、
前記第１クエリ、前記第２クエリ、及び前記第３クエリの操作内容を保持するステップと、
前記第１ストリームデータ、及び、前記第１クエリの操作内容に基づいて、前記第１ストリームデータのうち、前記第１中間結果に関与した第１関与入力情報を抽出するステップと、
前記第１ストリームデータ、及び、前記第２クエリの操作内容に基づいて、前記第１ストリームデータのうち、前記第２中間結果に関与した第２関与入力情報を抽出するステップと、
前記抽出された第１関与入力情報及び前記抽出された第２関与入力情報に基づいて、前記第１ストリームデータのうち、前記結果に関与した第３関与入力情報を抽出するステップと、
前記結果と、前記抽出された第３関与入力情報とを対応づけて保持するステップと、を含むことを特徴とするストリームデータ処理方法。
【請求項１２】
前記ストリームデータ処理システムは、前記各々のクエリの操作内容として、前記各々のクエリの操作内容を定義するＣＱＬ定義情報を保持し、
前記各々のクエリのＣＱＬ定義情報は、前記第１ストリームデータのうち、前記各々のクエリにおける処理対象である前記入力情報を抽出するためのウィンドウオペレータの指示を含み、
前記方法は、前記ＣＱＬ定義情報に基づいて、前記複数の入力情報のうち、前記結果に関与した、所定の数の入力情報のみを抽出するステップを含むことを特徴とする請求項１１に記載のストリームデータ処理方法。
【請求項１３】
前記第３関与入力情報を抽出するステップと、
前記抽出された第３関与入力情報を前記結果に付加するステップと、
前記第３関与入力情報が付加された前記結果をトレース情報として保持するステップと、を含むことを特徴とする請求項１２に記載のストリームデータ処理方法。
【請求項１４】
前記各々のクエリを実行するステップと、
過去に入力された前記第１ストリームデータを、第２ストリームデータとして保持するステップと、
前記ＣＱＬ定義情報を保持するステップと、
前記ＣＱＬ定義情報を解析するステップと、
前記第２ストリームデータ及び前記ＣＱＬ定義情報の解析結果に基づいて、前記結果、前記第１中間結果、及び前記第２中間結果を再現するステップと、
前記再現された結果、前記再現された第１中間結果、及び前記再現された第２中間結果を取得するステップと、
前記ＣＱＬ定義情報の解析結果、前記第２ストリームデータ、前記再現された結果、前記再現された第１中間結果、及び前記再現された第２中間結果に基づいて、前記第３関与入力情報を抽出するステップと、
前記結果と、前記第３関与入力情報とを対応づけてリプレイ情報として保持するステップと、を含むことを特徴とする請求項１２に記載のストリームデータ処理方法。
【請求項１５】
継続して到来する第１ストリームデータに対して、予め設定された複数のクエリを実行することによって、逐次結果を出力するストリームデータ処理システムにおけるストリームデータ処理プログラムであって、
ストリームデータ処理システムは、プロセッサと、前記プロセッサと接続されるメモリとを備え、前記第１ストリームデータを処理するストリームデータ処理計算機を含み、
前記第１ストリームデータは、複数の入力情報を含み、
前記複数のクエリは、第１クエリ、第２クエリ、及び第３クエリを含み、
前記第１ストリームデータに基づいて、前記第１クエリが実行されることによって第１中間結果が出力され、前記第２クエリが実行されることによって第２中間結果が出力され、
前記第１中間結果及び前記第２中間結果が前記第３クエリに入力され、
前記第１中間結果及び前記第２中間結果に基づいて、前記第３クエリが実行されることによって前記結果が出力され、
前記プログラムは、
前記第１クエリ、前記第２クエリ、及び前記第３クエリの操作内容を保持する処理と、
前記第１ストリームデータ、及び、前記第１クエリの操作内容に基づいて、前記第１ストリームデータのうち、前記第１中間結果に関与した第１関与入力情報を抽出する処理と、
前記第１ストリームデータ、及び、前記第２クエリの操作内容に基づいて、前記第１ストリームデータのうち、前記第２中間結果に関与した第２関与入力情報を抽出する処理と、
前記抽出された第１関与入力情報及び前記抽出された第２関与入力情報に基づいて、前記第１ストリームデータのうち、前記結果に関与した第３関与入力情報を抽出する処理と、
前記結果と、前記抽出された第３関与入力情報とを対応づけて保持する処理と、を前記ストリームデータ処理計算機に実行させることを特徴とするストリームデータ処理プログラム。
【請求項１６】
前記ストリームデータ処理システムは、前記各々のクエリの操作内容として、前記各々のクエリの操作内容を定義するＣＱＬ定義情報を保持し、
前記各々のクエリのＣＱＬ定義情報は、前記第１ストリームデータのうち、前記各々のクエリにおける処理対象である前記入力情報を抽出するためのウィンドウオペレータの指示を含み、
前記プログラムは、前記ＣＱＬ定義情報に基づいて、前記複数の入力情報のうち、前記結果に関与した、所定の数の入力情報のみを抽出する処理を前記ストリームデータ処理計算機に実行させることを特徴とする請求項１５に記載のストリームデータ処理プログラム。
【請求項１７】
前記第３関与入力情報を抽出する処理と、
前記抽出された第３関与入力情報を前記結果に付加する処理と、
前記第３関与入力情報が付加された前記結果をトレース情報として保持する処理と、を前記ストリームデータ処理計算機に実行させることを特徴とする請求項１６に記載のストリームデータ処理プログラム。
【請求項１８】
過去に入力された前記第１ストリームデータを、第２ストリームデータとして保持する処理と、
前記ＣＱＬ定義情報を保持する処理と、
前記ＣＱＬ定義情報を解析する処理と、
前記第２ストリームデータ及び前記ＣＱＬ定義情報の解析結果に基づいて、前記結果、前記第１中間結果、及び前記第２中間結果を再現する処理と、
前記再現された結果、前記再現された第１中間結果、及び前記再現された第２中間結果を取得する処理と、
前記ＣＱＬ定義情報の解析結果、前記第２ストリームデータ、前記再現された結果、前記再現された第１中間結果、及び前記再現された第２中間結果に基づいて、前記第３関与入力情報を抽出する処理と、
前記結果と、前記第３関与入力情報とを対応づけてリプレイ情報として保持する処理と、を含むことを特徴とする請求項１６に記載のストリームデータ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストリームデータ処理方法及びプログラムに関し、特に、ストリームデータ処理において、イベント発生の原因を分析するストリームデータ処理方法及びプログラムに関する。
【背景技術】
【０００２】
近年、情報通信技術の発展によって、アプリケーションが取り扱う情報データ量が爆発的に増加している。
【０００３】
従来のデータベース管理システム（ＤＢＭＳ）では、受信したデータが一旦データベースなどの記憶領域に格納され、その後に、記憶領域に格納された受信データを用いて一括処理が実行される。そのため、データベースに受信データを格納するためにタイムラグが生じ、またデータ量が爆発的に増えると、計算量が線形的に増加するため、顧客が要求する処理性能を満たせなくなるアプリケーションが出てくる。
【０００４】
今後の情報通信技術の発展を考慮すると、ＩＴ基盤の性能をより向上させることが必須となる。そこで、リアルタイムに集計・分析することを可能とするストリームデータ処理システムが注目を集めている。
【０００５】
ストリームデータ処理システムは、ストリームデータを計算対象とする。ここで、ストリームデータとは、途切れることなく到来する時刻順データ系列である。例えば、ＲＦＩＤ読取り情報、交通情報、及び株価情報等がストリームデータに相当する。
【０００６】
また、ストリームデータ処理システムでは、予め定義されたシナリオに従ってデータ処理が実行される。シナリオは、ＣＱＬ（Ｃｏｎｔｉｎｕｏｕｓ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）を利用する（例えば、特許文献１参照）。ＣＱＬは、ＤＢＭＳで広く用いられているＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）が拡張されたものである。ＣＱＬは、ＳＱＬと同様にシナリオをクエリで記述する。ストリームデータ処理システムにおける、クエリは従来のＳＱＬと以下の点が異なる。
【０００７】
１点目は、複数の連結クエリによって構成されている点である。従来のＳＱＬは、一入力一出力を対象とした処理であり、単一のクエリから構成される（例えば、特許文献２参照）。特許文献２には、具体的なＳＱＬ文の例が、開示されている。
【０００８】
一方、ストリームデータ処理システムでは、単一のクエリでは実現できない複雑なデータ処理を可能にする。これは、複数のクエリを連結させ中間結果を計算することによって、複雑な処理の実行を可能とする。
【０００９】
２点目は、固有のウィンドウの概念を導入している点である。ストリームデータは、データが連続的に途切れることなく到来し続けるため、演算対象となるデータを抽出するために、時系列データを有限のデータ集合に区切る必要がある。そこで、ストリームデータ処理システムでは、ウィンドウ（スライディングウィンドウ）の概念を導入し、ウィンドウの変化差異を計算対象とする差分計算を採用している。
【００１０】
スライディングウィンドウには、大きく２種類ある。具体的には、入力情報の直前ｎ個分を保持するウィンドウ（ＲＯＷウィンドウ）と、入力情報の直前ｎ時間分を保持するウィンドウ（ＲＡＮＧＥウィンドウ）との２種類である。
【００１１】
前述したウィンドウを利用する事によって、例えば、ＲＯＷウィンドウを使用した場合、任意の時刻に対して、直前ｎ個分の入力情報をリアルタイムに近い時刻で集計・分析することが可能となる。
【００１２】
スライディングウィンドウは、従来のデータベースシステム処理システムにはない、ストリームデータ処理システムが備える固有のオペレータである。スライディングウィンドウは、ＣＱＬを導入することによって実現される。
【００１３】
なお、具体的なＣＱＬを利用する技術などについては、特許文献１に開示されている。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２００６−３３８４３２号公報
【特許文献２】特開平９−３４７５９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
ストリームデータ処理システムにおけるシナリオ分析は、複数の入力情報と複数のクエリによる多次元のパラメータとを用いて解析処理を実行する、複雑なデータ処理である。
【００１６】
また、ストリームデータ処理システムは、固有のウィンドウオペレータを導入しているため、従来のアーキテクチャのデータ処理と比較すると、途切れることなく発生するシナリオ分析の結果に対して、どの入力情報が演算対象となったデータなのかを特定することが難しい。したがって、シナリオ分析の結果の原因を調査する場合、どの入力情報、又はどのクエリが影響して当該結果が得られたのかについて原因を特定することが困難である。
【００１７】
従来のデータベースシステムと比較し、ストリームデータ処理システムにおける結果の原因分析が困難な理由は、大きく三点ある。
【００１８】
一点目は、ストリームデータ処理システムでは、複数の入力情報と複数のクエリによる多次元のパラメータとによって解析される複雑なデータ処理が実行され、さらに、分析シナリオの結果及び中間結果が途切れることなく発生し続ける。したがって、分析シナリオの結果及び中間結果に関与した入力情報を特定することが困難である。
【００１９】
二点目は、ストリームデータ処理システムでは、複数のクエリを連結しているため、クエリの中間結果に対しても原因が特定される必要がある。
【００２０】
三点目は、ストリームデータ処理システムでは、ストリームデータ処理システムが備える固有のウィンドウオペレータを採用しているため、従来のデータベースシステムにおける原因分析とは異なり、ウィンドウオペレータの処理を考慮して結果の原因分析が実行される必要がある。
【００２１】
前述した三つの理由から、特許文献２に記載されているような従来のデータベースシステムにおける原因分析方法では、シナリオ分析の原因を解析することができない。
【００２２】
本発明は、前述した課題を鑑みてなされたものであり、ストリームデータ処理でのシナリオ分析において、シナリオ分析の結果の原因分析を容易にすることを目的とする。
【課題を解決するための手段】
【００２３】
本発明の代表的な一例を示せば以下の通りである。すなわち、継続して到来する第１ストリームデータに対して、予め設定された複数のクエリを実行することによって、逐次結果を出力するストリームデータ処理システムであって、ストリームデータ処理システムは、プロセッサと、前記プロセッサと接続されるメモリとを備え、前記第１ストリームデータを処理するストリームデータ処理計算機を含み、前記第１ストリームデータは、複数の入力情報を含み、前記複数のクエリは、第１クエリ、第２クエリ、及び第３クエリを含み、前記第１ストリームデータに基づいて、前記第１クエリが実行されることによって第１中間結果が出力され、前記第２クエリが実行されることによって第２中間結果が出力され、前記第１中間結果及び前記第２中間結果が前記第３クエリに入力され、前記第１中間結果及び前記第２中間結果に基づいて、前記第３クエリが実行されることによって前記結果が出力され、前記ストリームデータ処理システムは、前記第１クエリ、前記第２クエリ、及び前記第３クエリの操作内容を保持し、前記第１ストリームデータ、及び、前記第１クエリの操作内容に基づいて、前記第１ストリームデータのうち、前記第１中間結果に関与した第１関与入力情報を抽出し、前記第１ストリームデータ、及び、前記第２クエリの操作内容に基づいて、前記第１ストリームデータのうち、前記第２中間結果に関与した第２関与入力情報を抽出し、前記抽出された第１関与入力情報及び前記抽出された第２関与入力情報に基づいて、前記第１ストリームデータのうち、前記結果に関与した第３関与入力情報を抽出し、前記結果と、前記抽出された第３関与入力情報とを対応づけて保持することを特徴とする。
【発明の効果】
【００２４】
本発明の一形態によれば、ストリームデータ処理の分析について、結果又は中間結果に関与した情報を取得することができる。したがって、出力された結果の原因を特定することができる。
【図面の簡単な説明】
【００２５】
【図１】本発明の第１の実施形態のトレース機能を備えるストリームデータ処理システムの構成の一例を示すブロック図である。
【図２】本発明の第１の実施形態における連結クエリモデルの一例を示す説明図である。
【図３】本発明の第１の実施形態の入力情報及び分析シナリオの具体例を示す説明図である。
【図４】本発明の第１の実施形態の入力情報１及び入力情報２の一例を示す説明図である。
【図５】本発明の第１の実施形態の中間結果１及び中間結果２の一例を示す説明図である。
【図６】本発明の第１の実施形態のストリームデータ処理計算機が備えるトレース機能の処理について説明するフローチャートである。
【図７】本発明の第１の実施形態の集計・分析部が実行する処理を説明するフローチャートである。
【図８】本発明の第１の実施形態の関与入力情報抽出部が実行する処理を説明するフローチャートである。
【図９】本発明の第１の実施形態のクエリ２における関与入力情報抽出部の入出力の一例を示す説明図である。
【図１０】本発明第１の実施形態の集計・分析部が、クエリ２におけるウィンドウオペレータに基づいて、処理対象のデータを抽出する処理の一例を示す説明図である。
【図１１】本発明第１の実施形態の集計・分析部が、クエリ２における処理対象のデータから、出力を生成するために必要となる列を抽出する処理の一例を示す説明図である。
【図１２】本発明第１の実施形態の集計・分析部が、クエリ２の出力を生成する処理の一例を示す説明図である。
【図１３】本発明第１の実施形態の関与入力情報付加部が、クエリ２において実行する処理の一例を示す説明図である。
【図１４】本発明の第１の実施形態のクエリ３における関与入力情報抽出部の入出力の一例を示す説明図である。
【図１５】本発明の第１の実施形態の集計・分析部が、クエリ３におけるウィンドウオペレータに基づいて、処理対象のデータを抽出する処理の一例を示す説明図である。
【図１６】本発明の第１の実施形態の関与入力情報抽出部が、クエリ３において実行する処理の一例を示す説明図である。
【図１７】本発明の第１の実施形態の集計・分析部が、クエリ３の出力を生成する処理の一例を示す説明図である。
【図１８】本発明の第１の実施形態の関与入力情報付加部が、クエリ３において実行する処理の一例を示す説明図である。
【図１９】本発明の第１の実施形態のトレース情報記録部が実行する処理の一例を示す説明図である。
【図２０】本発明の第１の実施形態の関与入力情報除去部が実行する処理の一例を示す説明図である。
【図２１】本発明の第２の実施形態におけるリプレイ機能を備えるストリームデータ処理計算機の構成を説明するブロック図である。
【図２２】本発明の第２の実施形態のストリームデータ処理計算機が、通常運用時に実行する処理を説明するフローチャートである。
【図２３】本発明の第２の実施形態のストリームデータ処理計算機が、原因分析時に実行する処理を説明するフローチャートである。
【図２４】本発明の第２の実施形態の関与入力情報復元部が実行する処理の一例を説明するフローチャートである。
【図２５】本発明の第２の実施形態の集計・分析部から再現情報取得部に出力される情報の一例を示す説明図である。
【図２６】本発明の第２の実施形態のＣＱＬ操作内容解析部から再現情報取得部に出力される情報の一例を示す説明図である。
【図２７】本発明の第２の実施形態の関与入力情報復元部が、結果に関与したクエリ１の中間結果及びクエリ２の中間結果を抽出する処理の一例を示す説明図である。
【図２８】本発明の第２の実施形態の関与入力情報復元部が、クエリ１の中間結果に関与した入力情報を抽出する処理の一例を示す説明図である。
【図２９】本発明の第２の実施形態の関与入力情報復元部が、クエリ２の中間結果に関与した入力情報を抽出する処理の一例を示す説明図である。
【図３０】本発明の第２の実施形態のリプレイ情報記録部の処理の一例を示す説明図である。
【発明を実施するための形態】
【００２６】
本発明のストリーミング処理システムは、トレース機能とリプレイ機能の２つの機能を備える。まず、トレース機能について説明する。
【００２７】
［第１の実施形態］
一以上のクエリから構成されるシナリオ分析において、トレース機能では、入力情報がストリームデータ処理システムに入力され、複数のクエリによってデータ処理が実行される過程で、結果又は中間結果に対して、当該結果又は中間結果に関与した入力情報が取得される。さらに、取得された各入力情報と結果又は中間結果とがそれぞれ紐付けされることによって、結果又は中間結果に関与した入力情報が、当該結果又は当該中間結果に付加される。
【００２８】
これによって、結果又は中間結果に関与した入力情報を、クライアントに提供することができる。
【００２９】
図１は、本発明の第１の実施形態のトレース機能を備えるストリームデータ処理システムの構成の一例を示すブロック図である。
【００３０】
本発明の実施形態のストリームデータ処理システムは、データ送信計算機１１００、ストリームデータ処理計算機１２００、及び結果受信計算機１３００を備える。
【００３１】
データ送信計算機１１００とストリームデータ処理計算機１２００とはネットワーク４を介して互いに接続され、また、ストリームデータ処理計算機１２００と結果受信計算機１３００とはネットワーク５を介して互いに接続される。
【００３２】
データ送信計算機１１００は、ストリームデータを生成し、ストリームデータ処理計算機１２００に生成されたストリームデータを送信する。ストリームデータの生成処理及び送信処理は、データ送信計算機１１００が備えるプログラムによって実行されてもよいし、専用ハードウェアによって実行されてもよい。本実施形態では、データ送信計算機１１００上で送信アプリケーションが実行される例について説明する。
【００３３】
データ送信計算機１１００は、ＣＰＵ１１１０、ＤＩＳＫ１１２０、及びメモリ１１３０を備える。
【００３４】
ＣＰＵ１１１０は、メモリ１１３０上に展開されたプログラムを実行する。
【００３５】
ＤＩＳＫ１１２０は、メモリ１１３０上に展開されたプログラムが利用するデータを格納する。
【００３６】
メモリ１１３０は、ＣＰＵ１１１０によって実行されるプログラム及び当該プログラムの実行に必要なデータを格納する。
【００３７】
メモリ１１３０は、データ送信部１１３１及び接続部１１３２を含む。接続部１１３２は、ネットワーク４を介してストリームデータ処理計算機１２００と接続する。データ送信部１１３１は、ネットワーク４を介してストリームデータ処理計算機１２００に生成されたストリームデータを送信する。生成されるストリームデータは、例えば、ＤＩＳＫ１１２０から読み出されてもよいし、プログラム内で生成されてもよい。具体的には、ＤＩＳＫ１１２０に格納されたデータを時系列順に読み出すことによって、ストリームデータが生成する方法が考えられる。
【００３８】
ストリームデータ処理計算機１２００は、交通情報、株価情報等のストリームデータを受信し、受信したストリームデータを分析し、分析結果を結果受信計算機１３００に送信する。
【００３９】
ストリームデータ処理計算機１２００は、ＣＰＵ１２１０、ＤＩＳＫ１２２０、及びメモリ１２３０を備える。ストリームデータ処理計算機１２００は、例えば、ブレード型計算機システム、又はＰＣサーバなどの計算機システムであってもよい。
【００４０】
ＣＰＵ１２１０は、メモリ１２３０上に展開されたプログラムを実行する。
【００４１】
ＤＩＳＫ１２２０は、メモリ１２３０上のプログラムが利用するデータを格納する。具体的には、ＤＩＳＫ１２２０は、トレース情報ファイル１２２１とＣＱＬ定義情報ファイル１２２２とを格納する。
【００４２】
トレース情報ファイル１２２１は、中間結果と中間結果に関与した入力情報、又は結果と結果に関与した入力情報を格納するファイルである。ＣＱＬ定義情報ファイル１２２２は、予め定義されたＣＱＬ定義情報を格納するファイルである。
【００４３】
メモリ１２３０は、ＣＰＵ１２１０によって実行されるプログラム及び当該プログラムの実行に必要なデータを格納する。具体的には、メモリ１２３０は、オペレーティングシステム１２４０、及びオペレーティングシステム１２４０上で動作するプログラムであるストリームデータ処理部１２５０を含む。
【００４４】
ストリームデータ処理部１２５０は、データ送信計算機１１００から受信したストリームデータを処理する。ストリームデータ処理部１２５０は、ストリームデータ受信部１２５１、クエリ処理部１２５２、及びストリームデータ送信部１２５３を備える。
【００４５】
ストリームデータ受信部１２５１は、ネットワーク４を介して、データ送信計算機１１００のデータ送信部１１３１からストリームデータを受信する。
【００４６】
ストリームデータ送信部１２５３は、ネットワーク５を介して、クエリ処理部１２５２によって分析された結果を結果受信計算機１３００に送信する。
【００４７】
クエリ処理部１２５２は、受信したストリームデータを分析する。クエリ処理部１２５２は、集計・分析部１２５４、ＣＱＬ登録部１２５５、ＣＱＬ解析部１２５６及びトレース機能部１２６０を備える。
【００４８】
集計・分析部１２５４は、ＣＱＬ解析部１２５６から入力された指定のシナリオに従って、ストリームデータ受信部１２５１が受信したストリームデータを集計・分析する。また、集計・分析部１２５４は、任意のクエリに入力された入力情報と、任意のクエリから出力された出力情報とを関与入力情報抽出部１２６１に出力する。
【００４９】
ＣＱＬ登録部１２５５は、ＣＱＬ定義情報ファイル１２２２からＣＱＬ定義情報を読み出し、読み出されたＣＱＬ定義情報をＣＱＬ解析部１２５６に出力する。
【００５０】
ＣＱＬ解析部１２５６は、ＣＱＬ登録部１２５５から入力されたＣＱＬ定義情報を解析し、ストリーム、及びクエリの操作内容を定義する情報を集計・分析部１２５４に出力する。
【００５１】
トレース機能部１２６０は、結果に関与した入力情報を特定する。トレース機能部１２６０は、関与入力情報抽出部１２６１、関与入力情報付加部１２６２、トレース情報記録部１２６３、及び関与入力情報除去部１２６４を備える。
【００５２】
関与入力情報抽出部１２６１は、クエリ処理部１２５２においてストリームデータが処理されることによって、各クエリの出力結果に関与した入力情報を抽出する。具体的には、集計・分析部１２５４から入力された情報に基づいて、各クエリの出力結果に関与した入力情報を抽出する。なお、各クエリの出力結果は、中間結果と結果とを含む。
【００５３】
関与入力情報付加部１２６２は、関与入力情報抽出部１２６１よって抽出された各クエリの出力結果に関与した入力情報を、それぞれ、各クエリの出力結果に付加する。各クエリの出力結果に関与した入力情報が付加された当該出力情報は、トレース情報記録部１２６３に出力される。
【００５４】
トレース情報記録部１２６３は、クエリ処理部１２５２から出力される情報をトレース情報ファイル１２２１に格納する。
【００５５】
関与入力情報除去部１２６４は、結果に付加されている入力情報を除去する。関与入力情報除去部１２６４は、入力情報が除去された結果をストリームデータ送信部１２５３に出力する。
【００５６】
結果受信計算機１３００は、ストリームデータ処理計算機１２００によって分析された結果のストリームデータを受信し、受信したストリームデータを用いて各種所定の処理を実行する。ストリームデータの受信処理及び所定の処理は、結果受信計算機１３００が備えるプログラムによって実行されてもよいし、専用ハードウェアによって実行されてもよい。
【００５７】
結果受信計算機１３００は、ＣＰＵ１３１０、ＤＩＳＫ１３２０、及びメモリ１３３０を備える。本実施形態では、結果受信計算機１３００上で受信アプリケーションが実行される例について説明する。
【００５８】
ＣＰＵ１３１０は、メモリ１３３０上に展開されたプログラムを実行する。
【００５９】
ＤＩＳＫ１３２０は、メモリ１３３０上に展開されたプログラムが利用するデータを格納する。
【００６０】
メモリ１３３０は、ＣＰＵ１３１０によって実行されるプログラム及び当該プログラムの実行に必要なデータを格納する。メモリ１３３０は、ストリームデータ受信部及びアプリケーション実行部を含む。
【００６１】
ストリームデータ受信部１３３１は、ネットワーク５を介して、ストリームデータ処理計算機１２００からストリームデータを受信する。アプリケーション実行部１３３２は、受信したストリームデータを用いて各種所定の処理を実行する。
【００６２】
所定の処理は、例えば、外部記憶装置（図示省略）への保存や、ディスプレイ装置（図示省略）への表示などである。
【００６３】
なお、ネットワーク４及びネットワーク５は、イーサネット（登録商標）、光ファイバなどで接続されるローカルエリアネットワーク（ＬＡＮ）、又はＬＡＮよりも低速なインターネットを含むワイドエリアネットワーク（ＷＡＮ）であってもよい。
【００６４】
また、ストリームデータの例としては、ファイナンシャルアプリケーションにおける株価配信情報、小売業におけるＰＯＳデータ、交通情報システムにおけるプローブカー情報、及び計算機システム管理におけるエラーログなどが考えられる。
【００６５】
図２は、本発明の第１の実施形態における連結クエリモデルの一例を示す説明図である。
【００６６】
図２に示すクエリ連結モデルは、入力情報１（２２０１）及び入力情報２（２２０２）の入力、クエリ１（２１０１）、クエリ２（２１０２）及びクエリ３（２１０３）の複数クエリ、中間結果１（２２０３）及び中間結果２（２２０４）、並びに、結果（２２０５）から構成される。
【００６７】
入力情報１（２２０１）は、任意のＸ１個（Ｘ１は整数）のストリームデータである。具体的には、入力情報１（２２０１）は、入力情報１−１〜１−Ｘ１を含む。入力情報２（２２０２）は、任意のＸ２個（Ｘ２は整数）のストリームデータである。具体的には、入力情報２（２２０２）は、入力情報２−１〜２−Ｘ２を含む。
【００６８】
中間結果１（２２０３）は、クエリ１（２１０１）の出力結果であり、任意のＮ１個（Ｎ１は整数）のストリームデータである。具体的には、中間結果１（２２０３）は、中間結果１−１〜１−Ｎ１を含む。中間結果２（２２０４）は、クエリ２（２１０２）の出力結果であり、任意のＮ２個（Ｎ２は整数）のストリームデータである。具体的には、中間結果２（２２０４）は、中間結果２−１〜２−Ｎ２を含む。
【００６９】
結果２２０５は、クエリ３（２１０３）の出力結果であり、任意のＹ個（Ｙは整数）のストリームデータである。具体的は、結果２２０５は、結果１〜Ｙを含む。
【００７０】
以下では、図２に示す連結クエリモデルを例に説明する。なお、連結クエリモデルは、図２に示す例以外の場合、つまり、クエリの構成が変更された場合であっても、本発明のトレース機能における処理手順については、一般性を失わない。
【００７１】
図３は、本発明の第１の実施形態の入力情報及び分析シナリオの具体例を示す説明図である。
【００７２】
本実施形態では、ある研究センターにおいて、センサーを用いて、気温、湿度及び気圧の情報を取得し、気温又は湿度があるしきい値を超えた場合にはアラームを発生させ、アラーム発生の原因を特定する例について説明する。
【００７３】
図３では、図２における入力情報１（２２０１）及び入力情報２（２２０２）のスキーマ、並びに、クエリ１、クエリ２及びクエリ３の処理内容を定義するＣＱＬ定義情報の一例を示す。
【００７４】
入力情報１（２２０１）のスキーマのＣＱＬ定義情報３００１は、図２における入力情報１（２２０１）のスキーマを定義する。具体的には、入力情報１（２２０１）は、「温度」を情報として持つ、任意のＸ１個（Ｘ１は整数）のストリームデータである。
【００７５】
入力情報２（２２０２）のスキーマのＣＱＬ定義情報３００２は、図２における入力情報２（２２０２）のスキーマを定義する。具体的には、入力情報２（２２０２）は、「湿度、気圧」を情報として持つ、任意のＸ２個（Ｘ２は整数）のストリームデータである。
【００７６】
クエリ１のＣＱＬ定義情報３００３は、「入力情報１（２２０１）のうち直前５つの入力情報（温度）に対する平均温度を算出」するシナリオであることを示す。
【００７７】
クエリ２のＣＱＬ定義情報３００４は、「入力情報２（２２０２）のうち直前５つの入力情報（湿度）に対する平均湿度を算出」するシナリオであることを示す。
【００７８】
クエリ３のＣＱＬ定義情報３００５は、「直前１つの入力情報（平均温度、平均湿度）に対して、平均温度が３０℃以上又は湿度２０％以上の結果が出力された場合、現時刻の平均温度と平均湿度とを出力」するシナリオであることを示す。
【００７９】
図４は、本発明の第１の実施形態の入力情報１（２２０１）及び入力情報２（２２０２）の一例を示す説明図である。
【００８０】
図４に示す例では、入力情報１（２２０１）は、時系列順に並べられたＸ１個のデータである。具体的には、入力情報１（２２０１）の各データは、時間と温度とを含む。図４に示す例では、時刻が「１０：２０」であり、温度が「２２」であるデータが入力情報１（２２０１）に含まれることが分かる。
【００８１】
また、入力情報２（２２０２）は、時系列順に並べられたＸ２個のデータである。具体的には、入力情報２（２２０２）の各データは、時間、湿度及び気圧を含む。図４に示す例では、時刻が「１０：２０」であり、湿度が「１３」であり、気圧が「１０２４」であるデータが入力情報２（２２０２）に含まれることが分かる。
【００８２】
図５は、本発明の第１の実施形態の中間結果１（２２０３）及び中間結果２（２２０４）の一例を示す説明図である。
【００８３】
図５に示すように、クエリ１の出力結果である中間結果１（２２０３）は、Ｎ１個（Ｎ１は整数）のエントリを含むテーブル［観測時刻、平均温度］である。
【００８４】
また、クエリ２の出力結果である中間結果２（２２０４）は、Ｎ２個（Ｎ２は整数）のエントリを含むテーブル［観測時刻、湿度、気圧］である。
【００８５】
また、結果２２０５は、スキーマ（平均温度、平均湿度）を含むＹ個（Ｙは整数）のストリームデータである。
【００８６】
図６は、本発明の第１の実施形態のストリームデータ処理計算機１２００が備えるトレース機能の処理について説明するフローチャートである。
【００８７】
ストリームデータ受信部１２５１が、データ送信計算機１１００からストリームデータを受信する（ステップＳ６０１）。
【００８８】
集計・分析部１２５４が、受信したストリームデータを用いてクエリを実行することによって、中間結果を生成する（ステップＳ６０２）。図２に示す例では、クエリ１（２１０１）が実行されることによって中間結果１（２２０３）が生成され、クエリ２（２１０２）が実行されることによって中間結果２（２２０４）が生成される。なお、集計・分析部１２５４が実行する処理の詳細は、図７を用いて後述する。
【００８９】
集計・分析部１２５４は、生成された中間結果と、当該中間結果に関与した入力情報とを関与入力情報抽出部１２６１に出力する。
【００９０】
関与入力情報抽出部１２６１は、集計・分析部１２５４から入力された情報に基づいて、中間結果に関与した入力情報を抽出する（ステップＳ６０３）。なお、関与入力情報抽出部１２６１が実行する処理の詳細は、図８を用いて後述する。
【００９１】
関与入力情報抽出部１２６１は、中間結果と、抽出され、当該中間結果に関与した入力情報とを関与入力情報付加部１２６２に出力する。
【００９２】
関与入力情報付加部１２６２は、関与入力情報抽出部１２６１から入力された情報に基づいて、中間結果に、当該中間結果に関与した入力情報を付加する（ステップＳ６０４）。つまり、中間結果と、当該中間結果に関与した入力情報とが紐付けされる。なお、ステップＳ６０４における処理の一例について、図１３を用いて後述する。
【００９３】
関与入力情報付加部１２６２は、中間結果に関与した入力情報が付加された当該中間結果をトレース情報記録部１２６３に出力する。なお、中間結果に関与した入力情報が付加された当該中間結果は、クエリから中間結果が出力される度にトレース情報記録部１２６３に出力されてもよいし、一定時間ごとに出力されてもよいし、一定のデータ量ごとに出力されてもよいし、最終的な結果が出力されるタイミングで出力されてもよい。
【００９４】
次に、トレース情報記録部１２６３は、関与入力情報付加部１２６２から入力され、中間結果に関与した入力情報が付加された当該中間結果に対して、当該中間結果の原因分析を実行するか否かを判定する（ステップＳＳ６０５）。当該判定は、例えば、ＤＩＳＫ１１２０等に予め中間結果の原因分析を実行する旨を示すパラメータが設定されているか否かを判定することによって実行される。
【００９５】
中間結果の原因分析を実行すると判定された場合、トレース情報記録部１２６３は、中間結果に関与した入力情報が付加された当該中間結果をトレース情報ファイル１２２１に格納し（ステップＳ６０６）、ステップＳ６０７に進む。
【００９６】
中間結果の原因分析を実行しないと判定された場合、集計・分析部１２５４は、入力情報又は中間結果を用いてクエリを実行することによって、結果を生成する（ステップＳ６０７）。図２に示す例では、クエリ３（２１０３）が実行されることによって結果２２０５が生成される。
【００９７】
集計・分析部１２５４は、生成された結果と、当該結果に関与した入力情報とを関与入力情報抽出部１２６１に出力する。
【００９８】
関与入力情報抽出部１２６１は、集計・分析部１２５４から入力された情報に基づいて、結果に関与した入力情報を抽出する（ステップＳ６０８）。
【００９９】
関与入力情報抽出部１２６１は、結果と、当該結果に関与した入力情報とを関与入力情報付加部１２６２に出力する。
【０１００】
関与入力情報付加部１２６２は、関与入力情報抽出部１２６１から入力された情報に基づいて、結果に、当該結果に関与した入力情報を付加する（ステップＳ６０９）。つまり、結果と、当該結果に関与した入力情報とが紐付けされる。なお、ステップＳ６０９における処理の一例について、図１８を用いて後述する。
【０１０１】
関与入力情報付加部１２６２は、結果に関与した入力情報が付加された当該結果をトレース情報記録部１２６３に出力する。なお、結果に関与した入力情報が付加された当該結果は、結果が出力される度にトレース情報記録部１２６３に出力されてもよいし、一定時間ごとに出力されてもよいし、一定のデータ量ごとに出力されてもよい。
【０１０２】
トレース情報記録部１２６３は、結果に関与した入力情報が付加された当該結果をトレース情報ファイル１２２１に格納する（ステップＳ６１０）。なお、ステップＳ６１０における処理の一例について、図１９を用いて後述する。
【０１０３】
トレース情報記録部１２６３は、結果に関与した入力情報が付加された当該結果を関与入力情報除去部１２６４に出力する。
【０１０４】
関与入力情報除去部１２６４は、結果に関与した入力情報が付加された当該結果から、結果に関与した入力情報を除去する（ステップＳ６１１）。なお、ステップＳ６１１における処理の一例について、図２０を用いて後述する。
【０１０５】
関与入力情報除去部１２６４は、結果に関与した入力情報が除去された当該結果をストリームデータ送信部１２５３に出力する。
【０１０６】
ストリームデータ送信部１２５３は、ネットワーク５を介して、結果に関与した入力情報が除去された当該結果を結果受信計算機１３００に送信する（ステップＳ６１２）。
【０１０７】
なお、中間結果を出力する必要がある場合、中間結果に関与した入力情報が付加された当該中間結果が関与入力情報除去部１２６４に入力され、中間結果に関与した入力情報が除去される。さらに、ストリームデータ送信部１２５３は、中間結果に関与した入力情報が除去された当該中間結果を結果受信計算機１３００に送信する。これによって、中間結果を出力することが可能となる。
【０１０８】
図７は、本発明の第１の実施形態の集計・分析部１２５４が実行する処理を説明するフローチャートである。
【０１０９】
集計・分析部１２５４は、ＣＱＬ解析部１２５６から入力された情報を取得する（ステップＳ７０１）。例えば、集計・分析部１２５４は、各クエリの操作内容の情報を取得する。
【０１１０】
集計・分析部１２５４は、クエリへ入力される入力情報に対して、所定のウィンドオペレータに基づいて、処理対象となるデータを抽出する（ステップＳ７０２）。ここで、ウィンドオペレータは、例えば、入力情報のうち、三分間のデータを処理対象として指定するためのものである。すなわち、ストリームデータ処理システムでは、データが途切れることなく入力されるため、処理対象を特定する必要があり、ウィンドオペレータは当該処理対象を特定するためのものである。なお、ステップＳ７０２における処理の一例について、図１０及び図１５を用いて後述する。
【０１１１】
集計・分析部１２５４は、ウィンドオペレータを用いることによって抽出された処理対象のデータから、結果又は中間結果を生成するために必要となる列を抽出し、抽出された列を結果又は中間結果に関与する入力情報として生成する（ステップＳ７０３）。なお、ステップ７０３における処理の一例について、図１１を用いて後述する。
【０１１２】
集計・分析部１２５４は、クエリの処理対象のデータを用いて結果又は中間結果を生成する（Ｓ７０４）。なお、ステップＳ７０４における処理の一例について、図１２及び図１７を用いて後述する。
【０１１３】
集計・分析部１２５４は、結果及び当該結果に関与した入力情報、又は、中間結果及び当該中間結果に関与した入力情報を、関与入力情報抽出部１２６１に出力する（ステップＳ７０５）。
【０１１４】
図８は、本発明の第１の実施形態の関与入力情報抽出部１２６１が実行する処理を説明するフローチャートである。
【０１１５】
関与入力情報抽出部１２６１は、集計・分析部１２５４から入力された情報を取得する（ステップＳ８０１）。具体的には、結果及び当該結果に関与した入力情報、又は、中間結果及び当該中間結果に関与した入力情報が入力される。なお、ステップＳ８０１における処理の一例について、図９を用いて後述する。
【０１１６】
関与入力情報抽出部１２６１は、取得された結果又は中間結果を出力するクエリ（以下、判定対象のクエリという）に他のクエリが結合しているか否かを判定する（ステップＳ８０２）。関与入力情報抽出部１２６１は、例えば、判定対象のクエリのＣＱＬ定義情報等を参照することによって、判定対象のクエリに他のクエリが結合しているか否かを判定する。
【０１１７】
図２に示す例では、クエリ３（２１０３）が判定対象のクエリである場合、クエリ３（２１０３）には、他のクエリ（クエリ１（２１０１）及びクエリ２（２１０２））が結合していると判定される。
【０１１８】
判定対象のクエリに他のクエリが結合していると判定された場合、関与入力情報抽出部１２６１は、他のクエリにおける処理対象のデータを、判定対象クエリから出力された結果又は中間結果に紐付けし（ステップＳ８０３）、ステップＳ８０４に進む。他のクエリにおける処理対象のデータが、判定対象のクエリから出力される結果又は中間結果に関与した入力情報となる。
【０１１９】
例えば、クエリ３（２１０３）が判定対象のクエリである場合、クエリ１（２１０１）の処理対象データとクエリ２（２１０２）の処理対象データとが結果２２０５に紐付けられる。なお、ステップＳ８０３における処理の一例について、図１６を用いて後述する。
【０１２０】
判定対象のクエリに他のクエリが結合していないと判定された場合、関与入力情報抽出部１２６１は、結果及び当該結果に関与する入力情報、又は、中間結果及び当該中間結果に関与した入力情報を、関与入力情報付加部１２６２に出力する（ステップＳ８０４）。
【０１２１】
以下、トレース機能を備えるストリームデータ処理計算機１２００の一連の処理の一例を示す。なお、図２に示す連結クエリモデルを例に説明する。
【０１２２】
図９は、本発明の第１の実施形態のクエリ２（２１０２）における関与入力情報抽出部１２６１の入出力の一例を示す説明図である。
【０１２３】
図９に示す例では、クエリ２（２１０２）の入力情報９００１が集計・分析部１２５４に入力される。ここで、入力情報９００１は、入力情報２（２２０２）と同一のものである。
【０１２４】
集計・分析部１２５４は、入力情報９００１を用いて、クエリ２（２１０２）の出力９００４を生成する。図９に示す例では、出力９００４は、観測時刻１３：２０の時点における出力である。ここで、出力９００４は、中間結果２（２２０４）と同一のものである。
【０１２５】
さらに、集計・分析部１２５４は、出力９００４に関与した入力情報９００５を生成する。その後、集計・分析部１２５４は、出力９００４と入力情報９００５とを関与入力情報抽出部１２６１に出力する。入力情報９００５は、観測時刻１３：２０の時点における入力情報である。
【０１２６】
関与入力情報抽出部１２６１は、集計・分析部１２５４から入力された情報から、入力情報９００５を抽出し、出力９００４と入力情報９００５とを、それぞれ、関与入力情報付加部１２６２に出力する。
【０１２７】
以下、集計・分析部１２５４が、出力９００４及び入力情報９００５を生成する処理の具体例を図１０〜図１２を用いて説明する。
【０１２８】
図１０は、本発明の第１の実施形態の集計・分析部１２５４が、クエリ２（２１０２）におけるウィンドウオペレータに基づいて、処理対象のデータを抽出する処理の一例を示す説明図である。
【０１２９】
図１０に示すように、集計・分析部１２５４は、クエリ２（２１０２）のＣＱＬ定義情報１０００１によって指定されたウィンドウに基づいて、入力情報９００１から処理対象のデータ１０００３が抽出する。
【０１３０】
なお、集計・分析部１２５４は、抽出された処理対象のデータ１０００３を用いて、観測時刻１３：２０の時点における、平均湿度を算出する。具体的には、観測時刻１３：２０から直前５つの入力情報（湿度）から平均湿度が算出される。
【０１３１】
集計・分析部１２５４は、指定されたＲＯＷウィンドウオペレータによって、入力情報９００１のうち、観測時刻１３：００から直前の５つの入力情報（この場合、１３：００，（１５，１０２０）、１３：０５，（１６，１０１５）、１３：１０，（１６，１０３０）、１３：１５，（１４，１０１４）、及び、１３：２０，（１４，１０２４））を抽出し、抽出された入力情報から処理対象のデータ１０００３を生成する。処理対象のデータ１０００３は、具体的には、観測時刻、湿度及び気圧を含む５行３列のテーブルとして生成される。
【０１３２】
図１１は、本発明の第１の実施形態の集計・分析部１２５４が、クエリ２（２１０２）における処理対象のデータ１０００３から、出力９００４を生成するために必要となる列を抽出する処理の一例を示す説明図である。
【０１３３】
図１１に示すように、集計・分析部１２５４は、クエリ２のＣＱＬ定義情報１０００１に基づいて、処理対象のデータ１０００３から、出力９００４を生成するために必要となる列を抽出する。具体的には、出力９００４に関与した入力情報９００５が抽出される。
【０１３４】
図１１に示す例では、出力９００４を生成するために必要となる列として観測時刻と湿度とが指定されている。したがって、集計・分析部１２５４は、処理対象のデータ１０００３から、観測時刻及び湿度の列を抽出し、入力情報９００５を生成する。具体的には、生成された入力情報９００５は、観測時刻及び湿度を含む５行２列のテーブルとして生成される。
【０１３５】
以上の処理によって、集計・分析部１２５４は、クエリに入力された入力情報のうち、当該クエリの結果に関与した情報を抽出することができる。
【０１３６】
図１２は、本発明の第１の実施形態の集計・分析部１２５４が、クエリ２（２１０２）の出力９００４を生成する処理の一例を示す説明図である。
【０１３７】
図１２に示すように、集計・分析部１２５４は、入力情報９００５を用いて、クエリ２（２１０２）のＣＱＬ定義情報１０００１に指定される演算を実行することによって、クエリ２（２１０２）の出力９００４を生成する。
【０１３８】
具体的には、入力情報９００５は、［１３：００，１５］、［１３：０５，１６］、［１３：１０，１６］、［１３：１５，１４］、及び［１３：２０，１４］であり、クエリ２（２１０２）のシナリオでは、湿度の平均を算出する演算が指定されているため、出力９００４は、［１３：２０、１５］となる。
【０１３９】
以上が、集計・分析部１２５４が、出力９００４及び入力情報９００５を生成する処理の具体例である。
【０１４０】
図１３は、本発明の第１の実施形態の関与入力情報付加部１２６２が、クエリ２（２１０２）において実行する処理の一例を示す説明図である。
【０１４１】
関与入力情報付加部１２６２は、出力９００４に入力情報９００５を付加することによって、クエリ２（２１０２）の中間結果２（２２０４）に関与した入力情報が付加された中間結果１３００４を生成する。
【０１４２】
なお、クエリ１（２１０１）についても、図９〜図１３において説明した処理と同様の処理が実行される。
【０１４３】
図１４は、本発明の第１の実施形態のクエリ３（２１０３）における関与入力情報抽出部１２６１の入出力の一例を示す説明図である。
【０１４４】
図１４に示す例では、クエリ１（２１０１）から出力され、クエリ３（２１０３）に入力される情報１４００１と、クエリ２（２１０２）から出力され、クエリ３（２１０３）に入力される情報１４００２とが集計・分析部１２５４に入力される。ここで、情報１４００２は、中間結果１３００４と同一のものである。
【０１４５】
集計・分析部１２５４は、情報１４００１及び情報１４００２を用いて、クエリ３（２１０３）の出力１４００５を生成する。図１４に示す例では、出力１４００５は、観測時刻１３：２０の時点における出力である。ここで、出力１４００５は、結果２２０５と同一のものである。
【０１４６】
さらに、集計・分析部１２５４は、出力１４００５に関与したクエリ１（２１０１）の入力情報及びクエリ２（２１０２）の入力情報を生成し、出力１４００５と、出力１４００５に関与したクエリ１（２１０１）の入力情報及びクエリ２（２１０２）の入力情報とを、それぞれ、関与入力情報抽出部１２６１に出力する。
【０１４７】
関与入力情報抽出部１２６１は、集計・分析部１２５４から入力され、出力１４００５に関与したクエリ１（２１０１）の入力情報及びクエリ２（２１０２）の入力情報から、出力１４００５に関与した入力情報１４００６を生成する。図１４に示す例では、入力情報１４００６は、観測時刻１３：２０の時点における出力である。
【０１４８】
関与入力情報抽出部１２６１は、集計・分析部１２５４から入力された情報から、入力情報１４００６を抽出し、出力１４００５と入力情報１４００６とを、それぞれ、関与入力情報付加部１２６２に出力する。
【０１４９】
図１５は、本発明の第１の実施形態の集計・分析部１２５４が、クエリ３（２１０３）におけるウィンドウオペレータに基づいて、処理対象のデータを抽出する処理の一例を示す説明図である。
【０１５０】
図１５に示すように、集計・分析部１２５４は、クエリ３（２１０３）のＣＱＬ定義情報１５００１に指定されるウィンドウに基づいて、入力情報１５００２から処理対象のデータ１５００３を抽出する。なお、入力情報１５００２は、ストリームデータである。また、処理対象のデータ１５００３は、情報１４００１及び情報１４００２を含む。
【０１５１】
なお、クエリ３（２１０３）は、抽出された処理対象のデータ１５００３を用いて、平均温度が３０℃以上、又は、湿度が２０％以上である結果が出力された場合、現時刻の平均温度と平均湿度とを出力するシナリオである。
【０１５２】
集計・分析部１２５４は、指定されたＲＯＷウィンドウオペレータに基づいて、入力情報１５００２から、観測時刻１３：２０から直前の１つの入力情報（この場合、観測時刻１３：２０における情報）を抽出し、抽出された入力情報から処理対象のデータ１５００３を生成する。
【０１５３】
図１６は、本発明の第１の実施形態の関与入力情報抽出部１２６１が、クエリ３（２１０３）において実行する処理の一例を示す説明図である。
【０１５４】
図１６において、関与入力情報抽出部１２６１は、情報１４００１及び情報１４００２から、クエリ１（２１０１）の出力、つまり、情報１４００１に関与した入力情報１６００１と、クエリ２（２１０２）の出力、つまり、情報１４００２に関与した入力情報１６００２とを抽出し、入力情報１６００１と入力情報１６００２とを紐付けし、クエリ３の結果に関与した入力情報１４００６を生成する。
【０１５５】
図１７は、本発明の第１の実施形態の集計・分析部１２５４が、クエリ３（２１０３）の出力１４００５を生成する処理の一例を示す説明図である。
【０１５６】
図１７に示すように、集計・分析部１２５４は、処理対象のデータ１７００２を用いて、クエリ３（２１０３）のＣＱＬ定義情報１５００１に指定される演算を実行することによって、クエリ３（２１０３）の出力１４００５を生成する。
【０１５７】
具体的には、クエリ３（２１０３）のシナリオでは、平均温度が３０℃以上、又は、湿度が２０％以上である結果が出力された場合、現時刻の平均温度と平均湿度とを出力するシナリオであり、処理対象のデータ１７００２が、観測時刻１３：２０及び平均温度４０℃、並びに、観測時刻１３：２０及び平均湿度１５％であるため、クエリ３（２１０３）の出力１４００５は、[１３：２０，４０，１５]となる。
【０１５８】
図１８は、本発明の第１の実施形態の関与入力情報付加部１２６２が、クエリ３（２１０３）において実行する処理の一例を示す説明図である。
【０１５９】
関与入力情報付加部１２６２は、出力１４００５に入力情報１４００６を付加することによって、クエリ３（２１０３）の結果２２０５に関与した入力情報が付加された結果１８００４を生成する。
【０１６０】
図１９は、本発明の第１の実施形態のトレース情報記録部１２６３が実行する処理の一例を示す説明図である。
【０１６１】
トレース情報記録部１２６３は、関与入力情報付加部１２６２から入力され、結果１８００４をトレース情報ファイル１２２１に格納する。
【０１６２】
図２０は、本発明の第１の実施形態の関与入力情報除去部１２６４が実行する処理の一例を示す説明図である。
【０１６３】
関与入力情報除去部１２６４は、結果１８００４から、当該結果１８００４に関与した入力情報（入力情報１４００６）を除去し、クエリ３の結果２２０５（出力１４００５）を生成する。
【０１６４】
本発明の第１の実施形態によれば、ストリームデータ処理において、出力された結果に関与した入力情報に関する情報を保持することが可能となり、結果の原因分析が可能となる。
【０１６５】
［第２の実施形態］
次に、リプレイ機能について説明する。一以上のクエリから構成されるシナリオ分析において、リプレイ機能では、ストリームデータ処理計算機２１０００（図２１参照）が、過去に当該ストリームデータ処理計算機２１０００（図２１参照）に入力された入力情報とＣＱＬ定義情報とのバックアップデータとして保持する。任意の過去の結果について原因を特定する場合に、入力情報のバックアップデータをストリームデータ処理計算機２１０００（図２１参照）に再度入力することによって、原因を特定したい結果が出力された時点を再現する。さらに、ストリームデータ処理計算機２１０００（図２１参照）は、原因を特定したい結果を出力するクエリの処理過程を遡ることによって、原因を特定したい結果に関与した入力情報を取得し、結果に関与した入力情報を、クライアントに提供する。
【０１６６】
リプレイ機能を備えるストリームデータ処理システムの構成は、トレース機能を備えるストリームデータ処理システムの構成と同一であるため説明を省略する。
【０１６７】
また、リプレイ機能を備えるストリームデータ処理システムにおけるデータ送信計算機１１００及び結果受信計算機１３００は、トレース機能を備えるストリームデータ処理システムのデータ送信計算機１１００及び結果受信計算機１３００と同一であるため説明を省略する。
【０１６８】
連結クエリモデルについては、図２を用い、入力情報及びクエリの処理内容は第１の実施形態と同一であるため説明を省略する。
【０１６９】
以下、第１の実施形態との差異を中心に説明する。
【０１７０】
図２１は、本発明の第２の実施形態におけるリプレイ機能を備えるストリームデータ処理計算機２１０００を構成の説明するブロック図である。
【０１７１】
ストリームデータ処理計算機２１０００は、ＣＰＵ２１１００、ＤＩＳＫ２１２００、及びメモリ２１３００を備える。
【０１７２】
ＣＰＵ２１１００は、メモリ２１３００上に展開されたプログラムを実行する。
【０１７３】
ＤＩＳＫ２１２００は、メモリ２１３００上のプログラムが利用するデータを格納する。具体的には、ＤＩＳＫ２１２００は、入力情報バックアップファイル２１２１１、ＣＱＬ定義情報バックアップファイル２１２１２、ＣＱＬ定義情報ファイル２１２１３、及びリプレイ情報ファイル２１２２０を格納する。
【０１７４】
入力情報バックアップファイル２１２１１は、過去にストリームデータ処理計算機２１０００に入力された入力情報のバックアップデータを格納するファイルである。
【０１７５】
ＣＱＬ定義情報バックアップファイル２１２１２は、過去にストリームデータ処理計算機２１０００において使用されたＣＱＬ定義情報のバックアップデータを格納するファイルである。
【０１７６】
リプレイ情報ファイル２１２２０は、過去に出力された結果に関与した入力情報を格納するファイルである。
【０１７７】
ＣＱＬ定義情報ファイル２１２１３は、予め定義されたＣＱＬ定義情報を格納する。
【０１７８】
メモリ２１３００は、ＣＰＵ２１１００によって実行されるプログラム及び当該プログラムの実行に必要なデータを格納する。具体的には、メモリ２１３００は、オペレーティングシステム２１３１０、並びに、オペレーティングシステム２１３１０上で動作するプログラムであるストリームデータ処理部２１３２０及びリプレイ機能部２１３３０を含む。
【０１７９】
ストリームデータ処理部２１３２０は、ストリームデータを処理する。さらに、ストリームデータ処理部２１３２０は、ストリームデータ受信部２１３２１、クエリ処理部２１３２２、及びストリームデータ送信部２１３２３を備える。
【０１８０】
ストリームデータ受信部２１３２１は、データ送信計算機１１００等の外部計算機から送信されるストリームデータを受信する。受信したストリームデータは、クエリ処理部２１３２２及び入力情報記録部２１３３１に出力される。また、ストリームデータ受信部２１３２１は、入力情報記録部２１３３１から入力された入力情報をクエリ処理部２１３２２に出力する。
【０１８１】
ストリームデータ送信部２１３２３は、クエリ処理部２１３２２から出力される結果を結果受信計算機１３００等の外部計算機に送信する。
【０１８２】
クエリ処理部２１３２２は、受信したストリームデータを分析する。クエリ処理部２１３２２は、集計・分析部２１３２４、ＣＱＬ登録部２１３２６、及びＣＱＬ解析部２１３２７を備える。
【０１８３】
集計・分析部２１３２４は、ＣＱＬ解析部２１３２７から入力された指定のシナリオに従って、ストリームデータ受信部２１３２１が受信したストリームデータを集計・分析する。また、集計・分析部２１３２４は、ある過去の結果に関与した情報を再現するための処理を実行する。
【０１８４】
再現された、ある過去の結果に関与した情報には、入力情報、クエリによって得られる中間結果、及び結果が含まれる。
【０１８５】
ＣＱＬ登録部２１３２６は、ＣＱＬ定義情報ファイル２１２１３からＣＱＬ定義情報を読み出し、読み出されたＣＱＬ定義情報をＣＱＬ解析部２１３２７に出力する。
【０１８６】
ＣＱＬ解析部２１３２７は、ＣＱＬ登録部２１３２６から入力されたＣＱＬ定義情報を解析し、ストリーム、及びクエリの操作内容を定義する情報を集計・分析部２１３２４に出力する。
【０１８７】
リプレイ機能部２１３３０は、過去に出力された結果に関与した入力情報を特定する。リプレイ機能部２１３３０は、入力情報記録部２１３３１、ＣＱＬ情報記録部２１３３２、再現情報取得部２１３３３、ＣＱＬ操作内容解析部２１３３４、関与入力情報復元部２１３３５、及びリプレイ情報記録部２１３３６を備える。
【０１８８】
入力情報記録部２１３３１は、二つの処理を実行する。
【０１８９】
一つ目の処理では、入力情報記録部２１３３１は、ストリームデータ受信部２１３２１から入力される入力情報を、入力情報バックアップファイル２１２１１に格納する。これによって、ストリームデータ処理計算機２１０００に入力された入力情報のバックアップを取得することができる。
【０１９０】
二つ目の処理では、入力情報記録部２１３３１は、ある過去の結果を再現する場合に、入力情報バックアップファイル２１２１１に格納される入力情報のバックアップデータを読み出し、読み出されたバックアップデータをストリームデータ受信部２１３２１に出力する。
【０１９１】
ＣＱＬ情報記録部２１３３２は、三つの処理を実行する。
【０１９２】
一つ目の処理では、ＣＱＬ情報記録部２１３３２は、クエリ処理部２１３２２から入力されたシナリオ分析に用いられたＣＱＬ定義情報を、ＣＱＬ定義情報バックアップファイル２１２１２に格納する。これによって、ＣＱＬ定義情報のバックアップを取得することができる。
【０１９３】
二つ目の処理では、ＣＱＬ情報記録部２１３３２は、ある過去の結果を再現する場合に、ＣＱＬ定義情報バックアップファイル２１２１２に格納されるＣＱＬ定義情報のバックアップデータを読み出し、読み出されたバックアップデータを集計・分析部２１３２４に出力する。
【０１９４】
三つ目の処理では、ＣＱＬ情報記録部２１３３２は、ある過去の結果を再現する場合に、ＣＱＬ定義情報バックアップファイル２１２１２に格納されるＣＱＬ定義情報のバックアップデータを読み出し、読み出されたバックアップデータをＣＱＬ操作内容解析部２１３３４に出力する。
【０１９５】
クエリ処理部２１３２２は、入力情報記録部２１３３１及びＣＱＬ情報記録部２１３３２から入力された情報（入力情報バックアップファイル２１２１１に格納される入力情報のバックアップデータとＣＱＬ定義情報バックアップファイル２１２１２に格納されるＣＱＬ定義情報のバックアップデータ）を用いて、処理を実行することによって、再現された、ある過去の結果に関与した情報を生成することができる。再現された、ある過去の結果に関与した情報は、メモリ２１３００上に配置される。なお、再現された、ある過去の結果に関与した情報の一例について、図２５を用いて後述する。
【０１９６】
再現情報取得部２１３３３は、集計・分析部２１３２４から、再現された、ある過去の結果に関与した情報を取得する。また、再現情報取得部２１３３３は、再現された、ある過去の結果に関与した情報を関与入力情報復元部２１３３５に出力する。
【０１９７】
ＣＱＬ操作内容解析部２１３３４は、ＣＱＬ情報記録部２１３３２から入力されたＣＱＬ定義情報に基づいて、ＣＱＬの操作内容を解析する。ＣＱＬ操作内容解析部２１３３４は、ＣＱＬの操作内容の解析結果を関与入力情報復元部２１３３５に出力する。
【０１９８】
関与入力情報復元部２１３３５は、再現情報取得部２１３３３から入力され、再現された、ある過去の結果に関与した情報（入力情報、中間結果、及び結果）と、ＣＱＬ操作内容解析部２１３３４から入力されたＣＱＬの操作内容の解析結果とに基づいて、ある過去の結果に関与した入力情報を復元し、結果と結果に関与した入力情報とを、リプレイ情報記録部２１３３６に出力する。
【０１９９】
リプレイ情報記録部２１３３６は、結果と結果に関与した入力情報とを、リプレイ情報ファイル２１２２０に格納する。
【０２００】
リプレイ機能を備えるストリームデータ処理計算機２１０００の具体的な処理手順について説明する。リプレイ機能には、ストリームデータ受信部２１３２１が外部計算機から入力情報を受信し、通常のシナリオ分析を行う場合（通常運用時）と、過去の結果について原因分析する場合（原因分析時）とがある。まず、通常運用時について、説明する。
【０２０１】
図２２は、本発明の第２の実施形態のストリームデータ処理計算機２１０００が、通常運用時に実行する処理を説明するフローチャートである。
【０２０２】
ストリームデータ受信部２１３２１が、外部計算機（図示省略）からストリームデータを受信する（ステップＳ２２０１）。受信したストリームデータは、クエリ処理部２１３２２と入力情報記録部２１３３１とに、それぞれ、出力される。
【０２０３】
入力情報記録部２１３３１は、ストリームデータ受信部２１３２１から入力されたストリームデータを入力情報バックアップファイル２１２１１に格納する（ステップＳ２２０２）。
【０２０４】
クエリ処理部２１３２２は、ストリームデータ受信部２１３２１からストリームデータを取得する（ステップＳ２２０３）。
【０２０５】
ＣＱＬ情報記録部２１３３２が、クエリ処理部２１３２２から、使用されるＣＱＬ定義情報を取得し、ＣＱＬ定義情報バックアップファイル２１２１２に格納する（ステップＳ２２０４）。
【０２０６】
クエリ処理部２１３２２は、ストリームデータ受信部２１３２１から入力されたストリームデータを用いて、結果を生成する（ステップＳ２２０５）。生成された結果は、ストリームデータ送信部２１３２３に出力される。
【０２０７】
ストリームデータ送信部２１３２３は、クエリ処理部２１３２２から入力された結果を外部計算機（図示省略）に送信する（ステップＳ２２０６）。
【０２０８】
次に、原因分析時における処理について、図２３を用いて説明する。
【０２０９】
図２３は、本発明の第２の実施形態のストリームデータ処理計算機２１０００が、原因分析時に実行する処理を説明するフローチャートである。
【０２１０】
原因分析の実行は、例えば、外部のユーザ（図示省略）からの指示によって開始される。
【０２１１】
入力情報記録部２１３３１は、入力情報バックアップファイル２１２１１から入力情報のバックアップデータを読み出し（ステップＳ２２５１）、読み出された入力情報のバックアップデータをストリームデータ受信部２１３２１に出力する（ステップＳ２２５２）。
【０２１２】
ＣＱＬ情報記録部２１３３２は、ＣＱＬ定義情報バックアップファイル２１２１２からＣＱＬ定義情報のバックアップデータを読み出す（ステップＳ２２５３）。
【０２１３】
ＣＱＬ情報記録部２１３３２は、読み出されたＣＱＬ定義情報のバックアップデータをクエリ処理部２１３２２に出力し（ステップＳ２２５４）、また、読み出されたＣＱＬ定義情報のバックアップデータをＣＱＬ操作内容解析部２１３３４に出力する（ステップＳ２２５８）。
【０２１４】
集計・分析部２１３２４は、入力された入力情報のバックアップデータ、及び入力されたＣＱＬ定義情報のバックアップデータを用いて、過去に出力された結果、中間結果及び入力情報を生成し、生成された各情報を再現情報取得部２１３３３に出力する（ステップＳ２２５５）。生成された各情報の一例について、図２５を用いて後述する。
【０２１５】
再現情報取得部２１３３３は、集計・分析部２１３２４から入力された情報（過去に出力された結果、中間結果及び入力情報）を取得し（ステップＳ２２５６）、取得された情報（過去に出力された結果、中間結果及び入力情報）を関与入力情報復元部２１３３５に出力する（ステップＳ２２５７）。
【０２１６】
ＣＱＬ操作内容解析部２１３３４は、ＣＱＬ情報記録部２１３３２から入力されたＣＱＬ定義情報のバックアップデータに基づいて、ＣＱＬ定義情報の操作内容を解析し（ステップＳ２２５９）、当該解析結果を関与入力情報復元部２１３３５に出力する（ステップＳ２２６０）。なお、ステップＳ２２５９における処理一例について、図２６を用いて後述する
関与入力情報復元部２１３３５は、再現情報取得部２１３３３から入力された、過去に出力された結果、中間結果及び入力情報、並びに、ＣＱＬ操作内容解析部２１３３４から入力されたＣＱＬ定義情報の操作内容に基づいて、過去に出力された結果に関与した入力情報を抽出する（ステップＳ２２６１）。過去に出力された結果と当該結果に関与した入力情報とは、リプレイ情報記録部２１３３６に出力される。
【０２１７】
リプレイ情報記録部２１３３６は、関与入力情報復元部２１３３５から入力された、過去に出力された結果と当該結果に関与した入力情報とをリプレイ情報ファイル２１２２０に格納する（ステップＳ２２６２）。ステップＳ２２６２における処理の一例について、図３０を用いて後述する。
【０２１８】
図２４は、本発明の第２の実施形態の関与入力情報復元部２１３３５が実行する処理の一例を説明するフローチャートである。
【０２１９】
まず、再現情報取得部２１３３３が、集計・分析部２１３２４から入力された情報（過去に出力された結果、中間結果及び入力情報）を取得し（ステップＳ２３０１）、また、ＣＱＬ操作内容解析部２１３３４が、ＣＱＬ情報記録部２１３３２から入力されたＣＱＬ定義情報のバックアップデータを取得する（ステップ２３０２）。
【０２２０】
以下、再現情報取得部２１３３３及びＣＱＬ操作内容解析部２１３３４が取得する情報及び出力する情報について説明する。
【０２２１】
集計・分析部２１３２４から入力された情報は、具体的には、入力情報１（２２０１）、入力情報２（２２０２）、中間結果１（２２０３）、中間結果２（２２０４）、及び結果２２０５である。なお、前述した情報は、集計・分析部２１３２４によって再現された情報である。
【０２２２】
図２５は、本発明の第２の実施形態の集計・分析部２１３２４から再現情報取得部２１３３３に出力される情報の一例を示す説明図である。
【０２２３】
集計・分析部２１３２４から再現情報取得部２１３３３に出力される情報は、入力情報１（２２０１）、入力情報２（２２０２）、中間結果１（２２０３）、中間結果２（２２０４）、及び結果２２０５を含む。
【０２２４】
図２５に示す例では、入力情報１（２２０１）は、Ｘ１行のテーブル［観測時刻，温度］である。入力情報２（２２０２）は、Ｘ２行のテーブル［観測時刻，湿度，気圧］である。
【０２２５】
また、中間結果１（２２０３）は、Ｎ１行のテーブル［観測時刻，平均温度］である。中間結果２（２２０４）は、Ｎ２行のテーブル［観測時刻，平均湿度］である。
【０２２６】
また、結果２２０５は、Ｙ行のテーブル［観測時刻，平均温度，平均湿度］である。
【０２２７】
ＣＱＬ情報記録部２１３３２から入力されたＣＱＬ定義情報のバックアップデータは、具体的には、ＣＱＬ定義情報３００３、ＣＱＬ定義情報３００４、及びＣＱＬ定義情報３００５である。
【０２２８】
ＣＱＬ操作内容解析部２１３３４から出力されるＣＱＬ定義情報の操作内容は、具体的には、クエリ１（２１０１）のＣＱＬ定義情報の操作内容２５００１（図２６参照）、クエリ２（２１０２）のＣＱＬ定義情報の操作内容２５００２（図２６参照）、及びクエリ３（２１０３）のＣＱＬ定義情報の操作内容２５００３（図２６参照）である。
【０２２９】
図２６は、本発明の第２の実施形態のＣＱＬ操作内容解析部２１３３４から再現情報取得部２１３３３に出力される情報の一例を示す説明図である。
【０２３０】
図２６に示すように、ＣＱＬ操作内容解析部２１３３４には、それぞれ、クエリ１（２１０１）のＣＱＬ定義情報３００１、クエリ２（２１０２）のＣＱＬ定義情報３００２、及びクエリ３（２１０３）のＣＱＬ定義情報３００３が入力される。
【０２３１】
ＣＱＬ操作内容解析部２１３３４は、入力された各々のＣＱＬ定義情報３００１〜３００３を解析し、ＣＱＬ定義情報の操作内容を出力する。
【０２３２】
図２６に示す例では、ＣＱＬ定義情報３００１が解析され、クエリ１（２１０１）のＣＱＬ定義情報の操作内容２５００１が出力される。また、ＣＱＬ定義情報３００２が解析され、クエリ２（２１０２）のＣＱＬ定義情報の操作内容２５００２が出力される。また、ＣＱＬ定義情報３００３が解析され、クエリ３（２１０３）のＣＱＬ定義情報の操作内容２５００３が出力される。
【０２３３】
以上が、再現情報取得部２１３３３及びＣＱＬ操作内容解析部２１３３４が取得する情報及び出力する情報についての説明である。
【０２３４】
図２４の説明に戻る。
【０２３５】
関与入力情報復元部２１３３５は、再現情報取得部２１３３３から入力された結果２２０５、中間結果１（２２０３）、及び中間結果２（２２０４）、並びに、ＣＱＬ操作内容解析部２１３３４から入力されたクエリ３（２１０３）のＣＱＬ定義情報の操作内容２５００３に基づいて、結果２２０５に関与した中間結果１（２２０３）、及び中間結果２（２２０４）を抽出する（ステップＳ２３０３）。なお、ステップＳ２３０３における処理の一例について、図２７を用いて後述する。
【０２３６】
関与入力情報復元部２１３３５は、再現情報取得部２１３３３から入力された入力情報１（２２０１）、ＣＱＬ操作内容解析部２１３３４から入力されたクエリ１（２１０１）のＣＱＬ定義情報の操作内容２５００１、及びステップ２３０３において抽出された結果２２０５に関与した中間結果１（２２０３）に基づいて、結果２２０５に関与したクエリ１（２１０１）の入力情報を抽出する（ステップＳ２３０４）。なお、ステップＳ２３０４における処理の一例について、図２８を用いて後述する。
【０２３７】
関与入力情報復元部２１３３５は、再現情報取得部２１３３３から入力された入力情報２（２２０２）、ＣＱＬ操作内容解析部２１３３４から入力されたクエリ２（２１０２）のＣＱＬ定義情報の操作内容２５００２、及びステップ２３０３において抽出された結果２２０５に関与した中間結果２（２２０４）に基づいて、結果２２０５に関与したクエリ２（２１０２）の入力情報を抽出する（ステップＳ２３０５）。なお、ステップＳ２３０５における処理の一例について、図２９を用いて後述する。
【０２３８】
関与入力情報復元部２１３３５は、結果２２０５、結果２２０５に関与したクエリ１（２１０１）の入力情報、及び結果２２０５に関与したクエリ２（２１０２）の入力情報をリプレイ情報記録部に出力する（ステップＳ２３０６）。
【０２３９】
以下、トレース機能を備えるストリームデータ処理計算機２１０００の一連の処理の一例を示す。なお、図２に示す連結クエリモデルを例に説明する。
【０２４０】
図２７は、本発明の第２の実施形態の関与入力情報復元部２１３３５が、結果２２０５に関与したクエリ１（２１０１）の中間結果及びクエリ２（２１０２）の中間結果を抽出する処理の一例を示す説明図である。
【０２４１】
図２７に示すように、関与入力情報復元部２１３３５には、再現情報取得部２１３３３から、中間結果１（２２０３）、中間結果２（２２０４）及び結果２２０５が入力される。また、関与入力情報復元部２１３３５には、ＣＱＬ操作内容解析部２１３３４から、クエリ３（２１０３）のＣＱＬ定義情報の操作内容２５００３が入力される。
【０２４２】
関与入力情報復元部２１３３５は、入力された情報に基づいて、結果２２０５に関与したクエリ１（２１０１）の中間結果２６００７とクエリ２（２１０２）の中間結果２６００８とを抽出する。
【０２４３】
図２８は、本発明の第２の実施形態の関与入力情報復元部２１３３５が、クエリ１（２１０１）の中間結果２６００７に関与した入力情報を抽出する処理の一例を示す説明図である。
【０２４４】
図２８に示すように、関与入力情報復元部２１３３５には、再現情報取得部２１３３３から、入力情報１（２２０１）が入力される。また、関与入力情報復元部２１３３５には、ＣＱＬ操作内容解析部２１３３４から、クエリ１（２１０１）のＣＱＬ定義情報の操作内容２５００１が入力される。
【０２４５】
関与入力情報復元部２１３３５は、入力された情報に基づいて、クエリ１（２１０１）の中間結果２６００７に関与した入力情報２７００７を抽出する。
【０２４６】
図２９は、本発明の第２の実施形態の関与入力情報復元部２１３３５が、クエリ２（２１０２）の中間結果２６００８に関与した入力情報を抽出する処理の一例を示す説明図である。
【０２４７】
図２９に示すように、関与入力情報復元部２１３３５には、再現情報取得部２１３３３から、入力情報２（２２０２）が入力される。また、関与入力情報復元部２１３３５には、ＣＱＬ操作内容解析部２１３３４から、クエリ２（２１０２）のＣＱＬ定義情報の操作内容２５００２が入力される。
【０２４８】
関与入力情報復元部２１３３５は、入力された情報に基づいて、クエリ２（２１０２）の中間結果２６００８に関与した入力情報２８００７を抽出する。
【０２４９】
図３０は、本発明の第２の実施形態のリプレイ情報記録部２１３３６の処理の一例を示す説明図である。
【０２５０】
リプレイ情報記録部２１３３６は、関与入力情報復元部２１３３５から入力された結果２２０５、結果２２０５に関与した入力情報２７００７、及び結果２２０５に関与した入力情報２８００７を、ＤＩＳＫ２１２００のリプレイ情報ファイル２１２２０に格納する。
【０２５１】
本発明の第２の実施形態によれば、ストリームデータ処理計算機２１０００が、ストリームデータ処理計算機２１０００に入力された入力情報、及び、ＣＱＬ定義情報を予め保持することによって、結果に関与した入力情報を特定することができるため、当該結果の原因を分析することが可能となる。
【０２５２】
本発明は、例えば、金融分野における株価の不正取引、及び計算機システム管理におけるエラーログの発生原因などの分野に適用した場合に有用である。
【符号の説明】
【０２５３】
１１００  データ送信計算機
１１１０  ＣＰＵ
１１２０  ＤＩＳＫ
１１３０  メモリ
１１３１  データ送信部
１１３２  接続部
１２００  ストリームデータ処理計算機
１２１０  ＣＰＵ
１２２０  ＤＩＳＫ
１２２１  トレース情報ファイル
１２２２  ＣＱＬ定義情報ファイル
１２３０  メモリ
１２４０  オペレーティングシステム
１２５０  ストリームデータ処理部
１２５１  ストリームデータ受信部
１２５２  クエリ処理部
１２５３  ストリームデータ送信部
１２５４  集計・分析部
１２５５  ＣＱＬ登録部
１２５６  ＣＱＬ解析部
１２６０  トレース機能部
１２６１  関与入力情報抽出部
１２６２  関与入力情報付加部
１２６３  トレース情報記録部
１２６４  関与入力情報除去部
１３００  結果受信計算機
１３１０  ＣＰＵ
１３２０  ＤＩＳＫ
１３３０  メモリ
１３３１  ストリームデータ受信部
１３３２  アプリケーション実行部
２１０１  クエリ１
２１０２  クエリ２
２１０３  クエリ３
２２０１  入力情報１
２２０２  入力情報２
２２０３  中間結果１
２２０４  中間結果２
２２０５  結果
３００１  入力情報１のＣＱＬ定義情報
３００２  入力情報２のＣＱＬ定義情報
３００３  クエリ１のＣＱＬ定義情報
３００４  クエリ２のＣＱＬ定義情報
３００５  クエリ３のＣＱＬ定義情報
２１０００  ストリームデータ処理計算機
２１１００  ＣＰＵ
２１２００  ＤＩＳＫ
２１２１１  入力情報バックアップファイル
２１２１２  ＣＱＬ定義情報バックアップファイル
２１２１３  ＣＱＬ定義情報ファイル
２１２２０  リプレイ情報ファイル
２１３００  メモリ
２１３１０  オペレーティングシステム
２１３２０  ストリームデータ処理部
２１３２１  ストリームデータ受信部
２１３２２  クエリ処理部
２１３２３  ストリームデータ送信部
２１３２４  集計・分析部
２１３２６  ＣＱＬ登録部
２１３２７  ＣＱＬ解析部
２１３３０  リプレイ機能部
２１３３１  入力情報記録部
２１３３２  ＣＱＬ情報記録部
２１３３３  再現情報取得部
２１３３４  ＣＱＬ操作内容解析部
２１３３５  関与入力情報復元部
２１３３６  リプレイ情報記録部
【図１】
2011039818.tif 000003
【図２】
2011039818.tif 000004
【図３】
2011039818.tif 000005
【図４】
2011039818.tif 000006
【図５】
2011039818.tif 000007
【図６】
2011039818.tif 000008
【図７】
2011039818.tif 000009
【図８】
2011039818.tif 000010
【図９】
2011039818.tif 000011
【図１０】
2011039818.tif 000012
【図１１】
2011039818.tif 000013
【図１２】
2011039818.tif 000014
【図１３】
2011039818.tif 000015
【図１４】
2011039818.tif 000016
【図１５】
2011039818.tif 000017
【図１６】
2011039818.tif 000018
【図１７】
2011039818.tif 000019
【図１８】
2011039818.tif 000020
【図１９】
2011039818.tif 000021
【図２０】
2011039818.tif 000022
【図２１】
2011039818.tif 000023
【図２２】
2011039818.tif 000024
【図２３】
2011039818.tif 000025
【図２４】
2011039818.tif 000026
【図２５】
2011039818.tif 000027
【図２６】
2011039818.tif 000028
【図２７】
2011039818.tif 000029
【図２８】
2011039818.tif 000030
【図２９】
2011039818.tif 000031
【図３０】
2011039818.tif 000032