説明

データ処理方法、データ処理システム、及びデータ処理装置

【課題】 蓄積された大量の時系列データから、所望の時系列データパターンを有するデータを高速に検索する。
【解決手段】 データ処理装置が、受信したデータの特徴を示す情報である特徴情報を生成し、前記特徴情報を、接続するストレージ装置中に保持された前記データと関連付けて前記ストレージ装置に記録し、前記ストレージ装置に保持された前記特徴情報に基づいて、前記ストレージ装置に保持された前記データに関する検索を行う。また、前記データ処理装置は、複数の前記特徴情報に基づいて新たに特徴情報を生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データを処理する方法、及びその方法を実行するデータ処理システム、データ処理装置に係る。特に、時間の経過に伴い発生するデータである時系列データの時系列パターンを用いてデータの処理を行う技術に関する。
【背景技術】
【0002】
RFID(Radio Frequency IDentification)やGPS(Global Positioning System)などセンシング技術の発達に伴い、工場やオフィスなどの実世界から様々なセンサデータが取得可能となり、これらを事業に活用する事例が増加している。例えば、工場などのプラント機器や設備などからモータ回転数や圧力といった稼動情報を取得し、その値や変動により機器の異常や故障を事前に検知する機器予防保守などといった応用事例が実用段階になりつつある。
【0003】
センサデータを活用するためには、データを分析しその動作特性を理解することが不可欠である。センサデータは、時間の経過に伴って発生する、いわゆる時系列データであることが特徴として挙げられ、動作特性を理解するためには時間に沿ったデータの変動やパターンを見出すことが重要である。その結果、センサデバイスから取得される機器や設備の特徴・傾向を利用して、業務に活用することが可能となる。
【0004】
時系列データの分析には、データを蓄積し、蓄積したデータに対して様々な時系列データのパターンを試行錯誤的に検索する方法が取られる。ここで、工場のプラント機器における異常診断を例に挙げて、時系列データ検索を具体的に説明する。近年、プラント業界では機器にセンサを取り付けて設備監視や予防保全に活用する事例が増えつつある。一例として、エンジンに温度センサを取り付けて異常診断を行う例を考える。この温度センサから時々刻々と取得されたセンサデータは、随時、ハードディスク等の記憶装置に蓄積しておく。
【0005】
工場のプラント機器における異常診断では、管理者は、センサから取得した時系列データを監視しており、何らかの異常が起こった時に、蓄積された過去の時系列データを参考に、その異常に対して早期対策が必要となる場合がある。この際に、大量のセンサデータに対する問合せを高速で行うことが求められる。大量のセンサデータに対する問合せの高速化の手法として、非特許文献1で開示されるような、時系列データを特定の時間幅で区切り、各区間に平均値などの集約特徴量を付与する手法が挙げられる。
【0006】
例えば、前述の温度センサの例において、温度が1000度以上となった時刻を問い合わせたい場合、集約特徴量を用いれば、最大値が1000度未満の区間について元の時系列データにアクセスせずに問い合わせ対象から取り除くことができるため、問い合わせの高速化ができる。非特許文献1には、区間ごとに平均値を算出して、平均値に対応するアルファベットを割り振ることで、元のセンサデータにアクセスせずに、前記アルファベットに基づいてセンサデータに対する問合せを行い、問合せの高速化を図る手法が開示されている。
【0007】
また、特許文献1には、区間ごとに集約特徴量を用いてラベル付けを行い、ラベル同士の規則性を発見する手法が開示されている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2006−338373号公報
【非特許文献】
【0009】
【非特許文献1】「センサデータに対する問合せ高速化のための索引の実装」中島 沙季, お茶の水女子大学理学部情報科学科第17回卒業発表会要旨集, pp. 67-68
【発明の概要】
【発明が解決しようとする課題】
【0010】
上述のような工場のプラント機器等における異常診断等において、管理者は、通常とは違う異常な時系列データのパターンを観察した時点で、蓄積された過去の時系列データから類似の時系列データのパターンである類似時系列パターンを探し出すことで、類似時系列パターンを異常に対する早期対策に役立てることができる。このような類似時系列パターンをはじめとする時系列データの検索では、例えばある時点におけるモータ回転数、温度、圧力等、の個々のセンサデータのセンサ値も重要であるが、それ以上に、データ系列から導き出されるセンサ値の推移(時系列パターン)が重要になる。従って、検索においても、個々のセンサ値に対して条件に合致するデータを1つずつ取り出すことよりも、特定の検索パターンとマッチするデータ系列を抽出することが重要となる。
【0011】
上述したような従来技術を用いて、蓄積された時系列データに対する類似時系列パターンの検索を行う場合、非特許文献1で用いるような平均値等の集約特徴量のみでは類似する時系列パターンがある区間の絞り込みを十分に行うことができない。集約特徴量では、区間内のデータを1つの代表値として表すため、区間内の時系列パターンを表すことはできないからである。簡単な例として、最大値と最小値が同じである、単調増加の時系列パターンと、単調減少の時系列パターンを考える。この時、区間内の最大値・最小値・平均値は全て同じ値となるため、単調増加のパターンのみを検索したい場合でも、集約特徴量では双方の区間が、類似時系列パターンがある区間として検索されてしまう。このように、区間の絞り込みを十分に行うことができないと、必要のない(類似していない)データも含めて検索してしまい、検索性能の劣化という問題がある。
【0012】
また、特許文献1で開示されるような技術では、単一又は複数センサ間において、同時に発現しやすい分類ラベルの組み合わせや、分類ラベルの発現しやすい順序などの規則性を発見するが、それを表示しているに過ぎない。つまり、発見した規則性を保存して、時系列パターンの検索に用いることは行っていないため、ラベル同士の規則性を用いて時系列データの検索の高速化を実現できないという問題がある。
【課題を解決するための手段】
【0013】
上述した課題の少なくとも一の課題を解決するための本発明の一態様として、本発明によるデータ処理装置は、受信したデータの特徴を示す情報である特徴情報を生成し、前記特徴情報を、接続するストレージ装置中に保持された前記データと関連付けて前記ストレージ装置に記録する。
また、上述した課題の少なくとも一の課題を解決するための本発明の一態様として、本発明によるデータ処理装置は、前記ストレージ装置に保持された前記特徴情報に基づいて、前記ストレージ装置に保持された前記データに関する検索を行う。
また、上述した課題の少なくとも一の課題を解決するための本発明の一態様として、前記データは時間経過に伴って生成したデータであり、前記特徴情報は前記データの推移に関する特徴を示す。
さらに、上述した課題の少なくとも一の課題を解決するための本発明の一態様として、前記データ処理装置は、前記ストレージ装置に保持された複数の前記特徴情報を抽出し、当該抽出した複数の前記特徴情報に基づいて新たに特徴情報を生成する。
【発明の効果】
【0014】
本発明の一態様によれば、蓄積されたデータから、所望のデータパターンを有するデータを高速に検索することが可能になる。
【図面の簡単な説明】
【0015】
【図1】本発明が適用された時系列データ処理システムの一実施形態における簡略化されたシステム構成を示すブロック図である。
【図2】時系列データの例を示す概念図である。
【図3】時系列データテーブルの例を示す図である。
【図4】特徴量テーブルの例を示す図である。
【図5】特徴量算出方法テーブルの例を示す図である。
【図6】時系列データ蓄積プログラムと時系列データ検索プログラムの構成とデータフローの第一の例を示すブロック図である。
【図7】時系列データ書込部の処理を示すフローチャートである。
【図8】特徴量書込部の処理を示すフローチャートである。
【図9】時系列データに特徴量としてラベルを付与した例を示す図である。
【図10】ラベルを付与したあとに、ラベルに基づいて特徴量の区間長を可変にする例を示す図である。
【図11】時系列データと特徴量のラベルの例を示す図である。
【図12】時系列データ蓄積プログラムと時系列データ検索プログラムの構成とデータフローの第二の例を示すブロック図である。
【図13】特徴量算出方法による特徴量追加部の処理を示すフローチャートである。
【図14】規則性発見による特徴量追加部の処理を示すフローチャートである。
【図15】非類似性判定による特徴量追加部の処理を示すフローチャートである。
【図16】規則性発見による特徴量追加の例を示す図である。
【図17】非類似性判定による特徴量追加の例を示す図である。
【図18】時系列データ検索プログラムの処理を示すフローチャートである。
【図19】検索クエリの第一の例を示す図である。
【図20】検索クエリのうち、where_condition句で指定する検索条件の例を示した図である
【図21】検索条件として、ラベル指定検索が与えられた時の特徴量検索処理のフローチャートである。
【図22】検索条件として、時間指定類似検索が与えられた時の特徴量検索処理のフローチャートである。
【図23】検索条件として、非類似検索が与えられた時の特徴量検索処理のフローチャートである。
【図24】検索の概念の例を示す図である。
【図25】本発明が適用された時系列データネットワークシステムの一実施形態におけるシステムの概要を示す図である。
【図26】センサIDや特徴量の値に複数の値を持つ特徴量テーブルの例を示す図である。
【図27】特徴量算出方法テーブルの例を示す図である。
【図28】特徴量算出方法3の処理を示すフローチャートである。
【図29】入力された時系列データがバッファに読み込まれる様子を示した図である。
【図30】検索クエリの第二の例を示す図である。
【図31】ラベルによる検索における検索クエリの結果表示画面の例を示す図である。
【図32】ユーザから入力される特徴量テーブル更新コマンドの例を示す図である。
【図33】特徴量更新処理例を示すフローチャートである。
【発明を実施するための形態】
【0016】
図25は、本発明が適用された時系列データネットワークシステムの一実施形態におけるシステムの概要を示すブロック図である。時系列データネットワークシステムは、センサ等のデータ発生装置2501、時系列データ処理装置101、ストレージ装置102、管理者PC(Personal Computer)103、及びユーザが使用する端末であるクライアントPC104を備え、ネットワーク2502、2503、2504を介して相互に接続される。ネットワークとしては、例えば、専用線やいわゆるインターネットなどの広域網、LANなどのローカルなネットワークを用いて良い。
【0017】
データ発生装置2501は、時間の経過に伴ってデータを発生するものをいう。例えば、プラントの設備や機器に取り付けられたセンサや、データセンタ内のサーバのログやパフォーマンスデータ(CPUやメモリ使用率等)、RFID、自動車や列車等の車両のセンサ等が考えられるが、これに限定されるものではない。データ発生装置2501で発生した時系列データは、ネットワークを経由して時系列データ処理装置101に入力される。また、一度管理者PC103に入力し、管理者PC103において一定分蓄積した後時系列データ処理装置101に入力してもよい。時系列データ処理装置101では、入力された時系列データを処理した後、ストレージ装置102にデータとして保存する。ストレージ装置102は、時系列データ処理装置101と直接接続されていても良いし、又ネットワーク経由で接続されていても良い。クライアントPCは、ネットワーク2503を介してデータ発生装置2501からデータを受信し、受信したデータに関して、時系列データ処理装置101に対して検索等のリクエストをネットワーク2503経由で行う。
【0018】
図1は、図25にて説明した時系列データネットワークシステムの一実施形態に関して、特に時系列データ処理装置101、ストレージ装置102の構成をより詳細に示すブロック図である。なお、本実施形態において用いる時系列データとは、時間の経過に伴って連続的又は断続的に発生するデータを意味する。本実施形態の時系列データ処理システムは、時系列データ処理装置101、ストレージ装置102、管理者PC(Personal Computer)103、及びクライアントPC104を備える。
【0019】
時系列データ処理装置101は、時系列データの蓄積と検索を行う装置である。時系列データ処理装置は、相互に接続されたメモリ105、プロセッサ106、ディスクインタフェース(I/F)107、入出力装置108を備え、ディスクI/F107を介してストレージ装置102と相互に接続される。また、管理者PCI/F118を介して管理者PC103と接続され、クライアントPCI/F119を介してクライアントPC104と接続されている。
【0020】
メモリ105は、例えばRAM(Random Access Memory)のような記憶媒体で構成される。入出力装置108は、例えばキーボードやマウス、液晶モニタなどの装置で構成される。
【0021】
メモリ105には、時系列データ112の蓄積と特徴量の算出及び蓄積を行う時系列データ蓄積プログラム110と、クライアントPCから入力された検索クエリ113に基づいて時系列データの検索を行う時系列データ検索プログラム111が格納されており、時系列データ112を一時的に格納できる領域であるバッファ118を有している。本実施形態において、後述する時系列データ蓄積プログラム110及び時系列データ検索プログラム111の各処理は、プロセッサ106が、メモリ105に格納されたこれらのプログラムを実行することにより実現される。ただし、これらの処理は、その一部ないし全てを集積回路化するなどしてハードウェアで実現することもできる。
【0022】
管理者PC103は、時系列データ処理装置101に対して、時系列データ112の格納指示や、データ管理に関する各種設定を行う運用管理者の端末である。クライアントPC104は、時系列データ処理装置101に対して、検索を実行するユーザの端末であり、検索要求を示す検索クエリ113を送信し、検索結果114を受信する。管理者PC103、クライアントPC104は、図示していないが、プロセッサ、メモリ、入出力装置などを有している。また、管理者PC103とクライアントPC104は同一でもかまわない。
【0023】
ストレージ装置102は、時系列データを格納する時系列データテーブル117、時系列データの特徴量を格納する特徴量テーブル116、及び特徴量算出方法を格納する特徴量算出方法テーブル115を備える。本実施形態では、処理の対象となるデータを永続的に保持するストレージ装置としてストレージ装置102を使用するものとして説明するが、記憶媒体としてフラッシュメモリを用いた半導体ディスク装置や、光ディスク装置など、永続的にデータを保持することのできる記憶装置であればどのようなものをストレージ装置として用いてもかまわない。また、テーブル115〜117は、例えばリレーショナルデータベースのテーブルとして説明するが、ファイルシステム上に格納された1ないし複数のファイルとこれらのファイルにアクセスするためのプログラムなど、テーブルとして表現できる手法であれば、どのようなものをテーブルとして用いても構わない。
【0024】
図2は、時系列データ112の例を示す図である。時系列データは、センシングデバイスや設備・機器などから取得した計測値であるセンサ値204(例えば回転数・圧力などの稼働情報や温度・湿度などの物理量)、発生元のセンサを表すセンサID203、及びその発生時刻202から成る。図2では、1行目201で2行目以降に読み込む行の各列の意味を表す。ここでは、センサ値の発生時刻202、センサ値204をセンサ1、センサ2、センサ3……という順で入力される。この例ではセンサ値は1秒ごとに取得され(発生時刻202が1秒刻み)、センサID203は順に1、2、3……と付けられており、カンマと改行で区切られたCSV形式で表示されている。例えば、2010年9月1日0時0分0秒にセンサID1で取得されたセンサ値は123である。なお、本実施形態では、時系列データ112は各種計測データとして説明するが、時間経過に伴って発生するデータであればこれに限定されない。この例のように定期的に発生しなくても構わない。例えば、株価データ等も本発明の対象となりうる。
【0025】
図3は、時系列データテーブル117の例を示す図である。時系列データテーブル117は時系列データ112を蓄積するためのテーブルであり、センサデータ201の発生時刻202、センサID203、センサ値204から構成される。1行に1つ又は複数のセンサデータ201のセンサ値204がまとめて格納されている。このまとめる単位として、管理者PCから設定される固定値が用いられる。図の例では、時系列データを1日ごとに分割し、この分割された時間的な区間のセンサ値204をまとめて格納されている。1行目では、2010年9月1日0時0分0秒から同日23時59分59秒までに、センサID203が1のセンサで計測された値を格納されている。テーブルの構成はこの図の例に限らず、入力された時系列データ112の発生時刻202、センサID203、センサ値204を格納できる構成であればよい。また、格納時にデータを圧縮することも可能である。データを圧縮することで、データ量を減らし、ストレージのコスト等を削減することができる。
【0026】
図4は、特徴量テーブル116の例を示す図である。特徴量テーブル116は、時系列データを高速検索するための特徴量を格納するためのテーブルであり、各特徴量を付与した区間の開始時刻401、終了時刻402、センサID203、特徴量算出方法ID404、特徴量407を含んでいる。特徴量407は、時系列データテーブル117に時系列データを格納するときの時間的な区間とは独立した時間的な区間に対して付与され、その区間幅も可変であるため、開始時刻401と終了時刻402で指定する。特徴量テーブル116における特徴量算出方法ID404は、後述する特徴量算出方法テーブル115内の特徴量算出方法ID501を指定する。特徴量407は、開始時刻401から終了時刻402までの区間の時系列データに対して、特徴量算出方法ID404で指定される特徴量算出方法を適用して求めた特徴量を格納する。特徴量407は、ラベル405と値406の少なくとも何れか一方から構成される。特徴量算出方法によって、ラベルのみを持つ特徴量、値のみを持つ特徴量、ラベルと値の双方を持つ特徴量がある。
【0027】
特徴量とは、特定の区間の時系列データの特徴を示す情報である。特徴量の1つの例は集約特徴量であり、その区間の最大値、最小値や平均値である。本実施例では、特徴量はラベルと値から構成されるが、最大値のような集約特徴量は値のみを持つ特徴量として扱われる。また、ラベルを特徴量とする一例として、時系列データのパターンを表すラベルがある。ラベルには、文字や数値、記号等を用い、時系列データのパターンが類似している区間に同じラベルを特徴量として付与する。時系列データは時間の経過に伴った値の列であり、時系列データのパターン(時系列パターン)とは時間経過に伴った時系列データの値の推移の仕方であり、時系列データのパターンが類似しているとは、時系列データの値の推移の仕方が類似していることをいう。
【0028】
このように、集約特徴量と違い、ある区間の時系列データを1つの値に集約するのではなく、パターンとして類似の時系列データに同じラベルを付加する。また、ラベルと値との組み合わせを特徴量とする例として、パターンを表すラベルと、その類似度を値とする特徴量が例にある。ここでいう類似度とは、その区間の時系列パターンが、同じラベルが付加されたその他の区間の時系列パターンに、どの程度類似しているかを表す値である。具体的な例は後述する。なお、図4では特徴量テーブル116の一例として、センサID203が1であるセンサデータに関する特徴量テーブルを示したが、1つの特徴量テーブルに異なるセンサIDのセンサデータに関する特徴量407を格納することも可能である。
【0029】
また、特徴量テーブル116の変形例として、センサID203や特徴量の値406が、複数の値をとる場合もありえる。図26に特徴量テーブルの変形例を、図27に対応する特徴量算出方法テーブルを示す。センサID203が複数の場合の例として、2つのセンサの値の差分を用いた特徴量算出方法等が考えられる。例えば、センサ1とセンサ3の値は正常時はほぼ同じだということが分かっているとすると、センサ1とセンサ3の値の差の最大値(図27の2701)を特徴量として格納しておく(図26の2601)。これによって、2つのセンサの差が大きくなる異常な区間、といった複数のセンサに関わる検索を高速にできる。また、特徴量の値として、複数の値をもつベクトル値とする特徴量算出方法も可能である。例えば、時系列データの最大値と最小値の組(図27の2702)を特徴量として格納しておく(図26の2602)。これによって、最大値と最小値の差が一定以上の区間の検索、といった複数の値に関わる検索を高速にできる。また、最大値と最小値をそれぞれ別の特徴量として格納するよりも特徴量テーブルのサイズを小さくできる。
【0030】
本実施例では、1つの特徴量テーブル116に複数の特徴量算出方法ID404による特徴量407を格納することで、特徴量算出方法の変更に伴うテーブルの管理は必要無くなり、特徴量テーブルの管理を容易にすることができる。ユーザやシステムが適宜必要に応じて特徴量算出方法を追加・削除しても、その特徴量算出方法に該当する特徴量テーブルを新たに追加・削除する必要が無いためである。ただし、特徴量テーブル116を特徴量算出方法毎に分けて作成することも可能である。
【0031】
図5は、特徴量算出方法テーブル115の例を示す図である。特徴量算出方法テーブル115は、特徴量算出方法ID501と、特徴量算出方法508から構成される。特徴量算出方法508は、ある区間の時系列データ(値の配列)またはラベルの集合に対する特徴量の算出方法と(=>の左側)とそれによって算出される特徴量(=>の右側)を含む。図5の1〜4では、float型の値の配列dataに対する特徴量の算出方法やラベル同士の関係による特徴量の算出方法が示されている。例えば、特徴量算出方法1と2では、与えられた区間の時系列データのうち、それぞれ最小値と最大値を特徴量として算出する(502,503)。また、特徴量算出方法5と6のように、時系列データではなく、ラベルの関係性(=>の右側)によって算出される特徴量(=>の右側)もありえる(506,507)。各特徴量算出方法の詳細については後述する。なお、説明のために図5では特徴量算出方法508を自然言語で記述しているが、実際には、あらかじめ用意された、又はユーザによって個別に定義されたプログラムを呼び出すなどして特徴量算出を行う。
【0032】
特徴量算出方法テーブル115は、運用開始時に管理者PC103から設定される。そして、それぞれの特徴量算出方法508はプログラムとしてストレージ装置内の特徴量算出方法テーブル115に保持され、時系列データ蓄積プログラム110に基づいてプロセッサ106が特徴量算出方法508を実行することで特徴量407を算出する。また、運用中に、ユーザは時系列データを分析しながら、試行錯誤的に検討・検証の上変更をしていくことになる場合もある。特徴量算出方法テーブルを適宜必要に応じて変更し、特徴量算出方法を追加・削除することで、その運用にあった特徴量テーブルが作成されるようになる。特徴量算出方法の指定方法としては、ユーザが独自で個別に作成・指定する以外にも、システム側で、どの業務にも利用出来る汎用的な算出方法や業務業種に特化した算出方法のセットをあらかじめ用意しておき、指定する方法などが考えられる。また、後述するように、ユーザが指定する特徴量算出方法以外にも、時系列データ処理システムが特徴量算出方法を追加することも可能である。
【0033】
図6は、時系列データ蓄積プログラム110と時系列データ検索プログラム111の機能ブロックの構成と矢印によって示されるデータフローとを示すブロック図である。時系列データ蓄積プログラム110は、入力された時系列データ112を時系列データテーブル117に書き込む時系列データ書込部603、入力された時系列データ112に対する特徴量を特徴量算出方法テーブル115を元に計算し特徴量テーブル116に書き込む特徴量書込部601、特徴量テーブル116に格納された特徴量を元に新たな特徴量を計算し特徴量テーブル116に追加する追加特徴量書込部602から構成される。
【0034】
時系列データ検索プログラム111は、特徴量テーブル116を参照して検索対象範囲の全時系列データの中から、入力された検索クエリ113に合致する可能性がある区間を特定する特徴量検索部604と、特徴量検索部604で特定された区間の時系列データを時系列データテーブル117から取得する時系列データ取得部605と、取得した時系列データを詳細検索して検索クエリ113に合致する部分を取得する時系列データ詳細検索部606と、詳細検索して得た結果を検索結果として出力する出力部607から構成される。
【0035】
ここで、時系列データ蓄積プログラム110によるデータ蓄積と時系列データ検索プログラム111によるデータ検索の全体的な流れを簡単に説明する。時系列データ蓄積プログラム110は、管理者PC103から入力された時系列データ112を時系列データテーブル117に蓄積する(時系列データ書込部603)。また同時に、入力された時系列データ112を用いて、時系列データ検索時のインデックスとなる、時系列データのパターンを表す特徴量を算出し、特徴量テーブル116に格納しておく(特徴量書込部601)。ここで、図12に示すように、特徴量書込部601が用いる時系列データは、時系列データ書込部603が先に時系列データテーブル117に書き込んだデータを読み込んで用いてもよい(610)。この際、時系列データテーブル117での分割時間幅とは異なる時間幅で読み込むことも可能である。追加特徴量書込部602は、特徴量テーブルを参照して新たな特徴量を追加する。時系列データ検索プログラム111では、クライアントPC104から検索クエリ113が与えられると、まず特徴量検索部604が特徴量テーブル116を用いて、検索対象範囲の時系列データの中から検索クエリ113に合致する時系列データの区間を絞り込む。その後、絞り込まれた時系列データを取得して時系列データ(生データ)を用いた詳細検索を行ない、最終的な検索結果114を出力する。検索の最初に特徴量を用いて絞り込みを行うことで、取得及び詳細検索を行う時系列データの量を削減することができ、検索処理の高速化が可能となる。なお、検索クエリ113の内容の説明については、図20を用いて後述する。
【0036】
次に、時系列データ及び特徴量の蓄積の処理について説明する。図7は、時系列データ蓄積プログラム110における、時系列データ書込部603の処理を示すフローチャートである。この処理は、管理者PC103から時系列データ112が入力されたのを契機に実行される。まず、入力された時系列データ112を、その入力形式にしたがってバッファ118に格納して読み込む(S701)。図29を用いて、S701で図2で説明した時系列データ112を読む込む様子を示す。時系列データ112の読込では、発生時刻にそってセンサ値(2901〜2903)を読み込んでいき、センサ毎のバッファ(2904〜2906)にそれぞれ格納していく。そして、バッファ(2904〜2906)に格納されたセンサ値を、センサ毎のバッファ(2904〜2906)に設定された時系列データ分割時間幅にしたがって、時系列データを一定時間ごとに分割する(S702)。
【0037】
例えば、図29の場合は、1時間の時間幅にて分割している。この場合、1秒ごとに連続するセンサ値であれば、3600個のデータが分割された一定時間に含まれることとなる。そしてバッファ118に分割して格納した時系列データを読み込んで時系列データテーブル117に格納する(S703)。この時、分割したデータを圧縮することで、データ量を削減することも可能である。なお、図7ではS702で分割した時系列データを時系列データテーブル117に格納したが、時系列データ書込部603は、バッファ(2904〜2906)を介さずに時系列データ112を取得し、取得した時系列データを時系列データテーブル117に格納することも可能である。
【0038】
図8は、時系列データ蓄積プログラム110における、特徴量書込部601の処理を示すフローチャートである。この処理は、管理者PC103から時系列データ112が入力されたのを契機に実行され、時系列データ書込部603の処理によって一定時間ごとに分割してバッファ(2904〜2906)に格納された時系列データに対して、特徴量算出方法テーブル115を参照しながら特徴量を算出し、特徴量テーブル116に格納していく(S802〜S806)。具体的には、バッファ(2904〜2906)に格納された時系列データを読み込み(S801)、特徴量算出方法テーブル115の全ての特徴量算出方法について以下の処理を行う(S802)。その算出方法が時系列データに対する算出方法でない場合(S803)は、ループ終端に移行する(S806)。その算出方法が時系列データに対して特徴量を算出する算出方法であれば(S803)、その算出方法を使って、特徴量を算出する(S804)。そして、使用した時系列データの開始時刻と終了時刻、使用した算出方法ID、算出した特徴量を特徴量テーブル116に格納する(S805)。ここで、ステップS803において、時系列データに対しての特徴量算出方法でない場合、その算出方法は追加特徴量書込部で用いる算出方法であり、ここではその算出方法を用いた特徴量算出は行わない。図5では、特徴量算出方法IDが1〜4(502〜505)の特徴量算出方法が時系列データdataを用いた算出方法であり、5〜6(506〜507)の特徴量算出方法が時系列データを用いない(追加特徴量書込部で用いる)算出方法である。なお、追加特徴量書込部602の処理については、後述する。
【0039】
なお、上述の例では、時系列データをバッファ118に分割して格納する処理は時系列データ書込部603が行う処理(S701〜S702)として説明したが、特徴量書込部601が、管理者PC103から時系列データ112が入力されたのを契機としてデータ入力(S801)に先立って実行することも可能である。
【0040】
特徴量書込部601が行う特徴量算出の例として、パターンによるラベル付与の例を、図9の時系列データを使って説明する。ここでは、図5に示した特徴量算出方法テーブルの特徴量算出方法3(504)を用いる。図9に示すのは、時系列データの一例であり、毎日起動停止を繰り返すエンジンの温度センサの時系列データである。縦軸はセンサ値である温度で、横軸は時間を示す。停止時には温度は低く安定し(902、906)、起動中は変動しながら温度が上がっていき(903)、起動が終了すると高い温度で安定し(904)、停止中は変動しながら温度が下がっていく(905)、という推移である。時系列データの一番右側(907)は、起動が失敗するなどの異常があり、一度温度が上がったがすぐに落ちてしまっている。時系列データの下部に示したアルファベット901は、図5に示した特徴量算出方法テーブルの特徴量算出方法3(504)を使って算出した特徴量のラベルの例である。ラベル付与では、時系列データの下部に示したアルファベット901に示す通り、温度が低く安定しているデータ(902、906)には停止時を示すA、温度が上がっていくデータ(903)にはエンジン立ち上げ中を示すB、温度が高く安定しているデータ(904)には起動安定状態を示すC、温度が下がっていくデータ(905)には停止処理中を示すD、温度が一度上がってすぐに下がったデータ(907)には異常時を示すE、のようにそれぞれの時系列データのパターンに応じて個別のラベルを付与する。
【0041】
このように、ラベル付与は、類似時系列パターンの検索の高速化を目的としたもので、時系列データのパターンが類似している部分に同じラベル901を付与するようにする。また、特徴量の値として類似度を併記することで、類似時系列パターンのうち上位10件を表示するといった検索も高速に行うことができる。
【0042】
図5に示した特徴量算出方法3(504)では、時系列データを図9のように固定長908に分割した上で、分割した区間内の時系列データに基づいてクラスタリングを行ない、クラスタそれぞれに一意のラベルを付加する。クラスタリングは、区間内のデータの傾き、データの平均、回帰直線と極大値・極小値をとる点との距離、の3つに基づいて行う。図28に特徴量算出方法3のフロー図を示す。ある区間の時系列データdataの特徴量を特徴量算出方法3(504)で算出する場合、まずクラスタリングに必要な値の計算を行う(S2802)。そして、その区間がどのクラスタに属する区間かを計算し、属するクラスタを特徴量のラベル405とする(S2803)。また、その区間を表す点と属するクラスタの重心とのの距離(ユークリッド距離)を計算して、類似度として特徴量の値406に格納する(S2804)。他にも前記フロー図28のステップS2802において、極大値・極小値の数や順番等を追加で算出し、これらの考慮に入れてクラスタリングを行うことで、パターンを表すこともできる。また、同様に、前記フロー図28のステップS2802において、傾き・平均値・距離を算出する代わりに区間内の個々の値を個々の軸として多次元空間のベクトルとしてマッピングし、クラスタリングを行う方法も考えられる。また、クラスタリングではなく、高速フーリエ変換をするなども考えられる。
【0043】
ラベルを付与したあとに、ラベルに基づいて特徴量の区間長を可変にすることもできる。図10に例を示す。なお、縦軸はセンサ値である温度で、横軸は時間を示す。この例では、隣接する区間に同じラベルが付与されていれば、区間を統合する。例えば、図9で付与したラベル(901)を示す図10上の左から1つ目の区間1001と2つ目の区間1002は、共にラベルAが付与されている。そこで、図10の1000に示すように、例えばこの2つの区間を統合して1つの区間とし、統合した区間にラベルAを付与する(1003)。前述したとおり、特徴量テーブルは開始時刻と終了時刻で区間を表すため、固定区間である必要はない。このようにラベルを付与する区間を可変長にして統合することによって、特徴量テーブルのサイズを削減することができる。なお、この処理は例えば、図8の特徴量書込部601の特徴量テーブル格納時(S805)に行うことができる。処理中の区間のラベルと、直前の区間のラベルが同じであれば、直前の区間の終了時刻402を処理中区間の終了時刻に書き換えることで、処理中区間と直前の区間を1つの区間として統合して格納することができる。
【0044】
また、異常検知を示すラベルのように、ラベル付与の頻度が少ないラベルも考えられる。このとき、ラベルに基づいて特徴量の区間長を可変することで、特徴量が付与された区間のデータのみを、特徴量テーブル116に格納する。このことによって、特徴量テーブルのサイズを削減することができる。この例を示したのが、図11の上部に示した、図5における算出方法4(505)によるラベル1101とラベル1102である。なお、縦軸はセンサ値である温度で、横軸は時間を示す。この例の場合、算出方法4で用いている異常検知手法Aで検知できる異常Xが2つ発生している。1つ目は時刻t3で開始し時刻t4で終了し、2つ目は時刻t6で開始し時刻t7で終了している。そこで、区間t3〜t4と区間t6〜t7に算出方法4でラベル異常Xを付与する。また、その他の区間には算出方法4によって付与されたラベルはないため、特徴量テーブルに格納しない。算出方法4では、何らかの異常検知手法Aによって、異常Xであると判断する。
【0045】
なお、異常検知手法としては、値のスパイク等一定時間内に値の増加・減少があったら異常とする、といったルールベースや、値が一定の範囲内になければ異常とする、といったアノマリ型等が考えられるが、ここでは特に限定せず、どの異常検知手法を用いてもよいとする。
【0046】
図11の時系列パターンに対応する特徴量テーブルの一部が図4である。例えば、図11では、区間t1〜t2について算出方法3でラベルBが付加されており(1103)、これは図4の特徴量テーブルで行409のように表される。同様に、図11のラベル1101、1102、1104、1105がそれぞれ図4の行412、413、410、411で表される。ここで、特徴量の値は、算出方法3の行については、前述したように類似度を値とする。算出方法4については、異常検知手法Aによって定義された異常度を値とする。例えば、アノマリ型の異常検知手法であれば、統計的な手法でどのくらい正常と異なっているかを数値で表す等が考えられる。
【0047】
次に、追加特徴量書込部602の処理について説明する。特徴量書込部601が、時系列データが入力されたのを機に、時系列データを元に特徴量を算出し書き込みを行うのに対し、追加特徴量書込部602は、定期的に又は管理者PC103からの実行命令によって実行され、特徴量テーブル116に格納された特徴量を元に新たな特徴量を算出し書き込みを行う。定期的というのは、具体的には、特定の時間が経過するごとに、又は特定の量のデータが入力・格納されるごとに等である。特徴量書込部601の最後で、追加特徴量書込部602の処理を呼び出しても良い。追加特徴量書込部602の処理は、特徴量算出方法による特徴量追加処理、規則性発見による特徴量追加処理と、非類似性判定による特徴量追加処理に分けられる。これら3つの処理は、追加特徴量書込部が実行されたときに、全ての処理を行ってもよいし、一部の処理だけを行っても良い。
【0048】
図13は、追加特徴量書込部602が、特徴量算出方法テーブル115に格納された特徴量算出方法のうち、特徴量テーブルに格納された特徴量を元に新たな特徴量を算出する方法を用いて、特徴量を特徴量テーブル116に追加する処理を示すフローチャートである。具体的には、特徴量算出方法テーブル115の全ての特徴量算出方法について、以下のS1301からS1305までをループして行う。処理を開始すると(S1301)、その算出方法が時系列データに対する算出方法であるか判定する(S1302)。時系列データに対する算出方法でないとは、図8のステップS803でNoの分岐をとった算出方法と同義である。すなわち、特徴量算出方法が時系列データを用いない算出方法であり、図5では算出方法5〜6(506〜507)がこれに該当する。そして、その算出方法が時系列データに対する算出方法である場合は、ループ終端に移行する(S1305)。その算出方法が時系列データに対する算出方法でなく、特徴量テーブルの特徴量に対する算出方法であれば、特徴量テーブルを参照し、その算出方法に一致する区間があるかを調べる(S1303)。もし一致する区間があれば、その算出方法で定義されたラベルを新たな追加ラベルと算出し、その区間の開始時刻と終了時刻、算出方法ID、算出した特徴量を特徴量テーブルに追加する(S1304)。一致する区間が無い場合はループ終端に移行する(S1305)。
【0049】
この特徴量算出方法による特徴量追加処理より、例えば、時系列データ入力時とは異なる分割単位にて新たに特徴量を生成することや、時系列データ入力時には設定されていなかった特徴量算出方法によって新たに特徴量を付与し直すことが可能になる。
【0050】
図14は、追加特徴量書込部602が、規則性発見による特徴量追加処理を示すフローチャートである。この処理は、特徴量テーブル116を参照して、同じラベル列が複数あれば、別のラベルを追加する。具体的には、まず、特徴量テーブル116を参照して、同じセンサID203でかつ同じ特徴量算出方法でかつ特徴量としてラベルが存在する行から、(開始時刻、終了時刻、ラベル)を抜き出す(S1401)。次のステップ(S1402)では、これらを開始時刻順にソートし、ラベル列とする。そして、このラベル列に規則性のあるラベル列があるか否かを判定する。このラベル列に一定数以上の同一の部分ラベル列が含まれていた場合、規則性のあるラベル列が発見されたことになる。部分ラベル列とは、あるラベル列に含まれる、2つ以上の連続したラベルの列である。規則性のあるラベル列が発見できない又は発見したラベル列が既に特徴量算出方法テーブルに格納されている場合は、処理を終了する。一方、特徴量算出方法テーブルに未登録の規則性のあるラベル列が発見された場合、その規則性のあるラベル列に新たな別のラベルを付与する(S1403)。そして、規則性のあるラベル列から新たなラベルを付与するという新たな特徴量算出方法として、特徴量算出方法テーブルに格納する(S1404)。また、全ての規則性のあるラベル列について、規則性のあるラベル列の各繰り返し単位における最初のラベルの開始時刻を開始時刻、最後のラベルの終了時刻を終了時刻、新たに追加した特徴量算出方法ID、新たなラベルを特徴量テーブルに格納する(S1405)。
【0051】
図16に、規則性発見による特徴量追加処理において規則性のあるラベル列に付与される新たな特徴量の例を示す。この図では、ラベルは左側(時刻の古い方)から順に、ABCDABCDABCDABDとなっており、部分ラベル列ABCDが規則的に現れている(1602)。これは、例えば、エンジンの起動と終了の繰り返しなど、周期的なものを示すと考えられる。そのため、このラベル列ABCDに新たなラベルF(1603)を追加する。そして、特徴量算出方法テーブルに、「ラベル列ABCDがあれば、その区間にラベルFを追加」という特徴量算出方法を追加する(図5の506)。特徴量算出方法IDは、特徴量算出方法テーブルにある他の特徴量算出方法と重複しないIDであれば、時系列データ処理装置が指定しても良いし、図示していないテーブルを管理するシステムが決めてもよい。そして、特徴量テーブルには、「開始時刻401がt0、終了時刻402がt8、センサID203が1、特徴量算出方法ID404が5、特徴量のラベル405がF」という行を追加する。ラベル列ABCDを持つ他の区間についても同様に特徴量テーブルに追加する。
【0052】
新たなラベルFが追加されたことによって、ラベルB1601のように、ラベルFに含まれないラベルBを含む区間を検索することができる。すなわち、正常な繰り返しを示すラベルFの中に含まれないラベルBを検索することで、異常発見時の類似異常検索を効率良く行うことが可能となる。検索の処理については後述する。
【0053】
図15は、追加特徴量書込部602が行う、非類似性判定による特徴量追加処理を示すフローチャートである。この処理は、特徴量テーブル116を参照して、ある特徴量算出方法に関して同じ特徴量を有する区間で、別の特徴量算出方法に関して特徴量の出現頻度に違いがあれば、別のラベルを追加する。なお、出現頻度の違いとは、その特徴量が含まれるか否か(出現頻度が1か0か)という場合も含む。具体的には、まず、特徴量テーブル116を参照して、センサID203、特徴量算出方法ID404、特徴量407が同じである区間を抽出し(S1500)、抽出した区間について別の特徴量算出方法ID404を有する特徴量列を取得する(S1501)。そして、取得した特徴量列について、同じラベルが付与されている区間で他の特徴量に関して違いがある区間が存在するかを調べる(S1502)。もし違いがある区間が存在し、かつ特徴量算出方法テーブルに未登録であったら、その区間に新たなラベルを追加する(S1503)。そして、同じラベルが付与されている区間で他の特徴量に関して違いが存在した特徴量から新たなラベルを追加する、という新たな特徴量算出方法として、特徴量算出方法テーブルに格納する(S1504)。そして、違いがあった区間について、新たなラベルを特徴量とし、特徴量テーブルに格納する(S1505)。
【0054】
図17に、図15で説明した非類似性判定による特徴量追加処理において付与される新たな特徴量の例を示す。この図17で、同じラベルCが付いている区間について、異常Xの数を比較することを考える。ここで、図では異常Xは点で示してあるが、実際には図11のように短い区間である。この図の中でラベルCが付与された区間は3つあり、そのうち左側と中央の2区間1701については、異常Xの数は1と少ない。また、図示していない区間についても、ラベルCが付与された区間内の異常Xの数は高々1であるとする。しかし、ラベルCが付与された右側の区間1702については、異常Xの数が5であり、他のラベルCが付与された区間と異なる。そのため、同じラベルCが付いている区間であり、かつ異常Xの数が他と異なって多い区間1702に、新たなラベルG(1703)を追加する。これは、例えば、特徴量算出テーブルに「異常Xを5個以上含むラベルCの区間であれば、その区間にラベルGを追加」という特徴量算出方法を追加する(図5の行507)。
【0055】
上述の規則性発見の場合と同様、特徴量算出方法ID404は、特徴量算出方法テーブル508にある他の特徴量算出方法ID404と重複しないIDであれば、時系列データ処理装置が指定しても良いし、図示していないテーブルを管理するシステムが決めてもよい。そして、特徴量テーブルには、「開始時刻401がt10、終了時刻402がt11、センサID203が1、特徴量算出方法ID404が6、特徴量のラベル405がG」という行を追加する。他にも異常Xを5個以上含むラベルCの区間があれば、それらの区間についても同様に特徴量テーブルに追加する。なお、上述の例では異常Xの数が5ということを基準としているが、当然5以外の異常Xの個数に基づいて判断可能である。
【0056】
このような違いの検出、および5以上といった閾値の決定方法としては、平均・分散等をはじめとした統計手法を用いる方法や、クラスタリングを行う手法などが考えられる。例えば、統計手法を用いる場合、ラベルCの区間に含まれる異常Xの数の平均と分散を求め、「(平均−3*標準偏差)以下、又は(平均+3*標準偏差)以上」の場合非類似とする、などが考えられる。このように、閾値についても、「5以上」のように1つの閾値に限らず、「10以下または100以上」のように2つ以上の値を閾値とする場合もある。また、本実施例では5を閾値としているが、他の値を閾値としても構わない。
新たなラベルGが追加されたことによって、同じラベルCが付いた区間であっても、他と異なる区間を検索することができる。すなわち、異常Xが多発する起動中定常状態区間の高速検索をすることができる。
【0057】
以上の追加特徴量書込部602による特徴量追加処理によって、時系列データが入力された時には付与されていなかった特徴量を付与して特徴量テーブルを更新していくことで、ユーザのニーズにリアルタイムに応じた検索を行うことが可能となる。また、複数の特徴量の関係性に基づいて新たに特徴量を付与することで、複合的な検索条件に対応した効率のよい検索が可能となる。
【0058】
次に、以下にて、検索の処理について説明する。図18は、時系列データ検索プログラム111の処理を示すフローチャートである。この処理では、クライアントPC104から受け取った検索クエリ113に合致する時系列データを抽出し、検索結果114として出力する。まず、特徴量検索部604で、受け取った検索クエリ113を元に、特徴量テーブル116を参照し、検索クエリ113に合致する時系列データがある区間を絞り込む、特徴量検索処理を行う(S1801)。そして、時系列データ取得部605にS1801で絞り込んだ該当区間の時系列データを渡す。時系列データ取得部605では、渡された区間の時系列データを、時系列データテーブル117から取得し、取得した時系列データを時系列データ詳細検索部606に渡す、時系列データ取得処理を行う(S1802)。時系列データ詳細検索部606では、渡された時系列データと検索クエリ113を元に時系列データを詳細検索し、検索クエリに一致するデータを抽出して、出力部607に渡す、時系列データ詳細検索し処理を行う(S1803)。
【0059】
特徴量検索処理では特徴量を用いて検索クエリに合致する区間を検索するのに対し、時系列データ詳細検索部では時系列データ(生データ)を用いて検索クエリに合致する区間を検索する。時系列データ詳細検索処理において、全ての区間の時系列データを用いて検索クエリに合致する区間を検索することは可能だが、大量の時系列データの取得・検索を行わなければならないため、検索性能が低下する。特徴量検索処理によって、時系列データ詳細検索処理で扱うデータ量を効果的に絞り込むことで、検索の高速化ができる。詳細検索の方法は特に限定しないが、例えばユークリッド距離やタイムワーピング距離を用いて類似度を計算し、上位k件(kは自然数)又は類似度が閾値以内とする手法が考えられる。出力部607では、渡されたデータと検索結果として出力する、出力処理を行う(S1804)。
【0060】
特徴量検索部604は、検索対象とする全時系列データのうち、検索クエリに合致する可能性のある区間を特徴量テーブルを用いて絞り込む。その結果、後の処理である、時系列データの取得と詳細検索の対象となるデータ量を削減することができる。検索対象となる時系列データが大量である場合、本発明によって特徴量を付与しておけば、取得・詳細検索の対象となるデータ量を大幅に削減することができるため、高速検索を行うことができる。
【0061】
図19に、検索クエリ113の例を示す。select_sensor句1901で検索対象センサ、where_timerange句1902で時系列データの検索対象区間、where_condition句1903で特徴量算出方法115及び特徴量407といった検索条件を指定する。図19では、センサ1の2009年9月1日〜2010年8月31日の時系列データを対象に、特徴量算出方法3によって算出されたラベルEが付与されている区間を検索する。なお、図19に示した検索クエリの記述形式は一例であり、同様の意味を表現できるものであればこれに限定しない。
【0062】
図20に、検索クエリのうち、where_condition句1903で指定する検索条件の例をいくつか示す。ここでは、検索条件は3種類あり、指定した特徴量算出方法とそのラベルが付与された区間を検索する「ラベル指定検索」(2001〜2005)、指定した区間の時系列パターンに類似した区間を検索する「時間指定類似検索」(2006〜2008)、また指定したラベルに関して、他と違い異常と思われる区間を検索する「非類似検索」(2009)を示している。ラベル指定検索では、上述した検索条件のようにラベル1つを指定する(1903)以外にも、別のラベルに含まれる又は含まれないといった包含関係も指定できる(2001、2002)。時間指定類似検索では、指定した区間に類似した時系列パターンを検索する(2006)。このとき、算出方法による値や区間に付与されたラベル群の類似度などで、類似度を計算することで、類似度が高いものだけ(2007)や類似度が一定以上のものだけ(2008)を結果として返すといったことも可能である。類似度は、前述したクラスタリングにおいて属するクラスタの重心との距離を類似度とする方法や、パターン同士のユークリッド距離やタイムワーピング距離を類似度とする。非類似検索は、非類似性判定による追加特徴量書込部で他と違うと判定されラベルが追加された区間を検索する(2009)。以下、フロー図(図21〜23)を用いて、各検索条件において特徴量検索部604が実行する特徴量検索処理の詳細について説明する。
【0063】
図21は、検索条件として、ラベル指定検索2101が与えられた時の特徴量検索処理S1801のフローチャートである。ラベル指定検索では、図20に例示した記述形式等を使用して、1つ以上の特徴量算出方法IDとラベルの組と、この包含関係を指定する。これを検索条件とした検索クエリを入力として受け取った特徴量検索部604は、まず特徴量テーブル116を参照し、(特徴量算出方法ID、ラベル)が入力された検索条件のどれかと同じ区間を取得する(S2102)。そして、取得した区間の(開始時刻、終了時刻)を用いて、包含関係が検索条件に合致する区間の時系列データを時系列データテーブル117から取得する(S2103)。
【0064】
図24は、時系列データのラベルによる検索の例を示した図である。図24の例においては、ユーザは2402の区間の時系列データのパターンを見ておかしいと思い、同様の時系列データパターンを検索する場合を考える。この時系列パターンには、ラベルE2401が付与されていることを知り、ラベルEが付与された区間を検索する。そこで、検索条件2101として、「(算出方法3、ラベルE)、包含関係なし」を指定し、検索を行う。図19と図20で例に挙げた記述方法を用いると、where_condition句に「label=E by 3」と記述する。すると、S2102で、ラベルE2403が付与されている区間t3〜t4(2404)を取得できる。この場合は包含関係の指定はないため、S2103では取得した全ての区間を検索結果として、時系列データ取得部605に渡す。
【0065】
ここで、ユーザが2402の区間にラベルEが付与されていることの判別は、例えば時系列データテーブル117に蓄積された過去のデータに関して、図30のような検索クエリを発行することで知ることができる。この検索クエリでは、図19で示した検索対象センサ1901と検索対象区間1902と共に、「with label by 3」(3001)という行を含むことによって、指定したセンサと時間幅にある時系列データと共に、算出方法3によるラベルを取得する。この検索クエリの結果表示画面の例が図31である。下に指定したセンサと区間の時系列データをグラフとして表示し(3102)、その上部に算出方法3によるラベルを対応する区間の上に表示している(3101)。この画面を見ることで、ユーザは時系列パターン3103のラベルがEだということを知ることができ、ラベルに基づいた類似検索を行うことができる。なお、特徴量算出方法テーブルはユーザが直接管理するため、ユーザは算出方法3がどんな算出方法であるかはあらかじめ分かっている。
【0066】
また、包含関係がある場合の例として、図16を用いて説明する。通常の繰り返しであるラベルFに含まれないラベルBを検索する場合を考える。そこでは、検索条件2101として、「((算出方法3、ラベルB)、(算出方法5、ラベルF))、B not in F」を指定し、検索を行う。図19と図20で挙げた記述方法を用いると、where_condition句に「label=(B by 3)not in(F by 5)」と記述する。すると、まずS2102で、ラベルBが付与されている区間が4つ、ラベルFが付与されている区間が3つ取得できる。S2103で包含関係を満たすラベルBの区間、すなわち「どのラベルFについても((ラベルFの開始時刻<=ラベルBの開始時刻)かつ(ラベルBの終了時刻<=ラベルFの終了時刻))を満たさないラベルB」を求める。その結果、図16一番右のラベルBの区間1601を検索結果として、時系列データ取得部605に渡す。
【0067】
この処理により、異常発見時の類似時系列パターン検索や、ラベル同士の関係性を考慮したコンテキスト・アウェアな検索を高速に行うことができる。ここで、コンテキスト・アウェアな検索とは、時系列データのパターンで表される特定の状態の元で(又は特定の状態以外の元で)起こった時系列パターンの検索をいう。例えば、機械の過渡状態(起動中・停止中など)を除いた平常状態での変動の検索などである。また、前述の図16の例では、ラベルFが付与された正常時の周期的な変動以外に含まれるラベルBも、この処理で検索できる。
【0068】
図22は、検索クエリにおける検索条件1903として、時間指定類似検索2201が与えられた時の特徴量検索処理S1801のフローチャートである。時間指定類似検索では、区間を指定する開始時刻t1と終了時刻t2を入力として指定する。この処理では、区間t1〜t2の特徴量と類似した特徴量を持つ区間を特徴量テーブル116を用いて検索する。まず、与えられた区間t1〜t2の特徴量を求める。もし区間t1〜t2が既に特徴量テーブル116に格納されていれば(S2202)、特徴量テーブル116を参照して、区間t1〜t2の(特徴量算出方法ID、特徴量)を取得する(S2203)。また、区間t1〜t2を含む区間や、区間t1〜t2が含む区間の特徴量も取得できる。一方で、区間t1〜t2が特徴量テーブル116に格納されていなければ、図12の610と同様に、時系列データテーブルから区間t1〜t2の時系列データ112を読み出し、特徴量算出方法テーブル115を参照して、特徴量書込部の特徴量算出の処理と同様に、区間t1〜t2の(特徴量算出方法ID、特徴量)を算出する(S2204)。上記と同様に、区間t1〜t2を含む区間や、区間t1〜t2が含む区間の特徴量も可能であれば算出する。その後、特徴量テーブルを参照し、取得又は算出した(特徴量算出方法ID、特徴量)又はそれらの組み合わせが同じである区間を取得する(S2205)。区間t1〜t2に付与された特徴量は複数ある場合には、それらの全て又は多くが一致する区間を取得することで、区間t1〜t2と類似した時系列データを検索することができる。
【0069】
図24を用いて、時間指定による類似検索の例を説明する。前述と同様に、ユーザは区間t1〜t2の時系列データのパターンを見ておかしいと思い、同様の時系列データパターンを検索する。検索条件2201は、「区間t1〜t2(2402)に類似」を指定し、検索を行う。前述のS2202〜S2204において、区間t1〜t2(2402)の特徴量として、(算出方法3、ラベルE)と取得する。S2505において、ラベルE2403が付与されている区間t3〜t4(2404)を取得できる。
【0070】
この処理により、異常発見時の類似時系列パターンの検索を高速に行うことができる。この処理は、上記のラベル指定検索と類似しているが、ユーザはラベルではなく区間を指定し、特徴量検索部においてラベルを取得又は算出する。これによって、ユーザはラベルを意識する必要がないため、より直感に近い指定ができる。
【0071】
図23は、検索条件として、非類似検索2301が与えられた時の特徴量検索処理S1801のフローチャートである。非類似検索では、ラベルを入力として指定し、指定されたラベルに関連して他と違うと判定された区間を検索する。まず、特徴量算出方法テーブルを参照し、指定されたラベルに関連した特徴量算出方法を取得する(S2302)。すなわち、特徴量算出方法テーブルに格納されている算出方法のうち、指定されたラベルを含む算出方法であり、かつラベル列に新たなラベルを追加する算出方法でないもの、を取得する。そして、特徴量テーブルを参照し、取得した特徴量算出方法で追加されたラベルが付与された区間を取得する(S2303)。
【0072】
この処理により、あるラベルに関連した非類似検索を高速に行うことができ、設備監視での異常検知などに利用出来る。前述の図17の例では、ラベル異常Xに関連する非類似検索を行えば、ラベルGが付与された区間が検索結果として得られ、異常Xが他より多い区間を得ることができる。
【0073】
以下、ユーザからの入力による特徴量テーブルの更新処理について説明する。本システムの使用において、ユーザは生データを分析しながら、試行錯誤的に特徴量の算出方法を検討・検証・変更をしていきたい場合がある。そのため、一度、付与・作成した特徴量テーブルを、条件を変えて再作成したり、特徴量を追加したり、削除したりすることを考慮する必要がある。ユーザは、特徴量テーブル更新コマンドを入力し、時系列データ蓄積プログラム110における特徴量書込部601が更新処理を行う。特徴量テーブル更新コマンドとは、例えば特徴量テーブルを全て削除して時系列データテーブルから特徴量テーブルをつくり直す「再構築命令」や、特徴量算出方法テーブルに算出方法を新たに追加・削除する「特徴量算出方法追加・削除命令」などがある。
【0074】
図32にユーザから入力される特徴量テーブル更新コマンドの例を示す。ここでは、コマンドラインからの例を示すが、同様の処理を行うGUIを提供してもかまわない。コマンドは、テーブル内の項目を削除する削除コマンド(3201〜3203)、テーブルの構築を行う構築コマンド(3204)、特徴量算出におけるパラメータ等を設定する設定コマンド(3205〜3206)等がある。削除コマンド3201では、特徴量テーブル内の全ての項目を削除する。これは例えば特徴量テーブルの再構築をおこないたい時に、構築コマンド3204と組み合わせて使うことができる。
【0075】
削除コマンド3202は特徴量テーブルから一部の特徴量を削除する。例えば、時間幅や算出方法、付けられた特徴量を指定して削除する。削除コマンド3203は特徴量算出方法テーブルから算出方法3を削除し、同時に特徴量テーブルから算出方法3に関する特徴量を削除する。構築コマンド3204は、特徴量テーブルを時系列テーブル内にある時系列データを元に構築する。これは、前述した特徴量テーブルの再構築時の他、初期時に時系列データテーブル内のデータを元に特徴量テーブルを構築したい時に用いる。設定コマンドは、算出方法3の区間幅を設定するコマンド3205や、非類似性判定による追加特徴量処理で対象とする特徴量を指定するコマンド3206が考えられる。また、これらのコマンドを組み合わせて新しいコマンドを定義したり、それぞれの特徴量算出方法に応じたコマンドを作成したりして構わない。例えば、特徴量テーブルの再構築は、コマンド3201とコマンド3204を順に呼び出すことで定義できる。
【0076】
図33に特徴量書込部601が実行する、特徴量更新処理例を示すフローチャートを示す。まず、コマンド(3201〜3206)を受信し(S3300)、削除コマンド(3201〜3203)に従って削除処理を実行する。削除対象のテーブルが特徴量テーブルである場合(S3301)、かつテーブル内の全ての項目を削除する場合(S3302)、特徴量テーブルから全ての項目を削除する(S3303)。また、削除対象テーブルが特徴量テーブルであり(S3301)、全ての項目を削除でない場合(S3302)、特徴量テーブルからコマンドで指定された特徴量を削除する(S3304)。一方、削除対象のテーブルが特徴量算出方法テーブルである場合(S3301)、特徴量算出方法テーブルにアクセスし、指定された特徴量算出方法を特徴量算出方法テーブルから削除し(S3305)、特徴量テーブルにアクセスして特徴量テーブルから削除した特徴量算出方法で算出された特徴量を削除する(S3306)。
【0077】
次に、設定コマンド(3205〜3206)に従って、特徴量算出方法テーブルにアクセスし、特徴量算出におけるパラメータ等を設定し直す(S3307)。その後、構築コマンド(3204)に従って構築処理を実行して特徴量を算出する(S3308)。構築処理は、図12を用いて説明したように、特徴量書込部601が時系列データテーブル117に格納されている時系列データから時系列データを取得し(610)、当該時系列データに基づいて特徴量を算出して特徴量テーブルに格納すれば良い。この際の特徴量書込部601が行う処理は図8のS802〜S806と同様である。特徴量テーブルに特徴量を格納すれば特徴量テーブルの更新処理を終了する。
【0078】
このように、特徴量テーブルの更新処理を行うことによって、ユーザが生データの分析結果に基づいて、試行錯誤的に特徴量の算出方法を検討・検証・変更することで、ユーザにとってより好ましい時系列データに対する検索を実現することが可能となる。
【0079】
なお、特徴量テーブルの更新処理では、削除コマンド(3201〜3203)、構築コマンド(3204)、設定コマンド(3205〜3206)等の中でS3300で受信するコマンドに含まれているコマンドに対応する処理を行えばよく、必ずしも削除処理(S3301 〜S3306)、設定処理(S3307)、構築処理(S3308)の全てを行う必要があるわけではない。
また、特徴量テーブルの更新処理を行っている途中での、ユーザからの検索クエリへの応答については、いくつかのオプションが考えられる。例えば、特徴量テーブルの更新中はユーザからの検索は一切受け付けないこともできる。更新中の特徴量テーブルを元に返答を返せば、不完全な検索結果が返る可能性があるからである。
【0080】
また、特徴量を用いずに直接時系列データテーブルから全ての時系列データを取得して詳細検索を行うことで、前述した方法よりも可用性を高めることができる。
また、特徴量テーブルの更新がどこまで終了したかを特徴量更新処理部から特徴量検索部604にメッセージや共有メモリを用いて知らせることによって、更新処理が終わっている部分については特徴量を用い、終わってない部分については全ての時系列データを取得することで、前述した方法よりも性能を向上させることができる。
また、一貫性が特に必要とされていない利用場面においては、更新中の特徴量テーブルを用いて検索をする、ということもできる。
【0081】
これらのどの方法を用いるかは、ユーザ又は管理者がそのシステムの運用・利用場面に適した方法を選べばよい。時系列データの蓄積処理については、同時に並行して行っても問題はないため、並行して行えばよい。
【0082】
以上説明した実施形態によれば、時間の経過に伴い連続的又は断続的に発生する時系列データを処理する時系列データ処理装置において、時系列データ蓄積時に、時系列データのある区間におけるパターンをラベルとして特徴量テーブルに格納しておく。これによって、時系列データ検索時には、特徴量テーブルを元に、時系列データの取得と詳細検索の範囲を絞り込むことで、検索処理の高速化を図ることが可能となる。
【符号の説明】
【0083】
101 時系列データ処理装置
102 ストレージ装置
103 管理者PC
104 クライアントPC
105 メモリ
107 プロセッサ
110 時系列データ蓄積プログラム
111 時系列データ検索プログラム
112 時系列データ
113 検索クエリ
114 検索結果
115 特徴量算出方法テーブル
116 特徴量テーブル
117 時系列データテーブル
601 特徴量書込部
602 追加特徴量書込部
603 時系列データ書込部
604 特徴量検索部
605 時系列データ取得部
606 時系列データ詳細検索部
607 出力部

