JP2008210068A - データ処理装置及びデータ処理方法及びプログラム - Google Patents
データ処理装置及びデータ処理方法及びプログラム Download PDFInfo
- Publication number
- JP2008210068A JP2008210068A JP2007044810A JP2007044810A JP2008210068A JP 2008210068 A JP2008210068 A JP 2008210068A JP 2007044810 A JP2007044810 A JP 2007044810A JP 2007044810 A JP2007044810 A JP 2007044810A JP 2008210068 A JP2008210068 A JP 2008210068A
- Authority
- JP
- Japan
- Prior art keywords
- data
- record
- index
- time
- indicated
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】時系列データの正規化処理における効率化を実現する。
【解決手段】データ処理装置100が、ログテーブル102のtimestamp105に基づいて基準時刻を決め、それを時刻0とし、ログテーブル102のtimestamp105の最短時間間隔を時系列正規化の基準時間とし、基準時刻0から基準時間毎にインデックスレコードを生成し、正規化値とするレコードをログテーブル102から検索し、そのid104をchannel106ごとにCH1−3(110)に区分してレコードの索引とする。チャネルによっては基準時間内のレコードが存在しない場合もあるため、この場合はnull値とする。また、基準時間内の全てのチャネルの正規化値が求められたら、チャネルごとの値の有無をbitmap109の各ビットで表す。データが有る場合のビットを1、ない場合は0とする。
【選択図】図2
【解決手段】データ処理装置100が、ログテーブル102のtimestamp105に基づいて基準時刻を決め、それを時刻0とし、ログテーブル102のtimestamp105の最短時間間隔を時系列正規化の基準時間とし、基準時刻0から基準時間毎にインデックスレコードを生成し、正規化値とするレコードをログテーブル102から検索し、そのid104をchannel106ごとにCH1−3(110)に区分してレコードの索引とする。チャネルによっては基準時間内のレコードが存在しない場合もあるため、この場合はnull値とする。また、基準時間内の全てのチャネルの正規化値が求められたら、チャネルごとの値の有無をbitmap109の各ビットで表す。データが有る場合のビットを1、ない場合は0とする。
【選択図】図2
Description
本発明は、ログデータ等の時系列データの正規化処理を効率化するための技術に関する。
情報システムからから発生するデータは、多くの場合、イベントの発生した時刻(タイムスタンプ)と複数の属性の値を持っており、あらかじめ用意されたログテーブルに発生時刻順に収められてゆく。データの利用時には、この表に対して参照、集計を行うのが一般的である。
ログデータを格納する方法として最も一般的なのは、データを加工せず、発生した時系列順にひとつのファイルに書き込んでいくものである。しかし、この形式であれば、あらゆる利用形態に対応できるが、データ量の増大や、ログデータの利用方法が高度化するにつれ、処理性能の問題が生じるようになった。
参照処理を高速化するには、データ参照回数を削減したりデータ量を削減したり必要がある。この場合は、インデックス表を別途用意し、データの所在をオフセット表現したり、データの有無をビットマップで表したりすることでこれを実現していた(例えば、特許文献1)。
ログデータを格納する方法として最も一般的なのは、データを加工せず、発生した時系列順にひとつのファイルに書き込んでいくものである。しかし、この形式であれば、あらゆる利用形態に対応できるが、データ量の増大や、ログデータの利用方法が高度化するにつれ、処理性能の問題が生じるようになった。
参照処理を高速化するには、データ参照回数を削減したりデータ量を削減したり必要がある。この場合は、インデックス表を別途用意し、データの所在をオフセット表現したり、データの有無をビットマップで表したりすることでこれを実現していた(例えば、特許文献1)。
しかし、複数のデータソースを同時に扱う場合や、過去のデータを集めて使用する場合などは、データ間の時刻の同期が取れていなかったり、データ取得頻度が異なっていたりすることが多い。
そのようなデータを使用して分析などを行うにはタイムスタンプ間隔を統一する必要がある(時系列の正規化)。この場合、データを間引いたり、近似値を求めたりしてデータを補完した上で、正規化済みのデータのみが入ったテーブルを作成するのが一般的である。
特開平11−161710号公報
そのようなデータを使用して分析などを行うにはタイムスタンプ間隔を統一する必要がある(時系列の正規化)。この場合、データを間引いたり、近似値を求めたりしてデータを補完した上で、正規化済みのデータのみが入ったテーブルを作成するのが一般的である。
リアルタイムに蓄積されたログデータを分析するシステムの場合、ネットワーク上の問題やデータソース同士の時刻同期がされていないなどの理由により、追加しようとするログデータが必ずしも取得順序どおりにシステムに到達するとは限らない。
上記のように正規化した時系列データを作成した上で新たな表を作成すると、新たなログデータが発生し、その取得時刻がその前に表に追加されたデータより古いものだったとき、追加される際に表のデータを書き換えなければならなくなる。
また、時刻の正規化の手法はさまざまなものが提案されており、ある手法で行った正規化データで作った表が、分析用途によっては適さない場合もある(たとえば、正規化の時間間隔が大きすぎる/細かすぎる、欠損値の扱いをnullにする/0にする、など)。
このような場合に、正規化の方法を変えるには、従来手法だと表を丸ごと作り直す必要がある。
上記のように正規化した時系列データを作成した上で新たな表を作成すると、新たなログデータが発生し、その取得時刻がその前に表に追加されたデータより古いものだったとき、追加される際に表のデータを書き換えなければならなくなる。
また、時刻の正規化の手法はさまざまなものが提案されており、ある手法で行った正規化データで作った表が、分析用途によっては適さない場合もある(たとえば、正規化の時間間隔が大きすぎる/細かすぎる、欠損値の扱いをnullにする/0にする、など)。
このような場合に、正規化の方法を変えるには、従来手法だと表を丸ごと作り直す必要がある。
この発明は、上記のような課題を解決することを主な目的としており、時系列データの正規化処理において時間間隔/同期化/欠損データ補完/集約方法等の変更の効率化を主な目的とする。
本発明に係るデータ処理装置は、
データテーブルから、当該データテーブルの索引となるインデックステーブルを生成するデータ処理装置であって、
複数のデータレコードを有し、各データレコードに少なくともレコード識別子とデータ値とデータ値に関する時刻とが示されるデータテーブルに対する解析を行い、
各データレコードに示される時刻に基づいて特定の時間間隔で区分されたインデックスレコードをインデックステーブルの要素として生成し、データレコードに示されている時刻に対応する時間を対象としているインデックスレコードに当該データレコードのレコード識別子を設定し、時間順に各時間に対応するデータレコードのレコード識別子が示されるインデックステーブルを生成することを特徴とする。
データテーブルから、当該データテーブルの索引となるインデックステーブルを生成するデータ処理装置であって、
複数のデータレコードを有し、各データレコードに少なくともレコード識別子とデータ値とデータ値に関する時刻とが示されるデータテーブルに対する解析を行い、
各データレコードに示される時刻に基づいて特定の時間間隔で区分されたインデックスレコードをインデックステーブルの要素として生成し、データレコードに示されている時刻に対応する時間を対象としているインデックスレコードに当該データレコードのレコード識別子を設定し、時間順に各時間に対応するデータレコードのレコード識別子が示されるインデックステーブルを生成することを特徴とする。
本発明によれば、特定の時間間隔ごとに対応する時刻を有するデータレコードのレコード識別子を示し、レコード識別子によりデータ値の参照が可能なインデックステーブルを生成するため、正規化処理において、実際にデータ値を扱う操作以外は、インデックステーブル上のデータのみで処理できるため、操作するデータ量を削減でき、データ操作に要する処理時間、コンピュータリソースの消費量を抑制することができる。
実施の形態1.
図1は、本実施の形態に係るデータ処理装置100の構成例を示す。
データ処理装置100は、データ記憶部101、インデックステーブル生成部120、正規化処理部130、表示部140及び入力部150を備える。
図1は、本実施の形態に係るデータ処理装置100の構成例を示す。
データ処理装置100は、データ記憶部101、インデックステーブル生成部120、正規化処理部130、表示部140及び入力部150を備える。
データ記憶部101には、ログテーブル102(データテーブル)、インデックステーブル103が格納される。
ログテーブル102は、例えば、図2(a)に示すテーブルである。ログテーブル102は、データ処理装置100が取得したログデータを収めるデータテーブルである。ログテーブルにおける各レコード(各行)をデータレコードという。
ログテーブル102は、すなわち、複数のデータレコードを有し、各データレコードに少なくともレコード識別子(id)と、データ値(value)と、データソースの識別子(channel)と、データ値に関する時刻(timestamp)とが示される。
つまり、図2(a)に示すように、ログテーブル102を構成する項目は4つあり、104はデータの追加順に付与される固有番号を収める項目たるid、105はデータの取得時刻を収める項目たるtimestamp、106はデータソースのチャネルを示す値を収める項目たるchannel、107はそのデータの値を収める項目たるvalueである。
ログテーブル102は、すなわち、複数のデータレコードを有し、各データレコードに少なくともレコード識別子(id)と、データ値(value)と、データソースの識別子(channel)と、データ値に関する時刻(timestamp)とが示される。
つまり、図2(a)に示すように、ログテーブル102を構成する項目は4つあり、104はデータの追加順に付与される固有番号を収める項目たるid、105はデータの取得時刻を収める項目たるtimestamp、106はデータソースのチャネルを示す値を収める項目たるchannel、107はそのデータの値を収める項目たるvalueである。
インデックステーブル103は、ログテーブル102の索引となるテーブルであり、例えば、図2(b)に示すテーブルである。
また、インデックステーブル103における各レコード(各行)をインデックスレコードという。
図2(b)のインデックステーブル103において、108は基準時刻からの経過時間を表す項目たるtime、109はその時刻における各チャネルのレコードの有無を表す項目たるbitmap、110はレコードが存在する場合に索引としてログテーブル102のidを収める項目たるCHn(1≦n≦チャネル数)である。
図2(b)のインデックステーブル103は、図2(a)のログテーブル102の索引となる。
インデックステーブル103に示されているレコード識別子(id)から、同じレコード識別子(id)が付与されているデータレコードを検索して、当該データレコードのデータ値(value)を参照することが可能である。
レコード識別子(id)は、アドレス値であってもよいし、特定のアドレスからのオフセット値であってもよい。
また、インデックステーブル103における各レコード(各行)をインデックスレコードという。
図2(b)のインデックステーブル103において、108は基準時刻からの経過時間を表す項目たるtime、109はその時刻における各チャネルのレコードの有無を表す項目たるbitmap、110はレコードが存在する場合に索引としてログテーブル102のidを収める項目たるCHn(1≦n≦チャネル数)である。
図2(b)のインデックステーブル103は、図2(a)のログテーブル102の索引となる。
インデックステーブル103に示されているレコード識別子(id)から、同じレコード識別子(id)が付与されているデータレコードを検索して、当該データレコードのデータ値(value)を参照することが可能である。
レコード識別子(id)は、アドレス値であってもよいし、特定のアドレスからのオフセット値であってもよい。
インデックステーブル生成部120は、ログテーブル102からインデックステーブル103を生成する。
インデックステーブル生成部120は、ログテーブル102の各データレコードに示される時刻(timestamp)に基づいて特定の時間間隔で区分されたインデックスレコードをインデックステーブル103の要素として生成し、ログテーブル102のデータレコードに示されている時刻(timestamp)に対応する時間(time)を対象としているインデックスレコードに当該データレコードのレコード識別子(id)を設定し、時間順に各時間に対応するデータレコードのレコード識別子(id)が示されるようにインデックステーブル103を生成する。
例えば、インデックステーブル生成部120は、各データレコードに示される時刻(timestamp)における最小時間間隔で区分されたインデックスレコードを生成する。
図2(a)のログテーブル102においては、時刻(timestamp)における最小時間間隔は、10秒(00:00:10)であり、この最小時間間隔に対応させて、図2(b)のインデックステーブル103では、10秒刻みのインデックスレコードを生成する。図2(b)のインデックスレコードは、timeが10秒刻みとなっているインデックスレコードで構成されている。
また、インデックステーブル生成部120が対象とするログテーブル102は、図2(a)に示すように、複数のデータソースからのデータ値を格納し、各データレコードにデータ値(value)のデータソース(channel)が示される。
インデックステーブル生成部120は、ログテーブル102の各データレコードに示される時刻(timestamp)に基づいて特定の時間間隔で区分されたインデックスレコードをインデックステーブル103の要素として生成し、ログテーブル102のデータレコードに示されている時刻(timestamp)に対応する時間(time)を対象としているインデックスレコードに当該データレコードのレコード識別子(id)を設定し、時間順に各時間に対応するデータレコードのレコード識別子(id)が示されるようにインデックステーブル103を生成する。
例えば、インデックステーブル生成部120は、各データレコードに示される時刻(timestamp)における最小時間間隔で区分されたインデックスレコードを生成する。
図2(a)のログテーブル102においては、時刻(timestamp)における最小時間間隔は、10秒(00:00:10)であり、この最小時間間隔に対応させて、図2(b)のインデックステーブル103では、10秒刻みのインデックスレコードを生成する。図2(b)のインデックスレコードは、timeが10秒刻みとなっているインデックスレコードで構成されている。
また、インデックステーブル生成部120が対象とするログテーブル102は、図2(a)に示すように、複数のデータソースからのデータ値を格納し、各データレコードにデータ値(value)のデータソース(channel)が示される。
また、インデックステーブル生成部120は、データレコードに示されている時刻(timestamp)に対応する時間(time)を対象としているインデックスレコードに当該データレコードのレコード識別子(id)をデータソースとともに設定し、時間順に各時間に対応するデータレコードのレコード識別子(id)がデータソース(CHn)とともに示されるようにインデックステーブル103を生成する。
具体的には、インデックステーブル生成部120は、データソース(CHn)ごとにレコード識別子(id)を管理するインデックステーブル103を生成する。
図2(b)のインデックステーブル103では、データレコードに示されている時刻(timestamp)に対応する時間(time)を対象としているインデックスレコードに当該データレコードのレコード識別子(id)がインデックスレコードのデータソースの区分(CH1〜3)に従って設定されている。また、各桁が複数のデータソースの各々に対応し、インデックスレコードにおけるデータソースごとのレコード識別子(id)の設定状況を示す複数桁のビット列(bittmap)が、各インデックスレコードに付加されている。
例えば、図2(a)のログテーブル102の1行目のデータレコード(timestampが「12:00:00」)は、図2(b)のインデックステーブル103の1行目のインデックスレコード(timeが「0000」)に対応する。そして、ログテーブル102の1行目のデータレコードのデータソース(channel)の値は、CH1であり、インデックステーブル103の1行目のインデックスレコードでは、ログテーブル102の1行目のデータレコードのレコード識別子(id)である「1」が「CH1」に対して設定され、他の区分である「CH2」及び「CH3」にはnull値が設定されている。そして、このようなレコード識別子(id)の設定状況に対応するbitmap「100」が付加されている。
同様に、図2(a)のログテーブル102の2行目のデータレコード(timestampが「12:00:10」)は、図2(b)のインデックステーブル103の2行目のインデックスレコード(timeが「0010」)に対応する。そして、ログテーブル102の2行目のデータレコードのデータソース(channel)の値は、CH3であり、インデックステーブル103の2行目のインデックスレコードでは、ログテーブル102の2行目のデータレコードのレコード識別子(id)である「2」が「CH3」に対して設定され、他の区分である「CH1」及び「CH2」にはnull値が設定されている。そして、このようなレコード識別子(id)の設定状況に対応するbitmap「001」が付加されている。
具体的には、インデックステーブル生成部120は、データソース(CHn)ごとにレコード識別子(id)を管理するインデックステーブル103を生成する。
図2(b)のインデックステーブル103では、データレコードに示されている時刻(timestamp)に対応する時間(time)を対象としているインデックスレコードに当該データレコードのレコード識別子(id)がインデックスレコードのデータソースの区分(CH1〜3)に従って設定されている。また、各桁が複数のデータソースの各々に対応し、インデックスレコードにおけるデータソースごとのレコード識別子(id)の設定状況を示す複数桁のビット列(bittmap)が、各インデックスレコードに付加されている。
例えば、図2(a)のログテーブル102の1行目のデータレコード(timestampが「12:00:00」)は、図2(b)のインデックステーブル103の1行目のインデックスレコード(timeが「0000」)に対応する。そして、ログテーブル102の1行目のデータレコードのデータソース(channel)の値は、CH1であり、インデックステーブル103の1行目のインデックスレコードでは、ログテーブル102の1行目のデータレコードのレコード識別子(id)である「1」が「CH1」に対して設定され、他の区分である「CH2」及び「CH3」にはnull値が設定されている。そして、このようなレコード識別子(id)の設定状況に対応するbitmap「100」が付加されている。
同様に、図2(a)のログテーブル102の2行目のデータレコード(timestampが「12:00:10」)は、図2(b)のインデックステーブル103の2行目のインデックスレコード(timeが「0010」)に対応する。そして、ログテーブル102の2行目のデータレコードのデータソース(channel)の値は、CH3であり、インデックステーブル103の2行目のインデックスレコードでは、ログテーブル102の2行目のデータレコードのレコード識別子(id)である「2」が「CH3」に対して設定され、他の区分である「CH1」及び「CH2」にはnull値が設定されている。そして、このようなレコード識別子(id)の設定状況に対応するbitmap「001」が付加されている。
正規化処理部130は、インデックステーブル生成部120により生成されたインデックステーブル103を用いてログテーブル102の正規化処理を行う。
表示部140は、データ処理装置100のユーザに対して各種情報を表示する手段であり、例えば、ログテーブル102の内容やインデックステーブル103の内容、または正規化処理部130による正規化処理後の内容を表示する。
入力部150は、データ処理装置100のユーザから各種指示を受け付ける。
表示部140は、データ処理装置100のユーザに対して各種情報を表示する手段であり、例えば、ログテーブル102の内容やインデックステーブル103の内容、または正規化処理部130による正規化処理後の内容を表示する。
入力部150は、データ処理装置100のユーザから各種指示を受け付ける。
次に、本実施の形態に係るデータ処理装置100の動作例を図3を参照して説明する。
まず、インデックステーブル生成部120は、ログテーブル102のデータレコードのうちインデックステーブルの生成対象となるデータレコードをデータ記憶部101から取得する(S301)。
例えば、図2(a)のログテーブルの1行目から5行目のデータレコードを取得する。
次に、インデックステーブル生成部120は、インデックスレコードの時間間隔を決定する(S302)。図2(b)のインデックステーブル03では、図2(a)のログテーブル102のtimestampの最小時間間隔(10秒)と同じ時間間隔としているが、必ずしも最小時間間隔にする必要はなく、例えば、図2(a)のログテーブルに対して、インデックスレコードの時間間隔を20秒間隔や1分間隔としてもよい。
次に、インデックステーブル生成部120は、インデックステーブル103における最初の時間(time)を設定する(S303)。図2(b)の例では、最初の時間(time)として例えばレジスタに「0000」をセットする。
次に、インデックステーブル生成部120は、空のインデックスレコードを生成し(S304)、S303で設定した時間(time)をS304で生成した空のインデックスレコードに書き込む(S305)。
次に、インデックステーブル生成部120は、時間(time)に対応する時刻(timestamp)のあるデータレコードを検索し、当該データレコードのレコード識別子(id)を該当するCH区分に書き込むとともに(S306)、他のCH区分にはnull値を書き込む(S307)。
例えば、1行目のインデックスレコードの時間(time)「0000」に対応する時刻(timestamp)のあるデータレコードとして、ログテーブル102の1行目のデータレコード(timestamp「12:00:00」)を検索し、このレコードのデータソース(chnnel)の値であるCH1に対応させて1行目のインデックスレコードのCH1の区分にレコード識別子(id)「1」を書き込む。そして、他のCH区分であるCH2及びCH3にはnull値を書き込む。
なお、例えば、図2(b)の3行目のインデックスレコード(time「0020」)のように、対応する時刻(timestamp)のあるデータレコードが存在しない場合は、すべてのCH区分にnull値が書き込まれる。
また、例えば、図2(b)の5行目のインデックスレコード(time「0040」)のように、対応する時刻(timestamp)のあるデータレコードが複数存在する場合は(図2(a)の4行目と5行目のレコードが該当)、それぞれに対応するCH区分にレコード識別子(id)が書き込まれ、それ以外のCH区分にnull値が書き込まれる(CH1に「5」が書き込まれ、CH2のnull値が書き込まれ、CH3に「4」が書き込まれる)。
次に、インデックステーブル生成部120は、idの書き込み状況に基づき、bitmapを生成し、インデックスレコードに書き込む(S308)。
次に、インデックステーブル生成部120は、S301で取得したデータレコードのうちの最後のデータレコードであるか否かを判断し(S309)、最後のデータレコードでなければ、S302で決定した時間間隔に従って、次の時間(time)をセットし(S310)、S304以降の処理を繰り返す。S309において最後のデータレコードであると判断した場合は、インデックステーブル生成部120は、処理を終了する。
まず、インデックステーブル生成部120は、ログテーブル102のデータレコードのうちインデックステーブルの生成対象となるデータレコードをデータ記憶部101から取得する(S301)。
例えば、図2(a)のログテーブルの1行目から5行目のデータレコードを取得する。
次に、インデックステーブル生成部120は、インデックスレコードの時間間隔を決定する(S302)。図2(b)のインデックステーブル03では、図2(a)のログテーブル102のtimestampの最小時間間隔(10秒)と同じ時間間隔としているが、必ずしも最小時間間隔にする必要はなく、例えば、図2(a)のログテーブルに対して、インデックスレコードの時間間隔を20秒間隔や1分間隔としてもよい。
次に、インデックステーブル生成部120は、インデックステーブル103における最初の時間(time)を設定する(S303)。図2(b)の例では、最初の時間(time)として例えばレジスタに「0000」をセットする。
次に、インデックステーブル生成部120は、空のインデックスレコードを生成し(S304)、S303で設定した時間(time)をS304で生成した空のインデックスレコードに書き込む(S305)。
次に、インデックステーブル生成部120は、時間(time)に対応する時刻(timestamp)のあるデータレコードを検索し、当該データレコードのレコード識別子(id)を該当するCH区分に書き込むとともに(S306)、他のCH区分にはnull値を書き込む(S307)。
例えば、1行目のインデックスレコードの時間(time)「0000」に対応する時刻(timestamp)のあるデータレコードとして、ログテーブル102の1行目のデータレコード(timestamp「12:00:00」)を検索し、このレコードのデータソース(chnnel)の値であるCH1に対応させて1行目のインデックスレコードのCH1の区分にレコード識別子(id)「1」を書き込む。そして、他のCH区分であるCH2及びCH3にはnull値を書き込む。
なお、例えば、図2(b)の3行目のインデックスレコード(time「0020」)のように、対応する時刻(timestamp)のあるデータレコードが存在しない場合は、すべてのCH区分にnull値が書き込まれる。
また、例えば、図2(b)の5行目のインデックスレコード(time「0040」)のように、対応する時刻(timestamp)のあるデータレコードが複数存在する場合は(図2(a)の4行目と5行目のレコードが該当)、それぞれに対応するCH区分にレコード識別子(id)が書き込まれ、それ以外のCH区分にnull値が書き込まれる(CH1に「5」が書き込まれ、CH2のnull値が書き込まれ、CH3に「4」が書き込まれる)。
次に、インデックステーブル生成部120は、idの書き込み状況に基づき、bitmapを生成し、インデックスレコードに書き込む(S308)。
次に、インデックステーブル生成部120は、S301で取得したデータレコードのうちの最後のデータレコードであるか否かを判断し(S309)、最後のデータレコードでなければ、S302で決定した時間間隔に従って、次の時間(time)をセットし(S310)、S304以降の処理を繰り返す。S309において最後のデータレコードであると判断した場合は、インデックステーブル生成部120は、処理を終了する。
このように、インデックステーブル生成部120は、ある基準時刻をあらかじめ決め、それを時刻0とし、各種分析などを行う際の最短時間間隔を時系列正規化の基準時間とし、基準時刻0から基準時間毎にインデックスレコードを生成し、正規化値とするレコードをログテーブルから検索し、そのidをレコードの索引とする。チャネルによっては基準時間内のレコードが存在しない場合もあるため、この場合はnull値とする。
また、基準時間内の全てのチャネルの正規化値が求められたら、チャネルごとの値の有無をビットマップの各ビットで表す。データが有る場合のビットを1、ない場合は0とする。
また、基準時間内の全てのチャネルの正規化値が求められたら、チャネルごとの値の有無をビットマップの各ビットで表す。データが有る場合のビットを1、ない場合は0とする。
そして、正規化処理部130が、ログデータを正規化する際には、インデックステーブル103から分析時間間隔(例えば、10秒間隔、1分間隔等)単位でデータを取り出し、ビットマップ列を使ってデータの分布状況(ビットマップ列に1が含まれているか否か)を調べ、その結果に従ってデータの補完/集約を行う。
具体的なデータ値(value)の取得は、インデックステーブル103のレコード識別子(id)の値からログテーブルのデータレコードを特定し、特定したデータレコードを参照することでデータ値を取得することができる。
具体的なデータ値(value)の取得は、インデックステーブル103のレコード識別子(id)の値からログテーブルのデータレコードを特定し、特定したデータレコードを参照することでデータ値を取得することができる。
以上のように、正規化処理において、実際に測定値を扱う部分以外は、索引データのみで処理できるため、操作するデータ量を削減できる。
また、データの分布状況や、補完/集約の要不要をビット演算により判断できるため、処理ステップを削減できる。
また、データの分布状況や、補完/集約の要不要をビット演算により判断できるため、処理ステップを削減できる。
このように、本実施の形態では、ログデータテーブルを参照するためのインデックステーブルを持ったログ格納方式であって、インデックステーブルの生成において、最小時間間隔ごとにレコードを作成し、各レコードがログデータテーブルへの索引データと、索引データの有無を1/0で表すビットマップを有するようにしたログ格納方式について説明した。
なお、以上の説明では、各インデックスレコードにビットマップを付加するようにしているが、ビットマップはインデックステーブルの必須の項目ではなく、ビットマップを省略してもよい。
実施の形態2.
以上の実施の形態1では、ログテーブルがひとつの場合を説明したが、ログテーブルがチャネルごとや、ある時間毎などの基準により、複数に分けられている場合もある。
次に、ログテーブルが複数ある場合のインデックステーブルの作成の実施形態を示す。
なお、本実施の形態に係るデータ処理装置100の構成は、図1に示すものと同様である。
以上の実施の形態1では、ログテーブルがひとつの場合を説明したが、ログテーブルがチャネルごとや、ある時間毎などの基準により、複数に分けられている場合もある。
次に、ログテーブルが複数ある場合のインデックステーブルの作成の実施形態を示す。
なお、本実施の形態に係るデータ処理装置100の構成は、図1に示すものと同様である。
図4は、このような、複数のログテーブルに対するインデックステーブルを示す。
図4(a)では、複数のログテーブルを示している。
図4(a)において、202、211は取得したログデータを収めるログテーブルである。
この場合は、時間により二つのテーブルにログデータが分けて収められているものとする。
ここでは、ログテーブル202のテーブル番号を1とし、ログテーブル211のテーブル番号を2とする。
図4(b)は、正規化用のインデックステーブル203を示す。
図4(a)では、複数のログテーブルを示している。
図4(a)において、202、211は取得したログデータを収めるログテーブルである。
この場合は、時間により二つのテーブルにログデータが分けて収められているものとする。
ここでは、ログテーブル202のテーブル番号を1とし、ログテーブル211のテーブル番号を2とする。
図4(b)は、正規化用のインデックステーブル203を示す。
ログテーブル202、211の構成は実施の形態1の場合と同じであるので説明を割愛する。
インデックステーブル203については、208が基準時刻からの経過時間を表す項目たるtime、210はレコードが存在する場合に索引としてidを収める項目たるCHn(1≦n≦チャネル数)であることは実施の形態1と同じである。
209は、その時刻における各チャネルのレコードの有無を表す項目たるbitmapであるが、ビットマップの値を1以上も表現できるようにし、この値が各ログテーブルを指すようにインデックスレコードを生成する。
例えば、インデックステーブル203において、timeが「0600」となっているレコードのbitmapは、「200」となっている。このレコードでは、CH1が「1」、CH2が「null」、CH3が「null」となっているので、実施の形態1と同様のbitmapの表記方法によれば、「100」となるが、本実施の形態では、ビットマップのうちオンとなっているビット値においてログテーブルの番号を表すこととしており、このため、該当するログテーブル211のログテーブル番号である「2」を表し、bitmapを「200」としている。
インデックステーブル203については、208が基準時刻からの経過時間を表す項目たるtime、210はレコードが存在する場合に索引としてidを収める項目たるCHn(1≦n≦チャネル数)であることは実施の形態1と同じである。
209は、その時刻における各チャネルのレコードの有無を表す項目たるbitmapであるが、ビットマップの値を1以上も表現できるようにし、この値が各ログテーブルを指すようにインデックスレコードを生成する。
例えば、インデックステーブル203において、timeが「0600」となっているレコードのbitmapは、「200」となっている。このレコードでは、CH1が「1」、CH2が「null」、CH3が「null」となっているので、実施の形態1と同様のbitmapの表記方法によれば、「100」となるが、本実施の形態では、ビットマップのうちオンとなっているビット値においてログテーブルの番号を表すこととしており、このため、該当するログテーブル211のログテーブル番号である「2」を表し、bitmapを「200」としている。
このように、本実施の形態に係るインデックステーブル生成部120は、それぞれにテーブル番号が設定されている複数個のログテーブルに対する解析を行うものであり、ログテーブルの番号が示される複数桁のビット列をインデックスレコードに付加する。
インデックステーブル生成部120が付加するビット列は、各桁が複数のデータソース(CHn)の各々に対応し、インデックスレコードにおけるデータソース(CHn)ごとのレコード識別子(id)の設定状況を示すとともに、インデックスレコードにレコード識別子(id)が設定されている場合に当該レコード識別子(id)のデータレコードが属するログテーブルの番号を示す。
インデックステーブル生成部120が付加するビット列は、各桁が複数のデータソース(CHn)の各々に対応し、インデックスレコードにおけるデータソース(CHn)ごとのレコード識別子(id)の設定状況を示すとともに、インデックスレコードにレコード識別子(id)が設定されている場合に当該レコード識別子(id)のデータレコードが属するログテーブルの番号を示す。
本実施の形態では、インデックステーブル生成部120は、図3のS301〜S305の実施後、S306の処理において、時間(time)に対応する時刻(timestamp)のあるデータレコードを検索した際に、検索したデータレコードの属するログテーブルのテーブル番号を例えば汎用レジスタに格納し、レコード識別子(id)及びnull値をCH区分に書き込んだ後(S306、S307)、S308においてbitmapを作成する際に、汎用レジスタからテーブル番号を読み出して、bitmapにテーブル番号を反映させる。
そして、正規化処理部130が、データを正規化する際には、インデックステーブル103から分析時間間隔単位(例えば、10秒間隔、1分間隔等)でデータを取り出し、ビットマップ列を使ってデータの分布状況(ビットマップ列に0以外の値が含まれているか否か)を調べ、その結果に従ってデータの補完/集約を行う。
具体的なデータ値(value)の取得は、インデックステーブル103のbitmapに示されているレコード番号から対象となるログテーブルを特定し、またインデックステーブル103のレコード識別子(id)の値からデータレコードを特定し、特定したデータレコードを参照することでデータ値を取得することができる。
具体的なデータ値(value)の取得は、インデックステーブル103のbitmapに示されているレコード番号から対象となるログテーブルを特定し、またインデックステーブル103のレコード識別子(id)の値からデータレコードを特定し、特定したデータレコードを参照することでデータ値を取得することができる。
以上のように、正規化処理において、実際に測定値を扱う部分以外は、索引データのみで処理でき、操作するデータ量を削減できる上に、実際のデータが複数のテーブルに存在しても、テーブルの分割ルールを意識することなくデータを参照できるようになるため、正規化の際の処理ステップを削減できる。
このように、本実施の形態では、ログテーブルが複数ある場合に、インデックステーブルのレコードのビットマップが、0はデータが無いことを表し、0以外はデータが有るテーブルの番号を指すようにしたログ格納方式について説明した。
最後に実施の形態1、2に示したデータ処理装置100のハードウェア構成例について説明する。
図5は、実施の形態1、2に示すデータ処理装置100のハードウェア資源の一例を示す図である。なお、図5の構成は、あくまでもデータ処理装置100のハードウェア構成の一例を示すものであり、データ処理装置100のハードウェア構成は図5に記載の構成に限らず、他の構成であってもよい。
図5は、実施の形態1、2に示すデータ処理装置100のハードウェア資源の一例を示す図である。なお、図5の構成は、あくまでもデータ処理装置100のハードウェア構成の一例を示すものであり、データ処理装置100のハードウェア構成は図5に記載の構成に限らず、他の構成であってもよい。
図5において、データ処理装置100は、プログラムを実行するCPU911(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU911は、バス912を介して、例えば、ROM(Read Only Memory)913、RAM(Random Access Memory)914、通信ボード915、表示装置901、キーボード902、マウス903、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。更に、CPU911は、FDD904(Flexible Disk Drive)、コンパクトディスク装置905(CDD)、プリンタ装置906、スキャナ装置907と接続していてもよい。また、磁気ディスク装置920の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
通信ボード915、キーボード902、スキャナ装置907、FDD904などは、入力部、入力装置の一例である。
また、通信ボード915、表示装置901、プリンタ装置906などは、出力部、出力装置の一例である。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
通信ボード915、キーボード902、スキャナ装置907、FDD904などは、入力部、入力装置の一例である。
また、通信ボード915、表示装置901、プリンタ装置906などは、出力部、出力装置の一例である。
例えば、通信ボード915は、LAN(ローカルエリアネットワーク)、インターネット、WAN(ワイドエリアネットワーク)などのネットワークに接続可能である。
磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。
磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。
上記プログラム群923には、実施の形態1、2の説明において「〜部」として説明している機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
ファイル群924には、実施の形態1、2の説明において、「〜の判断」、「〜の計算」、「〜の比較」、「〜の検索」、「〜の更新」、「〜の設定」、「〜の登録」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリになどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのCPUの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態1、2で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD等の記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
ファイル群924には、実施の形態1、2の説明において、「〜の判断」、「〜の計算」、「〜の比較」、「〜の検索」、「〜の更新」、「〜の設定」、「〜の登録」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリになどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのCPUの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態1、2で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD等の記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
また、実施の形態1、2の説明において「〜部」として説明しているものは、「〜回路」、「〜装置」、「〜機器」、であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明しているものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、実施の形態1、2の「〜部」としてコンピュータを機能させるものである。あるいは、実施の形態1、2の「〜部」の手順や方法をコンピュータに実行させるものである。
このように、実施の形態1、2に示すデータ処理装置100は、処理装置たるCPU、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータであり、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
100 データ処理装置、101 データ記憶部、102 ログテーブル、103 インデックステーブル、120 インデックステーブル生成部、130 正規化処理部、140 表示部、150 入力部、202 ログテーブル、203 インデックステーブル、211 ログテーブル。
Claims (7)
- データテーブルから、当該データテーブルの索引となるインデックステーブルを生成するデータ処理装置であって、
複数のデータレコードを有し、各データレコードに少なくともレコード識別子とデータ値とデータ値に関する時刻とが示されるデータテーブルに対する解析を行い、
各データレコードに示される時刻に基づいて特定の時間間隔で区分されたインデックスレコードをインデックステーブルの要素として生成し、データレコードに示されている時刻に対応する時間を対象としているインデックスレコードに当該データレコードのレコード識別子を設定し、時間順に各時間に対応するデータレコードのレコード識別子が示されるインデックステーブルを生成することを特徴とするデータ処理装置。 - 前記データ処理装置は、
各データレコードに示される時刻における最小時間間隔を前記特定の時間間隔とし、前記最小時間間隔で区分されたインデックスレコードを生成することを特徴とする請求項1に記載のデータ処理装置。 - 前記データ処理装置は、
複数のデータソースからのデータ値を格納するデータテーブルであって、各データレコードにデータ値のデータソースが示されるデータテーブルに対する解析を行い、
データレコードに示されている時刻に対応する時間を対象としているインデックスレコードに当該データレコードのレコード識別子をデータソースとともに設定し、時間順に各時間に対応するデータレコードのレコード識別子がデータソースとともに示されるインデックステーブルを生成することを特徴とする請求項1に記載のデータ処理装置。 - 前記データ処理装置は、
データソースごとにレコード識別子を管理するインデックスレコードを生成し、
データレコードに示されている時刻に対応する時間を対象としているインデックスレコードに当該データレコードのレコード識別子をインデックスレコードのデータソースの区分に従って設定し、
各桁が複数のデータソースの各々に対応し、インデックスレコードにおけるデータソースごとのレコード識別子の設定状況を示す複数桁のビット列を、インデックスレコードに付加することを特徴とする請求項3に記載のデータ処理装置。 - 前記データ処理装置は、
それぞれにデータテーブルの番号が設定されている複数個のデータテーブルに対する解析を行い、
各桁が複数のデータソースの各々に対応し、インデックスレコードにおけるデータソースごとのレコード識別子の設定状況を示すとともに、インデックスレコードにレコード識別子が設定されている場合に当該レコード識別子のデータレコードが属するデータテーブルの番号を示す複数桁のビット列を、各インデックスレコードに付加することを特徴とする請求項4に記載のデータ処理装置。 - コンピュータが、データテーブルから、当該データテーブルの索引となるインデックステーブルを生成するデータ処理方法であって、
コンピュータが、
複数のデータレコードを有し、各データレコードに少なくともレコード識別子とデータ値とデータ値に関する時刻とが示されるデータテーブルに対する解析を行い、
各データレコードに示される時刻に基づいて特定の時間間隔で区分されたインデックスレコードをインデックステーブルの要素として生成し、データレコードに示されている時刻に対応する時間を対象としているインデックスレコードに当該データレコードのレコード識別子を設定し、時間順に各時間に対応するデータレコードのレコード識別子が示されるインデックステーブルを生成することを特徴とするデータ処理方法。 - コンピュータに、データテーブルから、当該データテーブルの索引となるインデックステーブルを生成させるプログラムであって、
複数のデータレコードを有し、各データレコードに少なくともレコード識別子とデータ値とデータ値に関する時刻とが示されるデータテーブルに対する解析を行い、
各データレコードに示される時刻に基づいて特定の時間間隔で区分されたインデックスレコードをインデックステーブルの要素として生成し、データレコードに示されている時刻に対応する時間を対象としているインデックスレコードに当該データレコードのレコード識別子を設定し、時間順に各時間に対応するデータレコードのレコード識別子が示されるインデックステーブルを生成する処理をコンピュータに実行させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007044810A JP2008210068A (ja) | 2007-02-26 | 2007-02-26 | データ処理装置及びデータ処理方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007044810A JP2008210068A (ja) | 2007-02-26 | 2007-02-26 | データ処理装置及びデータ処理方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008210068A true JP2008210068A (ja) | 2008-09-11 |
Family
ID=39786327
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007044810A Pending JP2008210068A (ja) | 2007-02-26 | 2007-02-26 | データ処理装置及びデータ処理方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008210068A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101944115A (zh) * | 2010-09-14 | 2011-01-12 | 杭州海康威视数字技术股份有限公司 | 一种日志搜索方法和系统 |
JP2013196560A (ja) * | 2012-03-22 | 2013-09-30 | Nec Corp | ログ作成装置、ログ作成システム、ログ作成プログラムならびにログ作成方法 |
CN111538711A (zh) * | 2020-04-14 | 2020-08-14 | 中国人民财产保险股份有限公司 | 日志存储方法及装置 |
-
2007
- 2007-02-26 JP JP2007044810A patent/JP2008210068A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101944115A (zh) * | 2010-09-14 | 2011-01-12 | 杭州海康威视数字技术股份有限公司 | 一种日志搜索方法和系统 |
JP2013196560A (ja) * | 2012-03-22 | 2013-09-30 | Nec Corp | ログ作成装置、ログ作成システム、ログ作成プログラムならびにログ作成方法 |
CN111538711A (zh) * | 2020-04-14 | 2020-08-14 | 中国人民财产保险股份有限公司 | 日志存储方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2017224184A (ja) | 機械学習装置 | |
JP6237168B2 (ja) | 情報処理装置及び情報処理プログラム | |
JP4832952B2 (ja) | データベース解析システム及びデータベース解析方法及びプログラム | |
CN110618926A (zh) | 源代码分析方法和源代码分析装置 | |
US8082421B2 (en) | Program instruction rearrangement methods in computer | |
US20180075074A1 (en) | Apparatus and method to correct index tree data added to existing index tree data | |
JP2008210068A (ja) | データ処理装置及びデータ処理方法及びプログラム | |
CN109271495A (zh) | 问答识别效果检测方法、装置、设备及可读存储介质 | |
JP2008210073A (ja) | ログデータサイズ削減装置及びログデータサイズ削減装置のログデータサイズ削減方法 | |
JP2021149489A (ja) | 業務可視化装置、業務可視化方法、及びプログラム | |
US20150178075A1 (en) | Enhancing understandability of code using code clones | |
Matter | Big data analytics: a guide to data science practitioners making the transition to big data | |
WO2022137778A1 (ja) | 情報処理装置、分析方法、および分析プログラム | |
US20210374771A1 (en) | Data analysis support apparatus and data analysis support method | |
JP2018181121A (ja) | 分析装置、分析プログラム及び分析方法 | |
JP5197128B2 (ja) | 依存関係推定装置及び依存関係推定プログラム及び記録媒体 | |
US20210263831A1 (en) | Scoring device, computer readable medium, and scoring method | |
US10552185B2 (en) | Lightweight and precise value profiling | |
JP5219543B2 (ja) | 情報処理装置及び情報処理方法及びプログラム | |
US20160042022A1 (en) | Data coordination support apparatus and data coordination support method | |
JP6580535B2 (ja) | 開発支援システム及び方法 | |
KR100585176B1 (ko) | 입출력 서브시스템에서 입출력 명령의 부하 판단 방법 및장치 | |
JP2018025852A (ja) | プログラム分析方法、プログラム分析装置および分析プログラム | |
JP2008262324A (ja) | 情報処理装置及び情報処理方法及びプログラム | |
JP2011227789A (ja) | 情報処理装置及びプログラム |