説明

ストリームデータ処理システム、ストリームデータ処理方法及びストリームデータ処理プログラム

【課題】ストリームデータ処理システムにおける結果発生の原因を特定する。
【解決手段】ストリームデータに対して、予め設定された複数のクエリを実行することによって、逐次結果を出力するストリームデータ処理システムであって、複数のクエリは、第1クエリ、第2クエリ、及び第3クエリを含み、第1クエリが実行されることによって第1中間結果が出力され、第2クエリが実行されることによって第2中間結果が出力され、第1中間結果及び第2中間結果に基づいて、第3クエリが実行されることによって結果が出力され、第1ストリームデータのうち、第1中間結果に関与した第1関与入力情報を抽出し、第2中間結果に関与した第2関与入力情報を抽出し、前記結果に関与した第3関与入力情報を抽出し、結果と、抽出された第3関与入力情報とを対応づけて保持することを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ストリームデータ処理方法及びプログラムに関し、特に、ストリームデータ処理において、イベント発生の原因を分析するストリームデータ処理方法及びプログラムに関する。
【背景技術】
【0002】
近年、情報通信技術の発展によって、アプリケーションが取り扱う情報データ量が爆発的に増加している。
【0003】
従来のデータベース管理システム(DBMS)では、受信したデータが一旦データベースなどの記憶領域に格納され、その後に、記憶領域に格納された受信データを用いて一括処理が実行される。そのため、データベースに受信データを格納するためにタイムラグが生じ、またデータ量が爆発的に増えると、計算量が線形的に増加するため、顧客が要求する処理性能を満たせなくなるアプリケーションが出てくる。
【0004】
今後の情報通信技術の発展を考慮すると、IT基盤の性能をより向上させることが必須となる。そこで、リアルタイムに集計・分析することを可能とするストリームデータ処理システムが注目を集めている。
【0005】
ストリームデータ処理システムは、ストリームデータを計算対象とする。ここで、ストリームデータとは、途切れることなく到来する時刻順データ系列である。例えば、RFID読取り情報、交通情報、及び株価情報等がストリームデータに相当する。
【0006】
また、ストリームデータ処理システムでは、予め定義されたシナリオに従ってデータ処理が実行される。シナリオは、CQL(Continuous Query Language)を利用する(例えば、特許文献1参照)。CQLは、DBMSで広く用いられているSQL(Structured Query Language)が拡張されたものである。CQLは、SQLと同様にシナリオをクエリで記述する。ストリームデータ処理システムにおける、クエリは従来のSQLと以下の点が異なる。
【0007】
1点目は、複数の連結クエリによって構成されている点である。従来のSQLは、一入力一出力を対象とした処理であり、単一のクエリから構成される(例えば、特許文献2参照)。特許文献2には、具体的なSQL文の例が、開示されている。
【0008】
一方、ストリームデータ処理システムでは、単一のクエリでは実現できない複雑なデータ処理を可能にする。これは、複数のクエリを連結させ中間結果を計算することによって、複雑な処理の実行を可能とする。
【0009】
2点目は、固有のウィンドウの概念を導入している点である。ストリームデータは、データが連続的に途切れることなく到来し続けるため、演算対象となるデータを抽出するために、時系列データを有限のデータ集合に区切る必要がある。そこで、ストリームデータ処理システムでは、ウィンドウ(スライディングウィンドウ)の概念を導入し、ウィンドウの変化差異を計算対象とする差分計算を採用している。
【0010】
スライディングウィンドウには、大きく2種類ある。具体的には、入力情報の直前n個分を保持するウィンドウ(ROWウィンドウ)と、入力情報の直前n時間分を保持するウィンドウ(RANGEウィンドウ)との2種類である。
【0011】
前述したウィンドウを利用する事によって、例えば、ROWウィンドウを使用した場合、任意の時刻に対して、直前n個分の入力情報をリアルタイムに近い時刻で集計・分析することが可能となる。
【0012】
スライディングウィンドウは、従来のデータベースシステム処理システムにはない、ストリームデータ処理システムが備える固有のオペレータである。スライディングウィンドウは、CQLを導入することによって実現される。
【0013】
なお、具体的なCQLを利用する技術などについては、特許文献1に開示されている。
【先行技術文献】
【特許文献】
【0014】
【特許文献1】特開2006−338432号公報
【特許文献2】特開平9−34759号公報
【発明の概要】
【発明が解決しようとする課題】
【0015】
ストリームデータ処理システムにおけるシナリオ分析は、複数の入力情報と複数のクエリによる多次元のパラメータとを用いて解析処理を実行する、複雑なデータ処理である。
【0016】
また、ストリームデータ処理システムは、固有のウィンドウオペレータを導入しているため、従来のアーキテクチャのデータ処理と比較すると、途切れることなく発生するシナリオ分析の結果に対して、どの入力情報が演算対象となったデータなのかを特定することが難しい。したがって、シナリオ分析の結果の原因を調査する場合、どの入力情報、又はどのクエリが影響して当該結果が得られたのかについて原因を特定することが困難である。
【0017】
従来のデータベースシステムと比較し、ストリームデータ処理システムにおける結果の原因分析が困難な理由は、大きく三点ある。
【0018】
一点目は、ストリームデータ処理システムでは、複数の入力情報と複数のクエリによる多次元のパラメータとによって解析される複雑なデータ処理が実行され、さらに、分析シナリオの結果及び中間結果が途切れることなく発生し続ける。したがって、分析シナリオの結果及び中間結果に関与した入力情報を特定することが困難である。
【0019】
二点目は、ストリームデータ処理システムでは、複数のクエリを連結しているため、クエリの中間結果に対しても原因が特定される必要がある。
【0020】
三点目は、ストリームデータ処理システムでは、ストリームデータ処理システムが備える固有のウィンドウオペレータを採用しているため、従来のデータベースシステムにおける原因分析とは異なり、ウィンドウオペレータの処理を考慮して結果の原因分析が実行される必要がある。
【0021】
前述した三つの理由から、特許文献2に記載されているような従来のデータベースシステムにおける原因分析方法では、シナリオ分析の原因を解析することができない。
【0022】
本発明は、前述した課題を鑑みてなされたものであり、ストリームデータ処理でのシナリオ分析において、シナリオ分析の結果の原因分析を容易にすることを目的とする。
【課題を解決するための手段】
【0023】
本発明の代表的な一例を示せば以下の通りである。すなわち、継続して到来する第1ストリームデータに対して、予め設定された複数のクエリを実行することによって、逐次結果を出力するストリームデータ処理システムであって、ストリームデータ処理システムは、プロセッサと、前記プロセッサと接続されるメモリとを備え、前記第1ストリームデータを処理するストリームデータ処理計算機を含み、前記第1ストリームデータは、複数の入力情報を含み、前記複数のクエリは、第1クエリ、第2クエリ、及び第3クエリを含み、前記第1ストリームデータに基づいて、前記第1クエリが実行されることによって第1中間結果が出力され、前記第2クエリが実行されることによって第2中間結果が出力され、前記第1中間結果及び前記第2中間結果が前記第3クエリに入力され、前記第1中間結果及び前記第2中間結果に基づいて、前記第3クエリが実行されることによって前記結果が出力され、前記ストリームデータ処理システムは、前記第1クエリ、前記第2クエリ、及び前記第3クエリの操作内容を保持し、前記第1ストリームデータ、及び、前記第1クエリの操作内容に基づいて、前記第1ストリームデータのうち、前記第1中間結果に関与した第1関与入力情報を抽出し、前記第1ストリームデータ、及び、前記第2クエリの操作内容に基づいて、前記第1ストリームデータのうち、前記第2中間結果に関与した第2関与入力情報を抽出し、前記抽出された第1関与入力情報及び前記抽出された第2関与入力情報に基づいて、前記第1ストリームデータのうち、前記結果に関与した第3関与入力情報を抽出し、前記結果と、前記抽出された第3関与入力情報とを対応づけて保持することを特徴とする。
【発明の効果】
【0024】
本発明の一形態によれば、ストリームデータ処理の分析について、結果又は中間結果に関与した情報を取得することができる。したがって、出力された結果の原因を特定することができる。
【図面の簡単な説明】
【0025】
【図1】本発明の第1の実施形態のトレース機能を備えるストリームデータ処理システムの構成の一例を示すブロック図である。
【図2】本発明の第1の実施形態における連結クエリモデルの一例を示す説明図である。
【図3】本発明の第1の実施形態の入力情報及び分析シナリオの具体例を示す説明図である。
【図4】本発明の第1の実施形態の入力情報1及び入力情報2の一例を示す説明図である。
【図5】本発明の第1の実施形態の中間結果1及び中間結果2の一例を示す説明図である。
【図6】本発明の第1の実施形態のストリームデータ処理計算機が備えるトレース機能の処理について説明するフローチャートである。
【図7】本発明の第1の実施形態の集計・分析部が実行する処理を説明するフローチャートである。
【図8】本発明の第1の実施形態の関与入力情報抽出部が実行する処理を説明するフローチャートである。
【図9】本発明の第1の実施形態のクエリ2における関与入力情報抽出部の入出力の一例を示す説明図である。
【図10】本発明第1の実施形態の集計・分析部が、クエリ2におけるウィンドウオペレータに基づいて、処理対象のデータを抽出する処理の一例を示す説明図である。
【図11】本発明第1の実施形態の集計・分析部が、クエリ2における処理対象のデータから、出力を生成するために必要となる列を抽出する処理の一例を示す説明図である。
【図12】本発明第1の実施形態の集計・分析部が、クエリ2の出力を生成する処理の一例を示す説明図である。
【図13】本発明第1の実施形態の関与入力情報付加部が、クエリ2において実行する処理の一例を示す説明図である。
【図14】本発明の第1の実施形態のクエリ3における関与入力情報抽出部の入出力の一例を示す説明図である。
【図15】本発明の第1の実施形態の集計・分析部が、クエリ3におけるウィンドウオペレータに基づいて、処理対象のデータを抽出する処理の一例を示す説明図である。
【図16】本発明の第1の実施形態の関与入力情報抽出部が、クエリ3において実行する処理の一例を示す説明図である。
【図17】本発明の第1の実施形態の集計・分析部が、クエリ3の出力を生成する処理の一例を示す説明図である。
【図18】本発明の第1の実施形態の関与入力情報付加部が、クエリ3において実行する処理の一例を示す説明図である。
【図19】本発明の第1の実施形態のトレース情報記録部が実行する処理の一例を示す説明図である。
【図20】本発明の第1の実施形態の関与入力情報除去部が実行する処理の一例を示す説明図である。
【図21】本発明の第2の実施形態におけるリプレイ機能を備えるストリームデータ処理計算機の構成を説明するブロック図である。
【図22】本発明の第2の実施形態のストリームデータ処理計算機が、通常運用時に実行する処理を説明するフローチャートである。
【図23】本発明の第2の実施形態のストリームデータ処理計算機が、原因分析時に実行する処理を説明するフローチャートである。
【図24】本発明の第2の実施形態の関与入力情報復元部が実行する処理の一例を説明するフローチャートである。
【図25】本発明の第2の実施形態の集計・分析部から再現情報取得部に出力される情報の一例を示す説明図である。
【図26】本発明の第2の実施形態のCQL操作内容解析部から再現情報取得部に出力される情報の一例を示す説明図である。
【図27】本発明の第2の実施形態の関与入力情報復元部が、結果に関与したクエリ1の中間結果及びクエリ2の中間結果を抽出する処理の一例を示す説明図である。
【図28】本発明の第2の実施形態の関与入力情報復元部が、クエリ1の中間結果に関与した入力情報を抽出する処理の一例を示す説明図である。
【図29】本発明の第2の実施形態の関与入力情報復元部が、クエリ2の中間結果に関与した入力情報を抽出する処理の一例を示す説明図である。
【図30】本発明の第2の実施形態のリプレイ情報記録部の処理の一例を示す説明図である。
【発明を実施するための形態】
【0026】
本発明のストリーミング処理システムは、トレース機能とリプレイ機能の2つの機能を備える。まず、トレース機能について説明する。
【0027】
[第1の実施形態]
一以上のクエリから構成されるシナリオ分析において、トレース機能では、入力情報がストリームデータ処理システムに入力され、複数のクエリによってデータ処理が実行される過程で、結果又は中間結果に対して、当該結果又は中間結果に関与した入力情報が取得される。さらに、取得された各入力情報と結果又は中間結果とがそれぞれ紐付けされることによって、結果又は中間結果に関与した入力情報が、当該結果又は当該中間結果に付加される。
【0028】
これによって、結果又は中間結果に関与した入力情報を、クライアントに提供することができる。
【0029】
図1は、本発明の第1の実施形態のトレース機能を備えるストリームデータ処理システムの構成の一例を示すブロック図である。
【0030】
本発明の実施形態のストリームデータ処理システムは、データ送信計算機1100、ストリームデータ処理計算機1200、及び結果受信計算機1300を備える。
【0031】
データ送信計算機1100とストリームデータ処理計算機1200とはネットワーク4を介して互いに接続され、また、ストリームデータ処理計算機1200と結果受信計算機1300とはネットワーク5を介して互いに接続される。
【0032】
データ送信計算機1100は、ストリームデータを生成し、ストリームデータ処理計算機1200に生成されたストリームデータを送信する。ストリームデータの生成処理及び送信処理は、データ送信計算機1100が備えるプログラムによって実行されてもよいし、専用ハードウェアによって実行されてもよい。本実施形態では、データ送信計算機1100上で送信アプリケーションが実行される例について説明する。
【0033】
データ送信計算機1100は、CPU1110、DISK1120、及びメモリ1130を備える。
【0034】
CPU1110は、メモリ1130上に展開されたプログラムを実行する。
【0035】
DISK1120は、メモリ1130上に展開されたプログラムが利用するデータを格納する。
【0036】
メモリ1130は、CPU1110によって実行されるプログラム及び当該プログラムの実行に必要なデータを格納する。
【0037】
メモリ1130は、データ送信部1131及び接続部1132を含む。接続部1132は、ネットワーク4を介してストリームデータ処理計算機1200と接続する。データ送信部1131は、ネットワーク4を介してストリームデータ処理計算機1200に生成されたストリームデータを送信する。生成されるストリームデータは、例えば、DISK1120から読み出されてもよいし、プログラム内で生成されてもよい。具体的には、DISK1120に格納されたデータを時系列順に読み出すことによって、ストリームデータが生成する方法が考えられる。
【0038】
ストリームデータ処理計算機1200は、交通情報、株価情報等のストリームデータを受信し、受信したストリームデータを分析し、分析結果を結果受信計算機1300に送信する。
【0039】
ストリームデータ処理計算機1200は、CPU1210、DISK1220、及びメモリ1230を備える。ストリームデータ処理計算機1200は、例えば、ブレード型計算機システム、又はPCサーバなどの計算機システムであってもよい。
【0040】
CPU1210は、メモリ1230上に展開されたプログラムを実行する。
【0041】
DISK1220は、メモリ1230上のプログラムが利用するデータを格納する。具体的には、DISK1220は、トレース情報ファイル1221とCQL定義情報ファイル1222とを格納する。
【0042】
トレース情報ファイル1221は、中間結果と中間結果に関与した入力情報、又は結果と結果に関与した入力情報を格納するファイルである。CQL定義情報ファイル1222は、予め定義されたCQL定義情報を格納するファイルである。
【0043】
メモリ1230は、CPU1210によって実行されるプログラム及び当該プログラムの実行に必要なデータを格納する。具体的には、メモリ1230は、オペレーティングシステム1240、及びオペレーティングシステム1240上で動作するプログラムであるストリームデータ処理部1250を含む。
【0044】
ストリームデータ処理部1250は、データ送信計算機1100から受信したストリームデータを処理する。ストリームデータ処理部1250は、ストリームデータ受信部1251、クエリ処理部1252、及びストリームデータ送信部1253を備える。
【0045】
ストリームデータ受信部1251は、ネットワーク4を介して、データ送信計算機1100のデータ送信部1131からストリームデータを受信する。
【0046】
ストリームデータ送信部1253は、ネットワーク5を介して、クエリ処理部1252によって分析された結果を結果受信計算機1300に送信する。
【0047】
クエリ処理部1252は、受信したストリームデータを分析する。クエリ処理部1252は、集計・分析部1254、CQL登録部1255、CQL解析部1256及びトレース機能部1260を備える。
【0048】
集計・分析部1254は、CQL解析部1256から入力された指定のシナリオに従って、ストリームデータ受信部1251が受信したストリームデータを集計・分析する。また、集計・分析部1254は、任意のクエリに入力された入力情報と、任意のクエリから出力された出力情報とを関与入力情報抽出部1261に出力する。
【0049】
CQL登録部1255は、CQL定義情報ファイル1222からCQL定義情報を読み出し、読み出されたCQL定義情報をCQL解析部1256に出力する。
【0050】
CQL解析部1256は、CQL登録部1255から入力されたCQL定義情報を解析し、ストリーム、及びクエリの操作内容を定義する情報を集計・分析部1254に出力する。
【0051】
トレース機能部1260は、結果に関与した入力情報を特定する。トレース機能部1260は、関与入力情報抽出部1261、関与入力情報付加部1262、トレース情報記録部1263、及び関与入力情報除去部1264を備える。
【0052】
関与入力情報抽出部1261は、クエリ処理部1252においてストリームデータが処理されることによって、各クエリの出力結果に関与した入力情報を抽出する。具体的には、集計・分析部1254から入力された情報に基づいて、各クエリの出力結果に関与した入力情報を抽出する。なお、各クエリの出力結果は、中間結果と結果とを含む。
【0053】
関与入力情報付加部1262は、関与入力情報抽出部1261よって抽出された各クエリの出力結果に関与した入力情報を、それぞれ、各クエリの出力結果に付加する。各クエリの出力結果に関与した入力情報が付加された当該出力情報は、トレース情報記録部1263に出力される。
【0054】
トレース情報記録部1263は、クエリ処理部1252から出力される情報をトレース情報ファイル1221に格納する。
【0055】
関与入力情報除去部1264は、結果に付加されている入力情報を除去する。関与入力情報除去部1264は、入力情報が除去された結果をストリームデータ送信部1253に出力する。
【0056】
結果受信計算機1300は、ストリームデータ処理計算機1200によって分析された結果のストリームデータを受信し、受信したストリームデータを用いて各種所定の処理を実行する。ストリームデータの受信処理及び所定の処理は、結果受信計算機1300が備えるプログラムによって実行されてもよいし、専用ハードウェアによって実行されてもよい。
【0057】
結果受信計算機1300は、CPU1310、DISK1320、及びメモリ1330を備える。本実施形態では、結果受信計算機1300上で受信アプリケーションが実行される例について説明する。
【0058】
CPU1310は、メモリ1330上に展開されたプログラムを実行する。
【0059】
DISK1320は、メモリ1330上に展開されたプログラムが利用するデータを格納する。
【0060】
メモリ1330は、CPU1310によって実行されるプログラム及び当該プログラムの実行に必要なデータを格納する。メモリ1330は、ストリームデータ受信部及びアプリケーション実行部を含む。
【0061】
ストリームデータ受信部1331は、ネットワーク5を介して、ストリームデータ処理計算機1200からストリームデータを受信する。アプリケーション実行部1332は、受信したストリームデータを用いて各種所定の処理を実行する。
【0062】
所定の処理は、例えば、外部記憶装置(図示省略)への保存や、ディスプレイ装置(図示省略)への表示などである。
【0063】
なお、ネットワーク4及びネットワーク5は、イーサネット(登録商標)、光ファイバなどで接続されるローカルエリアネットワーク(LAN)、又はLANよりも低速なインターネットを含むワイドエリアネットワーク(WAN)であってもよい。
【0064】
また、ストリームデータの例としては、ファイナンシャルアプリケーションにおける株価配信情報、小売業におけるPOSデータ、交通情報システムにおけるプローブカー情報、及び計算機システム管理におけるエラーログなどが考えられる。
【0065】
図2は、本発明の第1の実施形態における連結クエリモデルの一例を示す説明図である。
【0066】
図2に示すクエリ連結モデルは、入力情報1(2201)及び入力情報2(2202)の入力、クエリ1(2101)、クエリ2(2102)及びクエリ3(2103)の複数クエリ、中間結果1(2203)及び中間結果2(2204)、並びに、結果(2205)から構成される。
【0067】
入力情報1(2201)は、任意のX1個(X1は整数)のストリームデータである。具体的には、入力情報1(2201)は、入力情報1−1〜1−X1を含む。入力情報2(2202)は、任意のX2個(X2は整数)のストリームデータである。具体的には、入力情報2(2202)は、入力情報2−1〜2−X2を含む。
【0068】
中間結果1(2203)は、クエリ1(2101)の出力結果であり、任意のN1個(N1は整数)のストリームデータである。具体的には、中間結果1(2203)は、中間結果1−1〜1−N1を含む。中間結果2(2204)は、クエリ2(2102)の出力結果であり、任意のN2個(N2は整数)のストリームデータである。具体的には、中間結果2(2204)は、中間結果2−1〜2−N2を含む。
【0069】
結果2205は、クエリ3(2103)の出力結果であり、任意のY個(Yは整数)のストリームデータである。具体的は、結果2205は、結果1〜Yを含む。
【0070】
以下では、図2に示す連結クエリモデルを例に説明する。なお、連結クエリモデルは、図2に示す例以外の場合、つまり、クエリの構成が変更された場合であっても、本発明のトレース機能における処理手順については、一般性を失わない。
【0071】
図3は、本発明の第1の実施形態の入力情報及び分析シナリオの具体例を示す説明図である。
【0072】
本実施形態では、ある研究センターにおいて、センサーを用いて、気温、湿度及び気圧の情報を取得し、気温又は湿度があるしきい値を超えた場合にはアラームを発生させ、アラーム発生の原因を特定する例について説明する。
【0073】
図3では、図2における入力情報1(2201)及び入力情報2(2202)のスキーマ、並びに、クエリ1、クエリ2及びクエリ3の処理内容を定義するCQL定義情報の一例を示す。
【0074】
入力情報1(2201)のスキーマのCQL定義情報3001は、図2における入力情報1(2201)のスキーマを定義する。具体的には、入力情報1(2201)は、「温度」を情報として持つ、任意のX1個(X1は整数)のストリームデータである。
【0075】
入力情報2(2202)のスキーマのCQL定義情報3002は、図2における入力情報2(2202)のスキーマを定義する。具体的には、入力情報2(2202)は、「湿度、気圧」を情報として持つ、任意のX2個(X2は整数)のストリームデータである。
【0076】
クエリ1のCQL定義情報3003は、「入力情報1(2201)のうち直前5つの入力情報(温度)に対する平均温度を算出」するシナリオであることを示す。
【0077】
クエリ2のCQL定義情報3004は、「入力情報2(2202)のうち直前5つの入力情報(湿度)に対する平均湿度を算出」するシナリオであることを示す。
【0078】
クエリ3のCQL定義情報3005は、「直前1つの入力情報(平均温度、平均湿度)に対して、平均温度が30℃以上又は湿度20%以上の結果が出力された場合、現時刻の平均温度と平均湿度とを出力」するシナリオであることを示す。
【0079】
図4は、本発明の第1の実施形態の入力情報1(2201)及び入力情報2(2202)の一例を示す説明図である。
【0080】
図4に示す例では、入力情報1(2201)は、時系列順に並べられたX1個のデータである。具体的には、入力情報1(2201)の各データは、時間と温度とを含む。図4に示す例では、時刻が「10:20」であり、温度が「22」であるデータが入力情報1(2201)に含まれることが分かる。
【0081】
また、入力情報2(2202)は、時系列順に並べられたX2個のデータである。具体的には、入力情報2(2202)の各データは、時間、湿度及び気圧を含む。図4に示す例では、時刻が「10:20」であり、湿度が「13」であり、気圧が「1024」であるデータが入力情報2(2202)に含まれることが分かる。
【0082】
図5は、本発明の第1の実施形態の中間結果1(2203)及び中間結果2(2204)の一例を示す説明図である。
【0083】
図5に示すように、クエリ1の出力結果である中間結果1(2203)は、N1個(N1は整数)のエントリを含むテーブル[観測時刻、平均温度]である。
【0084】
また、クエリ2の出力結果である中間結果2(2204)は、N2個(N2は整数)のエントリを含むテーブル[観測時刻、湿度、気圧]である。
【0085】
また、結果2205は、スキーマ(平均温度、平均湿度)を含むY個(Yは整数)のストリームデータである。
【0086】
図6は、本発明の第1の実施形態のストリームデータ処理計算機1200が備えるトレース機能の処理について説明するフローチャートである。
【0087】
ストリームデータ受信部1251が、データ送信計算機1100からストリームデータを受信する(ステップS601)。
【0088】
集計・分析部1254が、受信したストリームデータを用いてクエリを実行することによって、中間結果を生成する(ステップS602)。図2に示す例では、クエリ1(2101)が実行されることによって中間結果1(2203)が生成され、クエリ2(2102)が実行されることによって中間結果2(2204)が生成される。なお、集計・分析部1254が実行する処理の詳細は、図7を用いて後述する。
【0089】
集計・分析部1254は、生成された中間結果と、当該中間結果に関与した入力情報とを関与入力情報抽出部1261に出力する。
【0090】
関与入力情報抽出部1261は、集計・分析部1254から入力された情報に基づいて、中間結果に関与した入力情報を抽出する(ステップS603)。なお、関与入力情報抽出部1261が実行する処理の詳細は、図8を用いて後述する。
【0091】
関与入力情報抽出部1261は、中間結果と、抽出され、当該中間結果に関与した入力情報とを関与入力情報付加部1262に出力する。
【0092】
関与入力情報付加部1262は、関与入力情報抽出部1261から入力された情報に基づいて、中間結果に、当該中間結果に関与した入力情報を付加する(ステップS604)。つまり、中間結果と、当該中間結果に関与した入力情報とが紐付けされる。なお、ステップS604における処理の一例について、図13を用いて後述する。
【0093】
関与入力情報付加部1262は、中間結果に関与した入力情報が付加された当該中間結果をトレース情報記録部1263に出力する。なお、中間結果に関与した入力情報が付加された当該中間結果は、クエリから中間結果が出力される度にトレース情報記録部1263に出力されてもよいし、一定時間ごとに出力されてもよいし、一定のデータ量ごとに出力されてもよいし、最終的な結果が出力されるタイミングで出力されてもよい。
【0094】
次に、トレース情報記録部1263は、関与入力情報付加部1262から入力され、中間結果に関与した入力情報が付加された当該中間結果に対して、当該中間結果の原因分析を実行するか否かを判定する(ステップSS605)。当該判定は、例えば、DISK1120等に予め中間結果の原因分析を実行する旨を示すパラメータが設定されているか否かを判定することによって実行される。
【0095】
中間結果の原因分析を実行すると判定された場合、トレース情報記録部1263は、中間結果に関与した入力情報が付加された当該中間結果をトレース情報ファイル1221に格納し(ステップS606)、ステップS607に進む。
【0096】
中間結果の原因分析を実行しないと判定された場合、集計・分析部1254は、入力情報又は中間結果を用いてクエリを実行することによって、結果を生成する(ステップS607)。図2に示す例では、クエリ3(2103)が実行されることによって結果2205が生成される。
【0097】
集計・分析部1254は、生成された結果と、当該結果に関与した入力情報とを関与入力情報抽出部1261に出力する。
【0098】
関与入力情報抽出部1261は、集計・分析部1254から入力された情報に基づいて、結果に関与した入力情報を抽出する(ステップS608)。
【0099】
関与入力情報抽出部1261は、結果と、当該結果に関与した入力情報とを関与入力情報付加部1262に出力する。
【0100】
関与入力情報付加部1262は、関与入力情報抽出部1261から入力された情報に基づいて、結果に、当該結果に関与した入力情報を付加する(ステップS609)。つまり、結果と、当該結果に関与した入力情報とが紐付けされる。なお、ステップS609における処理の一例について、図18を用いて後述する。
【0101】
関与入力情報付加部1262は、結果に関与した入力情報が付加された当該結果をトレース情報記録部1263に出力する。なお、結果に関与した入力情報が付加された当該結果は、結果が出力される度にトレース情報記録部1263に出力されてもよいし、一定時間ごとに出力されてもよいし、一定のデータ量ごとに出力されてもよい。
【0102】
トレース情報記録部1263は、結果に関与した入力情報が付加された当該結果をトレース情報ファイル1221に格納する(ステップS610)。なお、ステップS610における処理の一例について、図19を用いて後述する。
【0103】
トレース情報記録部1263は、結果に関与した入力情報が付加された当該結果を関与入力情報除去部1264に出力する。
【0104】
関与入力情報除去部1264は、結果に関与した入力情報が付加された当該結果から、結果に関与した入力情報を除去する(ステップS611)。なお、ステップS611における処理の一例について、図20を用いて後述する。
【0105】
関与入力情報除去部1264は、結果に関与した入力情報が除去された当該結果をストリームデータ送信部1253に出力する。
【0106】
ストリームデータ送信部1253は、ネットワーク5を介して、結果に関与した入力情報が除去された当該結果を結果受信計算機1300に送信する(ステップS612)。
【0107】
なお、中間結果を出力する必要がある場合、中間結果に関与した入力情報が付加された当該中間結果が関与入力情報除去部1264に入力され、中間結果に関与した入力情報が除去される。さらに、ストリームデータ送信部1253は、中間結果に関与した入力情報が除去された当該中間結果を結果受信計算機1300に送信する。これによって、中間結果を出力することが可能となる。
【0108】
図7は、本発明の第1の実施形態の集計・分析部1254が実行する処理を説明するフローチャートである。
【0109】
集計・分析部1254は、CQL解析部1256から入力された情報を取得する(ステップS701)。例えば、集計・分析部1254は、各クエリの操作内容の情報を取得する。
【0110】
集計・分析部1254は、クエリへ入力される入力情報に対して、所定のウィンドオペレータに基づいて、処理対象となるデータを抽出する(ステップS702)。ここで、ウィンドオペレータは、例えば、入力情報のうち、三分間のデータを処理対象として指定するためのものである。すなわち、ストリームデータ処理システムでは、データが途切れることなく入力されるため、処理対象を特定する必要があり、ウィンドオペレータは当該処理対象を特定するためのものである。なお、ステップS702における処理の一例について、図10及び図15を用いて後述する。
【0111】
集計・分析部1254は、ウィンドオペレータを用いることによって抽出された処理対象のデータから、結果又は中間結果を生成するために必要となる列を抽出し、抽出された列を結果又は中間結果に関与する入力情報として生成する(ステップS703)。なお、ステップ703における処理の一例について、図11を用いて後述する。
【0112】
集計・分析部1254は、クエリの処理対象のデータを用いて結果又は中間結果を生成する(S704)。なお、ステップS704における処理の一例について、図12及び図17を用いて後述する。
【0113】
集計・分析部1254は、結果及び当該結果に関与した入力情報、又は、中間結果及び当該中間結果に関与した入力情報を、関与入力情報抽出部1261に出力する(ステップS705)。
【0114】
図8は、本発明の第1の実施形態の関与入力情報抽出部1261が実行する処理を説明するフローチャートである。
【0115】
関与入力情報抽出部1261は、集計・分析部1254から入力された情報を取得する(ステップS801)。具体的には、結果及び当該結果に関与した入力情報、又は、中間結果及び当該中間結果に関与した入力情報が入力される。なお、ステップS801における処理の一例について、図9を用いて後述する。
【0116】
関与入力情報抽出部1261は、取得された結果又は中間結果を出力するクエリ(以下、判定対象のクエリという)に他のクエリが結合しているか否かを判定する(ステップS802)。関与入力情報抽出部1261は、例えば、判定対象のクエリのCQL定義情報等を参照することによって、判定対象のクエリに他のクエリが結合しているか否かを判定する。
【0117】
図2に示す例では、クエリ3(2103)が判定対象のクエリである場合、クエリ3(2103)には、他のクエリ(クエリ1(2101)及びクエリ2(2102))が結合していると判定される。
【0118】
判定対象のクエリに他のクエリが結合していると判定された場合、関与入力情報抽出部1261は、他のクエリにおける処理対象のデータを、判定対象クエリから出力された結果又は中間結果に紐付けし(ステップS803)、ステップS804に進む。他のクエリにおける処理対象のデータが、判定対象のクエリから出力される結果又は中間結果に関与した入力情報となる。
【0119】
例えば、クエリ3(2103)が判定対象のクエリである場合、クエリ1(2101)の処理対象データとクエリ2(2102)の処理対象データとが結果2205に紐付けられる。なお、ステップS803における処理の一例について、図16を用いて後述する。
【0120】
判定対象のクエリに他のクエリが結合していないと判定された場合、関与入力情報抽出部1261は、結果及び当該結果に関与する入力情報、又は、中間結果及び当該中間結果に関与した入力情報を、関与入力情報付加部1262に出力する(ステップS804)。
【0121】
以下、トレース機能を備えるストリームデータ処理計算機1200の一連の処理の一例を示す。なお、図2に示す連結クエリモデルを例に説明する。
【0122】
図9は、本発明の第1の実施形態のクエリ2(2102)における関与入力情報抽出部1261の入出力の一例を示す説明図である。
【0123】
図9に示す例では、クエリ2(2102)の入力情報9001が集計・分析部1254に入力される。ここで、入力情報9001は、入力情報2(2202)と同一のものである。
【0124】
集計・分析部1254は、入力情報9001を用いて、クエリ2(2102)の出力9004を生成する。図9に示す例では、出力9004は、観測時刻13:20の時点における出力である。ここで、出力9004は、中間結果2(2204)と同一のものである。
【0125】
さらに、集計・分析部1254は、出力9004に関与した入力情報9005を生成する。その後、集計・分析部1254は、出力9004と入力情報9005とを関与入力情報抽出部1261に出力する。入力情報9005は、観測時刻13:20の時点における入力情報である。
【0126】
関与入力情報抽出部1261は、集計・分析部1254から入力された情報から、入力情報9005を抽出し、出力9004と入力情報9005とを、それぞれ、関与入力情報付加部1262に出力する。
【0127】
以下、集計・分析部1254が、出力9004及び入力情報9005を生成する処理の具体例を図10〜図12を用いて説明する。
【0128】
図10は、本発明の第1の実施形態の集計・分析部1254が、クエリ2(2102)におけるウィンドウオペレータに基づいて、処理対象のデータを抽出する処理の一例を示す説明図である。
【0129】
図10に示すように、集計・分析部1254は、クエリ2(2102)のCQL定義情報10001によって指定されたウィンドウに基づいて、入力情報9001から処理対象のデータ10003が抽出する。
【0130】
なお、集計・分析部1254は、抽出された処理対象のデータ10003を用いて、観測時刻13:20の時点における、平均湿度を算出する。具体的には、観測時刻13:20から直前5つの入力情報(湿度)から平均湿度が算出される。
【0131】
集計・分析部1254は、指定されたROWウィンドウオペレータによって、入力情報9001のうち、観測時刻13:00から直前の5つの入力情報(この場合、13:00,(15,1020)、13:05,(16,1015)、13:10,(16,1030)、13:15,(14,1014)、及び、13:20,(14,1024))を抽出し、抽出された入力情報から処理対象のデータ10003を生成する。処理対象のデータ10003は、具体的には、観測時刻、湿度及び気圧を含む5行3列のテーブルとして生成される。
【0132】
図11は、本発明の第1の実施形態の集計・分析部1254が、クエリ2(2102)における処理対象のデータ10003から、出力9004を生成するために必要となる列を抽出する処理の一例を示す説明図である。
【0133】
図11に示すように、集計・分析部1254は、クエリ2のCQL定義情報10001に基づいて、処理対象のデータ10003から、出力9004を生成するために必要となる列を抽出する。具体的には、出力9004に関与した入力情報9005が抽出される。
【0134】
図11に示す例では、出力9004を生成するために必要となる列として観測時刻と湿度とが指定されている。したがって、集計・分析部1254は、処理対象のデータ10003から、観測時刻及び湿度の列を抽出し、入力情報9005を生成する。具体的には、生成された入力情報9005は、観測時刻及び湿度を含む5行2列のテーブルとして生成される。
【0135】
以上の処理によって、集計・分析部1254は、クエリに入力された入力情報のうち、当該クエリの結果に関与した情報を抽出することができる。
【0136】
図12は、本発明の第1の実施形態の集計・分析部1254が、クエリ2(2102)の出力9004を生成する処理の一例を示す説明図である。
【0137】
図12に示すように、集計・分析部1254は、入力情報9005を用いて、クエリ2(2102)のCQL定義情報10001に指定される演算を実行することによって、クエリ2(2102)の出力9004を生成する。
【0138】
具体的には、入力情報9005は、[13:00,15]、[13:05,16]、[13:10,16]、[13:15,14]、及び[13:20,14]であり、クエリ2(2102)のシナリオでは、湿度の平均を算出する演算が指定されているため、出力9004は、[13:20、15]となる。
【0139】
以上が、集計・分析部1254が、出力9004及び入力情報9005を生成する処理の具体例である。
【0140】
図13は、本発明の第1の実施形態の関与入力情報付加部1262が、クエリ2(2102)において実行する処理の一例を示す説明図である。
【0141】
関与入力情報付加部1262は、出力9004に入力情報9005を付加することによって、クエリ2(2102)の中間結果2(2204)に関与した入力情報が付加された中間結果13004を生成する。
【0142】
なお、クエリ1(2101)についても、図9〜図13において説明した処理と同様の処理が実行される。
【0143】
図14は、本発明の第1の実施形態のクエリ3(2103)における関与入力情報抽出部1261の入出力の一例を示す説明図である。
【0144】
図14に示す例では、クエリ1(2101)から出力され、クエリ3(2103)に入力される情報14001と、クエリ2(2102)から出力され、クエリ3(2103)に入力される情報14002とが集計・分析部1254に入力される。ここで、情報14002は、中間結果13004と同一のものである。
【0145】
集計・分析部1254は、情報14001及び情報14002を用いて、クエリ3(2103)の出力14005を生成する。図14に示す例では、出力14005は、観測時刻13:20の時点における出力である。ここで、出力14005は、結果2205と同一のものである。
【0146】
さらに、集計・分析部1254は、出力14005に関与したクエリ1(2101)の入力情報及びクエリ2(2102)の入力情報を生成し、出力14005と、出力14005に関与したクエリ1(2101)の入力情報及びクエリ2(2102)の入力情報とを、それぞれ、関与入力情報抽出部1261に出力する。
【0147】
関与入力情報抽出部1261は、集計・分析部1254から入力され、出力14005に関与したクエリ1(2101)の入力情報及びクエリ2(2102)の入力情報から、出力14005に関与した入力情報14006を生成する。図14に示す例では、入力情報14006は、観測時刻13:20の時点における出力である。
【0148】
関与入力情報抽出部1261は、集計・分析部1254から入力された情報から、入力情報14006を抽出し、出力14005と入力情報14006とを、それぞれ、関与入力情報付加部1262に出力する。
【0149】
図15は、本発明の第1の実施形態の集計・分析部1254が、クエリ3(2103)におけるウィンドウオペレータに基づいて、処理対象のデータを抽出する処理の一例を示す説明図である。
【0150】
図15に示すように、集計・分析部1254は、クエリ3(2103)のCQL定義情報15001に指定されるウィンドウに基づいて、入力情報15002から処理対象のデータ15003を抽出する。なお、入力情報15002は、ストリームデータである。また、処理対象のデータ15003は、情報14001及び情報14002を含む。
【0151】
なお、クエリ3(2103)は、抽出された処理対象のデータ15003を用いて、平均温度が30℃以上、又は、湿度が20%以上である結果が出力された場合、現時刻の平均温度と平均湿度とを出力するシナリオである。
【0152】
集計・分析部1254は、指定されたROWウィンドウオペレータに基づいて、入力情報15002から、観測時刻13:20から直前の1つの入力情報(この場合、観測時刻13:20における情報)を抽出し、抽出された入力情報から処理対象のデータ15003を生成する。
【0153】
図16は、本発明の第1の実施形態の関与入力情報抽出部1261が、クエリ3(2103)において実行する処理の一例を示す説明図である。
【0154】
図16において、関与入力情報抽出部1261は、情報14001及び情報14002から、クエリ1(2101)の出力、つまり、情報14001に関与した入力情報16001と、クエリ2(2102)の出力、つまり、情報14002に関与した入力情報16002とを抽出し、入力情報16001と入力情報16002とを紐付けし、クエリ3の結果に関与した入力情報14006を生成する。
【0155】
図17は、本発明の第1の実施形態の集計・分析部1254が、クエリ3(2103)の出力14005を生成する処理の一例を示す説明図である。
【0156】
図17に示すように、集計・分析部1254は、処理対象のデータ17002を用いて、クエリ3(2103)のCQL定義情報15001に指定される演算を実行することによって、クエリ3(2103)の出力14005を生成する。
【0157】
具体的には、クエリ3(2103)のシナリオでは、平均温度が30℃以上、又は、湿度が20%以上である結果が出力された場合、現時刻の平均温度と平均湿度とを出力するシナリオであり、処理対象のデータ17002が、観測時刻13:20及び平均温度40℃、並びに、観測時刻13:20及び平均湿度15%であるため、クエリ3(2103)の出力14005は、[13:20,40,15]となる。
【0158】
図18は、本発明の第1の実施形態の関与入力情報付加部1262が、クエリ3(2103)において実行する処理の一例を示す説明図である。
【0159】
関与入力情報付加部1262は、出力14005に入力情報14006を付加することによって、クエリ3(2103)の結果2205に関与した入力情報が付加された結果18004を生成する。
【0160】
図19は、本発明の第1の実施形態のトレース情報記録部1263が実行する処理の一例を示す説明図である。
【0161】
トレース情報記録部1263は、関与入力情報付加部1262から入力され、結果18004をトレース情報ファイル1221に格納する。
【0162】
図20は、本発明の第1の実施形態の関与入力情報除去部1264が実行する処理の一例を示す説明図である。
【0163】
関与入力情報除去部1264は、結果18004から、当該結果18004に関与した入力情報(入力情報14006)を除去し、クエリ3の結果2205(出力14005)を生成する。
【0164】
本発明の第1の実施形態によれば、ストリームデータ処理において、出力された結果に関与した入力情報に関する情報を保持することが可能となり、結果の原因分析が可能となる。
【0165】
[第2の実施形態]
次に、リプレイ機能について説明する。一以上のクエリから構成されるシナリオ分析において、リプレイ機能では、ストリームデータ処理計算機21000(図21参照)が、過去に当該ストリームデータ処理計算機21000(図21参照)に入力された入力情報とCQL定義情報とのバックアップデータとして保持する。任意の過去の結果について原因を特定する場合に、入力情報のバックアップデータをストリームデータ処理計算機21000(図21参照)に再度入力することによって、原因を特定したい結果が出力された時点を再現する。さらに、ストリームデータ処理計算機21000(図21参照)は、原因を特定したい結果を出力するクエリの処理過程を遡ることによって、原因を特定したい結果に関与した入力情報を取得し、結果に関与した入力情報を、クライアントに提供する。
【0166】
リプレイ機能を備えるストリームデータ処理システムの構成は、トレース機能を備えるストリームデータ処理システムの構成と同一であるため説明を省略する。
【0167】
また、リプレイ機能を備えるストリームデータ処理システムにおけるデータ送信計算機1100及び結果受信計算機1300は、トレース機能を備えるストリームデータ処理システムのデータ送信計算機1100及び結果受信計算機1300と同一であるため説明を省略する。
【0168】
連結クエリモデルについては、図2を用い、入力情報及びクエリの処理内容は第1の実施形態と同一であるため説明を省略する。
【0169】
以下、第1の実施形態との差異を中心に説明する。
【0170】
図21は、本発明の第2の実施形態におけるリプレイ機能を備えるストリームデータ処理計算機21000を構成の説明するブロック図である。
【0171】
ストリームデータ処理計算機21000は、CPU21100、DISK21200、及びメモリ21300を備える。
【0172】
CPU21100は、メモリ21300上に展開されたプログラムを実行する。
【0173】
DISK21200は、メモリ21300上のプログラムが利用するデータを格納する。具体的には、DISK21200は、入力情報バックアップファイル21211、CQL定義情報バックアップファイル21212、CQL定義情報ファイル21213、及びリプレイ情報ファイル21220を格納する。
【0174】
入力情報バックアップファイル21211は、過去にストリームデータ処理計算機21000に入力された入力情報のバックアップデータを格納するファイルである。
【0175】
CQL定義情報バックアップファイル21212は、過去にストリームデータ処理計算機21000において使用されたCQL定義情報のバックアップデータを格納するファイルである。
【0176】
リプレイ情報ファイル21220は、過去に出力された結果に関与した入力情報を格納するファイルである。
【0177】
CQL定義情報ファイル21213は、予め定義されたCQL定義情報を格納する。
【0178】
メモリ21300は、CPU21100によって実行されるプログラム及び当該プログラムの実行に必要なデータを格納する。具体的には、メモリ21300は、オペレーティングシステム21310、並びに、オペレーティングシステム21310上で動作するプログラムであるストリームデータ処理部21320及びリプレイ機能部21330を含む。
【0179】
ストリームデータ処理部21320は、ストリームデータを処理する。さらに、ストリームデータ処理部21320は、ストリームデータ受信部21321、クエリ処理部21322、及びストリームデータ送信部21323を備える。
【0180】
ストリームデータ受信部21321は、データ送信計算機1100等の外部計算機から送信されるストリームデータを受信する。受信したストリームデータは、クエリ処理部21322及び入力情報記録部21331に出力される。また、ストリームデータ受信部21321は、入力情報記録部21331から入力された入力情報をクエリ処理部21322に出力する。
【0181】
ストリームデータ送信部21323は、クエリ処理部21322から出力される結果を結果受信計算機1300等の外部計算機に送信する。
【0182】
クエリ処理部21322は、受信したストリームデータを分析する。クエリ処理部21322は、集計・分析部21324、CQL登録部21326、及びCQL解析部21327を備える。
【0183】
集計・分析部21324は、CQL解析部21327から入力された指定のシナリオに従って、ストリームデータ受信部21321が受信したストリームデータを集計・分析する。また、集計・分析部21324は、ある過去の結果に関与した情報を再現するための処理を実行する。
【0184】
再現された、ある過去の結果に関与した情報には、入力情報、クエリによって得られる中間結果、及び結果が含まれる。
【0185】
CQL登録部21326は、CQL定義情報ファイル21213からCQL定義情報を読み出し、読み出されたCQL定義情報をCQL解析部21327に出力する。
【0186】
CQL解析部21327は、CQL登録部21326から入力されたCQL定義情報を解析し、ストリーム、及びクエリの操作内容を定義する情報を集計・分析部21324に出力する。
【0187】
リプレイ機能部21330は、過去に出力された結果に関与した入力情報を特定する。リプレイ機能部21330は、入力情報記録部21331、CQL情報記録部21332、再現情報取得部21333、CQL操作内容解析部21334、関与入力情報復元部21335、及びリプレイ情報記録部21336を備える。
【0188】
入力情報記録部21331は、二つの処理を実行する。
【0189】
一つ目の処理では、入力情報記録部21331は、ストリームデータ受信部21321から入力される入力情報を、入力情報バックアップファイル21211に格納する。これによって、ストリームデータ処理計算機21000に入力された入力情報のバックアップを取得することができる。
【0190】
二つ目の処理では、入力情報記録部21331は、ある過去の結果を再現する場合に、入力情報バックアップファイル21211に格納される入力情報のバックアップデータを読み出し、読み出されたバックアップデータをストリームデータ受信部21321に出力する。
【0191】
CQL情報記録部21332は、三つの処理を実行する。
【0192】
一つ目の処理では、CQL情報記録部21332は、クエリ処理部21322から入力されたシナリオ分析に用いられたCQL定義情報を、CQL定義情報バックアップファイル21212に格納する。これによって、CQL定義情報のバックアップを取得することができる。
【0193】
二つ目の処理では、CQL情報記録部21332は、ある過去の結果を再現する場合に、CQL定義情報バックアップファイル21212に格納されるCQL定義情報のバックアップデータを読み出し、読み出されたバックアップデータを集計・分析部21324に出力する。
【0194】
三つ目の処理では、CQL情報記録部21332は、ある過去の結果を再現する場合に、CQL定義情報バックアップファイル21212に格納されるCQL定義情報のバックアップデータを読み出し、読み出されたバックアップデータをCQL操作内容解析部21334に出力する。
【0195】
クエリ処理部21322は、入力情報記録部21331及びCQL情報記録部21332から入力された情報(入力情報バックアップファイル21211に格納される入力情報のバックアップデータとCQL定義情報バックアップファイル21212に格納されるCQL定義情報のバックアップデータ)を用いて、処理を実行することによって、再現された、ある過去の結果に関与した情報を生成することができる。再現された、ある過去の結果に関与した情報は、メモリ21300上に配置される。なお、再現された、ある過去の結果に関与した情報の一例について、図25を用いて後述する。
【0196】
再現情報取得部21333は、集計・分析部21324から、再現された、ある過去の結果に関与した情報を取得する。また、再現情報取得部21333は、再現された、ある過去の結果に関与した情報を関与入力情報復元部21335に出力する。
【0197】
CQL操作内容解析部21334は、CQL情報記録部21332から入力されたCQL定義情報に基づいて、CQLの操作内容を解析する。CQL操作内容解析部21334は、CQLの操作内容の解析結果を関与入力情報復元部21335に出力する。
【0198】
関与入力情報復元部21335は、再現情報取得部21333から入力され、再現された、ある過去の結果に関与した情報(入力情報、中間結果、及び結果)と、CQL操作内容解析部21334から入力されたCQLの操作内容の解析結果とに基づいて、ある過去の結果に関与した入力情報を復元し、結果と結果に関与した入力情報とを、リプレイ情報記録部21336に出力する。
【0199】
リプレイ情報記録部21336は、結果と結果に関与した入力情報とを、リプレイ情報ファイル21220に格納する。
【0200】
リプレイ機能を備えるストリームデータ処理計算機21000の具体的な処理手順について説明する。リプレイ機能には、ストリームデータ受信部21321が外部計算機から入力情報を受信し、通常のシナリオ分析を行う場合(通常運用時)と、過去の結果について原因分析する場合(原因分析時)とがある。まず、通常運用時について、説明する。
【0201】
図22は、本発明の第2の実施形態のストリームデータ処理計算機21000が、通常運用時に実行する処理を説明するフローチャートである。
【0202】
ストリームデータ受信部21321が、外部計算機(図示省略)からストリームデータを受信する(ステップS2201)。受信したストリームデータは、クエリ処理部21322と入力情報記録部21331とに、それぞれ、出力される。
【0203】
入力情報記録部21331は、ストリームデータ受信部21321から入力されたストリームデータを入力情報バックアップファイル21211に格納する(ステップS2202)。
【0204】
クエリ処理部21322は、ストリームデータ受信部21321からストリームデータを取得する(ステップS2203)。
【0205】
CQL情報記録部21332が、クエリ処理部21322から、使用されるCQL定義情報を取得し、CQL定義情報バックアップファイル21212に格納する(ステップS2204)。
【0206】
クエリ処理部21322は、ストリームデータ受信部21321から入力されたストリームデータを用いて、結果を生成する(ステップS2205)。生成された結果は、ストリームデータ送信部21323に出力される。
【0207】
ストリームデータ送信部21323は、クエリ処理部21322から入力された結果を外部計算機(図示省略)に送信する(ステップS2206)。
【0208】
次に、原因分析時における処理について、図23を用いて説明する。
【0209】
図23は、本発明の第2の実施形態のストリームデータ処理計算機21000が、原因分析時に実行する処理を説明するフローチャートである。
【0210】
原因分析の実行は、例えば、外部のユーザ(図示省略)からの指示によって開始される。
【0211】
入力情報記録部21331は、入力情報バックアップファイル21211から入力情報のバックアップデータを読み出し(ステップS2251)、読み出された入力情報のバックアップデータをストリームデータ受信部21321に出力する(ステップS2252)。
【0212】
CQL情報記録部21332は、CQL定義情報バックアップファイル21212からCQL定義情報のバックアップデータを読み出す(ステップS2253)。
【0213】
CQL情報記録部21332は、読み出されたCQL定義情報のバックアップデータをクエリ処理部21322に出力し(ステップS2254)、また、読み出されたCQL定義情報のバックアップデータをCQL操作内容解析部21334に出力する(ステップS2258)。
【0214】
集計・分析部21324は、入力された入力情報のバックアップデータ、及び入力されたCQL定義情報のバックアップデータを用いて、過去に出力された結果、中間結果及び入力情報を生成し、生成された各情報を再現情報取得部21333に出力する(ステップS2255)。生成された各情報の一例について、図25を用いて後述する。
【0215】
再現情報取得部21333は、集計・分析部21324から入力された情報(過去に出力された結果、中間結果及び入力情報)を取得し(ステップS2256)、取得された情報(過去に出力された結果、中間結果及び入力情報)を関与入力情報復元部21335に出力する(ステップS2257)。
【0216】
CQL操作内容解析部21334は、CQL情報記録部21332から入力されたCQL定義情報のバックアップデータに基づいて、CQL定義情報の操作内容を解析し(ステップS2259)、当該解析結果を関与入力情報復元部21335に出力する(ステップS2260)。なお、ステップS2259における処理一例について、図26を用いて後述する
関与入力情報復元部21335は、再現情報取得部21333から入力された、過去に出力された結果、中間結果及び入力情報、並びに、CQL操作内容解析部21334から入力されたCQL定義情報の操作内容に基づいて、過去に出力された結果に関与した入力情報を抽出する(ステップS2261)。過去に出力された結果と当該結果に関与した入力情報とは、リプレイ情報記録部21336に出力される。
【0217】
リプレイ情報記録部21336は、関与入力情報復元部21335から入力された、過去に出力された結果と当該結果に関与した入力情報とをリプレイ情報ファイル21220に格納する(ステップS2262)。ステップS2262における処理の一例について、図30を用いて後述する。
【0218】
図24は、本発明の第2の実施形態の関与入力情報復元部21335が実行する処理の一例を説明するフローチャートである。
【0219】
まず、再現情報取得部21333が、集計・分析部21324から入力された情報(過去に出力された結果、中間結果及び入力情報)を取得し(ステップS2301)、また、CQL操作内容解析部21334が、CQL情報記録部21332から入力されたCQL定義情報のバックアップデータを取得する(ステップ2302)。
【0220】
以下、再現情報取得部21333及びCQL操作内容解析部21334が取得する情報及び出力する情報について説明する。
【0221】
集計・分析部21324から入力された情報は、具体的には、入力情報1(2201)、入力情報2(2202)、中間結果1(2203)、中間結果2(2204)、及び結果2205である。なお、前述した情報は、集計・分析部21324によって再現された情報である。
【0222】
図25は、本発明の第2の実施形態の集計・分析部21324から再現情報取得部21333に出力される情報の一例を示す説明図である。
【0223】
集計・分析部21324から再現情報取得部21333に出力される情報は、入力情報1(2201)、入力情報2(2202)、中間結果1(2203)、中間結果2(2204)、及び結果2205を含む。
【0224】
図25に示す例では、入力情報1(2201)は、X1行のテーブル[観測時刻,温度]である。入力情報2(2202)は、X2行のテーブル[観測時刻,湿度,気圧]である。
【0225】
また、中間結果1(2203)は、N1行のテーブル[観測時刻,平均温度]である。中間結果2(2204)は、N2行のテーブル[観測時刻,平均湿度]である。
【0226】
また、結果2205は、Y行のテーブル[観測時刻,平均温度,平均湿度]である。
【0227】
CQL情報記録部21332から入力されたCQL定義情報のバックアップデータは、具体的には、CQL定義情報3003、CQL定義情報3004、及びCQL定義情報3005である。
【0228】
CQL操作内容解析部21334から出力されるCQL定義情報の操作内容は、具体的には、クエリ1(2101)のCQL定義情報の操作内容25001(図26参照)、クエリ2(2102)のCQL定義情報の操作内容25002(図26参照)、及びクエリ3(2103)のCQL定義情報の操作内容25003(図26参照)である。
【0229】
図26は、本発明の第2の実施形態のCQL操作内容解析部21334から再現情報取得部21333に出力される情報の一例を示す説明図である。
【0230】
図26に示すように、CQL操作内容解析部21334には、それぞれ、クエリ1(2101)のCQL定義情報3001、クエリ2(2102)のCQL定義情報3002、及びクエリ3(2103)のCQL定義情報3003が入力される。
【0231】
CQL操作内容解析部21334は、入力された各々のCQL定義情報3001〜3003を解析し、CQL定義情報の操作内容を出力する。
【0232】
図26に示す例では、CQL定義情報3001が解析され、クエリ1(2101)のCQL定義情報の操作内容25001が出力される。また、CQL定義情報3002が解析され、クエリ2(2102)のCQL定義情報の操作内容25002が出力される。また、CQL定義情報3003が解析され、クエリ3(2103)のCQL定義情報の操作内容25003が出力される。
【0233】
以上が、再現情報取得部21333及びCQL操作内容解析部21334が取得する情報及び出力する情報についての説明である。
【0234】
図24の説明に戻る。
【0235】
関与入力情報復元部21335は、再現情報取得部21333から入力された結果2205、中間結果1(2203)、及び中間結果2(2204)、並びに、CQL操作内容解析部21334から入力されたクエリ3(2103)のCQL定義情報の操作内容25003に基づいて、結果2205に関与した中間結果1(2203)、及び中間結果2(2204)を抽出する(ステップS2303)。なお、ステップS2303における処理の一例について、図27を用いて後述する。
【0236】
関与入力情報復元部21335は、再現情報取得部21333から入力された入力情報1(2201)、CQL操作内容解析部21334から入力されたクエリ1(2101)のCQL定義情報の操作内容25001、及びステップ2303において抽出された結果2205に関与した中間結果1(2203)に基づいて、結果2205に関与したクエリ1(2101)の入力情報を抽出する(ステップS2304)。なお、ステップS2304における処理の一例について、図28を用いて後述する。
【0237】
関与入力情報復元部21335は、再現情報取得部21333から入力された入力情報2(2202)、CQL操作内容解析部21334から入力されたクエリ2(2102)のCQL定義情報の操作内容25002、及びステップ2303において抽出された結果2205に関与した中間結果2(2204)に基づいて、結果2205に関与したクエリ2(2102)の入力情報を抽出する(ステップS2305)。なお、ステップS2305における処理の一例について、図29を用いて後述する。
【0238】
関与入力情報復元部21335は、結果2205、結果2205に関与したクエリ1(2101)の入力情報、及び結果2205に関与したクエリ2(2102)の入力情報をリプレイ情報記録部に出力する(ステップS2306)。
【0239】
以下、トレース機能を備えるストリームデータ処理計算機21000の一連の処理の一例を示す。なお、図2に示す連結クエリモデルを例に説明する。
【0240】
図27は、本発明の第2の実施形態の関与入力情報復元部21335が、結果2205に関与したクエリ1(2101)の中間結果及びクエリ2(2102)の中間結果を抽出する処理の一例を示す説明図である。
【0241】
図27に示すように、関与入力情報復元部21335には、再現情報取得部21333から、中間結果1(2203)、中間結果2(2204)及び結果2205が入力される。また、関与入力情報復元部21335には、CQL操作内容解析部21334から、クエリ3(2103)のCQL定義情報の操作内容25003が入力される。
【0242】
関与入力情報復元部21335は、入力された情報に基づいて、結果2205に関与したクエリ1(2101)の中間結果26007とクエリ2(2102)の中間結果26008とを抽出する。
【0243】
図28は、本発明の第2の実施形態の関与入力情報復元部21335が、クエリ1(2101)の中間結果26007に関与した入力情報を抽出する処理の一例を示す説明図である。
【0244】
図28に示すように、関与入力情報復元部21335には、再現情報取得部21333から、入力情報1(2201)が入力される。また、関与入力情報復元部21335には、CQL操作内容解析部21334から、クエリ1(2101)のCQL定義情報の操作内容25001が入力される。
【0245】
関与入力情報復元部21335は、入力された情報に基づいて、クエリ1(2101)の中間結果26007に関与した入力情報27007を抽出する。
【0246】
図29は、本発明の第2の実施形態の関与入力情報復元部21335が、クエリ2(2102)の中間結果26008に関与した入力情報を抽出する処理の一例を示す説明図である。
【0247】
図29に示すように、関与入力情報復元部21335には、再現情報取得部21333から、入力情報2(2202)が入力される。また、関与入力情報復元部21335には、CQL操作内容解析部21334から、クエリ2(2102)のCQL定義情報の操作内容25002が入力される。
【0248】
関与入力情報復元部21335は、入力された情報に基づいて、クエリ2(2102)の中間結果26008に関与した入力情報28007を抽出する。
【0249】
図30は、本発明の第2の実施形態のリプレイ情報記録部21336の処理の一例を示す説明図である。
【0250】
リプレイ情報記録部21336は、関与入力情報復元部21335から入力された結果2205、結果2205に関与した入力情報27007、及び結果2205に関与した入力情報28007を、DISK21200のリプレイ情報ファイル21220に格納する。
【0251】
本発明の第2の実施形態によれば、ストリームデータ処理計算機21000が、ストリームデータ処理計算機21000に入力された入力情報、及び、CQL定義情報を予め保持することによって、結果に関与した入力情報を特定することができるため、当該結果の原因を分析することが可能となる。
【0252】
本発明は、例えば、金融分野における株価の不正取引、及び計算機システム管理におけるエラーログの発生原因などの分野に適用した場合に有用である。
【符号の説明】
【0253】
1100 データ送信計算機
1110 CPU
1120 DISK
1130 メモリ
1131 データ送信部
1132 接続部
1200 ストリームデータ処理計算機
1210 CPU
1220 DISK
1221 トレース情報ファイル
1222 CQL定義情報ファイル
1230 メモリ
1240 オペレーティングシステム
1250 ストリームデータ処理部
1251 ストリームデータ受信部
1252 クエリ処理部
1253 ストリームデータ送信部
1254 集計・分析部
1255 CQL登録部
1256 CQL解析部
1260 トレース機能部
1261 関与入力情報抽出部
1262 関与入力情報付加部
1263 トレース情報記録部
1264 関与入力情報除去部
1300 結果受信計算機
1310 CPU
1320 DISK
1330 メモリ
1331 ストリームデータ受信部
1332 アプリケーション実行部
2101 クエリ1
2102 クエリ2
2103 クエリ3
2201 入力情報1
2202 入力情報2
2203 中間結果1
2204 中間結果2
2205 結果
3001 入力情報1のCQL定義情報
3002 入力情報2のCQL定義情報
3003 クエリ1のCQL定義情報
3004 クエリ2のCQL定義情報
3005 クエリ3のCQL定義情報
21000 ストリームデータ処理計算機
21100 CPU
21200 DISK
21211 入力情報バックアップファイル
21212 CQL定義情報バックアップファイル
21213 CQL定義情報ファイル
21220 リプレイ情報ファイル
21300 メモリ
21310 オペレーティングシステム
21320 ストリームデータ処理部
21321 ストリームデータ受信部
21322 クエリ処理部
21323 ストリームデータ送信部
21324 集計・分析部
21326 CQL登録部
21327 CQL解析部
21330 リプレイ機能部
21331 入力情報記録部
21332 CQL情報記録部
21333 再現情報取得部
21334 CQL操作内容解析部
21335 関与入力情報復元部
21336 リプレイ情報記録部