【特許請求の範囲】
【請求項1】
時間経過に伴って生成されるデータである時系列データと、前記時系列データの特徴を示す情報である特徴情報と、を保持するストレージ装置と、
前記時系列データから時系列データ群を抽出し、前記時系列データ群について、データ値の推移に関する前記特徴情報である第一の特徴情報を生成し、前記第一の特徴情報を、前記時系列データ群単位で前記時系列データと関連付けて前記ストレージ装置に記録する特徴情報生成部と、を備えるデータ処理装置と、
を有すること、を特徴とするデータ処理システム。
【請求項2】
請求項1に記載のデータ処理システムであって、
前記データ処理装置は、
前記ストレージ装置に保持された前記第一の特徴情報に基づいて、前記ストレージ装置に保持された前記時系列データを検索する時系列データ検索部を更に備えること、
を特徴とするデータ処理システム。
【請求項3】
請求項2に記載のデータ処理システムであって、
前記時系列データ検索部は、
第一の時系列データ群を示す情報を受信し、前記第一の時系列データ群について、前記第一の特徴情報を生成し、前記第一の時系列データ群についての前記第一の特徴情報と類似する前記第一の特徴情報を前記ストレージ装置から抽出し、前記第一の時系列データ群についての前記第一の特徴情報と類似する前記第一の特徴情報と関連付けられた前記時系列データを前記検索の結果として前記ストレージ装置から抽出する、こと、
を特徴とするデータ処理システム。
【請求項4】
請求項1に記載のデータ処理システムであって、
前記データ処理装置は、
前記ストレージ装置に記録された複数の前記第一の特徴情報を抽出し、前記抽出を行った前記複数の前記第一の特徴情報に基づく前記特徴情報である第二の特徴情報を生成し、前記第二の特徴情報を、前記抽出を行った前記第一の特徴情報に対応付けられて前記ストレージ装置に保持されている前記時系列データの少なくとも一部に対応付けて、前記ストレージ装置に記録する追加特徴情報生成部を更に備えること、
を特徴とするデータ処理システム。
【請求項5】
請求項4に記載のデータ処理システムであって、
前記ストレージ装置は、
前記時系列データ群に含まれる前記時系列データが生成された時点に関する情報である時系列データ生成時間情報を、前記時系列データ群について生成された前記第一の特徴情報と対応付けて保持し、
前記追加特徴情報生成部は、
2以上の前記第一の特徴情報と、当該2以上の前記第一の特徴情報にそれぞれ前記対応付けられた前記時系列データ生成時間情報と、を前記ストレージ装置から抽出し、前記ストレージ装置から抽出した2以上の前記第一の特徴情報と、前記時系列データ生成時間情報と、に基づいて前記第二の特徴情報を生成する、こと、
を特徴とするデータ処理システム。
【請求項6】
請求項5に記載のデータ処理システムであって、
前記追加特徴情報生成部は、
前記ストレージ装置から抽出した2以上の前記第一の特徴情報と、前記ストレージ装置から抽出した2以上の前記第一の特徴情報にそれぞれ前記対応付けられた前記時系列データ生成時間情報の時間的な順序関係と、に基づいて前記第二の特徴情報を生成すること、
を特徴とするデータ処理システム。
【請求項7】
請求項4に記載のデータ処理システムであって、
前記特徴情報生成部は、
同一の前記時系列データを含む2以上の前記時系列データ群のそれぞれについて個別に前記第一の特徴情報を生成し、前記個別に生成した前記第一の特徴情報をそれぞれ前記ストレージ装置に前記記録し、
前記追加特徴情報生成部は、
前記個別に生成された前記第一の特徴情報の間の関係性に基づいて、同一の前記時系列データを互いに含む2以上の前記時系列データ群の少なくとも何れかに一方ついて前記第二の特徴情報を生成すること、
を特徴とするデータ処理システム。
【請求項8】
請求項4に記載のデータ処理システムであって、
前記ストレージ装置は、
前記特徴情報生成部が前記第一の特徴情報を生成する方法を示す情報である特徴情報生成方法を保持し、
前記追加特徴情報生成部は、
前記第二の特徴情報を生成する際に、前記第二の特徴情報の生成の方法を示す情報を前記特徴情報生成方法として前記ストレージ装置に格納すること、
を特徴とするデータ処理システム。
【請求項9】
請求項4に記載のデータ処理システムであって、
前記データ処理装置は、
前記ストレージ装置に保持された前記第一の特徴情報と前記第二の特徴情報の少なくとも何れか一方に基づいて、前記ストレージ装置に保持された前記時系列データを検索する時系列データ検索部を更に備えること、
を特徴とするデータ処理システム。
【請求項10】
請求項1に記載のデータ処理システムであって、
前記データ処理装置にネットワークを介して接続し、測定結果を前記時系列データとして前記データ処理装置に送信する測定装置を更に有すること、
を特徴とするデータ処理システム。
【請求項11】
時間経過に伴って生成されるデータである時系列データと、前記時系列データのデータ値の推移に関する特徴を示す情報である特徴情報と、を関連付けて保持するストレージ装置と、
前記時系列データと前記関連付けて前記ストレージ装置に保持された前記特徴情報に基づいて、前記ストレージ装置に保持された前記時系列データを検索するデータ処理装置と、を有すること、
を特徴とするデータ処理システム。
【請求項12】
ストレージ装置に接続するデータ処理装置であって、
時間経過に伴って生成されるデータである時系列データを受信する時系列データ受信部と、
前記時系列データ受信部が受信した前記時系列データから時系列データ群を抽出し、前記時系列データ群についてのデータ値の推移に関する特徴を示す情報である第一の特徴情報を生成し、前記第一の特徴情報を、前記時系列データ群単位で前記時系列データと関連付けて前記ストレージ装置に記録する特徴情報生成部と、を備えること、
を特徴とするデータ処理装置。
【請求項13】
請求項12に記載のデータ処理装置であって、
前記ストレージ装置に保持された前記第一の特徴情報に基づいて、前記ストレージ装置に保持されている前記時系列データを検索する時系列データ検索部を、更に備えること、
を特徴とするデータ処理装置。
【請求項14】
請求項13に記載のデータ処理装置であって、
前記時系列データ検索部は、
第一の時系列データ群を示す情報を受信し、前記第一の時系列データ群について、前記第一の特徴情報を生成し、前記第一の時系列データ群についての前記第一の特徴情報と類似する前記第一の特徴情報を前記ストレージ装置から抽出し、前記第一の時系列データ群についての前記第一の特徴情報と類似する前記第一の特徴情報と関連付けられた前記時系列データを、前記時系列データを保持している前記ストレージ装置から、前記検索の結果として抽出する、こと、
を特徴とするデータ処理装置。
【請求項15】
請求項12に記載のデータ処理装置であって、
前記ストレージ装置に記録された複数の前記第一の特徴情報を抽出し、前記抽出を行った前記複数の前記第一の特徴情報に基づいて、前記抽出を行った前記第一の特徴情報に対応付けられている前記時系列データの少なくとも一部のデータ値の推移に関する特徴を示す情報である第二の特徴情報を生成し、前記第二の特徴情報を、前記抽出を行った前記第一の特徴情報に対応付けられて前記ストレージ装置に保持されている前記時系列データの少なくとも一部に対応付けて、前記ストレージ装置に記録する追加特徴情報生成部を、更に備えること、
を特徴とするデータ処理装置。
【請求項16】
請求項15に記載のデータ処理装置であって、
前記特徴情報生成部は、
前記時系列データ群に含まれる前記時系列データが生成された時点に関する情報である時系列データ生成時間情報と、前記時系列データ群について生成された前記第一の特徴情報と、を対応付けて前記ストレージ装置に記録し、
前記追加特徴情報生成部は、
2以上の前記第一の特徴情報と、当該2以上の前記第一の特徴情報にそれぞれ前記対応付けられた前記時系列データ生成時間情報と、を前記ストレージ装置から抽出し、前記ストレージ装置から抽出した2以上の前記第一の特徴情報と、前記時系列データ生成時間情報と、に基づいて前記第二の特徴情報を生成する、こと、
を特徴とするデータ処理装置。
【請求項17】
請求項16に記載のデータ処理装置であって、
前記追加特徴情報生成部は、
前記ストレージ装置から抽出した2以上の前記第一の特徴情報と、前記ストレージ装置から抽出した2以上の前記第一の特徴情報にそれぞれ前記対応付けられた前記時系列データ生成時間情報の時間的な順序関係と、に基づいて前記第二の特徴情報を生成する、こと、
を特徴とするデータ処理装置。
【請求項18】
請求項15に記載のデータ処理装置であって、
前記特徴情報生成部は、
同一の前記時系列データを含む2以上の前記時系列データ群のそれぞれについて個別に前記第一の特徴情報を生成し、前記個別に生成した前記第一の特徴情報をそれぞれ前記ストレージ装置に前記記録し、
前記追加特徴情報生成部は、
前記個別に生成された前記第一の特徴情報の間の関係性に基づいて、同一の前記時系列データを互いに含む2以上の前記時系列データ群の少なくとも何れかに一方ついて前記第二の特徴情報を生成する、こと、
を特徴とするデータ処理装置。
【請求項19】
請求項15に記載のデータ処理装置であって、
前記追加特徴情報生成部は、
前記ストレージ装置に保持された前記第一の特徴情報を生成する方法を示す情報である特徴情報生成方法に基づいて前記第一の特徴情報を生成し、前記第二の特徴情報を生成する際に、前記第二の特徴情報の生成の方法を示す情報を前記特徴情報生成方法として前記ストレージ装置に格納する、こと、
を特徴とするデータ処理装置。
【請求項20】
請求項15に記載のデータ処理装置であって、
前記ストレージ装置に保持された前記第一の特徴情報と前記第二の特徴情報の少なくとも何れか一方に基づいて、前記ストレージ装置に保持されている前記時系列データを検索する時系列データ検索部を、更に備える、こと、
を特徴とするデータ処理装置。

【図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

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図24】
image rotate


【公開番号】特開2012−117987(P2012−117987A)
【公開日】平成24年6月21日(2012.6.21)
【国際特許分類】
【出願番号】特願2010−269878(P2010−269878)
【出願日】平成22年12月3日(2010.12.3)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】