(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-18
(45)【発行日】2023-12-26
(54)【発明の名称】データ圧縮装置、履歴情報管理システム、データ圧縮方法およびデータ圧縮プログラム
(51)【国際特許分類】
H03M 7/30 20060101AFI20231219BHJP
G06F 17/18 20060101ALI20231219BHJP
H03M 7/24 20060101ALI20231219BHJP
【FI】
H03M7/30 Z
G06F17/18 Z
H03M7/24
(21)【出願番号】P 2019172810
(22)【出願日】2019-09-24
【審査請求日】2022-08-15
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100109313
【氏名又は名称】机 昌彦
(74)【代理人】
【識別番号】100149618
【氏名又は名称】北嶋 啓至
(72)【発明者】
【氏名】山本 修二
【審査官】原田 聖子
(56)【参考文献】
【文献】米国特許第04646241(US,A)
【文献】特開平03-289210(JP,A)
【文献】特開2003-188734(JP,A)
【文献】米国特許出願公開第2018/0089328(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H03M 7/30
G06F 17/18
H03M 7/24
(57)【特許請求の範囲】
【請求項1】
時系列上において順に並んだ時刻データである第1の時刻、第2の時刻および第3の時刻を用いて算出される時刻の間隔であり、前記第1の時刻および前記第2の時刻の差である第1の間隔と、前記第2の時刻および第3の時刻の差である第2の間隔との差として算出される前記時刻の間隔が所定の間隔以内の場合に、前記時刻データを第1の圧縮方式で圧縮して第1の圧縮データとして出力
し、前記時刻の間隔が前記所定の間隔外の場合に、前記時刻データを圧縮せずに出力する時刻データ圧縮手段と、
前記時刻データと関連づけられて取得されたデータである統計データを、前記第1の圧縮方式とは異なる第2の圧縮方式で圧縮して第2の圧縮データとして出力する統計データ圧縮手段と、
前記第1の圧縮データと、前記第2の圧縮データを関連づけてデータベースに出力するデータ格納手段と
を備えることを特徴とするデータ圧縮装置。
【請求項2】
前記時刻データ圧縮手段は、前記時刻データをDouble-delta圧縮方式で圧縮し、前記統計データ圧縮手段は、前記統計データを浮動小数点形式の2個の前記統計データのXOR演算を行って圧縮することを特徴とする請求項1に記載のデータ圧縮装置。
【請求項3】
前記データ格納手段は、前記第2の圧縮データを保存する領域に圧縮の有無を示す情報を格納したデータを出力することを特徴とする請求項2に記載のデータ圧縮装置。
【請求項4】
前記データベースから前記第1の圧縮データおよび前記第2の圧縮データを読み出し、前記第2の圧縮データを保存する領域に圧縮を示す情報が格納されているとき、前記第1の圧縮データおよび前記第2の圧縮データを解凍するデータ解凍手段をさらに備えることを特徴とする請求項3に記載のデータ圧縮装置。
【請求項5】
前記データ格納手段は、前記時刻データと前記統計データの圧縮が不可であったとき、前記時刻データと前記統計データを圧縮せずに前記データベースに出力することを特徴とする請求項1から4いずれかに記載のデータ圧縮装置。
【請求項6】
少なくとも1台のサーバと、
前記サーバから前記サーバの状態を示す情報を統計データとして、前記統計データが取得された時刻に対応する時刻データと関連づけて取得するデータ取得手段と、
請求項1から5いずれかに記載のデータ圧縮装置と
を備え、
前記データ圧縮装置は、前記データ取得手段が取得した前記時刻データおよび前記統計データを圧縮して、前記第1の圧縮データおよび前記第2の圧縮データを前記データベースに出力することを特徴とする履歴情報管理システム。
【請求項7】
時刻データと、前記時刻データと関連づけられたデータとを統計データとして取得し、
時系列上において順に並んだ時刻データである第1の時刻、第2の時刻および第3の時刻を用いて算出される時刻の間隔であり、前記第1の時刻および前記第2の時刻の差である第1の間隔と、前記第2の時刻および第3の時刻の差である第2の間隔との差として算出される前記時刻の間隔が所定の間隔以内の場合に、前記時刻データを第1の圧縮方式で圧縮して第1の圧縮データとして出力
し、前記時刻の間隔が前記所定の間隔外の場合に、前記時刻データを圧縮せずに出力し、
前記統計データを、前記第1の圧縮方式とは異なる第2の圧縮方式で圧縮して第2の圧縮データとして出力し、
前記第1の圧縮データと、前記第2の圧縮データを関連づけてデータベースに出力することを特徴とするデータ圧縮方法。
【請求項8】
前記時刻データをDouble-delta圧縮方式で圧縮し、
前記統計データを浮動小数点形式の2個の前記統計データのXOR演算を行って圧縮することを特徴とする請求項7に記載のデータ圧縮方法。
【請求項9】
前記第2の圧縮データを保存する領域に圧縮の有無を示す情報を格納したデータを出力することを特徴とする請求項7または8に記載のデータ圧縮方法。
【請求項10】
時系列上において順に並んだ時刻データである第1の時刻、第2の時刻および第3の時刻を用いて算出される時刻の間隔であり、前記第1の時刻および前記第2の時刻の差である第1の間隔と、前記第2の時刻および第3の時刻の差である第2の間隔との差として算出される前記時刻の間隔が所定の間隔以内の場合に、前記時刻データを第1の圧縮方式で圧縮して第1の圧縮データとして出力
し、前記時刻の間隔が前記所定の間隔外の場合に、前記時刻データを圧縮せずに出力する処理と、
前記時刻データと関連づけられて取得されたデータである統計データを、前記第1の圧縮方式とは異なる第2の圧縮方式で圧縮して第2の圧縮データとして出力する処理と、
前記第1の圧縮データと、前記第2の圧縮データを関連づけてデータベースに出力する処理と
をコンピュータに実行させることを特徴とするデータ圧縮プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データの圧縮技術に関するものであり、特に、時系列のデータの圧縮技術に関するものである。
【背景技術】
【0002】
情報システムの稼動状態等の履歴データを保存して解析等に用いる際に、例えば、一定時間ごとに稼動状態等の情報を取得し、時系列の履歴データとして保存するような場合に、保存されるデータ量は膨大な量となり得る。また、情報システムの構成の変更があった場合には、変更した状態に合わせて履歴データを保存し、解析時に必要なデータを容易に抽出できることが要求され得る。そのため、情報システムの稼動状態等の履歴データを保存する際に、保存するデータ量を抑制しつつ、解析等を行う際に必要なデータを容易に抽出できる形でデータが保存されていることが望ましい。
【0003】
抽出しやすい形式で履歴データを保存する方法としては、例えば、特許文献1のように履歴データをデータベースとして保存する方法が開示されている。特許文献1では、時刻データと、情報システムの稼動状態等を示す統計データによる履歴データと、情報処理装置の情報とを関連づけたリレーショナルデータベースとして履歴データが保存されている。
【0004】
また、時系列で保存されるデータ量を抑制する技術としては、例えば、特許文献2のようなデータ圧縮技術が開示されている。特許文献2は、時系列のデータを圧縮して保存するデータ圧縮装置に関するものである。特許文献2のデータ圧縮装置は、時系列の数値シーケンスデータの圧縮を行う際に、圧縮率があらかじめ設定された範囲になるように圧縮条件を変更することで、データ量を抑制している。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2009-193153号公報
【文献】特開2012-10319号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1および特許文献2の技術は次のような点で十分ではない。特許文献1のデータベースでは、情報システムの構成の変更と、各装置の稼動状態等の履歴データをデータの検索および抽出が容易な形式で保存することができる。しかし、特許文献1では、収集したデータを互いに関連づけてそのまま保存しているため、装置構成が複雑な場合や長期間のデータを保存する場合には、データ量が増大する恐れがある。また、特許文献2のデータ圧縮方法では、圧縮の際にデータの一部が間引かれているため、圧縮したデータの復元を行った際に、完全には元のデータには戻らないことがある。そのため、特許文献2では、保存した履歴データを解析に使用する際に、必要なデータが欠落している恐れがある。よって、特許文献1および特許文献2の技術は、解析等に必要な履歴データを時系列で保存しつつ、データ量を抑制する技術としては十分ではない。
【0007】
本発明は、上記の課題を解決するため、データベースに履歴データとして保存される時系列のデータの圧縮率を向上することができるデータ圧縮装置を提供することを目的としている。
【課題を解決するための手段】
【0008】
上記の課題を解決するため、本発明のデータ圧縮装置は、時刻データ圧縮手段と、統計データ圧縮手段と、データ格納手段を備えている。時刻データ圧縮手段は、時刻データを第1の圧縮方式で圧縮して第1の圧縮データとして出力する。統計データ圧縮手段は、時刻データと関連づけられて取得されたデータである統計データを、第1の圧縮方式とは異なる第2の圧縮方式で圧縮して第2の圧縮データとして出力する。データ格納手段は、第1の圧縮データと、第2の圧縮データを関連づけてデータベースに出力する。
【0009】
本発明のデータ圧縮方法は、時刻データと、前記時刻データと関連づけられたデータとを統計データとして取得する。本発明のデータ圧縮方法は、時刻データを第1の圧縮方式で圧縮して第1の圧縮データとして出力する。本発明のデータ圧縮方法は、統計データを、第1の圧縮方式とは異なる第2の圧縮方式で圧縮して第2の圧縮データとして出力する。本発明のデータ圧縮方法は、第1の圧縮データと、第2の圧縮データを関連づけてデータベースに出力する。
【発明の効果】
【0010】
本発明によると、データベースに保存される時系列のデータの圧縮率を向上することができる。
【図面の簡単な説明】
【0011】
【
図1】本発明の第1の実施形態の構成の概要を示す図である。
【
図2】本発明の第2の実施形態の構成の概要を示す図である。
【
図3】本発明の第2の実施形態の構成管理部の構成を示す図である。
【
図4】本発明の第2の実施形態のデータ取得部の構成を示す図である。
【
図5】本発明の第2の実施形態のデータ圧縮解凍部の構成を示す図である。
【
図6】本発明の第2の実施形態の履歴情報データベースの構成の例を示す図である。
【
図7】本発明の第2の実施形態の動作を示すフローチャートである。
【
図8】本発明の第2の実施形態の統計データの例を示す図である。
【
図9】本発明の第2の実施形態のデータ圧縮解凍部の他の構成の例を示す図である。
【
図10】本発明の第2の実施形態の履歴情報管理システムの他の構成の例を示す図である。
【発明を実施するための形態】
【0012】
(第1の実施形態)
本発明の第1の実施形態について図を参照して詳細に説明する。
図1は、本実施形態のデータ圧縮装置の構成の概要を示したものである。本実施形態のデータ圧縮装置は、時刻データ圧縮部1と、統計データ圧縮部2と、データ格納部3とを備えている。時刻データ圧縮部1は、時刻データを第1の圧縮方式で圧縮して第1の圧縮データとして出力する。統計データ圧縮部2は、時刻データと関連づけられて取得されたデータである統計データを、第1の圧縮方式とは異なる第2の圧縮方式で圧縮して第2の圧縮データとして出力する。データ格納部3は、第1の圧縮データと、第2の圧縮データを関連づけてデータベースに出力する。
【0013】
本実施形態のデータ圧縮装置は、時刻データと統計データをそれぞれ異なる圧縮方法で圧縮しデータベースに出力している。本実施形態のデータ圧縮装置は、時刻データと統計データそれぞれに応じた圧縮方法を用いることで、時刻データと統計データそれぞれの特性に適した圧縮方法でデータを圧縮することができる。そのため、本実施形態のデータ圧縮装置は、データベースに保存される時系列のデータの圧縮率を向上することができる。
【0014】
(第2の実施形態)
本発明の第2の実施形態について図を参照して詳細に説明する。
図2は、本実施形態の履歴情報管理システムの構成の概要を示した図である。本実施形態の履歴情報管理システムは、構成管理部10と、データ取得部20と、データ圧縮解凍部30と、レポート作成部40と、構成情報保存部50と、履歴情報保存部60を備えている。本実施形態の履歴情報管理システムは、例えば、一定時間ごとにサーバ70から稼動状態等の情報を取得し、取得した情報をリレーショナルデータベースに時系列の履歴データとして保存するシステムである。
【0015】
構成管理部10の構成について説明する。
図3は、本実施形態の構成管理部10の構成を示した図である。構成管理部10は、構成情報管理部11と、データテーブル更新部12を備えている。
【0016】
構成情報管理部11は、管理対象の情報システムの構成に関する情報を構成情報として収集する機能を有する。情報システムの構成に関する情報とは、サーバ70の識別子(ID)、サーバ70の構成、サーバ70を構成する各ユニットの性能およびネットワーク構成などのことをいう。
【0017】
データテーブル更新部12は、構成情報管理部11が収集した構成情報を基に、構成情報保存部50に保存されている構成情報データベースのデータを更新する。構成情報データベースは、履歴データを収拾する対象となる情報システムの構成に関する情報が保存されているデータベースのことをいう。
【0018】
データ取得部20の構成について説明する。
図4は、本実施形態のデータ取得部20の構成を示した図である。データ取得部20は、システム情報収集監視部21と、履歴データ更新部22を備えている。
【0019】
システム情報収集監視部21は、履歴データを保存する際、監視対象の情報システムの状態に関する情報を時刻データと関連づけて履歴データとして収集する。システム情報収集監視部21は、サーバ70の負荷率、エラー発生等のイベント発生数および構成の変更回数等を示すデータである統計データを、情報システムの状態に関する情報とし、時刻データと関連づけてサーバ70から取得する。したがって、履歴データは、サーバ70の状態を示す統計データと、統計データが取得された時刻を示す時刻データが関連づけられたデータである。
【0020】
履歴データ更新部22は、システム情報収集監視部21が取得した履歴データをデータ圧縮解凍部30に送る。
【0021】
構成管理部10およびデータ取得部20における各処理は、それぞれ、コンピュータ上でコンピュータプログラムを実行することで行われる。また、構成管理部10およびデータ取得部20における各処理は、同一のコンピュータ上で行われてもよい。
【0022】
データ圧縮解凍部30の構成について説明する。
図5は、本実施形態のデータ圧縮解凍部30の構成を示した図である。データ圧縮解凍部30は、データ圧縮部31と、データ解凍部32と、データキャッシュ部33を備えている。
【0023】
データ圧縮部31の構成について説明する。データ圧縮部31は、データ格納部34と、時刻データ圧縮部35と、統計データ圧縮部36をさらに備えている。
【0024】
データ格納部34は、圧縮された時刻データおよび統計データを履歴情報保存部60の履歴情報データベースに書き込むことで格納する。また、データ格納部34は、圧縮が不可であったとき、時刻データおよび統計データを圧縮せずに履歴情報保存部60の履歴情報データベースに格納する。時刻データおよび統計データの圧縮方法と、圧縮したデータの履歴情報データベースへの格納方法については後で説明する。
【0025】
時刻データ圧縮部35は、履歴データのうち時刻データの圧縮を行う。時刻データ圧縮部35は、Double-delta圧縮方式よって時刻データの圧縮を行う。時刻データの圧縮方法については後で説明する。
【0026】
統計データ圧縮部36は、履歴データのうち統計データの圧縮を行う。統計データ圧縮部36は、XOR圧縮方式によって統計データの圧縮を行う。ここで、XOR圧縮方式とは、浮動小数点形式の2個の統計データのXOR演算を行って圧縮を行うことをいう。統計データの圧縮方法については後で説明する。
【0027】
データ解凍部32は、履歴情報保存部60の履歴情報データベースから履歴データを読み出し、圧縮された履歴データを復号して解凍する。データ解凍部32は、解凍した履歴データをレポート作成部40に出力する。また、データ解凍部32は、読み出した履歴データが圧縮されていない場合は、解凍処理を行わずにレポート作成部40に出力する。
【0028】
データ圧縮部31およびデータ解凍部32は、FPGA(Field Programmable Gate Array)等の半導体装置を用いて構成されている。データ圧縮部31およびデータ解凍部32における各処理は、CPU(Central Processing Unit)上でコンピュータプログラムを実行することで行われてもよい。また、各処理をCPU上でコンピュータプログラムを実行することで行う構成とする場合には、データ圧縮解凍部30における各処理は、構成管理部10およびデータ取得部20の一方または両方と同一のコンピュータ上で行われてもよい。
【0029】
データキャッシュ部33は、履歴データ更新部22から入力される履歴データを一時的に保存する。データキャッシュ部33は、例えば、SRAM(Static Random Access Memory)等の半導体記憶装置を用いて構成されている。データキャッシュ部33には、フラッシュメモリ等の不揮発性の半導体記憶装置を用いてもよい。
【0030】
レポート作成部40は、履歴データの解析時等に履歴データを出力する。レポート作成部40は、データ圧縮解凍部30を介して履歴情報データベースから履歴データの検索および取得を行って、履歴データのレポートを出力する。レポート作成部40は、履歴データのレポートを情報システムの管理サーバ等に出力する。レポート作成部40における各処理は、コンピュータ上でコンピュータプログラムを実行することで行われる。レポート作成部40における各処理は、構成管理部10およびデータ取得部20の一方または両方と同一のコンピュータ上で行われてもよい。また、レポート作成部40は、データ圧縮解凍部30と同一の装置内に形成されていてもよい。
【0031】
構成情報保存部50は、情報システムの構成に関する情報を構成情報データベースとして保存している。構成情報データベースは、サーバ70の構成、性能およびネットワーク構成等の情報によって構成されている。
【0032】
履歴情報保存部60は、情報システムの履歴データを履歴情報データベースとして保存している。
図6は、本実施形態の履歴情報データベースの構成を模式的に示した図である。
【0033】
履歴情報データベースは、スタースキーマと呼ばれるテーブル構成のリレーショナルデータベースとして構成されている。履歴情報データベースは、ファクトテーブルとして使用されるデータテーブルと、ファクトテーブルに紐付けられた複数の次元テーブルで構成されている。
【0034】
ファクトテーブルは、サーバ70の状態を示す統計情報である統計データと、そのデータを取得した日時を示す時刻データと、統計データ等と他のテーブルと関連付けるIDのデータで構成されている。IDは、ファクトテーブル上のデータと紐付く他の次元テーブル上のデータのインデックスとして使用される。IDは、ファクトテーブル上のデータテーブルに登録される統計情報の履歴データがどのようなデータかを示すキーとなる。
【0035】
ファクトテーブルに登録される統計データには、負荷情報、イベントの発生情報、構成変更回数などのサーバの統計情報のデータが格納される。また、ファクトテーブルに登録される統計データには、サーバ数などの統計情報が格納されてもよい。
【0036】
構成情報保存部50および履歴情報保存部60は、それぞれ、ハードディスクドライブや不揮発性の半導体記憶装置等の記憶装置またはそれらの記憶装置の組み合わせによって構成されている。また、構成情報保存部50および履歴情報保存部60は、同一の装置内に形成されていてもよい。
【0037】
サーバ70は、情報システムの用途に応じた各処理を行う情報処理装置である。履歴データの収集の対象となるサーバ70は、単数であってもよい。
【0038】
本実施形態の履歴情報管理システムの動作について説明する。
図7は、本実施形態の履歴情報管理システムにおいて、サーバ70の時系列の統計データを履歴データとして履歴情報データベースに格納する際の動作フローを示す図である。
【0039】
始めに構成管理部10が情報システムの構成についての情報を収集する動作について説明する。構成管理部10の構成情報管理部11は、履歴データを取得する対象の情報システムの構成の情報を収集する。構成管理部10の構成情報管理部11は、例えば、情報システムの立ち上げ時や構成の変化を検知したときに構成の情報を収集する。構成情報管理部11は、情報システムを構成している各サーバ70のIDと性能、ネットワーク構成等の情報を構成情報として収集する。情報システムの構成の情報を収集すると、構成情報管理部11は、収集した構成情報を構成情報保存部50の構成情報データテーブルに書き込む。
【0040】
構成情報データテーブルのデータが更新されると、構成管理部10のデータテーブル更新部12は、構成情報データテーブルの情報を基に、履歴情報保存部60の履歴情報データテーブルの次元テーブルのデータの更新または追加を行う。
【0041】
次にデータ取得部20およびデータ圧縮解凍部30が、情報システムの履歴データの収集および履歴情報データベースへの履歴データの格納を行う際の動作について説明する。データ取得部20のシステム情報収集監視部21は、各サーバ70から履歴データを収集する。システム情報収集監視部21は、例えば、あらかじめ設定された時間ごとに各サーバ70から履歴データを収集する。システム情報収集監視部21は、履歴データとして、サーバ70の負荷率、エラー発生等のイベント発生数およびサーバ70の構成の変更回数等を示すデータである統計データを時刻データと関連づけて収集する。統計データとして、サーバ70の総数やサーバ70の分類ごとのサーバ70の数が収集されてもよい。履歴データを収集すると、システム情報収集監視部21は、履歴データを履歴データ更新部22に出力する。
【0042】
履歴データが入力されると、履歴データ更新部22は、履歴データをデータ圧縮解凍部30のデータ圧縮部31に送る。
【0043】
データ圧縮部31に履歴データが入力されると、データ圧縮部31のデータ格納部34は、入力された履歴データをデータキャッシュ部33に一時的に保存する(ステップS101)。
【0044】
データキャッシュ部33に履歴データを保存すると、データ格納部34は、データキャッシュ部33に一時的に保存した履歴データの圧縮可否を判断して、履歴情報保存部60の履歴情報データベースに格納する動作を開始する。
【0045】
データ格納部34は、データキャッシュ部33に保存されている履歴データが2個以上であるかを確認する。データキャッシュ部33に保存されている格納対象の履歴データが1個のみのとき(ステップS102でNo)、データ格納部34は、履歴データの時刻データおよび統計データを圧縮しないで非圧縮のデータとして履歴情報保存部60の履歴情報データベースに格納する(ステップS111)。履歴データを履歴情報データベースに格納すると、データ格納部34は、履歴データを新たに受け取るまで待機する。
【0046】
データキャッシュ部33に保存されている履歴データが2個以上のとき(ステップS102でYes)、データ格納部34は、データキャッシュ部33から読み出した履歴データを時刻データ圧縮部35および統計データ圧縮部36に送る。
【0047】
時刻データを受け取ると、時刻データ圧縮部35は、時刻データの圧縮を開始する。時刻データ圧縮部35は、履歴データにおける時系列の時刻データが示す時刻がほぼ等間隔であることを利用してdouble-delta圧縮方式によって、時刻データを符号化する。
【0048】
時刻データを圧縮する際に、始めに時刻データ圧縮部35は、時刻の間隔Dを算出する(ステップS103)。時刻の間隔Dは、以下の式によって算出される。
D=(tn-tn-1)-(tn-1-tn-2)
上記の式のtnは、n番目の時刻データを示し、tn-1およびtn-2は、n-1番目およびn-2番目の時刻データをそれぞれ示している。圧縮可否および時刻データの格納方法は、間隔Dの値を基に決定される。間隔Dが所定の区間内のとき(ステップS104でYes)、時刻データ圧縮部35は、時刻データの圧縮を行う(ステップS105)。以下では、圧縮可能と判断する間隔Dの範囲を示す所定の間隔が-2047から2048として設定されている場合を例に説明する。
【0049】
Dの値が0のとき、1bit目に「0」が書き込まれる。この場合、単一ビットの容量のみとなる。Dの値が[-63,64]の区間内の場合、「10」の後にD(7bits)の値が格納される。Dの値が[-255,256]の区間内の場合、「110」の後にD(9bits)の値が格納される。また、Dの値が[-2047,2048]の区間内の場合、「1110」の後にD(12bits)の値が格納される。履歴データの時刻データが全く同じ間隔で推移した場合には、Dの値は0で続くため、1bitの容量での圧縮が可能となる。
【0050】
時刻データの圧縮を行うと、統計データ圧縮部36は、統計データの圧縮を行う(ステップS106)。統計データ圧縮部36は、履歴データの統計データを以下のようにXOR圧縮方式よって符号化する。以下では、下記の時刻1、時刻2および時刻3のようなfloat型のデータの場合を例に説明する。
【0051】
時刻1、時刻2および時刻3が、
時刻1 9.0(2進数表現は、01000001000100000000000000000000)、
時刻2 13.0(2進数表現は、01000001010100000000000000000000)、
時刻3 7.0(2進数表現は、01000000111000000000000000000000)
であったとする。
【0052】
このとき、9.0^13.0(9.0と13.0のXOR)は、「00000000010000000000000000000000」、13.0^7.0(13.0と17.0のXOR)は、「00000000101100000000000000000000」となる。
【0053】
例えば、9.0^13.0は、先頭の9個の0の並びや、1の後に続く全ての0が符号化可能であるため、9.0^13.0の有意なビットは1のみとなる。同様に、13.0^7.0の有意なビットは1011の部分のみとなる。統計データはサーバの種類に依存するため、似た値で推移することが多い。また、近い2個の浮動小数点数のXORは、多くのbitが0になりやすい。そのため、統計データをXOR圧縮方式で符号化することで圧縮効率が高くなる。
【0054】
上記の性質を利用し、格納する統計データは、次のように圧縮される。前の時刻の統計データの値とのXORが0、すなわち、前の値と同じであるとき、0が書き込まれる。前の時刻の統計データの値とのXORが0でないとき、1を書き込んだ後に、有意なビットについて次の3個の情報を書き込む。先頭の0の数を4bits表現で書き込こめる場合は、先頭の0の数を4bits表現で書き込む。次に有意なビットの長さを3bits表現で書き込める場合は意なビットの長さを3bits表現で書き込む。その次に、有意なビットの値を書き込む。有意なビットの値自体の書込みは、7bitsの長さまでで行われる。
【0055】
時刻データおよび統計データが圧縮可能であるとき(ステップS107でYes)、データ格納部34は、履歴情報データベースに書き込みを行うことで圧縮データを格納する(ステップS108)。
【0056】
統計データのカラムの1bit目は、圧縮データかどうかの区別に使用される。1bitの値は、「1」の場合は、圧縮ON、「0」の場合は、圧縮OFFを示す。1bitの値は、符号を示すため、圧縮を行った場合は、履歴データの統計データは浮動小数点数のマイナス値として保存される。圧縮を行わない場合は、統計データは通常の浮動小数点数のデータとして格納される。
【0057】
図8は、カラムに格納される統計データの例を示したものである。
図8の例において、先頭のビットが「0」のときは、非圧縮のデータであることを示し、先頭のビットが「1」のときは、圧縮データであることを示している。
【0058】
統計データのカラムの2bit目以降には、以下のように履歴データの時刻データと統計データが格納される。
【0059】
1個目の統計データの符号化データが、XOR圧縮で生成されて格納される。次に、2個目以降の格納データの数が格納される。2個目以降の格納データの数の格納には、4bit用いられる。その次に、2個目の時刻データの符号化データが、Double-delta圧縮で生成されて格納される。さらにその次には、2個目の統計データの符号化データが、XOR圧縮で生成されて格納される。3個目以降の履歴データも2個目と同様に格納される。2個目以降は、最小で2bitのため、最大13個の履歴データを格納することができる。
【0060】
履歴データを履歴情報データベースに格納すると、データ格納部34は、データキャッシュ部33に履歴データが保存されていないかを確認する。データキャッシュ部33に履歴データがないとき(ステップS109でNo)、データ格納部34は、履歴データを新たに受け取るまで待機する。データキャッシュ部33に履歴データが残っているとき(ステップS109でYes)、データ格納部34は、時刻データ圧縮部35および統計データ圧縮部36に履歴データを送る。時刻データ圧縮部35および統計データ圧縮部36に履歴データが送られると、ステップS103の時刻の間隔Dからの動作が繰り返される。
【0061】
間隔Dが所定の間隔外のとき(ステップS104でNo)、データ格納部34は、履歴データの時刻データおよび統計データを圧縮しないで非圧縮のデータとして履歴情報保存部60の履歴情報データベースに保存する(ステップS110)。履歴データを履歴情報データベースに格納すると、データ格納部34は、データキャッシュ部33に履歴データが保存されていないかを確認する。データキャッシュ部33に履歴データがないとき(ステップS109でNo)、データ格納部34は、履歴データを新たに受け取るまで待機する。データキャッシュ部33に履歴データが残っているとき(ステップS109でYes)、データ格納部34は、時刻データ圧縮部35および統計データ圧縮部36に履歴データを送る。時刻データ圧縮部35および統計データ圧縮部36に履歴データが送られると、ステップS103の時刻の間隔Dからの動作が繰り返される。
【0062】
次に履歴情報データベースからのデータを読み出す際の動作について説明する。レポート作成部40は、情報システムの管理システム等から履歴データの要求を受け取ると、データ圧縮解凍部30に履歴データを要求する。履歴データの要求を受け取ると、データ圧縮解凍部30のデータ解凍部32は、履歴情報データベースを検索し要求の対象となっている履歴データを読み出す。
【0063】
履歴データを読み出すと、履歴データを読み出すと、データ解凍部32は、統計データの先頭のbitを参照しデータの圧縮の有無を判断する。データが圧縮されているときデータ解凍部32は、圧縮されている時刻データおよび統計データを解凍する。データが圧縮されていないときデータ解凍部32は、時刻データおよび統計データをそのまま出力用のデータに加える。履歴データの読み出しが終わると、データ解凍部32は、履歴情報データベースから読み出して解凍した履歴データと非圧縮の履歴データをレポート作成部40に出力する。
【0064】
履歴データを受けとると、レポート作成部40は、あらかじめ設定された形式で、履歴データを情報システムの管理システム等に送る。レポート作成部40は、あらかじめ設定された時間ごとに、データ解凍部32を介して履歴情報データベースから履歴データ読み出して、情報システムの管理システム等に履歴データを出力してもよい。
【0065】
本実施形態の履歴情報管理システムは、履歴データのうち時刻データをDouble-delta圧縮方式、統計データをXOR圧縮方式で圧縮して、履歴情報データベースに保存している。時系列の履歴データにおいて時刻データでは、前後のデータの間隔がほぼ等間隔であるため、Double-delta圧縮方式を用いることで圧縮率が高くなる。また、統計データでは、2個のデータのXORで0のbitが多くなるため、XOR圧縮方式を用いることで圧縮率が高くなる。そのため、本実施形態の履歴情報管理システムは、時刻データと統計データの圧縮を行う際に、それぞれ適した圧縮方式を用いて圧縮を行うことで、データベースに保存される時系列のデータの圧縮率を向上することができる。
【0066】
第2の実施形態の履歴情報管理システムは、次のような構成とすることもできる。
図10は、履歴情報管理システムの他の構成の例を示した図である。
図10の履歴情報管理システムは、サーバ70と、データ取得部91と、データ圧縮装置92備えている。サーバ70は、複数台、備えられている。サーバ70は、1台であってもよい。
【0067】
図10の履歴情報管理システムは、
図2に示す履歴情報管理システムのうち、構成管理部10、レポート作成部40、構成情報保存部50および履歴情報保存部60をシステムの外部の装置として備えていてよい。これらの外部の装置とは、ネットワークを介して通信可能に接続されていてもよい。
【0068】
データ取得部91は、データ取得部20に相当する。データ取得部91は、サーバ70からサーバ70の状態を示す情報を統計データとして、統計データが取得された時刻に対応する時刻データと関連づけて取得する。
【0069】
データ圧縮装置92は、第1の実施形態のデータ圧縮装置および第2の実施形態のデータ圧縮解凍部30に相当する。
【0070】
図10の履歴情報管理システムにおいて、データ圧縮装置92は、データ取得部91がサーバ70から取得した時刻データおよび統計データを圧縮したデータをデータベースに出力する。このような構成とすることで、
図10のような履歴情報管理システムにおいても、データベースに履歴データとして保存される時系列のデータの圧縮率を向上することができる。
【0071】
第1の実施形態のデータ圧縮装置、第2の実施形態のデータ圧縮解凍部30および
図10のデータ圧縮装置92における各処理は、コンピュータプログラムをコンピュータで実行することによって行われてもよい。
図9は、データ圧縮解凍部30における各処理を行うコンピュータプログラムを実行するコンピュータ80の構成の例を示したものである。コンピュータ80は、CPU81と、メモリ82と、記憶装置83と、I/F(Interface)部84を備えている。また、第1の実施形態のデータ圧縮装置および
図10のデータ圧縮装置92も同様の構成を備えている。
【0072】
CPU81は、記憶装置83から各処理を行うコンピュータプログラムを読み出して実行する。メモリ82は、DRAM(Dynamic Random Access Memory)等によって構成され、CPU81が実行するコンピュータプログラムや処理中のデータが一時保存される。記憶装置83は、CPU81が実行するコンピュータプログラムを保存している。記憶装置83は、例えば、不揮発性の半導体記憶装置によって構成されている。記憶装置83には、ハードディスクドライブ等の他の記憶装置が用いられてもよい。I/F部84は、履歴情報管理システムの他のユニットや管理システム等との間でデータの入出力を行うインタフェースである。コンピュータ80は、通信ネットワークを介して他の情報処理装置と通信を行う通信モジュールをさらに備えていてもよい。
【0073】
また、各処理に行うコンピュータプログラムは、記録媒体に格納して頒布することもできる。記録媒体としては、例えば、データ記録用磁気テープや、ハードディスクなどの磁気ディスクを用いることができる。また、記録媒体としては、CD-ROM(Compact Disc Read Only Memory)等の光ディスクを用いることもできる。不揮発性の半導体記憶装置を記録媒体として用いてもよい。
【0074】
第1の実施形態および第2の実施形態に示したデータ圧縮技術は、工場等における各装置の稼動状態の履歴等の時系列データをIoT(Internet of Things)技術や専用の通信ネットワークを介し収集し、保存する際に用いることもできる。また、第1の実施形態および第2の実施形態に示したデータ圧縮技術は、装置やシステムの稼動状態だけでなく、時系列の観測データを収集して保存する際に用いることもできる。
【符号の説明】
【0075】
1 時刻データ圧縮部
2 統計データ圧縮部
3 データ格納部
10 構成管理部
11 構成情報管理部
12 データテーブル更新部
20 データ取得部
21 システム情報収集監視部
22 履歴データ更新部
30 データ圧縮解凍部
31 データ圧縮部
32 データ解凍部
33 データキャッシュ部
34 データ格納部
35 時刻データ圧縮部
36 統計データ圧縮部
40 レポート作成部
50 構成情報保存部
60 履歴情報保存部
70 サーバ
80 コンピュータ
81 CPU
82 メモリ
83 記憶装置
84 I/F部
91 データ取得部
92 データ圧縮装置