(57)【要約】【課題】時系列データの正規化処理における効率化を実現する。【解決手段】データ処理装置１００が、ログテーブル１０２のｔｉｍｅｓｔａｍｐ１０５に基づいて基準時刻を決め、それを時刻０とし、ログテーブル１０２のｔｉｍｅｓｔａｍｐ１０５の最短時間間隔を時系列正規化の基準時間とし、基準時刻０から基準時間毎にインデックスレコードを生成し、正規化値とするレコードをログテーブル１０２から検索し、そのｉｄ１０４をｃｈａｎｎｅｌ１０６ごとにＣＨ１−３（１１０）に区分してレコードの索引とする。チャネルによっては基準時間内のレコードが存在しない場合もあるため、この場合はｎｕｌｌ値とする。また、基準時間内の全てのチャネルの正規化値が求められたら、チャネルごとの値の有無をｂｉｔｍａｐ１０９の各ビットで表す。データが有る場合のビットを１、ない場合は０とする。【選択図】図２
2008210068.tif 000002
【特許請求の範囲】
【請求項１】
データテーブルから、当該データテーブルの索引となるインデックステーブルを生成するデータ処理装置であって、
複数のデータレコードを有し、各データレコードに少なくともレコード識別子とデータ値とデータ値に関する時刻とが示されるデータテーブルに対する解析を行い、
各データレコードに示される時刻に基づいて特定の時間間隔で区分されたインデックスレコードをインデックステーブルの要素として生成し、データレコードに示されている時刻に対応する時間を対象としているインデックスレコードに当該データレコードのレコード識別子を設定し、時間順に各時間に対応するデータレコードのレコード識別子が示されるインデックステーブルを生成することを特徴とするデータ処理装置。
【請求項２】
前記データ処理装置は、
各データレコードに示される時刻における最小時間間隔を前記特定の時間間隔とし、前記最小時間間隔で区分されたインデックスレコードを生成することを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記データ処理装置は、
複数のデータソースからのデータ値を格納するデータテーブルであって、各データレコードにデータ値のデータソースが示されるデータテーブルに対する解析を行い、
データレコードに示されている時刻に対応する時間を対象としているインデックスレコードに当該データレコードのレコード識別子をデータソースとともに設定し、時間順に各時間に対応するデータレコードのレコード識別子がデータソースとともに示されるインデックステーブルを生成することを特徴とする請求項１に記載のデータ処理装置。
【請求項４】
前記データ処理装置は、
データソースごとにレコード識別子を管理するインデックスレコードを生成し、
データレコードに示されている時刻に対応する時間を対象としているインデックスレコードに当該データレコードのレコード識別子をインデックスレコードのデータソースの区分に従って設定し、
各桁が複数のデータソースの各々に対応し、インデックスレコードにおけるデータソースごとのレコード識別子の設定状況を示す複数桁のビット列を、インデックスレコードに付加することを特徴とする請求項３に記載のデータ処理装置。
【請求項５】
前記データ処理装置は、
それぞれにデータテーブルの番号が設定されている複数個のデータテーブルに対する解析を行い、
各桁が複数のデータソースの各々に対応し、インデックスレコードにおけるデータソースごとのレコード識別子の設定状況を示すとともに、インデックスレコードにレコード識別子が設定されている場合に当該レコード識別子のデータレコードが属するデータテーブルの番号を示す複数桁のビット列を、各インデックスレコードに付加することを特徴とする請求項４に記載のデータ処理装置。
【請求項６】
コンピュータが、データテーブルから、当該データテーブルの索引となるインデックステーブルを生成するデータ処理方法であって、
コンピュータが、
複数のデータレコードを有し、各データレコードに少なくともレコード識別子とデータ値とデータ値に関する時刻とが示されるデータテーブルに対する解析を行い、
各データレコードに示される時刻に基づいて特定の時間間隔で区分されたインデックスレコードをインデックステーブルの要素として生成し、データレコードに示されている時刻に対応する時間を対象としているインデックスレコードに当該データレコードのレコード識別子を設定し、時間順に各時間に対応するデータレコードのレコード識別子が示されるインデックステーブルを生成することを特徴とするデータ処理方法。
【請求項７】
コンピュータに、データテーブルから、当該データテーブルの索引となるインデックステーブルを生成させるプログラムであって、
複数のデータレコードを有し、各データレコードに少なくともレコード識別子とデータ値とデータ値に関する時刻とが示されるデータテーブルに対する解析を行い、
各データレコードに示される時刻に基づいて特定の時間間隔で区分されたインデックスレコードをインデックステーブルの要素として生成し、データレコードに示されている時刻に対応する時間を対象としているインデックスレコードに当該データレコードのレコード識別子を設定し、時間順に各時間に対応するデータレコードのレコード識別子が示されるインデックステーブルを生成する処理をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ログデータ等の時系列データの正規化処理を効率化するための技術に関する。
【背景技術】
【０００２】
情報システムからから発生するデータは、多くの場合、イベントの発生した時刻（タイムスタンプ）と複数の属性の値を持っており、あらかじめ用意されたログテーブルに発生時刻順に収められてゆく。データの利用時には、この表に対して参照、集計を行うのが一般的である。
ログデータを格納する方法として最も一般的なのは、データを加工せず、発生した時系列順にひとつのファイルに書き込んでいくものである。しかし、この形式であれば、あらゆる利用形態に対応できるが、データ量の増大や、ログデータの利用方法が高度化するにつれ、処理性能の問題が生じるようになった。
参照処理を高速化するには、データ参照回数を削減したりデータ量を削減したり必要がある。この場合は、インデックス表を別途用意し、データの所在をオフセット表現したり、データの有無をビットマップで表したりすることでこれを実現していた（例えば、特許文献１）。
【０００３】
しかし、複数のデータソースを同時に扱う場合や、過去のデータを集めて使用する場合などは、データ間の時刻の同期が取れていなかったり、データ取得頻度が異なっていたりすることが多い。
そのようなデータを使用して分析などを行うにはタイムスタンプ間隔を統一する必要がある（時系列の正規化）。この場合、データを間引いたり、近似値を求めたりしてデータを補完した上で、正規化済みのデータのみが入ったテーブルを作成するのが一般的である。
【特許文献１】特開平１１−１６１７１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
リアルタイムに蓄積されたログデータを分析するシステムの場合、ネットワーク上の問題やデータソース同士の時刻同期がされていないなどの理由により、追加しようとするログデータが必ずしも取得順序どおりにシステムに到達するとは限らない。
上記のように正規化した時系列データを作成した上で新たな表を作成すると、新たなログデータが発生し、その取得時刻がその前に表に追加されたデータより古いものだったとき、追加される際に表のデータを書き換えなければならなくなる。
また、時刻の正規化の手法はさまざまなものが提案されており、ある手法で行った正規化データで作った表が、分析用途によっては適さない場合もある（たとえば、正規化の時間間隔が大きすぎる／細かすぎる、欠損値の扱いをｎｕｌｌにする／０にする、など）。
このような場合に、正規化の方法を変えるには、従来手法だと表を丸ごと作り直す必要がある。
【０００５】
この発明は、上記のような課題を解決することを主な目的としており、時系列データの正規化処理において時間間隔／同期化／欠損データ補完／集約方法等の変更の効率化を主な目的とする。
【課題を解決するための手段】
【０００６】
本発明に係るデータ処理装置は、
データテーブルから、当該データテーブルの索引となるインデックステーブルを生成するデータ処理装置であって、
複数のデータレコードを有し、各データレコードに少なくともレコード識別子とデータ値とデータ値に関する時刻とが示されるデータテーブルに対する解析を行い、
各データレコードに示される時刻に基づいて特定の時間間隔で区分されたインデックスレコードをインデックステーブルの要素として生成し、データレコードに示されている時刻に対応する時間を対象としているインデックスレコードに当該データレコードのレコード識別子を設定し、時間順に各時間に対応するデータレコードのレコード識別子が示されるインデックステーブルを生成することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、特定の時間間隔ごとに対応する時刻を有するデータレコードのレコード識別子を示し、レコード識別子によりデータ値の参照が可能なインデックステーブルを生成するため、正規化処理において、実際にデータ値を扱う操作以外は、インデックステーブル上のデータのみで処理できるため、操作するデータ量を削減でき、データ操作に要する処理時間、コンピュータリソースの消費量を抑制することができる。
【発明を実施するための最良の形態】
【０００８】
実施の形態１．
図１は、本実施の形態に係るデータ処理装置１００の構成例を示す。
データ処理装置１００は、データ記憶部１０１、インデックステーブル生成部１２０、正規化処理部１３０、表示部１４０及び入力部１５０を備える。
【０００９】
データ記憶部１０１には、ログテーブル１０２（データテーブル）、インデックステーブル１０３が格納される。
【００１０】
ログテーブル１０２は、例えば、図２（ａ）に示すテーブルである。ログテーブル１０２は、データ処理装置１００が取得したログデータを収めるデータテーブルである。ログテーブルにおける各レコード（各行）をデータレコードという。
ログテーブル１０２は、すなわち、複数のデータレコードを有し、各データレコードに少なくともレコード識別子（ｉｄ）と、データ値（ｖａｌｕｅ）と、データソースの識別子（ｃｈａｎｎｅｌ）と、データ値に関する時刻（ｔｉｍｅｓｔａｍｐ）とが示される。
つまり、図２（ａ）に示すように、ログテーブル１０２を構成する項目は４つあり、１０４はデータの追加順に付与される固有番号を収める項目たるｉｄ、１０５はデータの取得時刻を収める項目たるｔｉｍｅｓｔａｍｐ、１０６はデータソースのチャネルを示す値を収める項目たるｃｈａｎｎｅｌ、１０７はそのデータの値を収める項目たるｖａｌｕｅである。
【００１１】
インデックステーブル１０３は、ログテーブル１０２の索引となるテーブルであり、例えば、図２（ｂ）に示すテーブルである。
また、インデックステーブル１０３における各レコード（各行）をインデックスレコードという。
図２（ｂ）のインデックステーブル１０３において、１０８は基準時刻からの経過時間を表す項目たるｔｉｍｅ、１０９はその時刻における各チャネルのレコードの有無を表す項目たるｂｉｔｍａｐ、１１０はレコードが存在する場合に索引としてログテーブル１０２のｉｄを収める項目たるＣＨｎ（１≦ｎ≦チャネル数）である。
図２（ｂ）のインデックステーブル１０３は、図２（ａ）のログテーブル１０２の索引となる。
インデックステーブル１０３に示されているレコード識別子（ｉｄ）から、同じレコード識別子（ｉｄ）が付与されているデータレコードを検索して、当該データレコードのデータ値（ｖａｌｕｅ）を参照することが可能である。
レコード識別子（ｉｄ）は、アドレス値であってもよいし、特定のアドレスからのオフセット値であってもよい。
【００１２】
インデックステーブル生成部１２０は、ログテーブル１０２からインデックステーブル１０３を生成する。
インデックステーブル生成部１２０は、ログテーブル１０２の各データレコードに示される時刻（ｔｉｍｅｓｔａｍｐ）に基づいて特定の時間間隔で区分されたインデックスレコードをインデックステーブル１０３の要素として生成し、ログテーブル１０２のデータレコードに示されている時刻（ｔｉｍｅｓｔａｍｐ）に対応する時間（ｔｉｍｅ）を対象としているインデックスレコードに当該データレコードのレコード識別子（ｉｄ）を設定し、時間順に各時間に対応するデータレコードのレコード識別子（ｉｄ）が示されるようにインデックステーブル１０３を生成する。
例えば、インデックステーブル生成部１２０は、各データレコードに示される時刻（ｔｉｍｅｓｔａｍｐ）における最小時間間隔で区分されたインデックスレコードを生成する。
図２（ａ）のログテーブル１０２においては、時刻（ｔｉｍｅｓｔａｍｐ）における最小時間間隔は、１０秒（００：００：１０）であり、この最小時間間隔に対応させて、図２（ｂ）のインデックステーブル１０３では、１０秒刻みのインデックスレコードを生成する。図２（ｂ）のインデックスレコードは、ｔｉｍｅが１０秒刻みとなっているインデックスレコードで構成されている。
また、インデックステーブル生成部１２０が対象とするログテーブル１０２は、図２（ａ）に示すように、複数のデータソースからのデータ値を格納し、各データレコードにデータ値（ｖａｌｕｅ）のデータソース（ｃｈａｎｎｅｌ）が示される。
【００１３】
また、インデックステーブル生成部１２０は、データレコードに示されている時刻（ｔｉｍｅｓｔａｍｐ）に対応する時間（ｔｉｍｅ）を対象としているインデックスレコードに当該データレコードのレコード識別子（ｉｄ）をデータソースとともに設定し、時間順に各時間に対応するデータレコードのレコード識別子（ｉｄ）がデータソース（ＣＨｎ）とともに示されるようにインデックステーブル１０３を生成する。
具体的には、インデックステーブル生成部１２０は、データソース（ＣＨｎ）ごとにレコード識別子（ｉｄ）を管理するインデックステーブル１０３を生成する。
図２（ｂ）のインデックステーブル１０３では、データレコードに示されている時刻（ｔｉｍｅｓｔａｍｐ）に対応する時間（ｔｉｍｅ）を対象としているインデックスレコードに当該データレコードのレコード識別子（ｉｄ）がインデックスレコードのデータソースの区分（ＣＨ１〜３）に従って設定されている。また、各桁が複数のデータソースの各々に対応し、インデックスレコードにおけるデータソースごとのレコード識別子（ｉｄ）の設定状況を示す複数桁のビット列（ｂｉｔｔｍａｐ）が、各インデックスレコードに付加されている。
例えば、図２（ａ）のログテーブル１０２の１行目のデータレコード（ｔｉｍｅｓｔａｍｐが「１２：００：００」）は、図２（ｂ）のインデックステーブル１０３の１行目のインデックスレコード（ｔｉｍｅが「００００」）に対応する。そして、ログテーブル１０２の１行目のデータレコードのデータソース（ｃｈａｎｎｅｌ）の値は、ＣＨ１であり、インデックステーブル１０３の１行目のインデックスレコードでは、ログテーブル１０２の１行目のデータレコードのレコード識別子（ｉｄ）である「１」が「ＣＨ１」に対して設定され、他の区分である「ＣＨ２」及び「ＣＨ３」にはｎｕｌｌ値が設定されている。そして、このようなレコード識別子（ｉｄ）の設定状況に対応するｂｉｔｍａｐ「１００」が付加されている。
同様に、図２（ａ）のログテーブル１０２の２行目のデータレコード（ｔｉｍｅｓｔａｍｐが「１２：００：１０」）は、図２（ｂ）のインデックステーブル１０３の２行目のインデックスレコード（ｔｉｍｅが「００１０」）に対応する。そして、ログテーブル１０２の２行目のデータレコードのデータソース（ｃｈａｎｎｅｌ）の値は、ＣＨ３であり、インデックステーブル１０３の２行目のインデックスレコードでは、ログテーブル１０２の２行目のデータレコードのレコード識別子（ｉｄ）である「２」が「ＣＨ３」に対して設定され、他の区分である「ＣＨ１」及び「ＣＨ２」にはｎｕｌｌ値が設定されている。そして、このようなレコード識別子（ｉｄ）の設定状況に対応するｂｉｔｍａｐ「００１」が付加されている。
【００１４】
正規化処理部１３０は、インデックステーブル生成部１２０により生成されたインデックステーブル１０３を用いてログテーブル１０２の正規化処理を行う。
表示部１４０は、データ処理装置１００のユーザに対して各種情報を表示する手段であり、例えば、ログテーブル１０２の内容やインデックステーブル１０３の内容、または正規化処理部１３０による正規化処理後の内容を表示する。
入力部１５０は、データ処理装置１００のユーザから各種指示を受け付ける。
【００１５】
次に、本実施の形態に係るデータ処理装置１００の動作例を図３を参照して説明する。
まず、インデックステーブル生成部１２０は、ログテーブル１０２のデータレコードのうちインデックステーブルの生成対象となるデータレコードをデータ記憶部１０１から取得する（Ｓ３０１）。
例えば、図２（ａ）のログテーブルの１行目から５行目のデータレコードを取得する。
次に、インデックステーブル生成部１２０は、インデックスレコードの時間間隔を決定する（Ｓ３０２）。図２（ｂ）のインデックステーブル０３では、図２（ａ）のログテーブル１０２のｔｉｍｅｓｔａｍｐの最小時間間隔（１０秒）と同じ時間間隔としているが、必ずしも最小時間間隔にする必要はなく、例えば、図２（ａ）のログテーブルに対して、インデックスレコードの時間間隔を２０秒間隔や１分間隔としてもよい。
次に、インデックステーブル生成部１２０は、インデックステーブル１０３における最初の時間（ｔｉｍｅ）を設定する（Ｓ３０３）。図２（ｂ）の例では、最初の時間（ｔｉｍｅ）として例えばレジスタに「００００」をセットする。
次に、インデックステーブル生成部１２０は、空のインデックスレコードを生成し（Ｓ３０４）、Ｓ３０３で設定した時間（ｔｉｍｅ）をＳ３０４で生成した空のインデックスレコードに書き込む（Ｓ３０５）。
次に、インデックステーブル生成部１２０は、時間（ｔｉｍｅ）に対応する時刻（ｔｉｍｅｓｔａｍｐ）のあるデータレコードを検索し、当該データレコードのレコード識別子（ｉｄ）を該当するＣＨ区分に書き込むとともに（Ｓ３０６）、他のＣＨ区分にはｎｕｌｌ値を書き込む（Ｓ３０７）。
例えば、１行目のインデックスレコードの時間（ｔｉｍｅ）「００００」に対応する時刻（ｔｉｍｅｓｔａｍｐ）のあるデータレコードとして、ログテーブル１０２の１行目のデータレコード（ｔｉｍｅｓｔａｍｐ「１２：００：００」）を検索し、このレコードのデータソース（ｃｈｎｎｅｌ）の値であるＣＨ１に対応させて１行目のインデックスレコードのＣＨ１の区分にレコード識別子（ｉｄ）「１」を書き込む。そして、他のＣＨ区分であるＣＨ２及びＣＨ３にはｎｕｌｌ値を書き込む。
なお、例えば、図２（ｂ）の３行目のインデックスレコード（ｔｉｍｅ「００２０」）のように、対応する時刻（ｔｉｍｅｓｔａｍｐ）のあるデータレコードが存在しない場合は、すべてのＣＨ区分にｎｕｌｌ値が書き込まれる。
また、例えば、図２（ｂ）の５行目のインデックスレコード（ｔｉｍｅ「００４０」）のように、対応する時刻（ｔｉｍｅｓｔａｍｐ）のあるデータレコードが複数存在する場合は（図２（ａ）の４行目と５行目のレコードが該当）、それぞれに対応するＣＨ区分にレコード識別子（ｉｄ）が書き込まれ、それ以外のＣＨ区分にｎｕｌｌ値が書き込まれる（ＣＨ１に「５」が書き込まれ、ＣＨ２のｎｕｌｌ値が書き込まれ、ＣＨ３に「４」が書き込まれる）。
次に、インデックステーブル生成部１２０は、ｉｄの書き込み状況に基づき、ｂｉｔｍａｐを生成し、インデックスレコードに書き込む（Ｓ３０８）。
次に、インデックステーブル生成部１２０は、Ｓ３０１で取得したデータレコードのうちの最後のデータレコードであるか否かを判断し（Ｓ３０９）、最後のデータレコードでなければ、Ｓ３０２で決定した時間間隔に従って、次の時間（ｔｉｍｅ）をセットし（Ｓ３１０）、Ｓ３０４以降の処理を繰り返す。Ｓ３０９において最後のデータレコードであると判断した場合は、インデックステーブル生成部１２０は、処理を終了する。
【００１６】
このように、インデックステーブル生成部１２０は、ある基準時刻をあらかじめ決め、それを時刻０とし、各種分析などを行う際の最短時間間隔を時系列正規化の基準時間とし、基準時刻０から基準時間毎にインデックスレコードを生成し、正規化値とするレコードをログテーブルから検索し、そのｉｄをレコードの索引とする。チャネルによっては基準時間内のレコードが存在しない場合もあるため、この場合はｎｕｌｌ値とする。
また、基準時間内の全てのチャネルの正規化値が求められたら、チャネルごとの値の有無をビットマップの各ビットで表す。データが有る場合のビットを１、ない場合は０とする。
【００１７】
そして、正規化処理部１３０が、ログデータを正規化する際には、インデックステーブル１０３から分析時間間隔（例えば、１０秒間隔、１分間隔等）単位でデータを取り出し、ビットマップ列を使ってデータの分布状況（ビットマップ列に１が含まれているか否か）を調べ、その結果に従ってデータの補完／集約を行う。
具体的なデータ値（ｖａｌｕｅ）の取得は、インデックステーブル１０３のレコード識別子（ｉｄ）の値からログテーブルのデータレコードを特定し、特定したデータレコードを参照することでデータ値を取得することができる。
【００１８】
以上のように、正規化処理において、実際に測定値を扱う部分以外は、索引データのみで処理できるため、操作するデータ量を削減できる。
また、データの分布状況や、補完／集約の要不要をビット演算により判断できるため、処理ステップを削減できる。
【００１９】
このように、本実施の形態では、ログデータテーブルを参照するためのインデックステーブルを持ったログ格納方式であって、インデックステーブルの生成において、最小時間間隔ごとにレコードを作成し、各レコードがログデータテーブルへの索引データと、索引データの有無を１／０で表すビットマップを有するようにしたログ格納方式について説明した。
【００２０】
なお、以上の説明では、各インデックスレコードにビットマップを付加するようにしているが、ビットマップはインデックステーブルの必須の項目ではなく、ビットマップを省略してもよい。
【００２１】
実施の形態２．
以上の実施の形態１では、ログテーブルがひとつの場合を説明したが、ログテーブルがチャネルごとや、ある時間毎などの基準により、複数に分けられている場合もある。
次に、ログテーブルが複数ある場合のインデックステーブルの作成の実施形態を示す。
なお、本実施の形態に係るデータ処理装置１００の構成は、図１に示すものと同様である。
【００２２】
図４は、このような、複数のログテーブルに対するインデックステーブルを示す。
図４（ａ）では、複数のログテーブルを示している。
図４（ａ）において、２０２、２１１は取得したログデータを収めるログテーブルである。
この場合は、時間により二つのテーブルにログデータが分けて収められているものとする。
ここでは、ログテーブル２０２のテーブル番号を１とし、ログテーブル２１１のテーブル番号を２とする。
図４（ｂ）は、正規化用のインデックステーブル２０３を示す。
【００２３】
ログテーブル２０２、２１１の構成は実施の形態１の場合と同じであるので説明を割愛する。
インデックステーブル２０３については、２０８が基準時刻からの経過時間を表す項目たるｔｉｍｅ、２１０はレコードが存在する場合に索引としてｉｄを収める項目たるＣＨｎ（１≦ｎ≦チャネル数）であることは実施の形態１と同じである。
２０９は、その時刻における各チャネルのレコードの有無を表す項目たるｂｉｔｍａｐであるが、ビットマップの値を１以上も表現できるようにし、この値が各ログテーブルを指すようにインデックスレコードを生成する。
例えば、インデックステーブル２０３において、ｔｉｍｅが「０６００」となっているレコードのｂｉｔｍａｐは、「２００」となっている。このレコードでは、ＣＨ１が「１」、ＣＨ２が「ｎｕｌｌ」、ＣＨ３が「ｎｕｌｌ」となっているので、実施の形態１と同様のｂｉｔｍａｐの表記方法によれば、「１００」となるが、本実施の形態では、ビットマップのうちオンとなっているビット値においてログテーブルの番号を表すこととしており、このため、該当するログテーブル２１１のログテーブル番号である「２」を表し、ｂｉｔｍａｐを「２００」としている。
【００２４】
このように、本実施の形態に係るインデックステーブル生成部１２０は、それぞれにテーブル番号が設定されている複数個のログテーブルに対する解析を行うものであり、ログテーブルの番号が示される複数桁のビット列をインデックスレコードに付加する。
インデックステーブル生成部１２０が付加するビット列は、各桁が複数のデータソース（ＣＨｎ）の各々に対応し、インデックスレコードにおけるデータソース（ＣＨｎ）ごとのレコード識別子（ｉｄ）の設定状況を示すとともに、インデックスレコードにレコード識別子（ｉｄ）が設定されている場合に当該レコード識別子（ｉｄ）のデータレコードが属するログテーブルの番号を示す。
【００２５】
本実施の形態では、インデックステーブル生成部１２０は、図３のＳ３０１〜Ｓ３０５の実施後、Ｓ３０６の処理において、時間（ｔｉｍｅ）に対応する時刻（ｔｉｍｅｓｔａｍｐ）のあるデータレコードを検索した際に、検索したデータレコードの属するログテーブルのテーブル番号を例えば汎用レジスタに格納し、レコード識別子（ｉｄ）及びｎｕｌｌ値をＣＨ区分に書き込んだ後（Ｓ３０６、Ｓ３０７）、Ｓ３０８においてｂｉｔｍａｐを作成する際に、汎用レジスタからテーブル番号を読み出して、ｂｉｔｍａｐにテーブル番号を反映させる。
【００２６】
そして、正規化処理部１３０が、データを正規化する際には、インデックステーブル１０３から分析時間間隔単位（例えば、１０秒間隔、１分間隔等）でデータを取り出し、ビットマップ列を使ってデータの分布状況（ビットマップ列に０以外の値が含まれているか否か）を調べ、その結果に従ってデータの補完／集約を行う。
具体的なデータ値（ｖａｌｕｅ）の取得は、インデックステーブル１０３のｂｉｔｍａｐに示されているレコード番号から対象となるログテーブルを特定し、またインデックステーブル１０３のレコード識別子（ｉｄ）の値からデータレコードを特定し、特定したデータレコードを参照することでデータ値を取得することができる。
【００２７】
以上のように、正規化処理において、実際に測定値を扱う部分以外は、索引データのみで処理でき、操作するデータ量を削減できる上に、実際のデータが複数のテーブルに存在しても、テーブルの分割ルールを意識することなくデータを参照できるようになるため、正規化の際の処理ステップを削減できる。
【００２８】
このように、本実施の形態では、ログテーブルが複数ある場合に、インデックステーブルのレコードのビットマップが、０はデータが無いことを表し、０以外はデータが有るテーブルの番号を指すようにしたログ格納方式について説明した。
【００２９】
最後に実施の形態１、２に示したデータ処理装置１００のハードウェア構成例について説明する。
図５は、実施の形態１、２に示すデータ処理装置１００のハードウェア資源の一例を示す図である。なお、図５の構成は、あくまでもデータ処理装置１００のハードウェア構成の一例を示すものであり、データ処理装置１００のハードウェア構成は図５に記載の構成に限らず、他の構成であってもよい。
【００３０】
図５において、データ処理装置１００は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ９１１は、バス９１２を介して、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９１３、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９１４、通信ボード９１５、表示装置９０１、キーボード９０２、マウス９０３、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。更に、ＣＰＵ９１１は、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、コンパクトディスク装置９０５（ＣＤＤ）、プリンタ装置９０６、スキャナ装置９０７と接続していてもよい。また、磁気ディスク装置９２０の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
通信ボード９１５、キーボード９０２、スキャナ装置９０７、ＦＤＤ９０４などは、入力部、入力装置の一例である。
また、通信ボード９１５、表示装置９０１、プリンタ装置９０６などは、出力部、出力装置の一例である。
【００３１】
例えば、通信ボード９１５は、ＬＡＮ（ローカルエリアネットワーク）、インターネット、ＷＡＮ（ワイドエリアネットワーク）などのネットワークに接続可能である。
磁気ディスク装置９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。
【００３２】
上記プログラム群９２３には、実施の形態１、２の説明において「〜部」として説明している機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
ファイル群９２４には、実施の形態１、２の説明において、「〜の判断」、「〜の計算」、「〜の比較」、「〜の検索」、「〜の更新」、「〜の設定」、「〜の登録」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリになどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのＣＰＵの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態１、２で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ等の記録媒体に記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００３３】
また、実施の形態１、２の説明において「〜部」として説明しているものは、「〜回路」、「〜装置」、「〜機器」、であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明しているものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、実施の形態１、２の「〜部」としてコンピュータを機能させるものである。あるいは、実施の形態１、２の「〜部」の手順や方法をコンピュータに実行させるものである。
【００３４】
このように、実施の形態１、２に示すデータ処理装置１００は、処理装置たるＣＰＵ、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータであり、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【図面の簡単な説明】
【００３５】
【図１】実施の形態１、２に係るデータ処理装置の構成例を示す図。
【図２】実施の形態１に係るログテーブル及びインデックステーブルの例を示す図。
【図３】実施の形態１に係るデータ処理装置の動作例を示すフローチャート図。
【図４】実施の形態２に係るログテーブル及びインデックステーブルの例を示す図。
【図５】実施の形態１、２に係るデータ処理装置のハードウェア構成例を示す図。
【符号の説明】
【００３６】
１００  データ処理装置、１０１  データ記憶部、１０２  ログテーブル、１０３  インデックステーブル、１２０  インデックステーブル生成部、１３０  正規化処理部、１４０  表示部、１５０  入力部、２０２  ログテーブル、２０３  インデックステーブル、２１１  ログテーブル。
【図１】
2008210068.tif 000003
【図２】
2008210068.tif 000004
【図３】
2008210068.tif 000005
【図４】
2008210068.tif 000006
【図５】
2008210068.tif 000007