"プロセッサとメモリとインターフェースを備えた計算機で、前記インターフェースで受信した入力データの異常を検知するストリームデータの異常検知方法であって、前記計算機は、前記入力データを受信する入力部と、前記入力データの異常を検知する異常検知部と、前記入力データの異常を検知するための指標を管理する指標管理部と、を有し、前記入力部が、前記インターフェースで受信した入力データを受け付ける第1のステップと、前記異常検知部が、前記受け付けた入力データと前記指標とを比較して、前記入力データの値と指標の差が所定の条件を満たしたときに前記入力データの異常を検知する第2のステップと、前記指標管理部が、前記指標を再度算出するか否かを判定する第3のステップと、前記指標管理部が、前記指標を再度算出すると判定したときに、前記入力データに基づいて新たな指標を再度算出し、算出した指標を前記指標に置き換える第4のステップと、を含み、前記第3のステップは、前記入力部が受け付けた入力データのうち、前記異常検知部で処理されていない未処理の入力データの量と、前記指標の再算出に要する演算時間と、予め設定された制約時間から前記指標の再算出の最大回数を算出する第5のステップと、前記指標の前回の算出後に受け付けた入力データの数に対応する所定の閾値を算出する第6のステップと、前記入力データの値と前記指標の差分を算出する第7のステップと、前記差分と前記入力データの数に応じた閾値を比較して、前記差分が前記閾値よりも大きいときに閾値の再算出を判定し、前記指標の再算出を実行する処理を前記再算出の最大回数となるまで実行する第8のステップと、前記新たに再算出された指標を前記指標に置き換える第9のステップと、を含むことを特徴とするストリームデータの異常検知方法。請求項1に記載のストリームデータの異常検知方法であって、前記第5のステップは、前記異常検知部で処理されていない未処理の入力データの量毎に、前記異常検知部での処理に要する処理時間を予め設定し、前記未処理の入力データの量に対応する処理時間と、前記指標の再算出に要する演算時間との和が、予め設定された制約時間以内となる再算出の最大回数を算出することを特徴とするストリームデータの異常検知方法。請求項1に記載のストリームデータの異常検知方法であって、前記第6のステップは、前記再算出の最大回数に基づいて、前記指標の再算出後に受信した入力データの数に応じた閾値を指標を再算出する判断基準として決定し、前記第7のステップは、前記差分として、前記入力データの値と前記指標の距離を算出し、当該距離の総和を未処理の入力データの数となるまで順次算出し、前記第8のステップは、前記第7のステップで、入力データ値と前記指標の距離の総和を順次算出する度に、前記距離の総和と前記入力データの数に応じた閾値とを比較して、前記距離の総和が前記閾値よりも大きいときに閾値の再算出を判定することを特徴とするストリームデータの異常検知方法。請求項1に記載のストリームデータの異常検知方法であって、前記指標算出部が、前記指標を置き換える際に、過去の指標を蓄積する第10のステップをさらに含み、前記第8のステップは、前記指標の再算出を実行する処理を前記再算出の最大回数となるまで実行した後に、前記差分が現在の前記指標よりも小さくなる前記過去の指標を新たな指標とすることを特徴とするストリームデータに対する異常検知方法。請求項1に記載のストリームデータの異常検知方法であって、前記入力部は、前記入力データを保持するキューを有し、前記第3のステップは、前記入力データの量を未処理の前記入力データを収めたキューの容量から取得することを特徴とするストリームデータの異常検知方法。プロセッサとメモリとインターフェースを備えた計算機と、前記インターフェースで受信した入力データの異常を検知するストリームデータの異常検知装置であって、前記計算機は、前記入力データを受信する入力部と、前記入力データの異常を検知する異常検知部と、前記入力データの異常を検知するための指標を算出する指標管理部と、を備え、前記入力部は、前記インターフェースで受信した入力データを受け付け、前記異常検知部は、前記入力部が受け付けた入力データと前記指標とを比較して、前記入力データの値と指標の差が所定の条件を満たしたときに前記入力データの異常を検知し、前記指標管理部は、前記指標を再度算出するか否かを判定する指標算出判断部と、前記指標を再度算出すると判定したときに、前記入力データに基づいて新たな指標を再度算出し、算出した指標を前記指標に置き換える指標算出部と、を有し、前記指標算出判断部は、前記入力部が受け付けた入力データのうち、前記異常検知部で処理されていない未処理の入力データの量と、前記指標の再算出に要する演算時間と、予め設定された制約時間から前記指標の再算出の最大回数を算出し、前記指標の前回の算出後に受け付けた入力データの数に対応する所定の閾値を算出し、前記入力データの値と前記指標の差分を算出し、前記差分と前記入力データの数に応じた閾値を比較して、前記差分が前記閾値よりも大きいときに閾値の再算出を判定し、前記指標の再算出を実行する処理を前記再算出の最大回数となるまで実行し、前記新たに再算出された指標を前記指標に置き換えることを特徴とするストリームデータの異常検知装置。請求項6に記載のストリームデータの異常検知装置であって、前記指標算出判断部は、前記異常検知部で処理されていない未処理の入力データの量毎に、前記異常検知部での処理に要する処理時間を予め設定し、前記未処理の入力データの量に対応する処理時間と、前記指標の再算出に要する演算時間との和が、予め設定された制約時間以内となる再算出の最大回数を算出することを特徴とするストリームデータの異常検知装置。請求項6に記載のストリームデータの異常検知装置であって、前記指標算出判断部は、前記再算出の最大回数に基づいて、前記指標の再算出後に受信した入力データの数に応じた閾値を指標を再算出する判断基準として決定し、前記差分として、前記入力データの値と前記指標の距離を算出し、当該距離の総和を未処理の入力データの数となるまで順次算出し、入力データ値と前記指標の距離の総和を順次算出する度に、前記距離の総和と前記入力データの数に応じた閾値とを比較して、前記距離の総和が前記閾値よりも大きいときに閾値の再算出を判定することを特徴とするストリームデータの異常検知装置。請求項6に記載のストリームデータの異常検知装置であって、前記指標算出部は、過去の指標を蓄積し、前記指標の再算出を実行する処理を前記再算出の最大回数となるまで実行した後に、前記差分が現在の前記指標よりも小さくなる前記過去の指標を新たな指標とすることを特徴とするストリームデータに対する異常検知処理装置。請求項6に記載のストリームデータの異常検知装置であって、前記入力部は、前記入力データを保持するキューを有し、前記指標算出判断部は、前記入力データの量を未処理の前記入力データを収めたキューの容量から取得することを特徴とするストリームデータの異常検知処理装置。ストリームデータに対する異常検知処理においては、データが増加した場合に、データの到着ごとに検知に用いる指標例えば主成分分析における主成分を再算出した場合、莫大な演算量が必要となり、ストリームデータ処理のリアルタイム性が維持できなくなる。ここで、特許文献1では、選択可能な処理方式は事前に演算時間と精度が全て評価されていることが前提であり、異常検知手法のように到着するデータを実際に処理しなければ精度が評価できない場合には適用できない、という問題がある。そこで、特許文献2の方法を特許文献1のリアルタイム維持方法に適用することを検討した場合、指標の再算出が必要か否かを判定するタイミングが、一定数のデータが到着するたびに1回としており、その判定に用いる再算出すべき指標算出用の閾値が固定であるため、再算出を行う回数が多くなりすぎてストリームデータ処理のリアルタイム性を維持できない恐れがある、という問題がある。すなわち、到着したデータ数が閾値となる度に指標の再算出の判定を行うため、ストリームデータのデータ量が急増した場合には、指標の再算出のために計算機のリソースを消費してしまい、この結果、ストリームデータ処理のレイテンシが増大する、という問題があった。本発明の目的は、上記の問題点を解決し、ストリームデータ処理においてリアルタイム性を維持しながら精度の高い異常検知手法が実行可能な異常検知方法、および装置を提供することにある。本発明は、プロセッサとメモリとインターフェースを備えた計算機で、前記インターフェースで受信した入力データの異常を検知するストリームデータの異常検知方法であって、前記計算機は、前記入力データを受信する入力部と、前記入力データの異常を検知する異常検知部と、前記入力データの異常を検知するための指標を管理する指標管理部と、を有し、前記入力部が、前記インターフェースで受信した入力データを受け付ける第1のステップと、前記異常検知部が、前記受け付けた入力データと前記指標とを比較して、前記入力データの値と指標の差が所定の条件を満たしたときに前記入力データの異常を検知する第2のステップと、前記指標管理部が、前記指標を再度算出するか否かを判定する第3のステップと、前記指標管理部が、前記指標を再度算出すると判定したときに、前記入力データに基づいて新たな指標を再度算出し、算出した指標を前記指標に置き換える第4のステップと、を含み、前記第3のステップは、前記入力部が受け付けた入力データのうち、前記異常検知部で処理されていない未処理の入力データの量と、前記指標の再算出に要する演算時間と、予め設定された制約時間から前記指標の再算出の最大回数を算出する第5のステップと、前記指標の前回の算出後に受け付けた入力データの数に対応する所定の閾値を算出する第6のステップと、前記入力データの値と前記指標の差分を算出する第7のステップと、前記差分と前記入力データの数に応じた閾値を比較して、前記差分が前記閾値よりも大きいときに閾値の再算出を判定し、前記指標の再算出を実行する処理を前記再算出の最大回数となるまで実行する第8のステップと、前記新たに再算出された指標を前記指標に置き換える第9のステップと、を含む。本発明によれば、入力データの量と制約時間に応じて異常検知の指標を再算出するタイミングを動的に変更することができる。これにより、ストリームデータ処理系の全体でリアルタイム性を維持しながら、入力データに対する異常検知の精度を兼ね備えたストリームデータ処理技術を提供できる。以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図面において、同一の部材には原則として同一の符号を付し、同一符号の繰り返しての説明は省略する。また、本実施形態において、ストリームデータ処理、すなわち入力されるストリームデータに対するクエリ処理を実行する処理サーバを構成する計算機などが実行するプログラムを、機能、手段、部等と呼ぶ場合がある。例えば、実行方式決定プログラムの機能を、実行方式決定機能、実行方式決定手段、実行方式決定部などである。<第1実施形態>まず、図1および図2を用いて、第1の実施形態に係るストリームデータ処理を実行する計算機システムの基本構成を説明する。図1は、ストリームデータ処理を行う計算機システムの一例を示すブロック図である。図1に示すように、ストリームデータ処理を実行する計算機システムでは、ネットワーク104にストリームデータ処理サーバ100と計算機101、102、103が接続されている。ストリームデータ処理サーバ100は、ネットワーク104を介して、データソース107を出力する計算機102からデータ108を受け取る。ストリームデータ処理サーバ100で処理した実行結果110を計算機103上の結果利用アプリケーション109に送信する。また、計算機101上では、ストリームデータ処理を実行するためのクエリをストリームデータ処理サーバ100に登録するため、クエリ登録コマンド実行インターフェース105が実行される。これらの計算機101、102、103の任意の2つ、3つを1つの計算機で構成することもできるし、ストリームデータ処理サーバ100に統合することもできる。図2は、ストリームデータ処理サーバ100の一例を示すブロック図である。図2に示すように、ストリームデータ処理サーバ100は、記憶部であるメモリ202、処理部である中央処理部CentralProcessingUnit:CPU201、ネットワークインタフェースInterface:I/F204、記憶装置であるストレージ203、およびそれらを結合するバス205によって構成される。メモリ202上に、ストリームデータ処理の内容を定義するストリームデータ処理システム206を格納する。ストリームデータ処理システム206は、後で詳述するようにCPU201によって解釈実行可能な実行イメージである。図2に示すように、ストリームデータ処理サーバ100を構成する計算機は、インターフェース部であるネットワークI/F204を介して外部のネットワーク104に接続される。なお、ストリームデータ処理サーバ100を構成する計算機は1個に限らず複数であっても良いが、ここでは1個の計算機構成を図示説明する。ネットワーク104に接続された計算機101上で実行される、クエリ登録コマンド実行インターフェース105を介して、ユーザによって定義されたクエリ106図1参照を、ストリームデータ処理サーバ100が受取る。ストリームデータ処理サーバ100のストリームデータ処理システム206は、このクエリ106の定義に従ってストリームデータ処理を実行可能なクエリグラフを自身の内部に構成する。この後、ネットワーク104に接続された計算機102上で実行されるデータソース107によって送信されるデータ108を、ストリームデータ処理サーバ100が受取る。ストリームデータ処理サーバ100は、内部のクエリグラフに従ってデータを処理し、実行結果出力データ110を生成し、計算機103上で実行される結果利用アプリケーション109に送信する。ストレージ203は、ストリームデータ処理システム206の他、一度受取ったクエリ106を保存する。ストリームデータ処理システム206は、起動時にストレージ203からこのクエリ106の定義をロードし、クエリグラフを構成することも可能である。ここで説明した本実施形態のストリームデータ処理サーバの構成は一例であり、計算機は1個である必要はなく、複数の計算機で構成しても良いし、計算機の処理部であるCPU201は、同一計算機上の二つのプロセッサで構成しても良いし、更にその二つのプロセッサは一つのマルチコアCPUにおける二つの計算コアであっても構わない。本明細書において、サーバは、少なくとも処理部と記憶部とインターフェース部を備えておれば、どのような構成を取っても良い。図3は、本発明の実施形態を示し、ストリームデータ処理システムの機能要素を示すブロック図である。図3は、第1の実施形態に係るストリームデータ処理システムの異常検知方法を実行するソフトウェアの機能ブロック構成を示す図である。なお、同図において、太線のブロックは、ストリームデータ処理サーバ100の処理部であるCPU201で実行される各種のソフトウェアの機能を示す。また、図中細線のブロックはソフトウェアの実行の際に、メモリ202上等に保持される各種のデータの保存領域を模式的に示している。図3において、ストリームデータ処理システム206は、入力データ108を受信する入力データ受信部301、異常検知の内容が記載されたクエリ106を受信するクエリ受付解析部307、入力データ108に対してクエリ106に記載された異常検知を行う異常検知部302、異常検知の実行結果110をI/F204からネットワーク104へ出力する出力データ送信部304を備える。なお、本明細書において、便宜上、入力データ受信部301と出力データ送信部304を総称してインターフェース部と呼ぶ場合があるが、このインターフェース部は、図2のインターフェース部と同一物としても良いが、同一のものである必要はなく、好適にはストリームデータ処理サーバ100上で実行されるストリームデータ処理システム206自身の機能的なインターフェース部とすることができる。ここで、異常検知部302は入力データ108の異常検知に用いる検知指標303を保持する。さらに、キュー305は、入力データ受信部301で入力されたストリームデータ処理システム206の未処理のデータを保持する。加えて、ストリームデータ処理システム206は、入力データ受信部301で受信した入力データ108の量と受信時刻及び要求処理時間、キュー305に蓄積された未処理のデータ量や、出力データ送信部304が実行結果110を送信した時刻を取得する実行結果取得部306を備え、検知指標303の算出を管理する指標算出管理部310を備える。なお、キュー305に保持される未処理のデータ量は、キュー305に保持されている入力データ108の容量や、入力データ108の数として求めることができる。ここで、指標算出管理部310は、実行結果取得部306から入力データ108の量ごとの異常検知部302の処理時間と、検知指標303の算出に必要な処理時間を保持する処理時間情報316と、検知指標303の算出後に到着したデータの距離の統計情報である乖離度317を保存する指標情報保存部315を備える。そして、指標算出管理部310は、現在のキュー305の容量と処理時間情報316から検知指標303の算出可能回数を判定する算出回数判定部311を備える。指標算出管理部310は、さらに、キュー305の容量と算出可能回数、乖離度317から検知指標303の再算出を行う基準を判定する再算出基準判定部312と、再算出の基準に従い入力データ108と現在の検知指標303の距離を測定し、再算出をするか否かを判定する指標算出判断部313と、指標算出判断部313の判定結果に従って検知指標303を算出する指標算出部314と、を備える。図2に示したCPU201は、ストリームデータ処理システム206を構成する各機能部のプログラムに従って動作することによって、所定の機能を実現する機能部として動作する。例えば、CPU201は、異常検知プログラムに従って処理を実行することで異常検知部302として機能する。他のプログラムについても同様である。さらに、CPU201は、各プログラムが実行する複数の処理のそれぞれを実現する機能部としても動作する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。ストリームデータ処理システム206の各機能を実現するプログラム、テーブル等の情報は、ストレージ203や不揮発性半導体メモリ、ハードディスクドライブ、SSDSolidStateDrive等の記憶デバイス、または、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。次に図4を用いて、本実施形態のストリームデータ処理システム206の異常検知部302における異常検知手法の一例を説明する。図4では、複数の入力データ108の値をx軸とy軸の2軸の平面上の点401~404として表示している。この中で斜線の点例えば点401が検知指標303の算出に用いた入力データ108の値を示す点である。黒い点402は全ての斜線の点の平均値であり、この黒い点402が複数の入力データ108から算出した検知指標303となる。そして、点403、404が、検知指標303を算出した後に、ストリームデータ処理サーバ100へ新規に到着した入力データ108である。このとき、ストリームデータ処理システム206は、新規の入力データである点403は、検知指標303である点402とのユークリッド距離が短いため、異常と判定しない。つまり、入力データの点403と検知指標の点402のユークリッド距離が、所定の異常判定閾値以下である場合、ストリームデータ処理システム206の異常検知部は正常な入力データであると判定する。一方、新規の入力データである点404は、検知指標である点402とのユークリッド距離が長いため、ストリームデータ処理システム206の異常検知部302は異常と判定する。つまり、新たな入力データの点404と、検知指標の点402のユークリッド距離が、所定の異常判定閾値を超える場合、ストリームデータ処理システム206の異常検知部302は点404の新たな入力データ108の値が異常であると判定する。ここで、入力データ108の異常を検知するための検知指標303を算出する処理は、予め定められた過去N点例えばN=10の入力データ108の平均値を算出する処理となる。このように、異常検知部302は、検知指標303と入力データ108の値の距離が異常判定閾値を超えていれば、入力データ108が異常であることを検知する。異常検知部302は、入力データ108の異常を検知すると、出力データ送信部304に入力データ108の異常検知を示す実行結果110を出力する。なお、本実施形態では、異常検知部302が、入力データ108と検知指標303のユークリッド距離と、所定の異常判定閾値を比較して入力データ108の異常を検知する例を示すが、異常検知部302は、入力データ108の値と検知指標303の差が所定の条件を満たしたときに入力データ108の異常を検知するものであればよく、図4に示す異常検知手法に限定されるものではない。また、上記では、入力データ108の異常を検知すると実行結果110を外部の計算機へ送信する例を示したが、ストリームデータ処理サーバ100に出力装置を備える場合では、当該出力装置に実行結果を出力するようにしても良い。続いて、図5A~図5Eを用いて本実施形態のストリームデータ処理における、現在のキュー305の容量と処理時間情報316から指標の算出可能回数を判定する算出回数判定部311の処理を説明する。図5Eは、指標算出管理部310の指標情報保存部315の処理時間情報316の一例を示すブロック図である。処理時間情報316は、異常検知処理の時間を保持する異常検知処理時間500と、検知指標303の算出に必要な時間を保持する指標算出処理時間530と、データ量と処理時間と検知指標303の算出回数の関係を保持する処理時間テーブル540と、処理時間の要求値を保持する要求情報550と、を含む。図5Aは単位時間当たりの入力データ108のデータ量ごとに異常検知部302の処理に要する時間500の一例である。異常検知処理時間500は、単位時間当たりの入力データ量501と、異常検知部302が入力データ量を処理するのに要する処理時間502によって1つのエントリが構成される。異常検知処理時間500は、データ量ごとにエントリ511~515のようにデータ量501と処理時間502がそれぞれ格納されている。異常検知処理時間500は、異常検知部302が、入力データ108を処理した数501と異常検知処理に要した時間を処理時間502に格納する。あるいは、データ量501毎に初期値として所定の値を処理時間502に設定してもよいし、データ量501毎に処理時間502を設定してもよい。なお、入力データ108の処理時間は、入力データ受信部301で受信した時刻から異常検知部302で処理が終了した時刻の差分である。図5Bは検知指標303の再算出に必要な指標算出処理時間530の一例である。指標算出処理時間530は、指標520ごとに検知指標303を再度算出するのに必要な演算時間521が格納されている。図示では、例えば指標520がaの場合、演算時間が3msecである。指標算出処理時間530は、指標520と演算時間521は1つであってもよいし、2つ以上であってもよい。指標算出処理時間530は、指標算出部314が、指標520に対応する検知指標303を実際に再算出したときの時間が演算時間521に格納される。あるいは、指標520毎に初期値として所定の値を演算時間521に設定してもよい。あるいは、ストリームデータ処理サーバ100の計算機リソースが動的に変更可能な場合は、計算機リソース量に応じて、検知指標303の再算出に要する時間の予測値を演算時間521に格納しても良い。図5Cは、異常検知処理時間500に指標520の検知指標303例えば、aを算出したときの全体の処理時間を、入力データ量501と指標520の算出回数541~546毎に算出した処理時間テーブル540である。図5Cの処理時間テーブル540では、算出回数=0~5のときの検知指標303の算出時間と、異常検知の処理時間502の和が、全体の処理時間541~546として格納されている例を示した。なお、算出回0~5は、入力データ108の量やストリームデータ処理サーバ100の性能などに応じて適宜設定される値で、0~5に限定されるものではない。図5Cにおいて、算出回数=0のときの処理時間541は、検知指標303の算出を行わない場合であり、この場合は、図5Aに示した異常検知処理に要した処理時間502となる。算出回数=1のときの処理時間542は、検知指標303aの算出を1回3msec行った場合であり、この場合は、図5Aに示した異常検知処理に要した処理時間502に、検知指標303の算出の演算時間521=3msecを加算した値となる。処理時間543~546も同様であり、処理時間546では、算出回数=5のときで、検知指標303aの算出を5回行った場合であり、この場合は、図5Aに示した異常検知処理に要した処理時間502に、検知指標303の算出の演算時間521=3msec×5=15msecを加算した値となる。図5Dは、異常検知と検知指標303の再算出を含めたストリームデータ処理の要求処理時間と、データ量の関係を設定する要求情報550の一例である。要求情報550は、入力データ108の量を格納するデータ量551と、データ量を処理する制限時間として設定された要求処理時間552から構成される。本実施形態では、データ量を所定値例えば、10とし、要求処理時間552を入力データ受信部301で計算機101または102から受け付ける場合を示す。要求処理時間552は、計算機101等から入力することができる。図示の例では、入力データ108の数が10のときに、異常検知処理と検知指標303の再算出を、要求処理時間552に設定された8msec以内で完了することを示す。なお、ストリームデータ処理システム206は、実際に処理するデータ量とデータ量551の比から、実際のデータ量に応じた要求処理時間を演算する。例えば、入力データ108の量が20であれば、要求処理時間552=8×2=16msecとする。なお、要求処理時間552を外部の計算機101等から入力する例を示したが、予め設定した制約時間を要求処理時間552としてもよい。あるいは、ストリームデータ処理サーバ100の計算機リソースを動的に変更可能な場合には、計算機リソースの量に応じて要求処理時間を動的に変更するようにしても良い。上記図5A~図5Dの各情報から、ストリームデータ処理システム206の算出回数判定部311は、入力データ108の量と要求処理時間552から検知指標303の算出回数を判定する。例えば入力データ108の量が10、要求処理時間552が8msecの場合、算出回数判定部311は処理時間テーブル540を参照し、データ量501=10の行で全体の処理時間541~546が8msec以下となる最大の回数を取得する。図5Cの処理時間テーブル540の例では、データ量501=10で処理時間が8msec以下の最大値は処理時間543=7msecの2回であるので算出回数判定部311は検知指標303の最大の算出回数mmaxを2回と判定する。続いて、図6~図8を用いて入力データ108の量、検知指標303の最大の算出回数mmax、乖離度317から、検知指標303の再算出を決定するための基準を判定する再算出基準判定部312の処理を説明する。図6は、検知指標303の算出後に到着したデータとの距離の統計情報である乖離度317の一例である。乖離度317は、検知指標303の算出後に受信したデータ数i601と、検知指標303であるデータの平均値から到着したデータへのベクトルの値を合計したベクトルの大きさの分散σ602から各エントリ611~615が構成される。図6の例では、全てのデータ数iについてエントリを作成せずに、データ数iが予め設定した値である5以上615であれば、ひとつのエントリにまとめてもよい。なお、乖離度317は、再算出基準判定部312が算出する。続いて図7は、再算出基準判定部312が再算出の基準を導出するフローチャートである。まず、再算出基準判定部312は入力データ数Nと最大算出回数mmaxを算出回数判定部311から受け付ける701。最大算出回数mmaxは上述のように、算出回数判定部311が、要求処理時間552で処理時間テーブル540から検索した検知指標303の最大の算出回数である。また、入力データ数Nは、キュー305に格納された入力データ108で、異常検知部302の処理が未処理の入力データ108の数または量バイト数名等である。続いて、再算出基準判定部312は、ステップ702~704の処理を、乖離度317のデータ数i601まで繰り返して閾値ε_iを算出する。つまり、乖離度317のエントリの数だけ処理を繰り返す。ステップ703では、再算出基準判定部312が、次式の関係を元に、入力データ数Nと最大算出回数mmaxから、検知指標算出後のデータ数i毎に乖離度317の分散σ611~615に乗じる定数を算出する703。この定数はNi×mmaxといった単純な式によって導出してもよいし、それ以外の式であってもよい。そして、再算出基準判定部312は次の式1によりデータ数i毎の閾値ε_iを算出する。ε_i=N/i×mmax×σ.........1上記の手順により、乖離度317の全てのデータ数i毎に、検知指標303を再算出する基準となる閾値ε_iを算出する。図7のフローチャートは、再算出基準判定部312が乖離度317の全てのエントリについて上記1式の演算が終了するまで繰り返される。図8は、図7の処理によって算出された再算出の基準319の一例である。再算出の基準319は、乖離度317と同様のデータ数i810と、データ数i毎の閾値ε_i820からひとつのエントリが構成される。図8の例では、N=10、mmax=2の場合に[N/i×mmax]の式で基準を導出した例である。再算出基準判定部312は、検知指標算出後のデータ数iごとに再算出の基準である閾値ε_iを、エントリ801~805のように算出した。なお、再算出の基準319は、メモリ202に保持しておく。図9は本実施形態のストリームデータ処理システム206の指標算出判断部313および指標算出部314による、検知指標303の再算出の判定および再算出の処理の一例を示すフローチャートである。最初に、指標算出判断部313が、N個の入力データ108を受け付ける901。続いて、指標算出判断部313は、ステップ902で、前回の検知指標303の算出後に受け付けたデータ量iを0、検知指標303の再算出回数mを0と設定し、全てのデータ通番K=1~Nについて以下のステップ903~907を繰り返す902、908。まず、指標算出判断部313は、データ通番Kのデータを加えてから、現在使用中の検知指標303γと、前回の検知指標γを算出後に受け付けたデータ全ての距離|Σv|を算出する903。ここで述べた距離とは、検知指標303としている入力データ108の平均値と、個々のデータを結ぶベクトルを全てのデータについて算出し、全てのベクトル値を合算した値を長さとしてもよいし、他の方法で算出してもよい。ステップ904で指標算出判断部313は、算出された全てのデータの距離|Σv|が再算出の基準となる閾値εiより大きいか否かを判定する。全てのデータの距離|Σv|が閾値εiよりも大きい場合にはステップ906へ進む。一方、全てのデータの距離|Σv|が閾値εi以下の場合にはステップ905へ進む。算出されたデータの距離|Σv|が閾値εiより大きいステップ906では、指標算出判断部313が、検知指標303の再算出後のデータ量iに1を加算して、次のデータの処理に移る。一方、算出された|Σv|が閾値ε_i以下の場合は、指標算出判断部313が、再算出回数mが最大算出回数mmaxより大きいか否かを判定する905。再算出回数mが最大算出回数mmaxより大きい場合、指標算出判断部313はステップ906で検知指標303の再算出からのデータ量iに1を加算してから次のデータの処理に移る。一方、再算出回数mが最大算出回数mmax以下の場合、指標算出判断部313はステップ907で指標算出部314に検知指標303の再算出を指令する。指標算出部314は新たな検知指標303γを再算出し、再算出回数mに1を加え、再算出からのデータ量iを0として次のデータの処理に進む906。指標算出判断部313は、N個の全てのデータについて上記処理が終わると処理を終了する909。続いて、図10Aおよび図10Bを用いて入力データ108に対する検知指標303の再算出判定結果と、出力される検知指標303の一例を説明する。図10A,図10Bでは、データ数Nは10、最大算出回数mmaxは2とし、再算出の基準である閾値ε_iは図8の値を与えられていた例を示す。図10Aは入力データ108の一例である。この例において、入力データ108は、データ数i1001と、x軸上の値1002およびy軸上の値1003からひとつのエントリが構成され、エントリ1010~1019の10個のデータで入力データ108が構成された例である。図10Bは入力データ108に対して指標算出判断部313および指標算出部314によって図9の処理が行われた結果、出力された再算出の判定結果および検知指標303とその途中結果である。図10Bは、距離|Σv|を算出するためのデータの連番1100と、当該データ108のx軸上での検知指標303との距離1101、y軸上での検知指標303との距離1102、検知指標303の再算出後のデータ全てのx軸上での検知指標との距離の合計1103、y軸上での検知指標との距離の合計1104、算出された距離|Σv|1105、再算出の基準となる閾値ε_iおよび最大算出回数mmaxにより判定された再算出判定結果1106、再算出された検知指標のx軸上の値1107、同じく検知指標のy軸上の値1108で構成される。図10Bでは、図10Aのエントリ1010~1019に対応してエントリ1110~1119の10個の結果が出力される。例えば、図10Aに示した入力データのエントリ1010i=1、x=2.8、y=4.9に対しては、その時点の検知指標303の値は、図10Bのエントリ1110でx軸の値1107がx=3.0で、y軸の値1108がy=5.0である。したがって、図10Aのエントリ1010の入力データ108と、図10Bのエントリ1110の検知指標303のx軸上の距離1101、y軸上の距離1102はそれぞれ-0.2、-0.1となる。そして、再算出後直後であるため、再算出後のデータ全てのx軸上の指標との距離の合計1103、y軸上の指標との距離の合計1104はそのままそれぞれ-0.2、-0.1となる。その結果、距離|Σv|1105は0.22となる。この場合、再算出後の1番目のデータであるため、K=1となり、図8のエントリ801で閾値ε_1は10.0であるため、再算出の必要はないと判定され、次のデータに対しても指標の値はx=3.0、y=5.0をそのまま使用する。図10Aにおいて、続いての入力データであるエントリ1011は、x=0.2、y=1.1であるため、図10Bのエントリ1111で示すように、x軸上の検知指標との距離1101、y軸上の検知指標との距離1102はそれぞれ-2.8、-3.9となる。このエントリ1111の値を前のエントリ1110のデータ分と加算し、再算出後のデータ全てのx軸上の指標との距離の合計1103、y軸上の指標との距離の合計1104は、それぞれ-3.0、-4.0となる。この結果、エントリ1111の距離|Σv|1105は5.00となる。これは、ε_2である図8のエントリ802の閾値ε_2=4.5より大きいため、指標算出判断部313は、検知指標303の再算出の必要があると判定する。この結果、指標算出部314が、x=2.7、y=4.6を新たな検知指標303として算出し、次のデータを処理する。このように入力データ108の処理を続け、図10Aの9番目のデータであるエントリ1018を処理するとき、図10Bのエントリ1118における距離|Σv|1105は1.02となる。これは図8においてε_5であるエントリ805の閾値0.5よりも大きくなっているが、2番目のデータの処理結果1111および4番目のデータの処理結果1113にて既に2回の検知指標303の再算出を行っているため、これ以上の算出ができないと判定される。上記の手順で得られた検知指標303を用いて、異常検知部302は入力データ108に対して異常検知を行う。以上詳述した、第1の実施形態のストリームデータ処理システムによれば、ストリームデータ処理サーバ100が受信する入力データ108のデータ量を元に、検知指標303の再算出回数および再算出基準を判定して、適切なタイミングで異常検知の指標を再算出することができ、ストリームデータ処理システム206のリアルタイム性を確保しながら、高い精度での異常検知が可能となる。<実施形態2>続いて、第2の実施形態として、検知指標303の再算出ができない場合に、過去の指標を利用するストリームデータ処理システムを説明する。なお、本第2実施形態の説明に当たり、前記第1の実施形態の説明と同一の構成または処理については、説明を省略する。本第2実施形態のストリームデータ処理サーバ100が利用される計算機環境の構成、及びストリームデータ処理サーバの構成は図1、図2のものと同じであるのでここでは説明を省略することとする。図11は、第2の実施形態に係るストリームデータ処理システム206の異常検知処理を実行するソフトウェアの機能ブロック構成を示す図である。図11において301~307および311、312、314、316、317は、前記第1実施形態の図3の説明と同一であるため、ここでは説明を省略する。第2の実施形態では、これらに加えて、指標情報保存部315が過去に算出した検知指標303を過去指標318として保持している。そして、指標算出判断部313は第1の実施形態で述べた機能に加えて、検知指標の最大再算出回数を超えて再算出が必要と判断された場合、過去指標318についても距離|Σv|を評価し、現在使用中の検知指標303よりも距離|Σv|が小さくなる指標が見つかった場合、その指標を検知指標303として採用する機能を有する。続いて、図12は本実施形態のストリームデータ処理システム206の指標算出判断部313および指標算出部314による、検知指標の再算出の判定および再算出の処理を示すフローチャートである。図12において、ステップ901~904、906~909は前記第1実施形態の図9での説明と同一であるため、説明を省略する。ステップ905において、再算出回数mが最大算出回数mmaxより大きい場合、指標算出判断部313はステップ910で、過去指標318から過去の指標を取得する。そして、指標算出判断部313は、過去指標318のそれぞれについて入力データ108との距離|Σv|を評価する。指標算出判断部313は、評価した中に現在の検知指標303の距離|Σv|よりも小さい値過去指標γpが存在するか否かを判定する。指標算出判断部313は、現在の検知指標303の距離|Σv|よりも小さい値が無かった場合910N、再算出からのデータ量iに1を加算して906次のデータの処理に移る。一方、指標算出判断部313は、現在の検知指標303の距離|Σv|よりも小さい過去指標γpが有った場合910Y、検知指標303をこの過去指標γpに変更し、再算出からのデータ量iを0として次のデータの処理に進む911。図13Aは過去指標318の一例である。過去指標318は、検知指標の識別子を格納する指標3181と、検知指標のx軸の値であるXave3182と、検知指標のy軸の値であるYave3183からひとつのエントリが構成される。図示の例では、エントリ1301~1306が記録されている。ここで、前記第1実施形態に示した図10Aが入力データ108として与えられており、データ数Nは10、最大算出回数mmaxは2とし、再算出の基準ε_iは前記第1実施形態の図8のものを与えられたとする。前記第1実施形態と同様の条件で指標算出判断部313および指標算出部314によって図12の処理が行われた結果、出力された再算出の判定結果および検知指標303とその途中結果が図14に示すエントリ1110~1117および1120、1121である。図14は、図10Bと同様に、再算出の判定結果および検知指標303とその途中結果である。図14において、8番目までのエントリ1110~1117は図10Bの説明と同一であるため省略する。図10Aにおいて、9番目のデータであるエントリ1018を処理するとき、図14において、対応するエントリ1120の距離|Σv|1105は1.02となる。この|Σv|は図8に示した閾値ε_5であるエントリ805の0.5よりも大きくなっている。ここで、検知指標303の再算出は、図14において、2番目のデータの処理結果であるエントリ1111および4番目のデータの処理結果であるエントリ1113にて2回の再算出を行っているため、これ以上の再算出はできないと判定される。そこで、過去指標318のエントリ1301~1306に対してそれぞれ距離|Σv|を算出する処理を行った結果、図13Bのエントリ1311~1316が得られる。図13Bは、図13Aの各エントリ1301~1306の過去指標318で、入力データ108との距離|Σv|3184を求めたもので、エントリ1311~1316が、図13Aのエントリ1301~1306に対応する。このとき、図13Aのエントリ1304の過去指標4に対しては現在の指標よりも距離|Σv|が1.02図14のエントリ1120からエントリ1314の0.58と小さくなったため、過去指標318の値であるx=3.0、y=5.0を検知指標303として置き換える1120。以上詳述した、第2の実施形態のストリームデータ処理システム206によれば、ストリームデータ処理サーバ100が受信するデータ量を元に、検知指標の指標再算出回数および再算出基準を判定して、適切なタイミングで指標を再算出および過去指標の利用をすることができ、リアルタイム性を確保しながら、より高い精度での異常検知が可能となる。上述の通り本発明の種々の実施形態について説明してきたが、本発明はこれらの実施形態に限定されるものではなく、様々な変形例が含まれうることは言うまでもない。上述した実施形態は本発明のより良い理解のために説明したものであり、本発明はそれに限定されるもので無い。また、上述した各実施形態の構成、機能、処理等は、それらの一部又は全部を主体として説明したソフトウェア構成のみならず、専用のハードウェア構成、あるいはそれらを共用した構成として実現できることは言うまでもない。"