(57)【要約】      （修正有）【課題】記憶資源を浪費することなく、多種、大量のセンサデータを、的確に圧縮しながら、格納できるストレージシステムを提供する。【解決手段】複数のセンサから出力されたセンサデータを記録するストレージと、ストレージへのセンサデータの記録を制御するプロセッサと、を備えるストレージシステム１であって、複数のセンサ夫々のパラメータを記録するメモリを備える。プロセッサは、センサデータを出力するセンサに割り当てられたパラメータをメモリから読み出し、パラメータに基いて、センサデータを正規化させ、正規化されたセンサデータを圧縮させ、圧縮されたセンサデータをストレージに記録させる。【選択図】図１
2020166690.tif 000002
【特許請求の範囲】
【請求項１】
複数のセンサから出力されたセンサデータを記録するストレージと、
当該ストレージへのセンサデータの記録を制御するプロセッサと、
を備える、ストレージシステムであって、
前記複数のセンサのパラメータを記録するメモリを備え、
前記プロセッサは、
前記センサデータを出力するセンサに割り当てられたパラメータに基いて、複数の前記センサをグループ化して、前記グループごとに前記センサデータを正規化させ、
当該正規化されたセンサデータを前記グループで纏めて圧縮させ、
圧縮されたセンサデータを前記ストレージに記録させる、
ストレージシステム。
【請求項２】
前記プロセッサは、
前記センサデータを学習するニューラルネットワークに、前記正規化されたセンサデータを圧縮させる、
請求項１記載のストレージシステム。
【請求項３】
前記プロセッサは、
センサデータに含まれる異常値を用いずに正規化させる
請求項１記載のストレージシステム。
【請求項４】
前記プロセッサは、前記センサデータの値域及び前記センサの精度に基づいて、前記センサをグループに分類し、前記パラメータに登録する
請求項１記載のストレージシステム。
【請求項５】
前記プロセッサは、さらに、前記センサデータの相関性に基づいて、前記センサをグループに分類する、
請求項１記載のストレージシステム。
【請求項６】
前記プロセッサは、センサの精度あたりの値域が大きいグループに、圧縮率の低い圧縮方式を設定する、
請求項４記載のストレージシステム。
【請求項７】
前記プロセッサは、
前記センサデータを圧縮するためのエンコーダを、前記ニューラルネットワークから、構成させる、
請求項２記載のストレージシステム。
【請求項８】
前記プロセッサは、
前記メモリから読み出したパラメータに基づいて、前記複数のセンサのうち、互いに依存関係にあるセンサを決定し、
当該依存関係にある複数のセンサのうち、一つのセンサのセンサデータを正規化して圧縮した後、当該圧縮したデータを利用して、他のセンサのセンサデータを正規化及び圧縮し、
前記依存関係は、前記怨嗟データ同士の相関により決定されたものである
請求項１記載のストレージシステム。
【請求項９】
前記プロセッサは、
前記一つのセンサのセンサデータを正規化して非可逆圧縮し、
当該非可逆圧縮されたセンサデータを伸張し、
当該伸張されたセンサデータを利用して、前記他のセンサのセンサデータを正規化して圧縮する、
請求項８記載のストレージシステム。
【請求項１０】
複数のセンサから出力されたセンサデータをストレージに記録させるデータ記録方法であって、
当該ストレージへのセンサデータの記録を制御するプロセッサが、
前記センサデータを出力するセンサに割り当てられたパラメータに基いて、複数の前記センサをグループ化して、前記グループごとに前記センサデータを正規化させ、
当該正規化されたセンサデータを前記グループで纏めて圧縮させ、
圧縮されたセンサデータを前記ストレージに記録させる、
データ記録方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステムに関わり、詳しくは、多数のセンサから出力された、多種、かつ、大量のセンサデータを記録するのに適したストレージシステムに関する。
【背景技術】
【０００２】
近年、様々な分野、用途にＩｏＴが導入されている。ＩｏＴのためのシステムは、多種、多様なセンサであって、センサから出力される大量の時系列データを格納し、格納された大量のデータを分析するのに適したものでなければならない。そこで、ストレージシステムは、大量のセンサデータを圧縮して、データサイズを小さくしながら、限られたストレージ資源を有効利用している（例えば、下記の特許文献１）。データ圧縮方法の１つとして、ランレングス法のように、所定のブロック単位内で出現頻度の高い文字列を辞書化してより小さなサイズの符号に置換することが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１９９８９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
センサデータは、そもそも、画像データと異なり、センサの種類によって、センサデータの値域が大きく変動する。さらに、センサデータの値は外乱や異常値を多く含む等、既存の圧縮方法には本来不向きであった。その一方で、ＩｏＴの拡大に伴ってセンサの数が益々増え、これに伴いセンサデータ量が飛躍的に増大し、大量の記憶資源を割り当てなければならないという課題がある。
【０００５】
そこで、本発明は、記憶資源を浪費することなく、多種、大量のセンサデータを、的確に圧縮しながら、格納できるストレージシステムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
前記目的を達成するために、本発明は、複数のセンサから出力されたセンサデータを記録するストレージと、当該ストレージへのセンサデータの記録を制御するプロセッサと、を備える、ストレージシステムであって、前記複数のセンサのパラメータを記録するメモリを備え、前記プロセッサは、前記センサデータを出力するセンサに割り当てられたパラメータに基いて、複数の前記センサをグループ化して、前記グループごとに前記センサデータを正規化させ、当該正規化されたセンサデータを前記グループで纏めて圧縮させ、圧縮されたセンサデータを前記ストレージに記録させる、というものである。
【０００７】
さらに、本発明は、複数のセンサから出力されたセンサデータをストレージに記録させるデータ記録方法であって、当該ストレージへのセンサデータの記録を制御するプロセッサが、前記センサデータを出力するセンサに割り当てられたパラメータに基いて、複数の前記センサをグループ化して、前記グループごとに前記センサデータを正規化させ、当該正規化されたセンサデータを前記グループで纏めて圧縮させ、圧縮されたセンサデータを前記ストレージに記録させる、というものである。
【発明の効果】
【０００８】
本発明によれば、記憶資源を浪費することなく、多種、大量のセンサデータを、的確に圧縮しながら、格納できるストレージシステムを提供することができる。
【図面の簡単な説明】
【０００９】
【図１】ストレージシステムを含む計算機システムのハードウェアのブロック図である。
【図２】ストレージノードがセンサデータを圧縮するための機能ブロック図である。
【図３】データ圧縮器の詳細を説明するための機能ブロック図である。
【図４】ストレージシステムに於ける、圧縮データの伸張処理を説明するための機能ブロック図である。
【図５】データ伸張器の詳細を説明するための機能ブロック図である。
【図６】正規化パラメータテーブル、そして、圧縮グループ管理テーブルの一例である。
【図７】プロセッサが複数のセンサを圧縮グループに分類するための実施態様の一例を示すフローチャートである。
【図８】サイドシグナルを決定するための実施態様の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
次に、本発明の実施形態を図面に基づいて説明する。図１は、ストレージシステムを含む計算機システムのハードウェアのブロック図である。計算機システムは、ストレージシステム１と、複数のセンササーバ１０２Ａ〜１０２Ｂ、クライアントサーバ１０３と、を備えている。これらは、ネットワーク１０１によって、互いに、接続されている。ストレージシステム１は、複数のストレージノード１００Ａ〜１００Ｄから構成されている。センササーバ１０２ＡにはセンサＡ、センサＢが、センササーバ１０２Ｂには、センサＣ、センサＤ、センサＥが、それぞれ接続されている。センサ１２０Ａ〜１２０Ｅとしては、温度センサ、湿度センサ、加速度センサ、歪センサ、画像センサ等、いかなるタイプのものであってよい。
【００１１】
ストレージノード１００Ａは、ストレージコントローラ１０、そして、ストレージ（記憶資源）１２と、を備える。ストレージコントローラ１０は、一次記憶領域であるメインメモリ（ＤＲＡＭ）１１１、ソフトウェアを実行して、データ圧縮・データ伸張の処理を実行て、データをストレージ１２に格納するプロセッサ１１２、二次記憶領域となるストレージ１２に接続するバックエンドインターフェース（ＢＥ  ＩＦ）１１３、ネットワーク１０１に接続するフロントエンドインターフェース（ＦＥ  ＩＦ）１１６と、を備えて構成される。これは、ストレージノード１００Ｂ〜１００Ｄも同じである。ストレージ１２は、記憶媒体としてのＨＤＤ、ＳＤＤ１１４を備える。
【００１２】
ＤＲＡＭ１１１は、プロセッサ１１２が短時間でアクセスできる接続によって、プロセッサ１１２と接続されており、プロセッサ１１２が実行するプログラムや、データを格納する。プロセッサ１１２は、プログラムに従って動作し、データを処理する。プロセッサ１１２は複数のコアを持ち、夫々のコアは独立して、または、他のコアと協調してプログラムを処理するものでもよい。
【００１３】
プロセッサ１１２は、ＤＲＡＭコントローラを持ち、ＤＲＡＭコントローラは、ＤＲＡ１１１からデータを取得、または、これにデータを格納する。プロセッサ１１２は、外部ＩＯインターフェースを持ち、これを介して、ＢＥ  ＩＦ１１３に接続する。プロセッサ１１２は、ＢＥ  ＩＦ１１３を介して、圧縮データをストレージ１２にライトし、圧縮データをリードする。後述の各種処理を行う。
【００１４】
プロセッサ１１２は、ＳＤＳ（Software Defined Storage）、ＤＢ（DataBase）等のストレージ関連ソフトウェアを実行しながら、データの圧縮・圧縮データの伸張を行う。複数のストレージノード１００Ａ〜１００Ｄの夫々の物理ストレージ１２は統合されて仮想化され、仮想ボリューム１４０として構成されている。プロセッサ１２は圧縮されたデータを、仮想ボリューム１４０に書き込むと、圧縮データは、複数のストレージノード夫々のストレージ１２に分散して格納される。
【００１５】
ＢＥ  ＩＦ１１３は、ＳＡＴＡ（Serial ATA）やＳＡＳ（Serial Attached SCSI）といった記憶媒体と通信する為のインターフェースである。ＢＥ  ＩＦ１１３は、ライト時には、プロセッサ１１２からの指示に基づき、ライト対象データをＤＲＡＭ１１１より取得し、ストレージ１２に転送する。リード時には、リード対象データを、ストレージ１２からリードしてＤＲＡＭ１１１に転送する。なお、ＢＥ  ＩＦ１１３は、ストレージ１２に搭載されるインターフェース、例えば、ＮＶＭｅ（Non-Volatile Memory Host Controller Interface）でもよい。
【００１６】
ＦＥ  ＩＦ１１６は、ストレージノード１００をネットワーク１０１に接続させる。センササーバ１０２Ａ，１０２Ｂは、夫々に接続されたセンサを管理し、センサから出力されるセンサデータを、ネットワーク１０１を介して、既述の仮想ボリュームに転送する。
【００１７】
クライアントサーバ１０３は、ユーザに、ストレージノード１００Ａ〜１００Ｄに蓄えたセンサデータを参照させる。クライアントサーバ１０３から要求を受けたストレージノードは、プロセッサ１１２によって、圧縮されたセンサデータを伸張してクライアントサーバ１０３に転送する。
【００１８】
ＩｏＴの進展により、センサデータの飛躍的な増大が予測されている。こうした大量のセンサデータを低コストに格納するために、ニューラルネットワークにて構築したエンコーダを用いて、データを非可逆圧縮するストレージが検討されている。
【００１９】
既述のとおり、センサデータは、汎用の圧縮方法には適さないものであったが、人工知能はセンサデータ毎の特性、特徴、性質、属性、又は、性能等を学習することができるので、いかなる類のセンサデータであっても、データの特性に特化させて、センサデータの圧縮効率を高めることができる。
【００２０】
高い圧縮率のエンコーダを作成するには、ニューラルネットワークが複数のセンサのデータを纏めて学習する必要がある。しかしながら、センサデータの値域は、センサによって、大きく異なるために、ニューラルネットワークが複数のセンサのデータを纏めて学習しようとすると、センサデータの値域が大きなセンサほど、センサデータが優先的に保持され、センサデータの値域が小さなセンサは非可逆圧縮にて、情報を大きく失うことになる。センサデータの値域が違うという課題を解決する一般的な対策は、センサデータを正規化することである。即ち、センサデータの平均値、分散、最大値、最小等を算出し、その値を用いて、センサデータを正規化すればよい。
【００２１】
ところが、平均値や分散値等正規化のためのパラメータを得ようとすると、ストレージシステムは、センサデータを非圧縮状態で大量に保持するためのバッファを備えなければならず、ストレージシステムにおけるデータの圧縮率は大きく低下する。
【００２２】
そこで、ストレージシステムは、センサデータを正規化するパラメータを有する管理情報（データベース）を予め作成し、センサデータを圧縮する際に、データベースのパラメータを参照してセンサデータを正規化することによって、センサデータの圧縮前に大量のセンサデータを格納しなくてもよいようにした。
【００２３】
次に、ストレージノード１００Ａ〜１００Ｄのセンサデータの圧縮処理について説明する。図２はその機能ブロック図である。圧縮処理は、正規化器２０１、正規化パラメータＤＢ２０２、分配器２０３、データ圧縮器２０４Ａ〜２０４Ｃ、そして、データ記録レイヤ２０５Ａ〜２０５Ｃとから達成される。ストレージノードのプロセッサ１１２は、プログラムを実行することによって、正規化器２０１、分配器２０３、そして、データ圧縮器２０４Ａ〜２０４Ｃを実現する。これらを、「手段」、「機能」、「部」などと言い換えてもよい。さらに、これらをハードウェア、又は、ハードウェアとソフトウェアの協同によって実現させてもよい。プロセッサ１１２は、センササーバ１０２からセンサデータがネットワーク１０１を介して転送されると、センサデータを正規化した上で圧縮する。
【００２４】
正規化器２０１には、センササーバ１０２から、センサデータの時系列が継続的に入力される。正規化器２０１は、センサデータを受領したタイミングで、正規化パラメータＤＢ２０２に正規化のためのパラメータをリクエストし、正規化パラメータＤＢ２０２から、センサデータに対応するパラメータを取得する。正規化器２０１は、正規化パラメータに基づいてセンサデータを正規化する。正規化は、センサデータの値を一定の範囲、例えば、０〜１に収めるため、下記の演算を実行する。
正規化後の値＝（正規化前のセンサデータの値−正規化パラメータ（最小値））÷（正規化パラメータ（最大値）−正規化パラメータ（最小値））
【００２５】
これは一例であり、Ｍａｘ−Ｍｉｎ法と呼ばれるものである。正規化は、ｚ−ｓｃｏｒｅと呼ばれる方式でよい。これはは、センサ毎の値の平均値と分散値を算出し、正規化されたセンサデータを、「（センサデータ―平均値）÷分散値」によって定義するというものである。
【００２６】
センサデータには、センサの異常や通信経路の障害等により異常な値が含まれるおそれがある。異常値は、ニューラルネットワークの学習を失敗させる要因になる。そこで、正規化器２０１は、センサデータから異常値を排除する。正規化器２０１は、センサデータを前後のタイミングのセンサデータと比較して、極端に小さい、又は、大きな値のセンサデータを異常と判断する。
【００２７】
又は、正規化器２０１が、正規化パラメータＤＢ２０２から異常値の基準としての閾値を参照して、センサデータの異常な値を判断してもよい。正規化器２０１は、この異常値と判断されたセンサデータを、前後のタイミング（ポイント）でのセンサデータの値の平均値に置換してよい。
【００２８】
又は、異常な値のセンサデータを前のタイミングのデータの値にしてもよい。正規化パラメータＤＢ２０２の情報は、複数のストレージノード１００Ａ〜１００Ｄに分散して、夫々の記憶媒体１１４に格納されてよい。複数のストレージノード夫々プのロセッサ１１２は、分散を管理する情報に基づいて、センサに対応するパラメータをリードする。
【００２９】
正規化器２０１はセンサデータを正規化すると、正規化済みセンサデータとして、これを、分配器２０３に伝達する。分配器２０３は、正規化パラメータに含まれる情報に基づいて、正規化済みセンサデータを、複数あるデータ圧縮器２０４Ａ〜２０４Ｃのいずれかに分配する。図２は、正規化されたセンサデータＡ，Ｂがデータ圧縮器２０４Ａに伝達され、正規化されたセンサデータＣがデータ圧縮器２０４Ｂに伝達され、正規化されたセンサデータＤ，Ｅがデータ圧縮器２０４Ｃに伝達されることを示している。
【００３０】
データ圧縮器を複数存在させるのは次の理由からである。ニューラルネットワークが、センサデータを高い圧縮率で圧縮器するには、複数のセンサのセンサデータを纏めて学習しながら圧縮することが好ましい。すなわち、出力値の変化の傾向が類似した複数センサのデータを纏めて圧縮することによって、データ量がより削減される。
【００３１】
例えば、1,2,2,4のごとくセンサデータが変化するセンサＡと3,6,6,12のごとくセンサデータが変化するセンサＢとを想定して、２つのセンサデータを纏めると、圧縮器から2,4,4,8という圧縮データが出力される。そして、プロセッサ１１２が、センサＡのセンサデータを圧縮データの1/2、センサＢのセンサデータを圧縮データの3/2として再現する伸張器を構築すると、１系列の圧縮データと伸張器のパラメータをストレージに記録するだけで、２つのセンサデータを復元でき、データ量が削減できる。このように、圧縮効果を高めるためには、複数センサのデータ系列を同時に圧縮器に入力すればよい。
【００３２】
しかしながら、特性が異なる複数のセンサのセンサデータを纏めて圧縮すると、データの圧縮が正確に行われないおそれがある。例えば、精度が要求されるセンサとしての温度センサのセンサデータと、精度が要求されないセンサとしての湿度センサのセンサデータとを纏めて、ニューラルネットワークが非可逆圧縮すると、センサが高精度か否かに拘わらず、平均的に情報が失われてしまい、精度の高いセンサのセンサデータを精度が低いセンサのセンサデータに対して優先させて保管することができない。
【００３３】
そこで、ストレージシステムは、センサの特性、又は、センサデータの特性に基づいて、同じ、又は、類似の特性毎に、センサをグループ分けし、グループ毎にデータ圧縮をすることとした。センサＡ，Ｂは特性が似かよったセンサであり、センサＤ，Ｅも同様である。センサＣは他のセンサと特性が異なるセンサである。
【００３４】
データ圧縮器２０４Ａは、正規化されたセンサデータＡ，Ｂを圧縮して、圧縮済みセンサデータＡ，Ｂをデータ記録レイヤ２０５Ａに記録する。データ圧縮器２０４Ｂは、正規化されたセンサデータＣを圧縮して、圧縮済みセンサデータＣをデータ記録レイヤ２０５Ｂに記録する。データ圧縮器２０４Ｃは、正規化されたセンサデータＤ，Ｅを圧縮して、圧縮済みセンサデータＤ，Ｅをデータ記録レイヤ２０５Ｃに記録する。
【００３５】
複数のセンサ夫々のセンサデータ同士に依存関係、又は、相関関係が存在する場合、例えば、温度と湿度とのように、相互に依存関係があり、一つのセンサのセンサデータを圧縮するのに、他のセンサのセンサデータを利用することによって、当該一つのセンサのセンサデータの圧縮率を向上させることができる。圧縮器は、気温データと湿度データとを纏めて圧縮するのではなく、圧縮器が湿度データを非可逆圧縮する際、気温データを補足情報として用いることで、湿度データの圧縮率を向上できる。あるデータの圧縮に他のデータを利用することをサイドシグナルという。サイドシグナルは一つのセンサデータに限られず、複数でもよい。
【００３６】
データ圧縮器２０４Ｂが正規化されたセンサデータＣを圧縮し、次いで、これをデータ伸張器２０４Ｂ−１が伸張してデータ圧縮器２０４Ａに送る。データ圧縮器２０４Ａは、圧縮された後伸張された、正規化されたセンサデータＣ（サイドシグナル）を利用して、正規化されたセンサデータＡ，Ｂを圧縮する。このように、複数のデータ同士の間に依存関係があり、一方のデータを利用して他方のデータを圧縮する場合には、複数の圧縮器は、データを圧縮する順番を調整して、データ圧縮を実行する。
【００３７】
プロセッサ１１２は、あるデータを圧縮する場合、当該データにサイドシグナルがあると、サイドシグナルの圧縮を先に行う。圧縮されたセンサデータＣが伸張されてから、データ圧縮器２０４Ａがデータを圧縮する理由は、圧縮されたセンサデータＡ，Ｂを伸張する際、圧縮されたセンサデータＣの伸張後のデータが利用されるためである。プロセッサ１１２は、センサデータＡ，ＢとセンサデータＣとの圧縮の順番とは関係なく、センサデータＤ，Ｅを圧縮すればよい。
【００３８】
データ保持レイヤ２０５Ａ〜２０５Ｃは、圧縮データを複数のストレージノード１００Ａ〜１００Ｄに分散することで保持するものであり、分散ストレージソフトウェア（例えばCeph）により構成される。データ保持レイヤ２０５Ａ〜２０５Ｃは、データの保護のためにデータを冗長化して複数のストレージノードに分散配置する。
【００３９】
次に、データ圧縮器２０４Ａを例として、データ圧縮器の詳細な機能ブロックを図３に基づいて説明する。データ圧縮器２０４Ａは、エンコーダ３０１、量子化器３０２、コンテクスト適応型符号化器３０３を備える。エンコーダ３０１は、分配器２０３から、正規化済みのセンサデータＡ，Ｂを受領し、変換する。エンコーダ３０１は、複数のセンサデータ参照し、類似した冗長なデータを纏め、高周波のデータを除去するなどの変換処理を行い、よりデータ量の少ない形式に変換する。エンコーダ３０１はニューラルネットワークから構成される。
【００４０】
量子化器３０２は、エンコーダ３０１の出力であるエンコード済みデータを量子化する。この処理は、例えば、エンコーダ３０１の出力値がfloat32形式の実数値であったものをflot16形式の実数値シンボルや、int8形式の整数値シンボルに変換する。これ以外にも、シンボルに対して一意に実数値、例えば、SymbolA: 31.4,SymbolB:-4.5を決定しておき、エンコード済みの実数値が最も近い実数値のシンボルに置き換えられるという処理、35.1→SymbolA,2.0→SymbolB、でもよい。量子化器により値の情報は不正確となるが、データ量を大幅に削減することが可能になる。尚、量子化器３０２は、センサデータの圧縮のタイプが可逆圧縮（Lossless）である場合には無効にされる。
【００４１】
コンテクスト適応型符号化器３０３は、量子化器３０２の出力値である量子化済みセンサデータを解析し、センサデータがセンサから出力されるタイミング、ポイントと言い換えてもよいが、ポイント毎のシンボルの出現確率を予測する。正規化パラメータテーブル６１０（図６：正規化パラメータＤＢ）に、同じ圧縮器で圧縮される、複数のセンサデータのグループ（圧縮グループ）にサイドシグナルが設定されている場合、サイドシグナルを用いてさらに高精度にシンボルの出現確率を予測する。サイドシグナルに基づいて、シンボルの出現確率を予測することを、具体的に説明すると以下のとおりである。
【００４２】
「A,B,A,B,A,A,B」というシンボル列があるセンサデータが量子化器３０２から出力されたことを想定する。コンテクストを考慮した圧縮の方式（例えば、CABAC:Context-based Adaptive Binary Arithmetic Coding）によれば、ＢはＡの次に現れる確率が高く、Ａが現れると3/4の確率で次がＢになり、1/4の確率でＡになることが判定される。この方式では、１ポイント前のシンボル以外のポイントのシンボルも用いてシンボルの発生確率を取得して圧縮を行う。
【００４３】
コンテクスト適応型符号化器３０３は、さらにサイドシグナルを用いて、ポイント毎のシンボルの出現確率を予測する。例えば、「A,B,A,B,A,A,B」というシンボル列を圧縮するのに用いるサイドシグナルが「C,C,C,C,C,D,C」というシンボル列であった場合、一つ前のポイントがシンボルＡとであり、サイドシグナルの同じポイントのシンボルがＣのときはＢとなる確立が１００%である。
【００４４】
同様に一つ前のポイントがシンボルＡであり、サイドシグナルの同じポイントのシンボルがＤのときはＡとなる確率が１００%となる。このように適切なサイドシグナルを用いることで、ポイント毎のシンボルの出現確率がより高精度に予測可能である。コンテクスト適応型符号化器３０３は、シンボルの出現確率を予測した後、その出現確率を用いて量子化後のセンサデータを算術圧縮する。サイドシグナルが登録されていない圧縮グループに対して、コンテクスト適応型符号化器３０３は、量子化されたデータのみを用いてポイント毎のシンボルの出現確率を予測する。
【００４５】
次に、ストレージシステムに於ける、圧縮データの伸張処理について説明する。図４に、その機能ブロック図を示す。プロセッサ１１２によって実行される伸張処理は、逆正規化器４０１、正規化パラメータＤＢ２０２、収集器４０３、データ伸張器４０４Ａ〜４０４Ｃそして、データ記録レイヤ２０５Ａ〜２０５Ｃによって実現される。
【００４６】
プロセッサ１１２は、クライアントサーバ１０３からセンサデータを取得する要求を受信するとデータ伸張を開始する。逆正規化器４０１は、正規化パラメータデータベース２０２に、クライアントサーバ１０３から要求があったセンサの正規化パラメータをリクエストし、正規化パラメータを取得し、その情報を収集器４０３に通知する。
【００４７】
プロセッサ１１２は、データ記録レイヤ２０５Ａから圧縮されたセンサデータＡ，Ｂをリードして、データ伸張器４０４Ａに圧縮データを伸張させる。プロセッサ１１２は、データ記録レイヤ２０５Ｂから圧縮されたセンサデータＣをリードして、データ伸張器４０４Ｂに圧縮データを伸張させる。
【００４８】
そして、プロセッサ１１２は、データ記録レイヤ２０５Ｃから圧縮されたセンサデータＤ，Ｅをリードして、データ伸張器４０４Ｃに圧縮データを伸張させる。収集器４０３は、データ伸張器４０４Ａから、正規化されたセンサデータＡ，Ｂを収集し、データ伸張器４０４Ｂから、正規化されたセンサデータＣを収集し、データ伸張器４０４Ｃから、正規化されたセンサデータＤ，Ｅを収集し、これらを纏めて、逆正規化器４０１に出力する。
【００４９】
プロセッサ１１２は、正規化パラメータに基づいて、圧縮データの伸張処理の順序を決定する。すなわち、要求があったセンサにサイドシグナルが存在する場合には、サイドシグナルのセンサデータを先に伸張させる。プロセッサ１１２は、センサＡ，Ｂの圧縮データを伸張させる前にセンサＣの圧縮データを伸張させて、これを利用して、センサＡ，Ｂの圧縮データを伸張させる。
【００５０】
プロセッサ１１２は、センサデータＣの圧縮データを伸張することは、順番に関係なく、任意のタイミングでよい。複数のデータ記録レイヤ２０５Ａ〜２０５Ｃの夫々は、複数のストレージノードに分散して格納されている、特定のセンサ圧縮データを集めて結合して、これを自身に対応するデータ伸張器４０４Ａ〜４０４Ｃの何れかに渡す。
【００５１】
逆正規化器４０１は、収集器４０３から受領した、正規化されＴセンサデータを正規化パラメータを用いてもとの値域に戻す。これは、０〜１に正規化されたデータに、次の演算処理を適用することによって達成される。
【００５２】
逆正規化後のセンサデータの値＝正規化後のセンサデータの値×（正規化パラメータの最大値−正規化パラメータの最小値）＋正規化パラメータの最小値
逆正規化器４０１は、逆正規化処理によって、値域が正規化前に戻されたセンサデータをクライアントサーバ１０４に提供する。
【００５３】
次に、データ伸張器４０４Ａの詳細を、図５のブロック図に基づいて説明する。データ伸張器４０４Ａは、デコーダ５０１とコンテクスト適応型逆符号化器５０３とから構成されている。他のデータ伸張器も同じである。
【００５４】
データ伸張器４０４Ａは、非可逆圧縮された、センサＡ及びセンサＢのデータを伸張する際に、サイドシグナルである、センサＣのデータを必要とする。このセンサＣのデータは、非可逆圧縮された後伸張されたデータであり、非可逆圧縮によって一部のデータが失われているが、正規化されたデータと同じである。そこで、データ伸張器４０４Ｂは、データ伸張器４０４Ａが圧縮データを伸張するよりも先に、センサＣの圧縮データを先に伸張する。
【００５５】
コンテクスト適応型逆符号化器５０３は、センサＡ及びセンサＢの圧縮データとセンサＣの伸張データを用いて算術圧縮されたデータを伸張する。コンテクスト適応型逆符号化器５０３は、あるポイントより前に伸張された、センサＡ及びセンサＢの圧縮データと、センサＣのデータと、を用いてそのポイントでのシンボルの出現確率を算出し、その出現確率を用いてシンボル値を伸張する。コンテクスト適応型逆符号化器５０３は、この動作を繰り替えすことで、センサＡ及びセンサＢの圧縮データの全データを伸張する。コンテクスト適応型逆符号化器５０３は伸張データをデコーダ５０１に転送する。
【００５６】
デコーダ５０１は、伸張されたデータを、正規化されたセンサデータに近い形式に変換し、変換後のデータを収集器４０３に転送する。このデコーダ５０１はニューラルネットワークにて構成される。なお、データ伸張器４０４Ｂは、センサＣのセンサデータにはサイドシグナルが設定されていないので、センサＣの圧縮データのみを伸張し、データ伸張器４０４Ｃも、サイドシグナルを利用することなく、センサＤの圧縮データと、センサＥの圧縮データと、を伸張する。
【００５７】
次に、正規化パラメータデータベース２０２について説明する。正規化パラメータデータベース２０２は、正規化パラメータと圧縮グループとを管理する。既述のとおり、センサの特性に基づいて、特性が似かよったセンサをグループとしてまとめ、ストレージシステムは、グループ毎に圧縮を実行する。このグループを圧縮グループと称することとした。正規化パラメータデータベース２０２は、図６に示す様に、正規化パラメータテーブル６１０と、圧縮グループ管理テーブル６２０とを含む。正規化パラメータテーブル６１０は、センサ名６１１と、センサに対して設定された正規化パラメータ６１２〜６１５、センサに対する圧縮グループの対応情報６１６〜６１７を備える。ここでの正規化は、ＭＡＸ−ＭＩＮ法である。正規化パラメータテーブル６１０は、センサ名６１１、ＭＡＸ値６１２、ＭＩＮ値６１３、センサ精度６１４、異常値判定閾値６１５、圧縮グループ６１６、サイドシグナル６１７のフィールドを含む。
【００５８】
センサ名６１１は、センサの名称を文字列として格納するフィールドである。正規化器２０１は、クライアントサーバ１０３から送られたセンサ名に基いて、正規化パラメータを取得することができる。センサ名はユーザによって設定されてよい。
【００５９】
ＭＡＸ値６１２は、センサ名６１１に指定されたセンサの測定可能な最大値であり、ＭＩＮ値６１３は、その最小値である。これらは、センサの種類やスペックによって変化する。正規化器２０１がセンサデータの正規化のため、そして、逆正規化器４０１が伸張データを逆正規化するために、ＭＡＸ値、そして、ＭＩＮ値を利用する。逆正規化とは、正規化されたデータを正規化される以前の姿に戻すことをいう。これらの値はユーザによって設定されてよい。
【００６０】
センサ精度６１４は、センサ名６１１で特定されたセンサの測定精度である。ユーザによって設定されてよい。
【００６１】
異常値判定閾値６１５は、センサ名６１１によって特定されたセンサの測定データのうち、異常な値を識別するための閾値である。正規化器２０１は、閾値に基いて、閾値外のデータを削除するか、或いは閾値内のデータ置き換えてもよい。閾値は、ユーザによって入力されてよい。又は、センササーバ１０１Ａ〜１０１Ｃ、又は、ストレージノード１００Ａ〜１００Ｄが、センサデータに基いて、算出してもよい。例えば、センサデータの平均値と分散とを算出し、
平均値±（分散×３）
を閾値としてもよい。
【００６２】
圧縮グループ６１６は、センサ名６１１で特定されたンサが属する圧縮グループの識別情報である。ニューラルネットワークにて構成されたエンコーダ３０１が、特性が互いに複数する複数のセンサ夫々のセンサデータを纏めてエンコードして、データ量の少ない効率的な形式に変換して、圧縮を行う。センサ、或いは、センサデータの特性が類似するほど、エンコーダ３０１は効率的な形式へに変換できる。互いに、特性が類似しない複数のセンサの間では、このような変換はできないので、複数のセンサは別々に、複数の圧縮器で圧縮、そして、複数の伸張器で伸張されることがよい。
【００６３】
即ち、同一の圧縮グループに属するセンサのデータを非可逆圧縮することによる情報の損失は、その圧縮グループに属するセンサに同様に生じるため、例えば、センサの特性の一例としての精度について、精度が高いセンサと精度が低いセンサが同一グループに属すると、精度が高いセンサのデータの方が非可逆圧縮による情報損失の量が多くなるため、精度が高いセンサと精度が低いセンサとは別の圧縮グループに分類した方が好適である。プロセッサ１１２は、圧縮グループ６１６を利用してセンサデータの圧縮、伸張を管理する。圧縮グループ６１６はユーザによって設定されてもよいし、ストレージノードのプロセッサ１１２によって決定、判定、又は、設定されてもよい。
【００６４】
サイドシグナル６１７は、センサ名６１１で特定されたセンサがサイドシグナルとして適用される圧縮グループの番号である。サイドシグナルは、既述のとおり、圧縮グループに属するセンサデータの圧縮率を向上させるのに用いる、他のセンサデータのことである。サイドシグナル６１７の設定値はストレージノードにセンサデータを格納する前にユーザが入力するか、ストレージノードが処理する後述のサイドシグナルの自動決定により自動的に設定される。サイドシグナル６１７はユーザによって設定されてもよいし、ストレージノードのプロセッサ１１２によって設定されてもよい。
【００６５】
正規化パラメータデータベース２０２は、圧縮グループ管理テーブル６２０を備える。圧縮グループ管理テーブル６２０は、圧縮グループごとの圧縮方式を管理する。分配器２０３は、正規化器２０１を介して、圧縮グループごとの圧縮方式を参照し、これをデータ圧縮器２０４Ａ〜２０４Ｃに通知する。圧縮グループ管理テーブル６２０は、圧縮グループ６２１、圧縮種別６２２、圧縮オプション６２３を備える。圧縮グループ６２１は、正規化パラメータテーブル６１０の圧縮グループ６１６に対応している。
【００６６】
圧縮種別６２２は、圧縮グループ番号６２１に指定された圧縮グループに対する圧縮種別を格納するフィールドである。このフィールドは、可逆圧縮の複数のアルゴリズムと非可逆圧縮の複数のアルゴリズムの中から、好適な圧縮方式が設定されればよい。圧縮種別６２２はユーザによって設定されてよい。あるいは、ストレージノードが設定してもよい。ＬｏｓｓｙＡ，ＬｏｓｓｙＤは、非可逆圧縮の例である。ＬｏｓｓｌｅｓｓＤは、可逆圧縮の一例である。
【００６７】
圧縮オプション６２３は、圧縮グループ番号６２１に指定された圧縮グループに対する圧縮のためのオプションを指定するフィールドである。これには、例えば、量子化器３０２の量子化粒度がある。正規化パラメータテーブル６０１、圧縮グループ管理テーブル６２０には、データの圧縮前に、情報が登録される。
【００６８】
次に、ストレージシステムが圧縮グループを決定する一例を、図７に示すフローチャートに基いて説明する。なお、自動分類は、例えば、K-Meansクラスタリングに基いて達成されてもよい。ストレージシステムは、センササーバから、大量のセンサデータのうち一部のデータをテストデータとして受け入れ、テストデータに基いて、圧縮グループを決定してよい。ストレージシステムは、センサの精度を判定して、センサをグループ分けする。ストレージシステムは、複数のセンサ夫々について、図７のフローチャートを実施する。
【００６９】
プロセッサ１１２は、正規化パラメータテーブル６０１から、複数のセンサ夫々の正規化パラメータを取得して、測定段階数を求める（Ｓ７０１）。測定段階数は、センサの測定範囲（Ｍａｘ〜Ｍｉｎ：６１２,６１３）を測度精度６１４で割った値である。例えば、−１から＋１の値域の±０．００１の精度のセンサは、測定段階数が２０００であり、−１０から＋１０の値域の±０．００１の精度をセンナは、測定段階数が２００００である。この値が大きいセンサほど、センサデータの段階が多く、センサデータを高い精度で保存する理由がある。
【００７０】
測定段階数が大きいセンサが属するグループは、量子化器３０２における量子化精度が細かくされることにより、センサデータは低い圧縮率で非可逆圧縮され、情報の損失が少ないものの圧縮によるデータ削減率は低下する。一方、この測定段階数が低いセンサが属するグループは、量子化精度が粗くされることにより、センサデータは高い圧縮率で非可逆圧縮され、情報の損失が多いものの圧縮によるデータ削減率は上昇する。
【００７１】
続いて、プロセッサ１１２は、測定段階数を基準値で分割して、測定段階グループを作成する（Ｓ７０２）。例えば、基準値が１００、１０００であるとしたとき、測定段階数が５０で基準値１００までのセンサは測定段階数グループ１に、測定段階数が３４０で基準値１０００までのセンサは測定段階数グループ２に、測定段階数が２０００で基準値１０００を越えるセンサは、測定段階数グループ３に分類される。
【００７２】
続いて、プロセッサ１１２は、測定段階グループ毎に、同一の測定段階グループに属する複数のセンサのセンサデータに基いて、互いの相関係数を算出する（Ｓ７０３）。２つのセンサのセンサデータについて、相関係数の絶対値が大きいほど、その２つのセンサは特性が類似した傾向があるといえる。
【００７３】
次いで、プロセッサ１１２は、相関係数に基いて、複数のセンサを圧縮グループに分類する（Ｓ７０４）。プロセッサ１１２は、相関係数の絶対値が、例えば、０．４より大きい、一つ又は複数のセンサを同一の圧縮グループに分類する。これにより、同一圧縮グループには測定段階数が近く、類似した傾向を持つセンサが集められる。尚、相関係数が閾値以上となるセンサが複数の圧縮グループに存在する場合、最も相関係数が大きなセンサが所属する圧縮グループに属することにすればよい。一つの圧縮グループには、少なくとも一つのセンサが含まれる。
【００７４】
次いで、プロセッサ１１２は、圧縮グループを正規化パラメータテーブル６１０に登録する（Ｓ７０５）。
【００７５】
次に、ストレージシステムがサイドシグナル決定する一例を、図８に示すフローチャートに基いて説明する。このフローチャートは、測定段階数が異なり、同一の圧縮グループに分類できないが、ストレージシステムは、互いに、依存関係にあるセンサについて、一方のセンサを他方のセンサのサイドシグナルとし、他方のセンサのセンサデータを、一方のセンサのセンサデータを利用して圧縮する。例えば、気温センサと湿度センサは精度が相違するため、同一のグループに分類できないが、気温と湿度とは依存関係があって、相関しているため、一方が他方のサイドシグナルとして、設定されてよい。
【００７６】
図８のフローチャートは、図７のフローチャートが完了したのち、または、ユーザが圧縮グループを手動で設定した後、スタートする。Ｓ７０１、Ｓ７０２は、図７の同番号のものと同じである。
【００７７】
プロセッサ１１２は、異なる測定段階グループのセンサ同士で相関係数を算出する（Ｓ８０３）。次いで、プロセッサ１１２は、Ｓ８０３で算出した相関係数に基いて、圧縮グループのセンサと、この圧縮グループ外のセンサとの間の相関係数の絶対値の平均値を算出する（Ｓ８０４）。
【００７８】
例えば、圧縮グループ１が属する測定段階グループと異なる測定段階グループに属するセンサＣと、圧縮グループ１に属するセンサＡ及びセンサＢとの相関係数について、プロセッサ１１２は、センサＣとセンサＡの相関係数の絶対値とセンサＣとセンサＢの相関係数の絶対値との平均値を算出する。圧縮グループ１の属する測定段階グループと異なる測定段階グループに属するセンサＤやセンサＥについても、同様にセンサＡとセンサＢとの相関係数の絶対値を算出し、その平均値を算出する。
【００７９】
次いで、プロセッサ１１２は、平均値が閾値、例えば、０．６以上か否かを判断し、これが肯定されるセンサを、圧縮グループに対するサイドシグナルに決定する（Ｓ８０５）。次いで、プロセッサ１１２は、正規化パラメータテーブル６１０において、サイドシグナルに決定されたセンサ名に、圧縮グループ名（グループ１）を登録する（Ｓ８０６）。
【００８０】
本発明によれば、複数のセンサ夫々のパラメータを予め記録し、プロセッサは、センサデータを受信すると、センサデータを出力するセンサに割り当てられたパラメータを読み出し、当該パラメータに基いて、センサデータを正規化できるために、圧縮前の大量のセンサデータを記録するバッファをストレージシステムの記憶資源から割り当てなくてもよいため、記憶資源を浪費することなく、多種、大量のセンサデータを、的確に圧縮しながら、格納できるストレージシステムを提供することができる。
【００８１】
既述の実施形態は、本発明の例であって、適宜変更されてよい。例えば、センサデータの正規化、圧縮、そして、伸張の一部、又は、全部をサーバが実施してもよい。また、センサのグループ化のためのフローチャート（図７）、そして、サイドシグナルを決定するためのフローチャート（図８）は、いずれも一例であって、適宜変更可能である。さらに、センサデータの圧縮のためのサイドシグナルは、一つに限らず複数でもよい。さらにまた、サイドシグナルを、複数のセンサに対して、多層的に設定するようにしてよい。
【図１】
2020166690.tif 000003
【図２】
2020166690.tif 000004
【図３】
2020166690.tif 000005
【図４】
2020166690.tif 000006
【図５】
2020166690.tif 000007
【図６】
2020166690.tif 000008
【図７】
2020166690.tif 000009
【図８】
2020166690.tif 000010