図1は、本発明が適用された時系列分析システムの構成の一例を示すブロック図である。本実施例1の時系列分析システムは、センサを用いて実世界の観測値を収集して時系列のデータ(時系列データ)として送信するセンサシステム10と、時系列データに対する検索クエリを発行し、検索結果を受け付ける分析端末101と、時系列データの管理や分析処理を行う時系列分析装置200と、後述する各種時系列データを蓄積する時系列データストア106や時系列分析部102を格納するストレージ装置201から構成される。
時系列分析装置200は、プロセッサ205と、メモリ206と、センサ用通信インタフェース202と、端末用通信インタフェース203と、ディスクインタフェース204とを有する。
データ管理機能105と、ヒストグラム生成機能104及び分析機能103を有する時系列分析部102のプログラムは、ストレージ装置201からメモリ206にロードされ、プロセッサ205で実行される。
時系列分析装置200は、センサ用通信インタフェース202を介してセンサシステム10から時系列データを受け取り、データ管理機能105によりディスクインタフェース204を介してストレージ装置に時系列データを蓄積する。センサシステム10は、複数のセンサを備えて時系列データを生成する。
また、時系列分析部102のヒストグラム生成機能104により時系列データからヒストグラムを生成し、データ管理機能105によりディスクインタフェース204を介してストレージ装置にヒストグラムを蓄積する。
時系列分析装置200はまた、端末用通信インタフェース203を介して分析端末101からヒストグラムまたは時系列データに対する検索クエリを受け付け、ヒストグラム生成機能104及びデータ管理機能105によりヒストグラムを検索または合成して分析端末101に応答する。時系列分析装置200はまた、ヒストグラム生成機能104を利用する分析機能103により、寿命予測、特異点検知などの各種分析処理を行う。時系列分析部102及び分析機能103と、ヒストグラム生成機能104とデータ管理機能105の各機能部はプログラムとしてメモリ206にロードされる。
プロセッサ205は、各機能部のプログラムに従って処理することによって、所定の機能を提供する機能部として稼働する。例えば、プロセッサ205は、時系列分析プログラムに従って処理することで時系列分析部102として機能する。他のプログラムについても同様である。さらに、プロセッサ205は、各プログラムが実行する複数の処理のそれぞれの機能を提供する機能部としても稼働する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
また、時系列分析装置100の各機能を実現するプログラム、テーブル等の情報は、ストレージ装置201や不揮発性半導体メモリ、ハードディスクドライブ、SSD(Solid State Drive)等の記憶デバイス、または、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
図2を用いて本発明の時系列分析部102の構成について説明する。時系列分析部102は、分析機能103、ヒストグラム生成機能104、データ管理機能105、時系列データストア106から構成される。
時系列データストア106は、時系列分析部102が扱うデータを格納するストレージ領域であり、地物集合データ107、地物データ108、センサデータ109、時系列データ110、区間データ111、部分ヒストグラムデータ112、設定パラメタ124及び状態データ125を格納する。なお、本実施例1では、時系列分析装置100に接続されたストレージ装置201に時系列データストア106を格納する例を示したが、ネットワークを介して時系列分析装置100に接続されたストレージ装置に時系列データストア106を格納しても良い。
時系列分析部102のデータ管理機能105は、時系列データストア106に格納されたデータの登録や更新または検索を含む管理機能を提供する。そして、データ管理機能105は、地物集合データ107と、地物データ108およびセンサデータ109を管理する地物管理機能113と、時系列データ110を管理する時系列管理機能114と、区間データ111を管理する区間管理機能115と、部分ヒストグラムデータ112を管理するヒストグラム管理機能116とから構成される。
ヒストグラム生成機能104は、時系列データ110から区間データ111および部分ヒストグラムデータ112を生成する部分区間ヒストグラム生成機能119と、分析端末101からの検索要求を受け付け、部分ヒストグラムデータ112から検索対象区間のヒストグラムを生成する区間ヒストグラム生成機能120と、地物データ108および時系列データ110から地物集合データ107および部分ヒストグラムデータ112を生成する部分地物ヒストグラム生成機能117と、分析端末101からの検索要求を受け付け、部分ヒストグラムデータ112から検索対象の地物集合のヒストグラムを生成する地物ヒストグラム生成機能118から構成される。
分析機能103は、ヒストグラム生成機能104を用いた分析アルゴリズムのライブラリであり、たとえば振動応力のヒストグラムと金属疲労曲線から金属疲労寿命を予測する寿命予測機能121、ヒストグラムと最新観測値の類似度を比較することによる特異点検知機能122から構成される。
図19は、部分区間ヒストグラム生成機能119及び区間ヒストグラム生成機能120の機能を示すブロック図である。図19を用いて、ヒストグラム生成機能104における部分区間ヒストグラム生成機能119、区間ヒストグラム生成機能120の詳細な機能ブロックと、周辺の機能ブロックとの関係および処理の流れについて説明する。
部分区間ヒストグラム生成機能119は、区間登録インタフェース1905と、時系列登録インタフェース1906とを有し、区間登録機能1917、単位区間ヒストグラム生成機能1916、類似区間結合機能1913、非類似区間分解機能1915、ヒストグラム加減算機能1914から構成される。
区間ヒストグラム生成機能120は、区間毎ヒストグラム合成インタフェース1901と、状態毎ヒストグラム合成インタフェース1902とを有し、状態毎ヒストグラム合成機能1907と、区間毎ヒストグラム合成機能1908と、時系列ヒストグラム生成機能1910と、ヒストグラム加減算機能1914から構成される。ヒストグラム加減算機能1914は部分区間ヒストグラム生成機能119および区間ヒストグラム生成機能120で共通に使用される。このため、ヒストグラム加減算機能1914は、部分区間ヒストグラム生成機能119または区間ヒストグラム生成機能120の何れか一方に存在すれば良い。
また図2の分析機能103における特異点検知機能122は、特異点検知インタフェース1903を有し、寿命予測機能121は寿命予測インタフェース1904を有し、それぞれ状態毎ヒストグラム合成機能1907を利用する。
時系列登録インタフェース1906は、時刻と観測値の集合からなる時系列データ110を引数として受け取り、時系列データ110を時系列データストア106に登録することを目的とするインタフェースである。
センサシステム10が時系列登録インタフェース1906を呼び出した場合、時系列登録機能1918は、時系列データ110を時系列データストア106に格納する。そして、単位区間ヒストグラム生成機能1916は、あらかじめ与えられた設定パラメタ124に格納される区間長の単位区間毎に部分ヒストグラムデータ112を、時系列ヒストグラム生成機能1910で生成し、区間データ111が格納されるヒストグラム管理テーブル(ヒストグラム管理情報)1911に生成した部分ヒストグラムデータ112を格納する。
時系列ヒストグラム生成機能1910は、時系列データ110を利用してヒストグラムを生成する機能を有する。時系列登録機能1918はさらに、生成した単位区間のヒストグラムのうち連続する類似区間を結合し、ヒストグラム管理テーブル1911に格納する。
なお、区間の結合に対応するヒストグラムの結合は、ヒストグラム加減算機能1914で実施する。
区間登録インタフェース1905は、開始時刻と終了時刻と、発電状態、休止状態などの状態ラベルから構成される区間データ111の集合を引数として受け取り、区間データ111を時系列データストア106に登録することを目的とするインタフェースである。
センサシステム10若しくは分析端末101が区間登録インタフェース1905を呼び出した場合、区間登録機能1917は区間データ111を状態区間管理テーブル1912に格納し、非類似区間分解機能1915が区間データ111を類似度の異なる複数の区間に分割し、ヒストグラム管理テーブル1911に格納する。
区間毎ヒストグラム合成インタフェース1901は、開始時刻と終了時刻で表される区間の集合を引数として受け取り、入力された区間集合のヒストグラムを時系列データストア106の部分ヒストグラムデータ112から取得することを目的とするインタフェースである。
分析端末101が区間毎ヒストグラム合成インタフェース1901を呼び出した場合、区間毎ヒストグラム合成機能1908は、ヒストグラム管理テーブル1911から入力された区間集合について各区間の時間範囲が包含される区間の部分ヒストグラムデータ112を取得し、ヒストグラム加減算機能1914を利用してヒストグラムを合成する。時系列分析装置100は、合成したヒストグラムを、指定された区間の部分ヒストグラムとして分析端末101へ送信する。
区間毎ヒストグラム合成機能1908は、該当する区間の部分ヒストグラムデータ112がヒストグラム管理テーブル1911に存在しない場合、時系列ヒストグラム生成機能1910を利用して時系列データ110から当該区間のヒストグラムを生成し、ヒストグラム加減算機能1914を利用して合成する。なお、ヒストグラム加減算機能1914は、生成したヒストグラムに他の部分ヒストグラムを合成したり、複数のヒストグラムを生成して合成してもよい。
状態毎ヒストグラム合成インタフェース1902は、開始時刻及び終了時刻で表される検索範囲と、状態とを引数として受け取り、検索範囲内の指定した状態に対応する区間集合のヒストグラムを取得することを目的とするインタフェースである。
分析端末110が状態毎ヒストグラム合成インタフェース1902を呼び出した場合、状態毎ヒストグラム合成機能1907は状態区間管理テーブル1912から対象とする状態の区間集合を取得し、当該区間集合を引数として区間毎ヒストグラム合成インタフェースを呼び出すことにより目的の結果を得る。
図3A、図3B、図3Cは、地物データ108の一例を示す図である。図3Aは、地物データ108の一例を示すXML表記である。図3Bは、地物データ108の属性を管理する属性管理テーブル301である。図3Cは、地物データの相関関係を管理する相関管理テーブル302である。
図3A~図3Cを用いて、地物データ108、地物集合データ107、および地物管理機能113について説明する。
地物とは、機械装置、住戸、人間等、実世界上に存在する観測対象であり、地物データ108は、観測対象から取得した値を計算機上で表現したデータである。地物データ108は、階層的なデータで構成することができる。地物データ108の階層的なデータ構造を表記するための標準言語XML(Extensible Markup Language)で記述した地物データ108の例を、図3AのXML300に示す。
また、地物データ108は、図3B、図3Cのように地物データを一意に識別する識別子であるFID3011、3021と、0個以上の属性データ3012と、関連するFID3023を管理する。
図3Aに示すXML300の例では、FIDが1、種類がMachineである地物データとして、属性として名称Machine1、設置日2013/10/01、ヒストグラム情報として部分ヒストグラムデータを一意に識別する識別子であるHID=1を管理し、関連する地物データ108として、FIDが2および3で参照される地物を管理している。また、FIDが2、種類がMachineである地物データとして、属性として名称Machine2、設置日2013/10/02を管理し、関連として、FIDが4で参照される地物を管理している。図3B、図3Cも図3Aと同様の内容を表形式で保持している。
データ管理機能105の地物管理機能113は、地物を登録する機能と、地物の属性を更新する機能と、地物の関連を設定または削除する機能とを有する。地物管理機能113はさらに、たとえば名称がMachine1などの属性と、設置日が2013年度以降などの属性判定条件と、それらの組合せから構成される情報をクエリとして入力し、該当する地物のFID集合を検索する機能を有する。
地物管理機能113はさらに、たとえば「設置日が2013年度以降の全ての装置の全ての部品の温度センサ」などの関連パスをクエリとして入力し、該当する地物のFID集合を検索する機能を有する。関連パスの仕様は、例えば標準言語XPathで規定されている。地物管理機能はさらに、FIDを入力し、対象地物の属性および関連を検索する機能を有する。
地物データ108の構造は、図3Aに示すXML300と等価な情報を持つ構造であればよい。例えばRDBMS(Relational Database Management System)において、図3B、図3Cに示す表301および表302の組合せで地物を表現する構造を取ってもよい。表301は地物属性を管理し、FID3011、属性名Property3012、属性値Value3013を持つ。表302は、地物関連を管理し、FID3021、関連名Role3022、関連先の地物のFIDであるRelatedFID3023を持つ。
地物集合データ107は、地物の関連として、1件の地物に対し0件以上の地物を含むことにより管理される。地物集合の例としては、たとえば装置に対する部品集合や、部品に取り付けられたセンサ集合が挙げられる。また、メーカや製造年が等しい装置集合や、故障の多い装置集合など、任意の地物集合を同様な方式で管理してもよい。
図4を用いて、センサデータ109について説明する。図4は、センサデータ109の構造を示す図である。センサデータ109を示す表400は、地物にどのセンサが設置しているかの情報を管理し、地物データ108を一意に識別する識別子であるFID4001と、センサを一意に識別する識別子であるSID4003と、およびセンサの種類を示すProperty4002とから構成される。
センサデータ109の属性として、センサが出力する観測値の単位系と、値域等、センサに対する情報を格納してもよい。地物管理機能113はさらに、FID4001とセンサ種類をクエリとして入力し、センサデータ109を利用してSID4003を検索する機能を有する。
図5A、図5A、図5Cは、時系列データの構造を示す図である。以下、図5A~図5Cを用いて、時系列データ110および時系列管理機能114について説明する。時系列データ110は、センサシステム10のセンサにより観測された観測情報であり、観測時刻および観測値の組で管理される。時系列データ110を管理する三種類の構造の例を表500、表501、表502に示す。
図5Aの表500では、センサを一意に識別する識別子であるSID5001と、観測時刻T5002と、観測値V5003とを組として管理する。表500の第一行は、SID5001が1、時刻T5002が10:00における観測値5003がV[0]であることを示す。ここでV[0]における鍵括弧内の数字は、観測値の時刻方向(時系列)の順番を示す説明上の表記である。
時系列データ110は、図5Bで示すように表501で管理してもよい。表501では、複数センサV1、V2など、複数の観測値である多変量時系列をまとめて観測値Vとして管理する。本実施例の場合におけるSID5011は、複数のセンサをまとめたセンサ集合を識別する識別子となる。
時系列データ110は、図5Cで示すように表502で管理してもよい。表502では、複数時刻(5022)の観測値である部分時系列をまとめて観測値V(5023)として管理する。
当該部分時系列は、gzip等、周知または公知のデータ圧縮アルゴリズムを利用して、圧縮した時系列ブロックとして管理してもよい。時刻T(5002、5012、5022)は部分時系列の開始時刻を示す。
例えば図5Cに示す表502では、秒単位時系列の1時間分3、600個を1つの時系列ブロックとして管理する。時刻T5022は1時間刻みの値を取る。時系列データ110はまた、図5Aの表501および図5Bの表502を組合せた、多変量部分時系列として管理してもよい。
時系列管理機能114は、センサを一意に識別するSID(5001、5011、5021)と、時刻T(5002、5012、5022)と、観測値V(5003、5013、5023)との集合で指定される時系列データ110を登録する機能を有する。
時系列管理機能114はさらに、センサを一意に識別するSIDやSIDの集合や、開始時刻及び終了時刻で識別される区間をクエリとして入力し、対象となるセンサや区間の部分時系列データを応答する機能を有する。
分析端末101が時系列データを参照する場合、地物管理機能113を用いる。地物管理機能113は、地物データ108ないし地物集合データ107の一実装例であるXML300、表301、表302を参照して、要求された属性あるいは関連パスに対応する地物データのFIDを取得する。そして、地物管理機能113はセンサデータ109の一実装例である表400を参照して対応するFID4001からセンサのSID4003を取得し、時系列データ110の一実装形態である表500、表501、表502のいずれかを参照して対応する時系列データを取得する。
なお、本実施例では、時系列データ110としてセンサシステム10が取得したデータを用いる例を示すが、時刻と値の組で構成されるデータであれば、本発明を適用することができる。
図6を用いて、区間データ111および区間管理機能115について説明する。図6は、区間データ111の構造を示す図である。
区間とは、開始時刻及び終了時刻で時間範囲(期間)を指定する情報である。例えば、地物が発電機の場合を以下に示す。発電機における区間の例は、発電機の休止区間、起動過渡状態の区間、発電区間、停止過渡状態の区間となる。また住戸の生活パタンに対する区間の例は、住民が睡眠中の区間、外出中の区間、調理中の区間、食事中の区間などとなる。区間データ111は、区間を計算機上で表現したデータである。
区間データ111の管理構造の例を図6の表600に示す。表600では、区間データ111は、区間を一意に識別する識別子であるRID6001と、属性を格納するプロパティ6002と、値を格納するValue6003を含む。属性の一例として、開始時刻Tstart、終了時刻Tend、状態ラベルStatusをプロパティ6002に含む。
区間データ111はさらに、区間が所属する地物の識別子であるFIDや、区間が所属するセンサ(センサシステム10の構成要素)の識別子であるSIDや、区間内の時系列データにおける部分ヒストグラムデータ112やその識別子HIDを格納してもよい。
区間管理機能115は、必須情報として開始時刻Tstartと終了時刻Tend、さらに付帯情報として状態Status、地物の識別子FID、センサの識別子SID、部分ヒストグラムデータ112の識別子HIDいずれかあるいは全てを指定して区間データ111を時系列データストア106に登録する機能を有する。
区間管理機能115はさらに、検索対象の区間を表す開始時刻及び終了時刻と状態ラベルをクエリとして入力し、検索対象区間に含まれ、かつ状態ラベルが合致する全区間のRID6001を検索する機能を有する。
区間管理機能115はさらに、指定されたRID6001に対する属性として開始時刻=Tstart、終了時刻=Tend、状態=Status、地物の識別子=FID、センサの識別子=SID、部分ヒストグラムデータ112やその識別子=HIDのいずれかあるいは全てを検索する機能を有する。
地物管理機能113はさらに、区間管理機能115を利用して、目的の地物集合のFID3011、3021と、検索対象区間を表す開始時刻及び終了時刻と状態ラベルをクエリとして入力し、地物集合に含まれ、かつ検索対象区間に含まれ、かつ状態ラベルが合致する全区間を検索する機能を有する。
図7は、区間データ111と時系列データ110の関係を示す図である。図7を用いて、区間データ111と時系列データ110の関係について説明する。図7において、表701、表702はいずれも区間データ111の一例を示す表であり、図6に示した表600に対し、簡単のため区間の開始時刻Ts(7012、7022)、終了時刻Te(7013、7023)、状態S(7011、7021)のみを記載している。
図7における時系列データ110は、例として発電装置のセンサの時系列データを示している。表701は状態S(7011)として異常1、異常2、異常3が登録されており、表702は状態S(7021)として休止、起動、発電、停止が登録されている。表701および表702は複数の表であってもよく、単一の表であってもよい。区間データ111は、表702の二行目の起動状態(9:00~10:00)と表701の異常1(9:10~9:20)のように、区間が示す範囲に重複があってもよい。
分析端末101が時系列データ110を参照する場合、地物管理機能113を用いる。地物管理機能113は、地物データ108ないし地物集合データ107の一実装例であるXML300、表301、表302を参照して要求された属性あるいは関連パスに対応する地物データのFID(3011、3021)を取得する。
地物管理機能113は、センサデータ109の一例である表400を参照し、取得したFIDに対応するSID4003を取得する。そして、地物管理機能113は、区間データ111の一実装例である表600を参照して対応する地物データの識別子FIDと、対応するセンサの識別子SID、及び対応する状態Statusの区間データの集合を取得する。
さらに地物管理機能113は、時系列データ110の一例である表500、表501、表502のいずれかに対し、対応するSIDと、上記区間データの集合より得られる開始時刻及び終了時刻から対応する時系列データを取得する。
以上より、区間データ111には、開始時刻と終了時刻からなる区間に関連する地物データ(FID)、センサ(SID)、部分ヒストグラムデータ112(HID)及び状態が設定される。そして、区間データ111を参照することで、区間に関連するセンサの時系列データ110や部分ヒストグラムデータ112(HID)を取得することができる。
状態データ125の管理構造の例を図30の表3000に示す。表3000では、状態を一意に識別する状態ラベルであるStatus3001と、状態における部分ヒストグラムデータ112の識別子HIDを含む。
図8は、部分ヒストグラムデータ112の構造を示す図である。図8を用いて、部分ヒストグラムデータ112およびヒストグラム管理機能116について説明する。
ヒストグラムとは、あらかじめ決められた値域における観測値の出現頻度を表またはグラフとして管理するデータである。
図8の表800に部分ヒストグラムデータ112の管理構造の例を示す。部分ヒストグラムデータ112は、部分ヒストグラムデータを一意に識別する識別子であるHID8001と、値域を示すBin8002と、該当値域における観測値の発生頻度を示すFrequency8003から構成される。
表800の一行目は、HIDが1であるヒストグラムで、0以上10未満を取る観測値数が1000件であること、二行目は、同じくHIDが1であるヒストグラムの、10以上20未満を取る観測値数が400件であることを示す。
ここで、値域が固定長であるなど、何らかの演算で算出可能な場合は、Bin8002をヒストグラムデータ112から省略し、演算式を図2に示した設定パラメタ124に格納してもよい。
図25A、図25Bは、部分ヒストグラムデータの構造を示す図である。図25Aは、部分ヒストグラムデータのXML表現を示す図である。図25Bは、部分ヒストグラムデータの観測値と頻度の関係を示すグラフである。
図25A、図25Bを用いて、部分ヒストグラムデータ112の別の管理構造について説明する。XML2501は、図8に示した表800の内容とほぼ同等であり、観測値範囲vsからveまでの頻度freqを管理する。
ここで、頻度が0となる区間(例えばvs=1000からve=5000まで)の区間の頻度記述を省略することにより、ヒストグラムのサイズを削減できる。XML2502は、ヒストグラムを図12の説明において後述するGMM等のモデルで表記する。XML2502は、ヒストグラムを平均10、分散1のガウス分布、平均20、分散1のガウス分布、平均30、分散1のガウス分布の3つのガウス分布がそれぞれ0.7、0.2、0.1の割合で合成されたものとして表現する。
XML2502の手法を適用することにより、ヒストグラムのサイズを大幅に削減できる。XML2503は、XML2502に加え、Anomaryタグとして、頻度が所与の閾値以下となる観測値を外れ値として追加した構造となる。ヒストグラムをXML2502の形式で表現する場合、誤差が発生する。
車両の応力振動のヒストグラムに適用する場合では、図17に示す金属疲労曲線1703で後述するように、応力振幅が小さい場合は損傷度に大きな影響を与えないが、応力振幅が大きい場合は、その頻度が少なくても損傷度に大きな影響を与える。
そのため、応力振幅のヒストグラムを図25AのXML2502の形式で表現した場合、図25Bで示すように、モデル2505からの外れ値2506を誤差として無視できない場合が存在する。そこで、図25AXML2503のように、モデル2505と外れ値2506を混在した形で管理することにより、損傷度評価に利用可能なヒストグラムを管理することができる。
部分ヒストグラムデータ112は、区間データ111の属性として、たとえば表600に示したHistogram属性として管理することができる。また、部分ヒストグラムデータ112は、地物データ108あるいは地物集合データ107の属性として、例えば表301のHistogram属性として管理することができる。
データ管理機能105のヒストグラム管理機能116は、区間データ111、地物データ108、地物集合データ107の属性として部分ヒストグラムデータ112を登録する機能と、区間データ111、地物データ108、地物集合データ107の属性として部分ヒストグラムデータ112を検索する機能を有する。
図9は、地物データ108と区間データ111及び部分ヒストグラムデータ112の関係を示す図である。図9を用いて、部分ヒストグラムデータ112と区間データ111の関連、および部分ヒストグラムデータ112と地物データの関連について説明する。XML900は地物データ108の一例を示すXML表現である。ここで説明を簡略化するため、XML900では、“range”、“hist”をMachineタグのアトリビュートとして記述したが、Machineタグの子要素と読み替えることにより、図3Aで示したXML300と同じ構造となる。そのため、XML900は、図3B、図3Cで示した表301、表302の形式で蓄積することができる。
また、図9では説明を簡略化するため、“range”の表記を「2013-03/1W」としたが、これはISO8601で定められる「2013年3月から1週間」という区間の表記である。同様に「2013-03-01/1D」は「2013年3月1日から1日間」の意味である。そのため、“range”は、図6の区間データ111における開始時刻及び終了時刻の2つの属性で蓄積することができる。
XML900は、地物901が2013年3月から1週間の区間を持ち、関連として2013年3月1日から1日間の区間データ902、3月3日から2日間の区間データ903を持つことを示す。ヒストグラム管理機能116は、地物901に対し、XML900のhist=1で指定される部分ヒストグラムデータ112を管理し、区間902、区間903に対し、それぞれhist=2、hist=3で指定される部分ヒストグラムデータを管理する。このようにして、地物901に対し、複数の区間データを管理することができる。
図12は、類似区間結合機能1913で行われる処理の一例を説明する図である。図12の例を用いて、部分区間ヒストグラム生成機能119内の類似区間結合機能1913の処理について説明する。まず、単位区間ヒストグラム生成機能1916により、時系列データ110が図中の区間集合1201に示すような単位区間に分割される。図示の例では区間集合1201を4つの区間に分割した例を示す。
分割されたそれぞれの区間について、部分ヒストグラムデータ1203、1204、1205、1206が格納されているとする。類似区間結合機能1913は以下4ステップで処理を行う。
類似区間結合機能1913は、部分ヒストグラムデータ1203、1204、1205、1206を合成し、ヒストグラム1207を得る(step1210)。
類似区間結合機能1913は、ヒストグラム1207を、複数のヒストグラム1208、1209に分解する(step1211)。ヒストグラムを分解する方式は、例えば複数の峰を持つヒストグラムを複数の単峰のガウス分布に分解するGMM(Gaussian mixture model)などが知られている。
類似区間結合機能1913は、部分ヒストグラムデータ1203、1204、1205、1206と分解した複数のヒストグラム1208、1209との類似度をそれぞれ比較することにより、ラベル付けを行う(step1212)。例えば部分ヒストグラムデータ1203、1206はヒストグラム1208と類似するためラベルAが付与され、部分ヒストグラムデータ1204、1205はヒストグラム1209と類似するためラベルBが付与される。なお、類似区間結合機能1913は、2つのヒストグラムの類似度が、所定の閾値以上であれば、類似すると判定して同一のラベルを付与する。また、類似区間結合機能1913は、2つのヒストグラムの類似度が、所定の閾値未満であれば、非類似と判定して異なるラベルを付与する。なお、ラベルは区間情報の状態ラベルであってもよい。
類似区間結合機能1913は、連続する同一ラベルの区間を結合して新たな区間を生成し、新たな区間に対しヒストグラムを生成する(step1213)。なお、新たな区間のヒストグラムは、区間情報に付帯する情報として付与することができる。あるいは、状態ラベルの付帯情報として生成したヒストグラムを蓄積してもよい。
上記処理によって、区間集合1201の連続するラベルBの区間(1204、1205)が結合され、3つのラベルを含む区間集合1202となる。
また、ヒストグラムの類似度に応じて同一と分類された時系列データ110の付帯情報として同一の集合ラベルを付与し、同一集合ラベルが付与された時系列データ110のヒストグラムを生成し、集合ラベルとヒストグラムを蓄積して管理するようにしてもよい。
図13は、部分区間ヒストグラム生成機能で行われる処理の一例を示すフローチャート図である。図13のフローチャートを用いて、時系列登録機能1918、単位区間ヒストグラム生成機能1916、類似区間結合機能1913の各処理について詳細に説明する。
まず、単位区間ヒストグラム生成機能1916は、時系列登録機能1918で受け付けた時系列データ110を所定の単位区間に分割する(step1301)。所与の単位区間は、目的に応じた分析粒度とデータ量の調整により、事前にパラメタとして定義し、設定パラメタ124として格納しておく。
単位区間は、分析結果の最小粒度として設定する。例えば車両の発進、旋回、停止状態における特性を分析する場合、発進、旋回、停止が少なくとも10秒程度で行われるため、単位区間を10秒とすることが望ましい。同様に、家庭内消費電力から睡眠期間・食事期間等の住民行動パタン特性を分析する場合、睡眠期間、食事期間は少なくとも15分程度で行われるため、単位区間を15分とすることが望ましい。データ量の観点では、ヒストグラムのデータ量が元の時系列データのデータ量と同等以下にするのが望ましい。例えば車両の振動応力センサの観測周期が1kHzであり、ヒストグラムのビン数が1、000個とすると、単位区間を10秒と設定した場合、時系列データは1kHz×10秒で10、000件の数値となるのに対し、ヒストグラムのデータ量は1、000件の数値となり、時系列データの1/10のサイズとなる。
単位区間ヒストグラム生成機能1916は、分割した全ての単位区間について時系列データ110の観測値からヒストグラムを作成する(step1302)。
単位区間ヒストグラム生成機能1916は、上述の単位区間を包含する第二の単位区間における観測値のヒストグラムを作成する(step1303)。第二の単位区間は、ヒストグラムに分析対象となる統計的な特徴が現れる十分に長い区間である必要がある。第二の単位区間は、例えば車両の特性を分析する場合はエンジン起動時刻からエンジン停止時刻までの平均時間(平均トリップ時間)として例えば2時間、家庭内消費電力の特性を分析する場合は24時間などを設定する。第二の単位区間は、単位区間と同様に、事前にパラメタとして定義し、設定パラメタ124として格納しておいてもよい。また第二の単位区間は、図14で後述する処理で自動的に設定してもよい。
単位区間ヒストグラム生成機能1916は、第二の単位区間におけるヒストグラムを混合モデルでモデル化する。単位区間ヒストグラム生成機能1916は、上述したように、合成したヒストグラムをガウス分布等によって複数のヒストグラムに分解する。単位区間ヒストグラム生成機能1916は、分解した各モデルと単位区間のヒストグラムの類似度を比較することにより、単位区間を分類する(step1304)。
ヒストグラムの類似度は、例えば(式1)で示されるBhattacharyya係数を用いることで算出する。
ここでp、qは比較対象の正規化ヒストグラム、mはビン数となる。正規化ヒストグラムは、ヒストグラムの各ビンにおける頻度の積算値が1になるよう正規化することで得られる。類似度は0~1の値を取り、完全に一致する場合1となる。
単位区間の分類は、単位区間と全てのモデルとの類似度を比較し、最も類似度の高いモデルに分類することによって行う。なお、ここで、単位区間を上記モデルのいずれかに分類してもよいが、上記モデルのいずれとも類似しない単位区間を上記モデルの一つに分類するのは不都合な場合もある。その場合は、新たに「外れ値」という分類項目を設け、最も類似するモデルからの類似度が、あらかじめ定義しておいた閾値以上である場合、「外れ値」に分類してもよい。
次に、単位区間ヒストグラム生成機能1916は、分解した各モデルと単位区間のヒストグラムについて、同じ分類に属する連続する単位区間を併合する(step1305)。
単位区間ヒストグラム生成機能1916は、併合された区間に対し、ヒストグラムを生成し、該併合区間およびヒストグラムをヒストグラム管理テーブル1911(すなわち区間データ111)に登録する(step1306)。
単位区間ヒストグラム生成機能1916は、データ削減ニーズが存在する場合、区間併合を行った区間における、併合前区間の区間データおよびヒストグラムをヒストグラム管理テーブル1911から削除する(step1307)。データ削減ニーズは真偽の2値を取り、例えば事前にパラメタとして定義し、設定パラメタ124として格納しておく。なお、データ削減ニーズがない(N)場合は、処理を終了する。
ここで、本実施例のデータ削減効果について例を用いて説明する。観測間隔が100Hzである時系列データ110が存在する場合、1年分で3.1×10^9 件のデータ量となる。1分単位のビン数1、000個のヒストグラムを生成する場合、ヒストグラム数は5.3×10^5件、データ量は5.3×10^8 件となる。階層的にヒストグラムを生成する場合、区間長2倍に対し、ヒストグラム数は半分となるため、ヒストグラム数は1.1×10^6件となる。
ここで、区間全体に対し、特異点が5%存在すると仮定すると、特異区間におけるヒストグラム数は2.7×10^4件、特異区間と次の特異区間が全てマージできたとすると、1分単位のヒストグラム数は5.3×10^4件となり、上記非マージ版と比較し、データ量は10%となる。階層的にヒストグラムを生成し、各階層で非特異区間をマージすると、各階層のヒストグラム数は5.3×10^4件との小さい方と見積もられる。本計算によれば階層ヒストグラム数は2.8×10^5件となり、データ量は上述の約25%となる。
図14は、図13のstep1303で行われる類似区間結合機能1913で、第2の単位区間を算出する処理の一例を示すフローチャートである。
類似区間結合機能1913は、まず、第一の単位区間を選択する(step1401)。
類似区間結合機能1913は、第一の単位区間に対し、第一のヒストグラム(頻度表)を作成する(step1402)。
類似区間結合機能1913は、次に、第一の単位区間を拡張する。例えば第一の単位区間を含み、区間長が2倍となる区間を拡張区間とする(step1403)。なお、単位区間を拡張する倍率は、予め設定された値である。
類似区間結合機能1913は、該拡張区間に対し、第二のヒストグラムを作成する(step1404)。
類似区間結合機能1913は、 該第一のヒストグラムと第二のヒストグラムの類似度を比較する(step1405)。なお、類似度の算出については上記と同様である。
類似区間結合機能1913は、類似度が閾値未満で非類似と判定された場合、第一のヒストグラムを第二のヒストグラムに置き換え、step1403に戻る。それ以外の場合は該拡張区間を第二の単位区間として処理を終了する。
以上の処理によって、類似度が閾値未満の間は、第2の区間が拡張されていく。また、ヒストグラムの類似度により非類似(非同一)と分類された区間を分割し、新たなヒストグラムに置き換えることができる。
図19の非類似区間分解機能1915は、区間登録機能1917で登録された区間を、その特徴に合わせて複数の区間に分解して登録する機能である。非類似区間分解機能1915は、単位区間ヒストグラム生成機能1916、および類似区間結合機能1913を用いることで実現できる。すなわち、区間登録機能1917で登録された区間を図13のフローチャートに従い単位区間に分割し、区間併合を行うことにより、実現できる。
図28A、図28Bは、類似区間結合機能1913で行われる第二の実装の処理を説明する図である。図28A、図28Bの例を用いて、部分区間ヒストグラム生成機能119内の類似区間結合機能1913の第二の実装で行われる処理について説明する。
本第二の実装では、類似区間結合機能1913が凝縮型階層クラスタリングの手法を用いる。類似区間結合機能1913は、対象区間を単位区間に分割し、区間状態a(2805)、b(2806)、c(2807)、d(2808)、e(2809)、が得られたとする。
類似区間結合機能1913は、各区間の状態に対しヒストグラムを生成し、各区間の状態の全ての組合せから、類似度が最も高い、すなわち最も類似する状態のペアを取得する。類似区間結合機能1913は、類似度の評価として例えば上記(式1)を利用する。図28Aの例では状態d)および状態e(2809)が最も類似する。状態d(2808)と状態e(2809)のヒストグラムを生成し、状態f(2810)とする。
次に、類似区間結合機能1913は、状態d(2808)および状態e(2809)を取り除き、状態f(2810)を追加した集合の全ての組合せから、類似度の最も高い状態のペアを探索し、状態a、状態bから状態g(2811)を得る。これを繰り返して、類似区間結合機能1913は、状態c(2807)と状態f(2810)から状態h(2812)を得、状態g(2811)と状態h(2812)から状態i(2813)を得る。
上記操作により、各状態を類似度の大きいもの順に接続して得られる木構造をデンドログラムと呼ぶ。デンドログラムの縦軸は類似度となる。デンドログラムにおいて、複数の類似度閾値2801~2804による状態分類が実現できる。例えば閾値2801が与えられた場合、状態a、b、c、d、eの5状態が得られ、閾値2802が与えられた場合、状態a、b、c、fの4状態が得られる。閾値2803が与えられた場合は、状態g、c、fの3状態が得られ、閾値2804が与えられた場合は、状態g、hの2状態が得られる。
次に、step1305と同様に、類似区間結合機能1913は、同じ状態に属する連続する単位区間を併合する。図28Bで示すように、対象区間における単位区間a1、b1、a2、b2、c1、d1、e1、c2、d2、e2の状態がそれぞれa、b、a、b、c、d、e、c、d、eであるとすると、同じ状態に属する連続区間が存在しないため、区間併合ができない。
しかし、閾値2802での状態分類では、区間d1、e1が同じ状態fとなるため区間f1(2814)に併合できる。また区間d2、e2も同様に区間f2(2815)に併合できる。同様に、閾値2803では、単位区間a1、b1、a2、b2が区間g1(2816)に併合でき、閾値2804では区間c1、d1、e1、c2、d2、e2が区間h1(2817)に併合できる。この方法を用いることにより、併合区間f1、f2、g1、h1を得ることができる。
類似区間結合機能1913は、これらの全ての併合区間のヒストグラムを管理することにより、任意の類似度閾値に対応した状態のヒストグラムを効率的に得ることが可能となる。
図29は、類似区間結合機能1913の第二の実装で行われる処理のフローチャートである。
類似区間結合機能1913は、上記図13のstep1301と同様に、時系列データを所定の単位区間に分割する(step2901)。
類似区間結合機能1913は、上記図13のstep1302と同様に、単位区間に対する観測値のヒストグラムを作成する(step2902)。
類似区間結合機能1913は、各単位区間における状態ラベルをそれぞれ異なる状態と設定し、該設定した全ての状態についてstep2904からstep2906を繰り返す(step2903)。
類似区間結合機能1913は、step2903で選択した状態を除く全ての状態について、step2905からstep2906を繰り返す(step2904)。
類似区間結合機能1913は、step2903と、step2904で選択した状態のペアに対し、上記(式1)等を利用して類似度を算出する(step2905)。
類似区間結合機能1913は、全ての状態の組合せの中から、最も類似度の高い状態のペアを選択する(step2906)。
類似区間結合機能1913は、最も類似度の高い状態の組み合せを結合し、新しい状態を作成する(step2907)。
類似区間結合機能1913は、新しい状態についてヒストグラムを作成する(step2908)。
類似区間結合機能1913は、全ての状態が1つの状態に併合されるまで、上記step2903からstep2908を繰り返す(step2909)。
類似区間結合機能1913は、上記図13のstep1305と同様に、同じ状態に属する区間を併合し、ヒストグラムを作成し、部分ヒストグラムデータ112として登録する(step2910)。
類似区間結合機能1913は、step2910の処理を、step2907で作成した全ての状態について繰り返し適用する(step2911)。
以上の処理により、類似区間結合機能1913は任意の類似度閾値に対応した状態のヒストグラムを容易に得ることが可能となる。
図27A、図27Bは、ヒストグラム加減算機能1914の処理を説明する図である。ヒストグラム加減算機能1914は、図13のstep1303、図14のstep1404で使用される。ヒストグラムは、加減算により合成することができるという性質を持つ。すなわち、特定区間のヒストグラムは、該区間の観測値毎の集計値であることから、区間の重ならない複数区間のヒストグラムの観測値毎の集計値をそれぞれ加算することで、該複数区間全体のヒストグラムを生成することができる。
例えば、図27Aのように、ある区間Aのヒストグラム2701と、区間Aと重ならない区間Bのヒストグラム272が与えられた時、区間Aと区間Bを併合した区間Cのヒストグラム2703は、ヒストグラムの各ビンにおける頻度を足し合わせることで得られる。
すなわち、ヒストグラム2703の頻度c1はヒストグラム2701の頻度a1とヒストグラム2702の頻度b1の和であり、c2、c3、c4も同様である。複数区間のヒストグラムの合成は、下記の(式2)で行う。
ここでrは合成されたヒストグラム、ruは合成されたヒストグラムのビン番号uの頻度、pkは合成元の各区間のヒストグラム、pk、uは合成元の各区間のヒストグラムのビン番号uの頻度である。
また同様に、区間Cのヒストグラム2704と区間Cに内包される区間Bのヒストグラム2705が与えられた時、区間Cの各ビンにおける頻度から区間Bの各ビンにおける頻度をそれぞれ減算することで「区間Cから区間Bを除いた区間」として定義される区間Aのヒストグラム2706を生成することができる。
図15は、区間毎ヒストグラム合成機能1908で行われる処理の一例を示す図である。図15を用いて、区間ヒストグラム生成機能120の構成要素である区間毎ヒストグラム合成機能1908で行われる処理の一例について説明する。
区間毎ヒストグラム合成機能1908は、検索対象の区間のヒストグラムを、部分ヒストグラムデータ112の組合せにより生成する機能である。図15において、区間データ111として、区間1501、区間1502、区間1503を含む区間長の異なる複数の区間データ111、およびそれに付帯する部分ヒストグラムデータ112が時系列データストア106に格納されていると仮定する。
分析端末101から、インタフェース1901を介して検索対象区間1506におけるヒストグラム生成要求が来たと仮定する。区間毎ヒストグラム合成機能1908は、検索対象区間をカバーし、かつ、個数が最小となる部分区間ヒストグラムの組合せを選択する。そして、区間毎ヒストグラム合成機能1908は、ヒストグラム加減算機能1914を利用して、上記選択した部分区間ヒストグラムを加算もしくは減算することで目的のヒストグラムを生成する。
図15の例では、区間1501、区間1502、区間1503が個数最小となる部分区間ヒストグラムの組合せとなる。一方、検索対象区間1506と、区間1501、区間1502、区間1503の併合区間を比較すると、区間1505が余分であり、区間1504が足りない。
区間1504、区間1505に対応する部分区間ヒストグラムデータが存在しない場合、区間毎ヒストグラム合成機能1908は時系列ヒストグラム生成機能1910を利用し、時系列データ110から区間1504、区間1505に対応するヒストグラムを生成し、併合区間に対して区間1504のヒストグラムを加算し、区間1505のヒストグラムを減算することにより、検索対象区間1506のヒストグラムを得る。
時系列ヒストグラム生成機能1910を利用したヒストグラム生成は、ヒストグラム加減算機能1914と比べ、処理コストがかかる。一方、ヒストグラムは、微小な区間差によりその形状が大きく変化しないという特徴を持つ。そのため、分析端末101からのヒストグラム生成要求時に、さらにヒストグラムの要求精度閾値を与えることにより、検索対象区間1506と部分区間ヒストグラムの組合せでカバーする区間との時間差が要求精度閾値より下回る時点で組合せの選択を打ち切るという処理を行うことができる。この手法を用いることにより、時系列ヒストグラム生成機能1910を利用する確率は低減し、結果としてヒストグラム生成コストを低減することができる。
図16は、区間毎ヒストグラム合成機能1908で行われる処理の一例を示すフローチャートについて説明する。区間毎ヒストグラム合成機能1908は、検索対象区間を含む全ての部分区間ヒストグラムを候補区間として抽出する(step1601)。
区間毎ヒストグラム合成機能1908は、候補区間が存在しない場合、step1609に進んで時系列データストア106から候補区間に対応する時系列データ110を抽出し、ヒストグラムを生成する(step1602)。なお、ヒストグラムの生成後はstep1606に進む。
区間毎ヒストグラム合成機能1908は、候補が存在すれば、全候補区間について部分区間ヒストグラムの区間長により降順でソートする(step1603)。
区間毎ヒストグラム合成機能1908は、区間長の大きな区間から検査し、検索対象区間と候補区間との差分を算出する(step1604)。
区間毎ヒストグラム合成機能1908は、差分の区間長が最大となる区間を選択する(step1605)。差分が最大でない場合には、step1604に戻って上記処理を繰り返す。
区間毎ヒストグラム合成機能1908は、検索対象区間と候補区間との関係から、ヒストグラムを加算あるいは減算する(step1606)。
区間毎ヒストグラム合成機能1908は、該差分区間を検索対象区間とする(step1607)。
区間毎ヒストグラム合成機能1908は、差分区間の区間長が所定の閾値ε未満になるまで、上記step1601からstep1607を繰り返し実行する(step1608)。ここで、所定の閾値εはインタフェース1901の引数として外部から入力される。たとえば区間長24時間のヒストグラムを要求し、区間長1%の誤差を許容する場合、閾値となる区間長は14分程度となる。検索対象区間1506の厳密なヒストグラムが必要な場合、閾値を0とする。一方、ヒストグラムは時系列データの大局的な特徴を評価するという観点に立てば、必ずしも厳密な区間に対するヒストグラムは要求されない。
閾値判定を行うことにより、図15における区間1503のような区間長の短い区間データの部分区間ヒストグラムの合成や、区間1504、区間1505のような時系列データからヒストグラムを生成する機能が実行される確率が低くなり、その結果ヒストグラム合成の処理コストを削減することができる。
図17は、寿命予測機能121の処理の一例を示す図である。図17を用いて、寿命予測機能121について説明する。一般に金属疲労寿命は、金属疲労曲線1703と応力振幅σのヒストグラム1702を用いて算出される。金属疲労曲線1703は、金属に特定の振幅σの応力が繰り返し与えられた場合、疲労破壊する限界繰り返し数Nをプロットしたものであり、試験片に振幅σの応力を繰り返しかけ続け、疲労破壊までの繰り返し回数をカウントする疲労試験により得られる。
疲労寿命評価には、次の(式3)で与えられる損傷度D(1701)が利用され、損傷度D≧1の時点で疲労破壊が起こると考える。
ここでjは各応力振幅のビン番号を表し、Njは金属疲労曲線1703における特定応力振幅σjにおける限界繰り返し数であり、njは特定応力振幅σjにおける、現時点での繰返し数である。
原子力プラント等、定常的に運転される装置においては、「現時点での繰り返し数」njは、一定区間の応力振動時系列を測定し、rainflow法を用いて応力振幅のヒストグラムを作成し、現時点での稼働時間と測定区間長の比を乗じることで見積もることができる。
一方、ダンプトラックなど、積載走行や空荷走行、急発進、急停止、急旋回等、様々な運転状態を取る装置においては、「現時点での繰り返し数」njの算出には、各運転状態における応力振幅のヒストグラムを合成する必要がある。
積載走行や空荷走行、急発進、急停止、急旋回等、様々な運転状態をAiとし、運転状態の集合をAとする。各状態Aiが発生する確率をP(Ai)とし、全ての状態に対する確率分布をP(A)とする。
また、応力振幅等の観測値をBとする。各状態Aiにおける観測値Bの条件付き確率密度分布をP(B|Ai)とする。運転状態によらない観測値の確率密度分布P(B)は、ベイズの定理により、次の(式4)で得られる。
すなわち、全ての運転状態の確率分布P(A)と、各運転状態Aiにおける観測値Bの確率密度分布P(B|Ai)が得られれば、運転状態によらない観測値Bの確率密度分布P(B)が得られる。「現時点での繰り返し数」njの算出には、確率密度分布P(B)に対して単位時間あたりの応力振幅頻度の積算値を乗じ、さらに現時点での稼働時間と測定区間長の比を乗じることで見積もることができる。
上記(式4)を演算するにあたり、P(B|Ai)は、状態Aiにおけるヒストグラムを取得し、その値域方向の積算値が1になるよう正規化することにより得られる。状態Aiにおけるヒストグラムは、図19の状態毎ヒストグラム合成機能1907により得られる。
図18は、状態の確率分布P(A)を算出するフローチャート図である。図18を用いて、(式4)の確率分布P(A)、すなわち各状態Aiの発生確率を算出するフローチャートについて説明する。
寿命予測機能121は、検索対象区間から、全ての状態を抽出し、そのうちの一つの状態を選択する(step1801)。
寿命予測機能121は、検索対象区間から、選択した状態の全区間データを抽出し、そのうちの一つの区間を選択する(step1802)。
寿命予測機能121は、上記選択した区間の開始時刻と終了時刻から区間長を算出する(step1803)。
寿命予測機能121は、算出した区間長を、状態毎に集計する(step1804)。
寿命予測機能121は、step1802からstep1804を特定状態の全区間について繰り返し実行する(step1805)。特定状態の全区間について上記処理を完了するとstep1806に進む。
寿命予測機能121は、step1801からstep1805の処理を全状態について繰り返し実行する(step1806)。全状態について上記処理を完了するとstep1807に進む。
寿命予測機能121は、全状態の区間長の集計値の和が1になるよう、各状態の集計値を正規化し、確率分布P(A)とする。
これにより、ダンプトラックなど、積載走行や空荷走行、急発進、急停止、急旋回等、様々な運転状態を取る装置に対する寿命予測を得ることができる。
寿命予測機能121を利用することにより、異なる地域で稼働する装置の寿命予測を行うことができる。たとえばある地域X、地域Yの鉱山で運用されるダンプトラックの走行ログデータから、各運転状態の確率分布P(A)がそれぞれ得られており、さらに地域Xのダンプトラックの応力センサデータから、各運転状態に対する応力ヒストグラムP(B|Ai)が得られているとする。地域Yのダンプトラックに応力センサが存在せず、地域Yにおける応力ヒストグラムが得られていない場合においても、地域Yにおける運転状態の確率分布P(A)と地域Xにおける応力ヒストグラムP(B|Ai)を組み合わせることにより、地域Yの寿命予測を行うことができる。
図19に示した特異点検知インタフェース1903を利用した特異点検知機能122について説明する。
特異点検知機能122の第一の実装は、観測値と状態を入力し、入力観測値の特異度を算出する。状態としては、たとえば、あらかじめ平常と判断した状態を入力する。
図19において、特異点検知機能122は状態毎ヒストグラム合成機能1907を利用して平常状態のヒストグラムを生成する。特異点検知機能122はさらに、生成されたヒストグラムにおける、入力観測値に対する頻度を「非特異度」として応答する。「非特異度」が小さい程、該入力観測値が特異であることになる。
特異点検知機能122の第二の実装は、観測区間と状態を入力し、入力区間の特異度を算出する。状態としては、たとえば、あらかじめ平常とみなされる状態を入力する。図19において、特異点検知機能122は状態毎ヒストグラム合成機能1907を利用して平常状態のヒストグラムと、観測区間のヒストグラムを生成する。
特異点検知機能122はさらに、該平常状態ヒストグラムと該観測区間ヒストグラムを(式1)で示す手法で類似度を算出し、類似度を「非特異度」として応答する。「非特異度」が小さい程、該入力観測値が特異であることになる。
以上のように本実施例1によれば、時系列データストア106に蓄積された部分ヒストグラムを組み合わせて、結合や差分を演算することで、所望の区間や所望の地物に関するヒストグラムを高速に生成することができる。
図22、図23、図24を用い、時系列データ110を複数のサーバに分散して蓄積することにより、大量の時系列データ110をスケーラブルに管理し、かつ効率的に検索する計算機システムについて説明する。
図22は、本発明の第4の実施例を示し、時系列データ110を複数のサーバに分散して蓄積する時系列データ分析システムの構成を示すブロック図である。
時系列データ分析システム2201は、分析端末101からのクエリを受付け、結果を返戻する。また、時系列データ分析システム2201は、ネットワーク22を介して複数のスレーブサーバと接続される。本実施例では、スレーブサーバa(2211)、スレーブサーバb(2212)、スレーブサーバc(2213)と接続される。
時系列データ分析システム2201は、時系列データ本体を複数の時系列ブロックに分割し、複数のスレーブサーバに分散してファイルとして格納する。また、時系列ブロックの位置を管理する時系列ブロックテーブル2208と、部分ヒストグラムを管理するヒストグラムテーブル2205と、状態と区間の対応付けを管理する状態区間テーブル2203とをRelational Database Management System(RDBMS)上のテーブルとして格納する。
時系列データ分析システム2201は、時系列ブロックテーブル2208を備える。時系列ブロックテーブル2208は、図5Cのテーブル502と類似した構成を取り、時系列ブロックの開始時刻Ts、終了時刻Te、センサID=sidと、時系列ブロックが格納されるサーバの識別子とファイルパスから構成されるパスpathを格納する。
例えば、テーブル2208の最初の行では、時刻0:00から1:00までのセンサID=1の区間の時系列ブロックが、スレーブサーバaのファイル名1.binで指定されるパスに格納されていることを示す。
時系列ブロックは、前記実施例1の図5Cに示したテーブル502のV列(5023)に示した部分時系列データをファイルとして格納したものである。時系列データ分析システム2201はまた、ヒストグラムテーブル2205を保有する。ヒストグラムテーブル2205は、前記実施例1の図6に示した区間テーブル600と同様な構成であり、開始時刻Ts、終了時刻Teと、ヒストグラムを格納する。
時系列データ分析システム2201はまた、状態区間テーブル2203を保有する。状態区間テーブル2203は、前記実施例1の図6に示した区間テーブル600と同様な構成であり、開始時刻Ts、終了時刻Teと、状態statusを格納する。
時系列データ分析システム2201はまた、時系列ブロックテーブル2208を検索するブロック検索機能2207、状態区間テーブルを検索する状態検索機能2202を有する。
スレーブサーバは、MapReduceアルゴリズムとして知られる分散処理機構が搭載される。MapReduceアルゴリズムは、複数のスレーブサーバに格納されたMap機能とReduce機能から構成され、外部からMap機能とReduce機能でそれぞれ稼働するプログラムが与えられた時、複数のMap機能がそれぞれデータを受付けてプログラムを実行し、プログラムが結果データをReduce機能に集約し、Reduce機能が複数のMap機能から集約されたデータを受け付けてプログラムを実行し、結果を応答することにより、データの分散処理を実行する。
図23は、時系列データ検索時のクエリと応答データの一例を示す図である。図23に、時系列データの取得を目的として分析端末101が発行するクエリの例と、クエリの返戻結果の例を示す。
クエリ2301は、指定したセンサIDの集合と、指定区間範囲の時系列データを取得するSQLクエリの例である。クエリ2301では、SQLのFROM句におけるテーブル関数拡張機能を利用し、時系列検索クエリを記述している。
構文はコマンドと、引数の集合から構成され、timeseriesコマンドで時系列データの取得を要求し、sid=1、2でセンサIDが1と2のセンサ時系列を指定し、rangeで2013年1月1日から1年間分の区間をISO8601形式で指定する。
結果2302はクエリ2301に対する処理結果を示し、時刻を示す列T、観測値を示す列V1、V2が出力される。
図22における時系列データ分析システム2201が、分析端末101よりクエリ2301を受け付けた場合、時系列データ分析システム2201はブロック検索機能2207を利用し、時系列ブロックテーブル2208から要求センサID、要求区間を含む区間集合と、該区間に対応する時系列ブロックのパス集合を取得し、スレーブサーバ2211、2212を含む複数のスレーブサーバから時系列ブロックのファイル集合を取得し、該時系列ブロックから要求区間の時系列データを抽出することにより結果を得る。
クエリ2303は、指定したセンサID集合と、指定区間集合の時系列データを取得するSQLクエリの例である。timeseriesコマンドで時系列データの取得を要求し、sid=1、2でセンサIDが1と2のセンサ時系列を指定し、rangesで2013年1月1日10:00から1時間、および2013年1月2日10:00から1時間の2区間をISO8601形式で指定する。
結果2304は、クエリ2303に対する処理結果を示し、時刻を示す列T、観測値を示す列V1、V2に加え、複数の区間を区別するために生成された区間番号RIDが出力される。
図22における時系列データ分析システム2201が分析端末101よりクエリ2303を受け付けた場合、時系列データ分析システム2201はブロック検索機能2207を利用し、時系列ブロックテーブル2208から要求センサID、要求区間集合を含む区間集合と、該区間集合に対応する時系列ブロックのパス集合を取得し、スレーブサーバ2211、2212を含む複数のスレーブサーバから時系列ブロックのファイル集合を取得し、該時系列ブロックから要求区間の時系列データを抽出することにより結果を得る。
クエリ2305は指定したセンサID集合と、指定区間内の指定状態集合の時系列データを取得するSQLクエリの例である。timeseriesコマンドで時系列データの取得を要求し、sid=1、2でセンサIDが1と2のセンサ時系列を指定し、rangeで2013年1月1日から1年間分の区間を指定し、statusで状態1と2を指定する。結果2306はその返戻結果を示し、時刻を示す列T、観測値を示す列V1、V2、複数の区間を区別するために生成された区間番号RIDに加え、複数の状態を区別するための状態名が返戻される。
図22における時系列データ分析システム2201が分析端末101よりクエリ2305を受け付けた場合、時系列データ分析システム2201は状態検索機能2202を利用して状態区間テーブル2203から要求区間・要求状態の区間集合を抽出し、さらにブロック検索機能2207を利用し、時系列ブロックテーブル2208から要求センサID、要求区間集合を含む区間集合と、該区間集合に対応する時系列ブロックのパス集合を取得し、スレーブサーバ2211、2212を含む複数のスレーブサーバから時系列ブロックのファイル集合を取得し、該時系列ブロックから要求区間の時系列データを抽出することにより結果を得る。
図24に、時系列データのヒストグラム取得を目的として分析端末101が発行するクエリの例と、クエリの返戻結果の例を示す。
クエリ2401は、指定したセンサIDと、指定区間範囲の時系列データ110のヒストグラムを取得するSQLクエリの例である。クエリ2401では、histコマンドで時系列データ110のヒストグラム取得を要求し、sid=1でセンサIDが1のセンサ時系列を指定し、rangeで2013年1月1日から1年間分の区間を指定し、binでビン分割の幅を指定する。
クエリ2402は指定したセンサID、指定区間集合の時系列データのヒストグラムを取得するSQLクエリの例であり、引数はクエリ2303と同様である。
クエリ2403は指定したセンサID集合、指定区間内の指定状態集合の時系列データのヒストグラムを取得するSQLクエリの例であり、引数はクエリ2305と同様である。
結果2302はクエリ2401、2402、2403の共通の応答結果を示し、観測値の開始範囲Vs、終了範囲Ve、値域がVsからVeの範囲に存在する観測値の数Freqが返戻される。クエリ2401でbinを1000と指定することにより、結果2404は値域を1000刻みで集計する。
図22における時系列データ分析システム2201が分析端末101よりクエリ2401を受け付けた場合、時系列データ分析システム2201は区間毎ヒストグラム合成機能1908を利用し、ヒストグラムテーブル2205から前記実施例1の図16で説明した方法でヒストグラムを合成し、区間に対するヒストグラムが存在しない場合はStep1602で時系列データからヒストグラムを生成する。
第4の実施例においては、図19の時系列ヒストグラム生成機能1910が、複数のスレーブサーバ2211、2212におけるMap機能2209上のプログラムとして実装され、ヒストグラム加減算機能1914がReduce機能2210上のプログラムとして実装される。
すなわち、ヒストグラム生成機能2206は時系列ブロックテーブル2208から、ヒストグラム生成が必要となる区間を包含する時系列ブロックのパス集合を取得し、該時系列ブロックが存在するスレーブサーバのMap機能2209上の時系列ヒストグラム生成機能1910に、各スレーブサーバに格納される時系列ブロック内の時系列データからヒストグラムを生成するコマンドを発行する。
各スレーブサーバ上の時系列ヒストグラム生成機能1910が生成したヒストグラムはReduce機能2210上のヒストグラム加減算機能1914に集約され、ヒストグラムの合成を行うことにより目的のヒストグラムを得る。同様に、クエリ2402、2403は、複数区間集合に対するヒストグラムの生成、指定区間内の状態集合に対する処理を行う。
クエリ2405は、ヒストグラム生成クエリ(クエリ2401、2402、2403)を応用した特異点検索クエリである。クエリ2405のFROM句では二種類のテーブルT1、TSを指定している。第一のテーブルT1はクエリ2401と同様のテーブル関数であり、結果2404を得る。また第二のテーブルT2は、時刻を示すtime列と観測値を示すvalue列から構成される通常のRDBテーブルであり、WHERE句の指定で時刻が2013年1月1日の0:00から1:00までの時系列を取得する。
また、SELECT句の組込関数distanceにより、テーブルTSから取得された時系列の各観測値と、ヒストグラムとの特異点検索を行い、その結果を結果2406として応答する。
組込関数distanceは図2および第1の実施例の最終節に記載した特異点検知機能122の第一の実装と類似した処理を行う。すなわち組込関数distanceはテーブルTSの検索結果の観測値に対し、クエリ2401の結果として得られたヒストグラムとを比較し、該ヒストグラムにおける、入力観測値に対する頻度を「非特異度」として返戻する。「非特異度」が小さい程、該入力観測値が特異であることになる。その結果クエリ2405は、「非特異度」の時系列として結果2406を得る。
第4の実施例の効果としては、部分ヒストグラムがヒストグラムテーブル2205に存在する場合は第一の実施例の方法により効率的にヒストグラムを合成することができ、部分ヒストグラムが存在しない場合においても、時系列データからのヒストグラム生成を複数のスレーブサーバで分散して実行することができるため、処理速度の効率化が得られる。
なお、本発明において説明した計算機等の構成、処理部及び処理手段等は、それらの一部又は全部を、専用のハードウェアによって実現してもよい。
また、本実施例で例示した種々のソフトウェアは、電磁的、電子的及び光学式等の種々の記録媒体(例えば、非一時的な記憶媒体)に格納可能であり、インターネット等の通信網を通じて、コンピュータにダウンロード可能である。
また、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明をわかりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。