(57)【要約】【課題】センサによって検出された計測データの冗長性を排除することにより、ディスク容量の削減を実現する【解決手段】複数のセンサが接続されたAPノードと、このAPノードと接続されたDBノードを備えており、APノードは、各センサから出力される複数の計測項目に係る値を含む計測データを受け付ける手段と、各センサの計測項目単位で直近の値を格納しておくキュー30と、各センサから計測データが出力される都度、キュー30を参照し、各計測項目の値に変化が生じているか否かを判定する手段と、値に変化が生じている計測項目が存在する場合、当該計測項目の値を含む保存用データを計測項目毎に生成し、DBノードに送信する手段と、当該計測項目の最新の値によって、キュー30における直近の値を上書きする手段を備え、DBノードは、計測データに含まれる値を各センサの計測項目毎に格納する複数のテーブルと、APノードから送信された保存用データを対応のテーブルに格納する手段を備える。【選択図】図２
2018207352.tif 000002
【特許請求の範囲】
【請求項１】
１または複数のセンサから所定のタイミングで出力される、複数の計測項目の値を含む計測データを受け付ける手段と、
この計測データに含まれる値を、各センサの計測項目毎に格納する複数のテーブルと、
各センサの計測項目単位で直近の値を格納する記憶手段と、
上記センサから計測データが出力される都度、当該計測データに含まれる値と上記記憶手段に格納された直近の値を比較し、各計測項目の値に変化が生じているか否かを判定する手段と、
値に変化が生じている計測項目が存在する場合、当該計測項目の値を含む保存用データを計測項目毎に生成し、対応のテーブルに格納する手段と、
当該計測項目の最新の値によって、上記記憶手段における直近の値を上書きする手段と、
を備えたことを特徴とするデータ管理システム。
【請求項２】
複数の計測項目に係る値を所定のタイミングで出力する１または複数のセンサと、各センサと接続されるデータ管理装置とを備え、
各センサは、計測項目単位で直近の値を格納する記憶手段と、
所定のタイミングで各計測項目に係る現在の値と上記記憶手段に格納された直近の値を比較し、各計測項目の値に変化が生じているか否かを判定する手段と、
値に変化が生じている計測項目が存在する場合、当該計測項目の値を含む計測データを上記データ管理装置に出力する手段と、
当該計測項目の最新の値によって、上記記憶手段における直近の値を上書きする手段を備え、
上記データ管理装置は、上記計測データに含まれる値を、各センサの計測項目毎に格納する複数のテーブルと、
上記センサから計測データが出力された際に、当該計測データに含まれる計測項目の値を含む保存用データを計測項目毎に生成し、対応のテーブルに格納する手段を備えたことを特徴とするデータ管理システム。
【請求項３】
１または複数のセンサが接続されたAPノードと、このAPノードと接続されたDBノードを備えており、
上記APノードは、所定のタイミングで上記センサから出力される、複数の計測項目の値を含む計測データを受け付ける手段と、
各センサの計測項目単位で直近の値を格納する記憶手段と、
上記センサから計測データが出力される都度、当該計測データに含まれる値と上記記憶手段に格納された直近の値を比較し、各計測項目の値に変化が生じているか否かを判定する手段と、
値に変化が生じている計測項目が存在する場合、当該計測項目の値を含む保存用データを計測項目毎に生成し、上記DBノードに送信する手段と、
当該計測項目の最新の値によって、上記記憶手段における直近の値を上書きする手段を備え、
上記DBノードは、上記計測データに含まれる値を、各センサの計測項目毎に格納する複数のテーブルと、
上記APノードから送信された保存用データを、対応のテーブルに格納する手段を備えたことを特徴とするデータ管理システム。
【請求項４】
複数の計測項目に係る値を所定のタイミングで出力する１または複数のセンサと、各センサと接続されたAPノードと、このAPノードと接続されたDBノードを備えており、
各センサは、計測項目単位で直近の値を格納する記憶手段と、
所定のタイミングで各計測項目に係る現在の値と上記記憶手段に格納された直近の値を比較し、各計測項目の値に変化が生じているか否かを判定する手段と、
値に変化が生じている計測項目が存在する場合、当該計測項目の値を含む計測データを上記APノードに出力する手段と、
当該計測項目の最新の値によって、上記記憶手段における直近の値を上書きする手段を備え、
上記APノードは、各センサから出力される計測データを受け付ける手段と、
当該計測データに含まれる各計測項目の値を含む保存用データを、計測項目毎に生成し、上記DBノードに送信する手段を備え、
上記DBノードは、上記計測データに含まれる値を、各センサの計測項目毎に格納する複数のテーブルと、
上記APノードから送信された保存用データを、対応のテーブルに格納する手段を備えたことを特徴とするデータ管理システム。
【請求項５】
上記DBノードが、親データ登録用のテーブルを備えており、
上記APノードが、少なくとも１つの計測データに係る１または複数の保存用データを生成する際に、当該計測データに関連付けられた親データを生成すると共に、当該親データのIDを上記保存用データに付与する処理を実行し、
さらに上記APノードは、上記DBノードに対して各保存用データの登録を依頼した後、上記DBノードから全ての保存用データに係る登録完了通知が届いた場合に親データの登録を上記DBノードに依頼し、一定の時間内に何れかの保存用データの登録完了通知が届かないの場合には、親データの登録を中止し、
また登録済みの保存用データの参照に際し、関連する親データの登録のある保存用データのみを参照の対象とし、関連する親データの登録のない保存用データについては参照の対象外とすることを特徴とする請求項３または４に記載のデータ管理システム。
【請求項６】
同一のデータを格納する共通のテーブルをそれぞれ備えた複数のDBノードを備えており、
上記APノードは、まず上記の各DBノードに保存用データの登録を依頼し、
全ての保存用データについて、何れかのDBノードから登録完了通知が届いた時点で親データの登録を上記の各DBノードに依頼し、
一定の時間内に何れかの保存用データの登録完了通知が何れのDBノードからも届かない場合には、親データの登録を中止することを特徴とする請求項５に記載のデータ管理システム。
【請求項７】
上記の各テーブルには、レコードの参照及び追加のみが許容され、削除及び更新を禁止する制約が課せられていることを特徴とする請求項１〜６の何れかに記載のデータ管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はデータ管理システムに係り、特に、複数のセンサから送信された計測データを効率的に保存する技術に関する。
【背景技術】
【０００２】
あらゆるモノがインターネットを介して繋がり、新たな価値を創造するという所謂IOT（Internet of Things）時代の到来により、各種センサから出力された膨大な量の計測データが、ネットワーク上のサーバに刻々と押し寄せるようになって来ている。
【非特許文献１】IoT：Internet of Things（モノのインターネット）の意味  インターネットURL：https://mono-wireless.com/jp/tech/Internet_of_Things.html  検索日：２０１７年４月２４日
【０００３】
図１２は、各地に設置された複数のセンサ（センサＡ20、センサＢ21、センサＣ22）から、インターネット上に設置されたAPサーバ80に対して定期的に計測データがアップロードされ、DBサーバ82内のDB管理部84を介して各センサ専用テーブル（センサＡ用テーブル86、センサＢ用テーブル88、センサＣ用テーブル90）に格納される様子を描いたものである。【０００４】
図１３は、センサＡ20から送信された複数の計測データ50〜54を例示するものであり、１秒間隔で３つの計測項目（α〜γ）に関する値が送信されていることがわかる。
この計測データを受信したAPサーバ80は、DB管理部84を介してセンサＡ用テーブル86に順次格納させる。【０００５】
しかしながら、各計測データにおける個々の計測項目に注目すると、必ずしも前回の計測時から値が変化しているわけではなく、同じ値が連続するパターンが少なくないことに気付く。
例えば、計測データ50〜52については、計測項目α〜γの何れに関しても同じ値が充填されている。
また、計測データ52と次の計測データ53を比較すると、計測項目α及びβについては値に変化が生じているが、計測項目γについては値に変化がない。【０００６】
図示の便宜上、図１３では計測項目数の比較的少ない計測データが例示されているが、実際には各センサのメーカが予め設定した膨大な数の計測項目を含む計測データが、値の更新頻度が最も高い計測項目に合わせたタイミングでサーバ側に一律に送信されている。【０００７】
このように、センサから順次送信される計測データには、計測項目単位で値に変化が生じていないものが多く含まれているにもかかわらず、現状ではそのままネットワーク上に送出され、DBサーバのテーブルに格納されるため、これがディスク容量や通信トラフィックを徒に増大させる要因となっていた。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
この発明は、このような現状に鑑みて案出されたものであり、センサによって検出された計測データの冗長性を排除することにより、ディスク容量や通信トラフィックを削減することを目的としている。
【課題を解決するための手段】
【０００９】
上記の目的を達成するため、請求項１に記載したデータ管理システムは、１または複数のセンサから所定のタイミングで出力される、複数の計測項目の値を含む計測データを受け付ける手段と、この計測データに含まれる値を、各センサの計測項目毎に格納する複数のテーブルと、各センサの計測項目単位で直近の値を格納する記憶手段と、上記センサから計測データが出力される都度、当該計測データに含まれる値と上記記憶手段に格納された直近の値を比較し、各計測項目の値に変化が生じているか否かを判定する手段と、値に変化が生じている計測項目が存在する場合、当該計測項目の値を含む保存用データを計測項目毎に生成し、対応のテーブルに格納する手段と、当該計測項目の最新の値によって、上記記憶手段における直近の値を上書きする手段を備えたことを特徴としている。【００１０】
請求項２に記載したデータ管理システムは、複数の計測項目に係る値を所定のタイミングで出力する１または複数のセンサと、各センサと接続されるデータ管理装置とを備え、各センサは、計測項目単位で直近の値を格納する記憶手段と、所定のタイミングで各計測項目に係る現在の値と上記記憶手段に格納された直近の値を比較し、各計測項目の値に変化が生じているか否かを判定する手段と、値に変化が生じている計測項目が存在する場合、当該計測項目の値を含む計測データを上記データ管理装置に出力する手段と、当該計測項目の最新の値によって、上記記憶手段における直近の値を上書きする手段を備え、上記データ管理装置は、上記計測データに含まれる値を、各センサの計測項目毎に格納する複数のテーブルと、上記センサから計測データが出力された際に、当該計測データに含まれる計測項目の値を含む保存用データを計測項目毎に生成し、対応のテーブルに格納する手段を備えたことを特徴としている。【００１１】
請求項３に記載したデータ管理システムは、１または複数のセンサが接続されたAPノードと、このAPノードと接続されたDBノードを備えており、上記APノードは、所定のタイミングで上記センサから出力される、複数の計測項目の値を含む計測データを受け付ける手段と、各センサの計測項目単位で直近の値を格納する記憶手段と、上記センサから計測データが出力される都度、当該計測データに含まれる値と上記記憶手段に格納された直近の値を比較し、各計測項目の値に変化が生じているか否かを判定する手段と、値に変化が生じている計測項目が存在する場合、当該計測項目の値を含む保存用データを計測項目毎に生成し、上記DBノードに送信する手段と、当該計測項目の最新の値によって、上記記憶手段における直近の値を上書きする手段を備え、上記DBノードは、上記計測データに含まれる値を、各センサの計測項目毎に格納する複数のテーブルと、上記APノードから送信された保存用データを、対応のテーブルに格納する手段を備えたことを特徴としている。【００１２】
請求項４に記載したデータ管理システムは、複数の計測項目に係る値を所定のタイミングで出力する１または複数のセンサと、各センサと接続されたAPノードと、このAPノードと接続されたDBノードを備えており、各センサは、計測項目単位で直近の値を格納する記憶手段と、所定のタイミングで各計測項目に係る現在の値と上記記憶手段に格納された直近の値を比較し、各計測項目の値に変化が生じているか否かを判定する手段と、値に変化が生じている計測項目が存在する場合、当該計測項目の値を含む計測データを上記APノードに出力する手段と、当該計測項目の最新の値によって、上記記憶手段における直近の値を上書きする手段を備え、上記APノードは、各センサから出力される計測データを受け付ける手段と、当該計測データに含まれる各計測項目の値を含む保存用データを、計測項目毎に生成し、上記DBノードに送信する手段を備え、上記DBノードは、上記計測データに含まれる値を、各センサの計測項目毎に格納する複数のテーブルと、上記APノードから送信された保存用データを、対応のテーブルに格納する手段を備えたことを特徴としている。【００１３】
請求項５に記載したデータ管理システムは、請求項３または４に記載のシステムであって、上記DBノードが、親データ登録用のテーブルを備えており、上記APノードが、少なくとも１つの計測データに係る１または複数の保存用データを生成する際に、当該計測データに関連付けられた親データを生成すると共に、当該親データのIDを上記保存用データに付与する処理を実行し、さらに上記APノードは、上記DBノードに対して各保存用データの登録を依頼した後、上記DBノードから全ての保存用データに係る登録完了通知が届いた場合に親データの登録を上記DBノードに依頼し、一定の時間内に何れかの保存用データの登録完了通知が届かないの場合には、親データの登録を中止し、また登録済みの保存用データの参照に際し、関連する親データの登録のある保存用データのみを参照の対象とし、関連する親データの登録のない保存用データについては参照の対象外とすることを特徴としている。【００１４】
請求項６に記載したデータ管理システムは、請求項５に記載のシステムであって、同一のデータを格納する共通のテーブルをそれぞれ備えた複数のDBノードを備えており、上記APノードは、まず上記の各DBノードに保存用データの登録を依頼し、全ての保存用データについて、何れかのDBノードから登録完了通知が届いた時点で親データの登録を上記の各DBノードに依頼し、一定の時間内に何れかの保存用データの登録完了通知が何れのDBノードからも届かない場合には、親データの登録を中止することを特徴としている。【００１５】
請求項７に記載したデータ管理システムは、請求項１〜６に記載のシステムであって、上記の各テーブルに、レコードの参照及び追加のみが許容され、削除及び更新を禁止する制約が課せられていることを特徴としている。
【発明の効果】
【００１６】
この発明に係るデータ管理システムの場合、センサから出力される計測データが複数の計測項目を備えていても、直近の値と比較して変化の生じていない値については保存用データが生成されず、値に変化の生じている計測項目の保存用データのみがテーブルに追加登録される仕組みを備えているため、ディスク容量を大幅に節約することができる。
このため、データの登録に際して冗長なデータを圧縮する必要がなくなり、結果としてデータ参照時の解凍処理も不要となる。【００１７】
また、各センサの計測項目単位にテーブルが細分化されているため、将来的に計測項目を増やす必要性が生じた場合、単純に対応のテーブルを追加することで対応でき、既存のデータに項目追加等の修正を加える必要がないため、システムの構成を柔軟に拡張可能となる。【００１８】
請求項２及び４に記載のデータ管理システムの場合、各計測項目の値に変化が生じたか否かを判定する機能をセンサ側が備えており、変化の生じていない計測項目に係る値は外部に出力されない仕組みを備えているため、ネットワークのトラフィックを抑制することが可能となる。【００１９】
さらに、請求項５に記載のデータ管理システムの場合、すべての保存用データについて、何れかのDBノードにおける登録が完了しない限り、親データの登録がなされない仕組みを備えている。
このため、「データの参照時に、対応する親データの登録がない保存用データは対象外とする」というルールを採用することにより、仮に一部の保存用データについての登録が失敗した場合であっても、登録に成功した残りの保存用データをロールバック処理によって削除する必要がなくなる。
【発明を実施するための最良の形態】
【００２０】
図１に示すように、この発明に係る第１のデータ管理システム10は、第１のAPノード12と、第２のAPノード14と、第１のDBノード16と、第２のDBノード18を備えている。
ただし、APノード及びDBノードの数について、特に限定はない。【００２１】
第１のAPノード12は、ネットワークを介して第１のDBノード16及び第２のDBノード18と接続されている。
また、第２のAPノード14も、ネットワークを介して第１のDBノード16及び第２のDBノード18と接続されている。【００２２】
ここで「APノード」とは、AP（Application）サーバ用のプログラムを搭載したコンピュータを意味する。
また、「DBノード」とは、DB（Database）サーバ用のプログラムを搭載したサーバコンピュータを意味する。【００２３】
ただし、各APノード及び各DBノードは必ずしも物理的に独立したコンピュータ（独立したAPアドレスを有する）によって構築される必要はない。
例えば、同一のコンピュータ（同一のIPアドレス）上に複数のNUMAノード（別Port番号）を指定するDeployment（配置）を行うことにより、複数のAPノードやDBノードとして構成してもよい。【００２４】
第１のAPノード12には、無線または有線のネットワークを介してセンサＡ20、センサＢ21、センサＣ22が接続されている。
また、第２のAPノード14にも、無線または有線のネットワークを介してセンサＤ23、センサＥ24、センサＦ25が接続されている。【００２５】
ここでは、センサＡ20〜センサＦ25として、それぞれ同一の計測項目α〜γを備えた同種のセンサを用いることを前提としているが（詳細は後述）、相互に異なる計測項目を備えた異種のセンサを用いることもできる。
各APノードに接続されるセンサの数についても、特に限定はない。【００２６】
第１のAPノード12は、記憶手段としてのキュー30を備えている。このキュー30には、センサＡ20〜センサＣ22の各計測項目α〜γ毎に直近の計測値を格納しておく記憶領域30a〜30iが設定されている。
また、第２のAPノード14も、記憶手段としてのキュー32を備えており、このキュー32には、センサＤ23〜センサＦ25の各計測項目α〜γ毎に直近の計測値を格納しておく記憶領域32a〜32iが設定されている。【００２７】
さらに、第１のAPノード12及び第２のAPノード14は、第１のDBノード16及び第２のDBノード18に対してデータの登録等の操作を依頼する登録処理部33を備えている。
この登録処理部33は、サーバコンピュータのCPUが、OS及び専用のミドルウェアに従って動作することにより、実現される。【００２８】
第１のDBノード16は、図２に示すように、DB管理部34と、親データ用テーブル（TBL）40と、計測項目α用テーブル42a〜42f、計測項目β用テーブル43a〜43f、計測項目γ用テーブル44a〜44fを保持している。図示の通り、計測項目用テーブルは各センサ単位で用意されている。【００２９】
同様に第２のDBノード18も、DB管理部34と、親データ用テーブル40と、センサＡ20〜センサＦ25に係る計測項目α用テーブル42a〜42f、計測項目β用テーブル43a〜43f、計測項目γ用テーブル44a〜44fを保持している。【００３０】
第１のDBノード16内に設けられたテーブルと、第２のDBノード18内に設けられた同名のテーブルは、実質的に同一の構成を備えている。【００３１】
ここで、センサＡ20、センサＢ21、センサＣ22から送信された計測データを登録する場合、第１のAPノード12の登録処理部33が第１のDBノード16及び第２のDBノード18に対して同時に各種データの追加を依頼し、これを受けた第１のDBノード16及び第２のDBノード18では、DB管理部34によって必要なテーブルに対するレコードの追加がそれぞれ実行される。【００３２】
また、センサＤ23、センサＥ24、センサＦ25から送信された計測データを登録する場合、第２のAPノード14の登録処理部33が第１のDBノード16及び第２のDBノード18に対して同時に各種データの追加を依頼し、これを受けた第１のDBノード16及び第２のDBノード18では、DB管理部34によって必要なテーブルに対するレコードの追加がそれぞれ実行される。【００３３】
ただし、この第１のデータ管理システム10においては、各センサからAPノードに対して送信された計測データの値が、そのままDBノードの対応テーブルに格納されるのではなく、直近に登録された値との間で変化が生じている計測項目の値のみが抽出され、計測項目単位で専用のテーブルに格納される（詳細は後述）。【００３４】
また、この第１のデータ管理システム10においては、各テーブルに対しデータの追加（INSERT）と参照（SELECT）のみが許容され、データの削除（DELETE）及び更新（UPDATE）は禁止される制約が予め課せられている。【００３５】
以下、図３のフローチャートに従い、第１のデータ管理システム10の処理手順について説明する。
まず、第１のAPノード12が、センサＡ20から図４(a)に示す計測データ50を受信すると（Ｓ10）、図４(b)に示すように、「親ID」、「センサID」、「タイムスタンプ」のデータ項目を備えた親データ（統合データ）50pが、登録処理部33によって生成される（Ｓ12）。
この親データ50pの「親ID」のデータ項目には、登録処理部33によって生成されたユニークな識別符号である「PA12345」が充填されている。【００３６】
つぎに登録処理部33は、キュー30の中のセンサＡ20に係る記憶領域30a〜30cを参照し、計測データ50に含まれる計測項目α〜γの値と、キュー30に格納された各計測項目の直近の値を比較する（Ｓ14）。【００３７】
ここでは、計測データ50が最初の計測データとなるため、図５(a)に示すように、キュー30の記憶領域30a〜30cには値が入っていない。
このため、第１のAPノード12の登録処理部33は、各計測項目の値に変化ありと認定し（Ｓ16／Ｙ）、図４(b)に示すように、保存用データとしての計測項目α用データ50a、計測項目β用データ50b、計測項目γ用データ50cを生成する（Ｓ18）。
各計測項目用データ50a、50b、50cは、それぞれの計測項目の値を格納するデータ項目の他に、「親ID」のデータ項目を備えており、ここには上記親データ50pの親ID（PA12345）が主キーとして格納されている。このため、各計測項目用データ50a、50b、50cは、親データ50pに従属する「子データ」と観念することができる。【００３８】
つぎに第１のAPノード12の登録処理部33は、すべての子データ（同一の親IDを備えた計測項目α用データ50a、計測項目β用データ50b、計測項目γ用データ50c）を第１のDBノード16及び第２のDBノード18に同時に送信し、対応テーブルへの追加登録を依頼する（Ｓ20）。この登録に際し、子データ相互間で順序性が要求されることはない。【００３９】
第１のDBノード16及び第２のDBノード18では、DB管理部34が、第１のAPノード12から送信された各子データを、センサＡに係る計測項目α用テーブル42a、計測項目β用テーブル43a、計測項目γ用テーブル44aに格納した後、それぞれの登録完了通知を第１のAPノード12に送信する。【００４０】
これに対し第１のAPノード12の登録処理部33は、各DBノードから順次送信される登録完了通知を受信し（Ｓ22）、所定の時間内に、すべての子データについて、順不同で何れかのDBノードから登録完了通知が届いたことを確認した時点で（Ｓ24／Ｙ）、親データ50pを第１のDBノード16及び第２のDB ノード18に送信し、親データ用テーブル40への登録を依頼する（Ｓ26）。【００４１】
第１のDBノード16及び第２のDBノード18では、DB管理部34が、第１のAPノード12から送信された親データ50pに係るレコードを親データ用テーブル40に格納した後、その登録完了通知を第１のAPノード12に送信する。【００４２】
これに対し第１のAPノード12の登録処理部33は、各DBノードから送信される登録完了通知を受信し（Ｓ28）、所定の時間内に何れかのDBノードから登録完了通知が届いたことを確認した時点で（Ｓ29／Ｙ）、各計測項目のキュー30の値を最新の値に更新する（Ｓ30）。
すなわち、図５(b)に示すように、計測項目α〜γ用の記憶領域30a〜30cに、それぞれ「395.0000」、「42.1245」、「38.6632」が格納される。【００４３】
なお、所定の時間内に何れのDBノードからも登録完了通知が届かない子データが存在する場合（Ｓ24／Ｎ）、登録処理部33は親データを何れのDBノードにも送信せずに、その登録を見送る。
この場合、登録処理部33は各データを生成し直した上で、各DBノードへの登録を再度試みる（詳細は後述）。
また、親データについて所定の時間内に何れのDBノードからも登録完了通知が届かない場合（Ｓ29／Ｎ）、登録処理部33はキュー30の値を更新せずに処理を終了する。【００４４】
つぎに、第１のAPノード12が計測データ51をセンサＡ20から受信すると（Ｓ10）、図４(c)に示すように、「親ID」、「センサID」、「タイムスタンプ」のデータ項目を備えた親データ51pが、登録処理部33によって生成される（Ｓ12）。【００４５】
つぎに登録処理部33は、キュー30の中のセンサＡ20に係る記憶領域30a〜30cを参照し、計測データ51に含まれる計測項目α〜γの値と、キュー30に格納された各計測項目の直近の値を比較する（Ｓ14）。【００４６】
ここでは、計測データ51の各計測項目の値と、キューに格納された直近の値との間に差異がないため（図５(b)参照）、登録処理部33は各計測項目の値に変化なしと認定し（Ｓ16／Ｎ）、子データの生成・登録に係る処理（Ｓ18〜Ｓ24）がすべてスキップされ、親データ51pの登録に係る処理（Ｓ26、Ｓ28）のみが実行される。
この場合、各計測項目の値に変化がないため、キュー30の値の更新処理（Ｓ30）は、当然ながら実行されない。【００４７】
つぎに、センサＡ20から送信された計測データ52についても、計測データ50との間に差異が認められないため、図４(d)に示すように、上記計測データ51の場合と同様、親データ52pのみが登録処理部33によって生成され、各DBノードへの登録がなされる。【００４８】
これに対し、つぎにセンサＡ20から送信された計測データ53の場合、計測項目α及びβに関してキュー30の記憶領域30a, 30bに格納された直近の値との間に差異が認められるため、図４(e)に示すように、親データ53pの他に計測項目α用データ53a及び計測項目β用データ53bが登録処理部33によって生成される（Ｓ10〜Ｓ18）。【００４９】
つぎに登録処理部33は、計測項目α用データ53a及び計測項目β用データ53bを第１のDBノード16及び第２のDBノード18に送信し、対応テーブルへの追加登録を依頼する（Ｓ20）。
そして、所定の時間内にすべての子データについて何れかのDBノードから登録完了通知が届いたことを確認した時点で（Ｓ22、Ｓ24）、登録処理部33は親データ53pを第１のDBノード16及び第２のDB ノード18に送信し、対応テーブルへの追加登録を依頼する（Ｓ26）。【００５０】
また、何れかのDBノードから親データ53pの登録完了通知を受信した登録処理部33は（Ｓ28）、計測項目α及びβに係るキュー30の値を最新の値に更新する（Ｓ30）。
すなわち、図５(c)に示すように、計測項目α及びβ用の記憶領域30a, 30bに、それぞれ「403.9614」及び「49.0320」の値が上書きされる（計測項目γ用の記憶領域30cについては従前の値が保持される）。【００５１】
つぎに、センサＡ20から送信された計測データ54の場合、計測項目α〜γに関してキュー30の記憶領域30a〜30cに格納された値との間に差異が認められるため、図４(f)に示すように、親データ54p、計測項目α用データ54a、計測項目β用データ54b及び計測項目γ用データ54cが登録処理部33によって生成される（Ｓ10〜Ｓ18）。【００５２】
つぎに登録処理部33は、計測項目α用データ54a、計測項目β用データ54b及び計測項目γ用データ54cを第１のDBノード16及び第２のDBノード18に送信し、対応テーブルへの追加を依頼する（Ｓ20）。【００５３】
そして、所定の時間内にすべての子データについて何れかのDBノードから登録完了通知が届いたことを確認した時点で（Ｓ22、Ｓ24）、登録処理部33は親データ54pを第１のDBノード16及び第２のDB ノード18に送信し、対応テーブルへの追加登録を依頼する（Ｓ26）。【００５４】
また、何れかのDBノードから親データ54pの登録完了通知を受信した登録処理部33は（Ｓ28）、計測項目α〜γに係るキュー30の値を最新の値に更新する（Ｓ30）。
すなわち、図５(d)に示すように、計測項目α〜γ用の記憶領域30a〜30cに、それぞれ「410.7660」、「38.1044」及び「25.9897」の値が上書きされる。【００５５】
以上の一連の処理の結果、図６に示すように、第１のDBノード16及び第２のDBノード18の各親データ用テーブル40には、親データ50p, 51P, 52P,  53p, 54pが格納される。
また、第１のDBノード16及び第２のDBノード18の各計測項目α用テーブル42aには、計測項目α用データ50a, 53a, 54aが格納される。
同じく、第１のDBノード16及び第２のDBノード18の各計測項目β用テーブル43aには、計測項目β用データ50b, 53b, 54bが格納される。
同じく、第１のDBノード16及び第２のDBノード18の各計測項目γ用テーブル44aには、計測項目γ用データ50c, 54cが格納される。【００５６】
図示の通り、キュー30に格納された直近の値との間に変化があった場合のみ、計測項目のレコードが追加されており、同じ値のレコードが連続して登録されることはない。このため、保存用データの冗長性が排除され、DBノードにおけるディスク容量の節約が可能となる。【００５７】
また、親データ用テーブル40には、センサＡ20から送信された全計測データ分のタイムスタンプが保存されているため、データ参照時には各計測データの状態を正確に再現することができる。例えば、親データ51pの親IDを備えた子データが一切登録されていないことから、「170222123919」時点でセンサＡから送信された計測データ51には、各計測項目について従前と同じ値が充填されていたことが認識できる。
なお、親データ用テーブル40はセンサ単位で独立しておらず、各センサから送信された親データが混在することになるが、それぞれの「センサID」 によってセンサ毎に仕分けることができる。【００５８】
また、各計測項目用データについては、センサ単位でテーブルが細分化されているため、将来的に計測項目を増やす必要性が生じた場合、単純に対応のテーブルを追加することで対応でき、既存のデータに項目追加等の修正を加える必要がないため、システムの構成を柔軟に拡張可能となる。【００５９】
このシステム10では、上記のようにすべての子データについて、何れかのDBノードにおける登録が完了しない限り、親データの登録がなされない仕組みを備えている。
このため、「データの参照時に、対応する親データの登録がない子データは対象外とする」というルールを採用することにより、仮に一部の子データについての登録が失敗した場合であっても、登録に成功した残りの子データを明示的に無効化する必要がなくなる。【００６０】
以下、図７に基づいて具体的に説明する。
まず、同図(a)は成功例を示しており、親ID「PA12345」を共有するすべての子データ（計測項目α用データ50a、計測項目β用データ50b、計測項目γ用データ50c）が登録されたため、対応の親データ50pの登録もなされ、全データが有効（参照可能）となっている。【００６１】
これに対し、同図(b)は失敗例を示しており、親ID「PA12348」を共有する２つの子データ（計測項目α用データ53a、計測項目β用データ53b）の中、計測項目α用データ53aが何らかの理由によって登録されることなくタイムアウトを迎えた結果、対応の親データ53pの登録が見送られたケースである。【００６２】
このような場合、第１のAPノード12の登録処理部33は、同図(c)に示すように、親IDのみが「PA12350」に変更された親データ53p'及び子データ（計測項目α用データ53a'、計測項目β用データ53b'）を生成し直し、各子データの登録を試みる。
ここで各子データの登録に成功すると、対応の親データ53p'の登録も実行され、計測データ53が参照可能となる。【００６３】
以上の結果、先に登録が完了していた計測項目β用データ53bは、そのまま各DBノードのテーブル上に残されることになるが、「対応する親データの登録がない子データは処理の対象外とする」というルールが適用され、APノードがデータの集計やグラフ表示等を行う際には、対応する親データの登録がない子データを参照の対象外として扱うことができる。このため、不要な子データを削除しなくても、不整合なデータの参照（ダーティーリード）は生じない。【００６４】
一般に、相互に関連性を有する一群のデータを登録する場合、一部のデータのみが登録され、残りのデータが何らかの原因によって登録されないと、データの利用時に不正な状態（ダーティーリード）が生じるため、予め複数のデータを一トランザクションとして関連付けておき、一部データの登録に失敗した際には成功したデータの登録を取り消すロールバック処理が実行される。
しかしながら、このようなロールバック処理を実現するためには、DBサーバ側に更新ログを確実に残す仕組みを設けると共に、更新ログを用いて元の状態に復旧するという複雑な処理を強いることとなり、DBサーバの負荷を増大させる原因となっていた。
また、APサーバ側ではDBサーバからトランザクション成功の通知が届くまで待機する必要があり、処理の効率化に反する結果ともなっていた。【００６５】
このシステム10の場合、複数のDBノードが相互に共通するテーブルを備えており、各計測データが複数のDBノードに重複登録される仕組みを備えているため、各APノードは何れのDBノードに対しても計測データの参照を依頼することができ、データ参照時の負荷分散が可能となる。【００６６】
また、このシステム10の場合、複数の計測データが同時並列的にDBノードに送信され、各計測データ間で登録の順序性も問われないため、一定の順序に従って各計測データを逐次的に登録させる場合に比べ、無駄な待機時間を低減することが可能となる。【００６７】
また、各DPノードのデータ管理部34は、APノードの登録処理部33から送信されたデータがDBノードのメモリに格納された時点で、登録完了通知をAPノードに発行することもできる。
これまでの常識では、メモリは揮発性の記憶手段であり、電源供給が停止された時点でデータが喪失してしまうため、不揮発性の記憶手段（ハードディスク等）にデータが格納された時点で完了通知が返されるべきものとされてきた。
ところが、このシステム10の場合、上記のようにテーブルへの操作としてはデータの追加しか認められず、削除及び更新が禁止されているため、あるDBノードでデータの欠損が発生しても、単純に残りのDBノードから不足データ（差分）をコピーするだけで追い着くことができる。このため、データがハードディスク等に格納されるまで待機する必要がない。【００６８】
上記においては、各センサからアップロードされたデータの中で、値に変化のない計測項目に関するデータの追加登録を見送る機能をAPノード側が備える例を示したが、値に変化の生じている計測項目に関するデータのみをアップロードする機能をセンサ側に設けることで、実質的に同様の効果を実現することもできる。【００６９】
例えば、図８に示す第２のデータ管理システム60の場合、第１のAPノード12、第２のAPノード14、第１のDBノード16、第２のDBノード18、第１のAPノード12に接続されたセンサＡ20〜センサＣ22、第２のAPノードに接続されたセンサＤ23〜センサＦ25を備えている点では、第１のデータ管理システム10と共通するが、第１のAPノード16及び第２のAPノード18にキュー30, 32を設ける代わりに、センサＡ20〜センサＦ25にそれぞれ記憶手段としてのレジスタ62を設けた点に特徴を備えている。
各センサのレジスタ62には、計測項目α〜γ毎に直近の値を格納しておく記憶領域62a〜62cが設定されている。【００７０】
また、センサＡ20〜センサＦ25には、それぞれ送信処理部64が設けられている。
この送信処理部64は、例えば専用のICによって実現される。あるいは、専用の制御プログラムに従い、各センサのCPUが必要な処理を実行することによって実現される。【００７１】
図示は省略したが、第１のDBノード16及び第２のDBノード18は上記と同様、DB管理部をそれぞれ備えると共に、センサＡ20〜センサＦ25毎に、親データ用テーブル（TBL）、計測項目α用テーブル、計測項目β用テーブル、計測項目γ用テーブルを備えている。【００７２】
以下、図９及び図１０のフローチャートに従い、この第２のデータ管理システム60の処理手順について例示する。
まず、何れかのセンサ（例えばセンサＡ20）において予め設定された通知のタイミングが到来すると（図９のＳ40）、送信処理部64は現時点における各計測項目の値を取得すると共に（Ｓ42）、レジスタ62に格納された各計測項目の直近の値を取得する（Ｓ44）。【００７３】
つぎに送信処理部64は、両者の値を比較し、値が変更された計測項目がある場合には（Ｓ46／Ｙ）、変更された計測項目の値を含む計測データを第１のAPノード12に送信する（Ｓ48）。
例えば、センサＡ20の計測項目α〜γの中、全ての値が変化している場合、図１１(a)に示すように、送信処理部64はタイムスタンプ及び３つの計測値を含む計測データ70を送信する。【００７４】
また、計測項目αの値についてのみ変化が見られる場合、図１１(c)に示すように、送信処理部64はタイムスタンプ及び計測項目αに係る値を含む計測データ70'を送信する。
これに対し、計測項目α〜γの全てに値の変化がない場合（Ｓ46／Ｎ）、図１１(e)に示すように、送信処理部64はタイムスタンプのみを含む計測データ70"を送信する（Ｓ52）。【００７５】
その後、送信処理部64は変化した計測値によってレジスタ62上の値を上書き更新する（Ｓ50）。【００７６】
一方、第１のAPノード12がセンサＡ20からの計測データ70を受信すると（図１０のＳ60）、図１１(b)に示すように、登録処理部33は親データ70pを生成する（Ｓ62）。
この計測データ70は計測項目の値を有しているため（Ｓ64／Ｙ）、登録処理部33は、子データとしての計測項目α用データ70a、計測項目β用データ70b、計測項目γ用データ70cを生成する（Ｓ66）。
親データ70pは、上記と同様、親ID、センサID、タイムスタンプのデータ項目を備えている。また各計測項目用データ70c, 70d, 70eは、親ID及びそれぞれの計測値を格納するデータ項目を備えている。【００７７】
つぎに登録処理部33は、すべての子データ（同一の親IDを備えた計測項目α用データ70a、計測項目β用データ70b、計測項目γ用データ70c）を第１のDBノード16及び第２のDBノード18に同時に送信し、対応テーブルへの追加を依頼する（Ｓ68）。この登録に際し、子データ相互間で順序性が要求されることはない。【００７８】
第１のDBノード16及び第２のDBノード18は、第１のAPノード12から送信された各子データを、センサＡ20に係る計測項目α用テーブル、計測項目β用テーブル、計測項目γ用テーブルに格納した後、それぞれの登録完了通知を第１のAPノード12に送信する。【００７９】
第１のAPノード12の登録処理部33は、各DBノードから順次送信される登録完了通知を受信し（Ｓ70）、所定の時間内に、すべての子データについて、順不同で何れかのDBノードから登録完了通知が届いたことを確認した時点で（Ｓ72／Ｙ）、親データ70pを第１のDBノード16及び第２のDB ノード18に送信し、対応テーブルへの登録を依頼した後（Ｓ74）、各DBノードからの登録完了通知を受信する（Ｓ76）。【００８０】
これに対し、所定の時間内に何れのDBノードからも登録完了通知が届いていない子データが存在する場合（Ｓ72／Ｎ）、登録処理部33は親データ70pを何れのDBノードにも送信せずに、その登録を見送る。
この場合、登録処理部33は、異なる親IDを備えた各データを生成し直し、各DBノードへの登録を試みる。【００８１】
なお、センサＡ20から送信される計測データが、計測項目αに関する計測値のみを含むものである場合、図１１(d)に示すように、第１のAPノード12の登録処理部33によって生成されるデータも、当然ながら親データ70'p、計測項目α用データ70'aのみとなり、ディスク容量の節約が可能となる。
また、センサＡ20から送信される計測データが、タイムスタンプのみを有し、各計測項目の計測値を一切含まないものである場合（Ｓ64／Ｎ）、図１１(f)に示すように、第１のAPノード12の登録処理部33によって生成されるデータは親データ70"pのみとなり、ディスク容量のさらなる節約が実現される。【００８２】
上記の通り、この第２のデータ管理システム60の場合、計測値に変化があるか否かを判定し、変化があった場合のみ、変化した計測項目に係る計測データをAPノードに送信する機能をセンサ側に持たせているため、変化の有無にかかわらず一定のタイミングで全計測項目に係る値を機械的に送信する場合に比べ、ネットワークのトラフィックを大幅に低減可能となる。【００８３】
上記においては、各センサから出力された計測データをAPノードが受け取り、APノードの登録処理部33及びDBノードのDB管理部34を介してDBノード内のテーブルに格納する例を示したが、この発明はこのような構成に限定されるものではない。
例えば、上記APノードとDBノードの機能を兼ね備えたデータ管理装置を設け、１または複数のセンサを有線または無線でこのデータ管理装置に接続させることが該当する。
この場合、各センサにおける各計測項目の値に変化が生じたか否かを判定する機能をデータ管理装置側に設けることもできるし、各センサ側に持たせてもよい。【００８４】
上記第１のデータ管理システム10及び第２のデータ管理システム60においては、「タイムスタンプ」を親データに組み入れた例を示したが、タイムスタンプを「親ID」を備えた子データの一つとして、親データとは別個に生成・登録されるように構成してもよい。
【図面の簡単な説明】
【００８５】
【図１】この発明に係る第１のデータ管理システムの全体構成図である。
【図２】各DBノードに格納されるテーブルの一例を示す図である。
【図３】第１のデータ管理システムの処理手順を示すフローチャートである。
【図４】センサから送信される計測データ及びAPノードによって生成される保存用データの構造を示す図である。
【図５】APノードのキューに格納される値の変遷を示す図である。
【図６】APノードによって生成された各種データが専用のテーブルに格納される様子を示す図である。
【図７】対応する親データの有無によって子データの有効／無効が判定される様子を示す模式図である。
【図８】この発明に係る第２のデータ管理システムの全体構成図である。
【図９】第２のデータ管理システムにおけるセンサ側の処理手順を示すフローチャートである。
【図１０】第２のデータ管理システムにおけるAPノード側の処理手順を示すフローチャートである。
【図１１】センサから送信される計測データ及びAPノードによって生成される保存用データの構造を示す図である。
【図１２】従来のデータ管理システムを示す全体構成図である。
【図１３】センサから送信される計測データの一例を示す図である。
【符号の説明】
【００８６】
10  第１のデータ管理システム
12  第１のAPノード
14  第２のAPノード
16  第１のDBノード
18  第２のDBノード
20  センサＡ
21  センサＢ
22  センサＣ
23  センサＤ
24  センサＥ
25  センサＦ
30  第１のAPノードのキュー
32  第２のAPノードのキュー
33  APノードの登録処理部
34  DBノードのデータ管理部
40  親データ用テーブル
42a〜42f  計測項目α用テーブル
43a〜43f  計測項目β用テーブル
44a〜44f  計測項目γ用テーブル
50〜54  計測データ
60  第２のデータ管理システム
62  センサのレジスタ
64  センサの送信処理部
70  計測データ
【図１】
2018207352.tif 000003
【図２】
2018207352.tif 000004
【図３】
2018207352.tif 000005
【図４】
2018207352.tif 000006
【図５】
2018207352.tif 000007
【図６】
2018207352.tif 000008
【図７】
2018207352.tif 000009
【図８】
2018207352.tif 000010
【図９】
2018207352.tif 000011
【図１０】
2018207352.tif 000012
【図１１】
2018207352.tif 000013
【図１２】
2018207352.tif 000014
【図１３】
2018207352.tif 000015
【手続補正書】
【提出日】令和1年10月30日(2019.10.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
１または複数のセンサが接続されたAPノードと、このAPノードと接続されたDBノードを備えており、
上記APノードは、所定のタイミングで上記センサから出力される、複数の計測項目の値を含む計測データを受け付ける手段と、
各センサの計測項目単位で直近の値を格納する記憶手段と、
上記センサから計測データが出力される都度、当該計測データに含まれる値と上記記憶手段に格納された直近の値を比較し、各計測項目の値に変化が生じているか否かを判定する手段と、
値に変化が生じている計測項目が存在する場合、当該計測項目の値を含む保存用データを計測項目毎に生成し、上記DBノードに送信する手段と、
当該計測項目の最新の値によって、上記記憶手段における直近の値を上書きする手段を備え、
上記DBノードは、上記計測データに含まれる値を、各センサの計測項目毎に格納する複数のテーブルと、
上記APノードから送信された保存用データを、対応のテーブルに格納する手段と、
親データ登録用のテーブルを備えており、
上記APノードは、少なくとも１つの計測データに係る１または複数の保存用データを生成する際に、当該計測データに関連付けられた親データを生成すると共に、当該親データのIDを上記保存用データに付与する処理を実行し、
また上記APノードは、上記DBノードに対して各保存用データの登録を依頼した後、上記DBノードから全ての保存用データに係る登録完了通知が届いた場合に親データの登録を上記DBノードに依頼し、一定の時間内に何れかの保存用データの登録完了通知が届かないの場合には、親データの登録を中止し、
さらに上記APノードは、登録済みの保存用データの参照に際し、関連する親データの登録のある保存用データのみを参照の対象とし、関連する親データの登録のない保存用データについては参照の対象外とすることを特徴とするデータ管理システム。
【請求項２】
複数の計測項目に係る値を所定のタイミングで出力する１または複数のセンサと、各センサと接続されたAPノードと、このAPノードと接続されたDBノードを備えており、
各センサは、計測項目単位で直近の値を格納する記憶手段と、
所定のタイミングで各計測項目に係る現在の値と上記記憶手段に格納された直近の値を比較し、各計測項目の値に変化が生じているか否かを判定する手段と、
値に変化が生じている計測項目が存在する場合、当該計測項目の値を含む計測データを上記APノードに出力する手段と、
当該計測項目の最新の値によって、上記記憶手段における直近の値を上書きする手段を備え、
上記APノードは、各センサから出力される計測データを受け付ける手段と、
当該計測データに含まれる各計測項目の値を含む保存用データを、計測項目毎に生成し、上記DBノードに送信する手段を備え、
上記DBノードは、上記計測データに含まれる値を、各センサの計測項目毎に格納する複数のテーブルと、
上記APノードから送信された保存用データを、対応のテーブルに格納する手段と、
親データ登録用のテーブルを備えており、
上記APノードは、少なくとも１つの計測データに係る１または複数の保存用データを生成する際に、当該計測データに関連付けられた親データを生成すると共に、当該親データのIDを上記保存用データに付与する処理を実行し、
また上記APノードは、上記DBノードに対して各保存用データの登録を依頼した後、上記DBノードから全ての保存用データに係る登録完了通知が届いた場合に親データの登録を上記DBノードに依頼し、一定の時間内に何れかの保存用データの登録完了通知が届かないの場合には、親データの登録を中止し、
さらに上記APノードは、登録済みの保存用データの参照に際し、関連する親データの登録のある保存用データのみを参照の対象とし、関連する親データの登録のない保存用データについては参照の対象外とすることを特徴とするデータ管理システム。
【請求項３】
同一のデータを格納する共通のテーブルをそれぞれ備えた複数のDBノードを備えており、
上記APノードは、まず上記の各DBノードに保存用データの登録を依頼し、
全ての保存用データについて、何れかのDBノードから登録完了通知が届いた時点で親データの登録を上記の各DBノードに依頼し、
一定の時間内に何れかの保存用データの登録完了通知が何れのDBノードからも届かない場合には、親データの登録を中止することを特徴とする請求項１または２に記載のデータ管理システム。
【国際調査報告】
2018207352.tif 000016
2018207352.tif 000017
2018207352.tif 000018
2018207352.tif 000019