【特許請求の範囲】
【請求項1】
継続して到来する第1ストリームデータに対して、予め設定された複数のクエリを実行することによって、逐次結果を出力するストリームデータ処理システムであって、
ストリームデータ処理システムは、プロセッサと、前記プロセッサと接続されるメモリとを備え、前記第1ストリームデータを処理するストリームデータ処理計算機を含み、
前記第1ストリームデータは、複数の入力情報を含み、
前記複数のクエリは、第1クエリ、第2クエリ、及び第3クエリを含み、
前記第1ストリームデータに基づいて、前記第1クエリが実行されることによって第1中間結果が出力され、前記第2クエリが実行されることによって第2中間結果が出力され、
前記第1中間結果及び前記第2中間結果が前記第3クエリに入力され、
前記第1中間結果及び前記第2中間結果に基づいて、前記第3クエリが実行されることによって前記結果が出力され、
前記ストリームデータ処理システムは、
前記第1クエリ、前記第2クエリ、及び前記第3クエリの操作内容を保持し、
前記第1ストリームデータ、及び、前記第1クエリの操作内容に基づいて、前記第1ストリームデータのうち、前記第1中間結果に関与した第1関与入力情報を抽出し、
前記第1ストリームデータ、及び、前記第2クエリの操作内容に基づいて、前記第1ストリームデータのうち、前記第2中間結果に関与した第2関与入力情報を抽出し、
前記抽出された第1関与入力情報及び前記抽出された第2関与入力情報に基づいて、前記第1ストリームデータのうち、前記結果に関与した第3関与入力情報を抽出し、
前記結果と、前記抽出された第3関与入力情報とを対応づけて保持することを特徴とするストリームデータ処理システム。
【請求項2】
前記ストリームデータ処理システムは、前記各々のクエリの操作内容として、前記各々のクエリの操作内容を定義するCQL定義情報を保持し、
前記各々のクエリのCQL定義情報は、前記第1ストリームデータのうち、前記各々のクエリにおける処理対象である前記入力情報を抽出するためのウィンドウオペレータの指示を含み、
前記ストリームデータ処理システムは、前記CQL定義情報に基づいて、前記複数の入力情報のうち、前記結果に関与した、所定の数の入力情報のみを抽出することを特徴とする請求項1に記載のストリームデータ処理システム。
【請求項3】
前記第3関与入力情報を抽出する関与入力情報抽出部と、
前記抽出された第3関与入力情報を前記結果に付加する関与入力情報付加部と、
前記第3関与入力情報が付加された前記結果をトレース情報として保持するトレース情報記録部と、を備えることを特徴とする請求項2に記載のストリームデータ処理システム。
【請求項4】
前記入力情報は、複数のデータ列を含み、
前記各々のクエリのCQL定義情報は、さらに、前記抽出された入力情報のうち、前記各々のクエリにおいて実際に必要となるデータ列を抽出するための指示を含み、
前記関与入力情報抽出部は、
前記各々のクエリにおいて実際に必要となるデータ列を抽出するための指示に基づいて、前記入力情報のうち、前記第1中間結果に関与したデータ列を前記第1関与入力情報として抽出し、前記第2中間結果に関与したデータ列を前記第2関与入力情報として抽出し、及び、前記結果に関与したデータ列を前記第3関与入力情報として抽出することを特徴とする請求項3に記載のストリームデータ処理システム。
【請求項5】
前記関与入力情報付加部は、前記抽出された第1関与入力情報を前記第1中間結果に付加し、又は前記抽出された第2関与入力情報を前記第2中間結果に付加し、
前記トレース情報記録部は、前記第1関与入力情報が付加された第1中間結果、又は前記第2関与入力情報が付加された第2中間結果を前記トレース情報として保持することを特徴とする請求項4に記載のストリームデータ処理システム。
【請求項6】
前記ストリームデータ処理システムは、前記結果が出力される場合に、前記結果に付加された前記第3関与入力情報を除去し、前記第3関与入力情報が除去された結果を出力する関与入力情報除去部を備えることを特徴とする請求項3に記載のストリームデータ処理システム。
【請求項7】
過去に入力された前記第1ストリームデータを、第2ストリームデータとして保持する入力情報記録部と、
前記CQL定義情報を保持するCQL定義情報記録部と、
前記CQL定義情報記録部から取得されたCQL定義情報を解析するCQL操作内容解析部と、
前記第1ストリームデータに基づいて、前記各々のクエリを実行することによって前記結果を出力し、又は、前記入力情報記録部が保持する前記第2ストリームデータ及び前記CQL定義情報記録部が保持する前記CQL定義情報に基づいて、前記各々のクエリを実行することによって、前記結果、前記第1中間結果、及び前記第2中間結果を再現する、クエリ処理部と、
前記再現された結果、前記再現された第1中間結果、及び前記再現された第2中間結果を取得する再現情報取得部と、
前記CQL定義情報の解析結果、前記第2ストリームデータ、前記再現された結果、前記再現された第1中間結果、及び前記再現された第2中間結果に基づいて、前記第3関与入力情報を抽出する関与情報復元部と、
前記結果と、前記第3関与入力情報とを対応づけてリプレイ情報として保持するリプレイ情報記録部と、を備えることを特徴とする請求項2に記載のストリームデータ処理システム。
【請求項8】
前記入力情報は、複数のデータ列を含み、
前記各々のクエリのCQL定義情報は、さらに、前記抽出された入力情報のうち、前記各々のクエリにおいて実際に必要となるデータ列を抽出するための指示を含み、
前記関与情報復元部は、
前記各々のクエリにおける処理対象である入力情報、及び前記各々のクエリのCQL定義情報の解析結果に基づいて、前記入力情報のうち、前記第1中間結果に関与したデータ列を前記第1関与入力情報として抽出し、
前記各々のクエリにおける処理対象である入力情報、及び前記各々のクエリのCQL定義情報の解析結果に基づいて、前記入力情報のうち、前記第2中間結果に関与したデータ列を第2関与入力情報として抽出することを特徴とする請求項7に記載のストリームデータ処理システム。
【請求項9】
前記第1クエリのCQL定義情報の解析結果、前記第2クエリのCQL定義情報の解析結果、前記抽出された第1関与入力情報、及び前記抽出された第2関与入力情報に基づいて、前記入力情報のうち、前記結果に関与したデータ列を前記第3関与入力情報として抽出することを特徴とする請求項8に記載のストリームデータ処理システム。
【請求項10】
前記クエリ処理部は、
前記入力情報記録部から前記第2ストリームデータを取得し、
前記CQL操作内容解析部から前記CQL定義情報の解析結果を取得し、
前記取得された第2ストリームデータ及びCQL定義情報の解析結果に基づいて、前記結果、前記第1中間結果、及び前記第2中間結果を前記メモリ上に再現し、
再現情報取得部は、前記メモリ上に再現された、前記結果、前記第1中間結果、及び前記第2中間結果を取得することを特徴とする請求項7に記載のストリームデータ処理システム。
【請求項11】
継続して到来する第1ストリームデータに対して、予め設定された複数のクエリを実行することによって、逐次結果を出力するストリームデータ処理システムにおけるストリームデータ処理方法であって、
ストリームデータ処理システムは、プロセッサと、前記プロセッサと接続されるメモリとを備え、前記第1ストリームデータを処理するストリームデータ処理計算機を含み、
前記第1ストリームデータは、複数の入力情報を含み、
前記複数のクエリは、第1クエリ、第2クエリ、及び第3クエリを含み、
前記第1ストリームデータに基づいて、前記第1クエリが実行されることによって第1中間結果が出力され、前記第2クエリが実行されることによって第2中間結果が出力され、
前記第1中間結果及び前記第2中間結果が前記第3クエリに入力され、
前記第1中間結果及び前記第2中間結果に基づいて、前記第3クエリが実行されることによって前記結果が出力され、
前記方法は、
前記第1クエリ、前記第2クエリ、及び前記第3クエリの操作内容を保持するステップと、
前記第1ストリームデータ、及び、前記第1クエリの操作内容に基づいて、前記第1ストリームデータのうち、前記第1中間結果に関与した第1関与入力情報を抽出するステップと、
前記第1ストリームデータ、及び、前記第2クエリの操作内容に基づいて、前記第1ストリームデータのうち、前記第2中間結果に関与した第2関与入力情報を抽出するステップと、
前記抽出された第1関与入力情報及び前記抽出された第2関与入力情報に基づいて、前記第1ストリームデータのうち、前記結果に関与した第3関与入力情報を抽出するステップと、
前記結果と、前記抽出された第3関与入力情報とを対応づけて保持するステップと、を含むことを特徴とするストリームデータ処理方法。
【請求項12】
前記ストリームデータ処理システムは、前記各々のクエリの操作内容として、前記各々のクエリの操作内容を定義するCQL定義情報を保持し、
前記各々のクエリのCQL定義情報は、前記第1ストリームデータのうち、前記各々のクエリにおける処理対象である前記入力情報を抽出するためのウィンドウオペレータの指示を含み、
前記方法は、前記CQL定義情報に基づいて、前記複数の入力情報のうち、前記結果に関与した、所定の数の入力情報のみを抽出するステップを含むことを特徴とする請求項11に記載のストリームデータ処理方法。
【請求項13】
前記第3関与入力情報を抽出するステップと、
前記抽出された第3関与入力情報を前記結果に付加するステップと、
前記第3関与入力情報が付加された前記結果をトレース情報として保持するステップと、を含むことを特徴とする請求項12に記載のストリームデータ処理方法。
【請求項14】
前記各々のクエリを実行するステップと、
過去に入力された前記第1ストリームデータを、第2ストリームデータとして保持するステップと、
前記CQL定義情報を保持するステップと、
前記CQL定義情報を解析するステップと、
前記第2ストリームデータ及び前記CQL定義情報の解析結果に基づいて、前記結果、前記第1中間結果、及び前記第2中間結果を再現するステップと、
前記再現された結果、前記再現された第1中間結果、及び前記再現された第2中間結果を取得するステップと、
前記CQL定義情報の解析結果、前記第2ストリームデータ、前記再現された結果、前記再現された第1中間結果、及び前記再現された第2中間結果に基づいて、前記第3関与入力情報を抽出するステップと、
前記結果と、前記第3関与入力情報とを対応づけてリプレイ情報として保持するステップと、を含むことを特徴とする請求項12に記載のストリームデータ処理方法。
【請求項15】
継続して到来する第1ストリームデータに対して、予め設定された複数のクエリを実行することによって、逐次結果を出力するストリームデータ処理システムにおけるストリームデータ処理プログラムであって、
ストリームデータ処理システムは、プロセッサと、前記プロセッサと接続されるメモリとを備え、前記第1ストリームデータを処理するストリームデータ処理計算機を含み、
前記第1ストリームデータは、複数の入力情報を含み、
前記複数のクエリは、第1クエリ、第2クエリ、及び第3クエリを含み、
前記第1ストリームデータに基づいて、前記第1クエリが実行されることによって第1中間結果が出力され、前記第2クエリが実行されることによって第2中間結果が出力され、
前記第1中間結果及び前記第2中間結果が前記第3クエリに入力され、
前記第1中間結果及び前記第2中間結果に基づいて、前記第3クエリが実行されることによって前記結果が出力され、
前記プログラムは、
前記第1クエリ、前記第2クエリ、及び前記第3クエリの操作内容を保持する処理と、
前記第1ストリームデータ、及び、前記第1クエリの操作内容に基づいて、前記第1ストリームデータのうち、前記第1中間結果に関与した第1関与入力情報を抽出する処理と、
前記第1ストリームデータ、及び、前記第2クエリの操作内容に基づいて、前記第1ストリームデータのうち、前記第2中間結果に関与した第2関与入力情報を抽出する処理と、
前記抽出された第1関与入力情報及び前記抽出された第2関与入力情報に基づいて、前記第1ストリームデータのうち、前記結果に関与した第3関与入力情報を抽出する処理と、
前記結果と、前記抽出された第3関与入力情報とを対応づけて保持する処理と、を前記ストリームデータ処理計算機に実行させることを特徴とするストリームデータ処理プログラム。
【請求項16】
前記ストリームデータ処理システムは、前記各々のクエリの操作内容として、前記各々のクエリの操作内容を定義するCQL定義情報を保持し、
前記各々のクエリのCQL定義情報は、前記第1ストリームデータのうち、前記各々のクエリにおける処理対象である前記入力情報を抽出するためのウィンドウオペレータの指示を含み、
前記プログラムは、前記CQL定義情報に基づいて、前記複数の入力情報のうち、前記結果に関与した、所定の数の入力情報のみを抽出する処理を前記ストリームデータ処理計算機に実行させることを特徴とする請求項15に記載のストリームデータ処理プログラム。
【請求項17】
前記第3関与入力情報を抽出する処理と、
前記抽出された第3関与入力情報を前記結果に付加する処理と、
前記第3関与入力情報が付加された前記結果をトレース情報として保持する処理と、を前記ストリームデータ処理計算機に実行させることを特徴とする請求項16に記載のストリームデータ処理プログラム。
【請求項18】
過去に入力された前記第1ストリームデータを、第2ストリームデータとして保持する処理と、
前記CQL定義情報を保持する処理と、
前記CQL定義情報を解析する処理と、
前記第2ストリームデータ及び前記CQL定義情報の解析結果に基づいて、前記結果、前記第1中間結果、及び前記第2中間結果を再現する処理と、
前記再現された結果、前記再現された第1中間結果、及び前記再現された第2中間結果を取得する処理と、
前記CQL定義情報の解析結果、前記第2ストリームデータ、前記再現された結果、前記再現された第1中間結果、及び前記再現された第2中間結果に基づいて、前記第3関与入力情報を抽出する処理と、
前記結果と、前記第3関与入力情報とを対応づけてリプレイ情報として保持する処理と、を含むことを特徴とする請求項16に記載のストリームデータ処理プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate