(57)【特許請求の範囲】
【請求項１】
プロセッサとメモリを有する統括サーバが、プロセッサとメモリを有する拠点サーバから収集したデータを処理する分散型データ処理システムのデータ処理方法であって、
前記拠点サーバが、前記データを収集して標準化してからノードカット処理によって拠点データを生成する第１のステップと、
前記統括サーバが、複数の拠点サーバから前記拠点データの列の属性情報と、前記拠点サーバのノードカット処理による前記拠点データの統合元と統合先の関係を拠点列統合情報として収集する第２のステップと、
前記統括サーバが、前記列の属性情報と前記拠点列統合情報に基づいて前記複数の拠点データを結合した場合に、統合元と統合先を入れ替えてデータ量を削減可能な統合元と統合先の組み合わせを算出する入替演算を行う第３のステップと、
前記統括サーバが、前記入替演算の結果、前記データ量を削減可能な統合元と統合先の組み合わせが存在する場合には、前記組み合わせを入替指示として前記拠点サーバに通知する第４のステップと、
を含むことを特徴とするデータ処理方法。
【請求項２】
請求項１に記載のデータ処理方法であって、
前記拠点サーバが、前記統括サーバからの入替指示を受信して前記拠点データを再度生成する第５のステップと、
前記統括サーバが、複数の前記拠点データを収集し、当該収集した拠点データを結合して全拠点データを生成する第６のステップと、
をさらに含むことを特徴とするデータ処理方法。
【請求項３】
請求項２に記載のデータ処理方法であって、
前記統括サーバが、前記全拠点データにエッジカット処理を行ってから所定の分析を実施する第７のステップと、
をさらに含むことを特徴とするデータ処理方法。
【請求項４】
請求項１に記載のデータ処理方法であって、
前記入替演算は、
前記拠点データの列の属性と、前記拠点サーバのノードカット処理による前記拠点データの統合元と統合先の関係に基づいて、前記拠点データの統合先の列と、統合元の列とを入れ替えることで、前記複数の拠点データを結合したときのデータ量を削減可能な列の組み合わせを算出することを特徴とするデータ処理方法。
【請求項５】
請求項１に記載のデータ処理方法であって、
前記ノードカット処理は、
前記統合元の列と、統合先の列の値が一致する行数の比率が所定の閾値以上の場合には前記統合元の列を除外することを特徴とするデータ処理方法。
【請求項６】
請求項２に記載のデータ処理方法であって、
前記統括サーバが、前記全拠点データに所定の分析を実施する第８のステップを含み、
前記第８のステップは、
前記全拠点データについて、統合元の列と統合先の列の値が一致する行数の比率を一致率として算出し、前記分析の結果に前記一致率を付与することを特徴とするデータ処理方法。
【請求項７】
請求項２に記載のデータ処理方法であって、
前記統括サーバが、前記全拠点データに所定の分析を実施する第８のステップを含み、
前記第８のステップは、
前記全拠点データについて、統合元の列の情報を、前記拠点サーバのノードカット処理による前記拠点データの統合元と統合先の関係から取得して、前記分析の結果に前記統合元の列の情報を付与することを特徴とするデータ処理方法。
【請求項８】
プロセッサとメモリを有する統括サーバと、
プロセッサとメモリを有する拠点サーバと、を含む分散型データ処理システムであって、
前記拠点サーバは、
データを収集するデータ収集部と、
前記収集したデータを標準化してからノードカット処理によって拠点データを生成する拠点列統合部と、を含み、
前記統括サーバは、
複数の拠点サーバから前記拠点データの列の属性情報と、前記拠点サーバのノードカット処理による前記拠点データの統合元と統合先の関係を拠点列統合情報として収集する統合済列抽出部と
前記列の属性情報と前記拠点列統合情報に基づいて前記複数の拠点データを結合した場合に、統合元と統合先を入れ替えてデータ量を削減可能な統合元と統合先の組み合わせを算出する入替演算部と、
前記入替演算部の算出結果に、前記データ量を削減可能な統合元と統合先の組み合わせが存在する場合には、前記組み合わせを入替指示として前記拠点サーバに通知する送受信部と、
を有することを特徴とする分散型データ処理システム。
【請求項９】
請求項８に記載の分散型データ処理システムであって、
前記拠点サーバは、
前記統括サーバからの入替指示を受信して、前記拠点列統合部が前記拠点データを再度生成し、
前記統括サーバは、
複数の前記拠点データを収集し、当該収集した拠点データを結合して全拠点データを生成する統括入力データ生成部を、さらに有することを特徴とする分散型データ処理システム。
【請求項１０】
請求項９に記載の分散型データ処理システムであって、
前記統括サーバは、
前記全拠点データにエッジカット処理を行ってから所定の分析を実施する統括分析部をさらに有することを特徴とする分散型データ処理システム。
【請求項１１】
請求項８に記載の分散型データ処理システムであって、
前記入替演算部は、
前記拠点データの列の属性と、前記拠点サーバのノードカット処理による前記拠点データの統合元と統合先の関係に基づいて、前記拠点データの統合先の列と、統合元の列とを入れ替えることで、前記複数の拠点データを結合したときのデータ量を削減可能な列の組み合わせを算出することを特徴とする分散型データ処理システム。
【請求項１２】
請求項８に記載の分散型データ処理システムであって、
前記ノードカット処理は、
前記統合元の列と、統合先の列の値が一致する行数の比率が所定の閾値以上の場合には前記統合元の列を除外することを特徴とする分散型データ処理システム。
【請求項１３】
請求項９に記載の分散型データ処理システムであって、
前記統括サーバは、
前記全拠点データに所定の分析を実施する統括分析部をさらに有し、
前記統括分析部は、
前記全拠点データについて、統合元の列と統合先の列の値が一致する行数の比率を一致率として算出し、前記分析の結果に前記一致率を付与することを特徴とする分散型データ処理システム。
【請求項１４】
請求項９に記載の分散型データ処理システムであって、
前記統括サーバは、
前記全拠点データに所定の分析を実施する統括分析部をさらに有し、
前記統括分析部は、
前記全拠点データについて、統合元の列の情報を、前記拠点サーバのノードカット処理による前記拠点データの統合元と統合先の関係から取得して、前記分析の結果に前記統合元の列の情報を付与することを特徴とする分散型データ処理システム。
【請求項１５】
プロセッサとメモリを有する拠点サーバを制御するプログラムを格納した記憶媒体であって、
複数の拠点データの列の属性情報と、ノードカット処理による拠点データの統合元と統合先の関係を拠点列統合情報として収集する第１のステップと、
前記列の属性情報と前記拠点列統合情報に基づいて複数の拠点データを結合した場合に、統合元と統合先を入れ替えてデータ量を削減可能な統合元と統合先の組み合わせを算出する入替演算を行う第２のステップと、
前記入替演算の結果、前記データ量を削減可能な統合元と統合先の組み合わせが存在する場合には、前記組み合わせを入替指示として出力する第３のステップと、
を前記拠点サーバに実行させるプログラムを格納した非一時的な計算機読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散型のデータ処理システムでデータ量を削減する技術に関する。
【背景技術】
【０００２】
ビッグデータの分析や、ＩｏＴ（Internet of Things）等のセンサから取得したデータの分析を行う分散型のデータ処理システムでは、複数の拠点（工場や支社等）と統括拠点（例えば、本社）でデータの分析を行っている。【０００３】
分散型のデータ処理システムとしては、例えば、特許文献１が知られている。特許文献１では、クライアントが持つジョブの一部をサーバに分散させ、サーバは受信したジョブの部分を実行してクライアントに応答する。これにより、ジョブ全体の処理時間を短縮させている。【０００４】
また、大量のデータを扱う場合では、拠点と統括拠点との間での通信コストを削減するため、グラフ化によってデータ圧縮を行う技術が知られている（例えば、特許文献２）。【０００５】
また、大量のデータを統合する手法として、表データ内で同じ値の列が複数存在する場合には、一つの列に統合する技術も知られている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際公開第２００７／０７０４９１号
【特許文献２】国際公開第２０１５／１１４８３０号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＩｏＴやビッグデータを扱う場合、各拠点に分散しているデータ量は膨大であるため、これらの拠点のデータをそのまま統括拠点に収集することは通信及び蓄積のコストが過大になってしまう。拠点ごとにデータを統合してデータ量を削減してから、拠点単位で統計分析を行っており、拠点が保持するデータは拠点単位で行われる統計分析に合わせた統計処理がなされている。【０００８】
この統計処理として前記従来例の列の統合を適用してデータ量を削減する場合では、拠点毎に統合する列を決定するため、拠点毎に除外する列が異なる場合がある。この統計処理を施した拠点のデータを、統括拠点に収集して拠点毎のデータを結合すると、第１の拠点で除外していたデータを、第２の拠点では利用する場合が生じ、同種のデータを重複して結合することになる。この結果、前記従来例では、データ量の削減が円滑に行われずに、通信コストと演算コストの削減を推進できない、という問題があった。【０００９】
そこで、本発明は上記問題点に鑑みてなされたもので、統括拠点で収集したデータのうち同種のデータが重複している場合には、拠点毎に統合するデータを最適化してデータ量の削減を行うことを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、プロセッサとメモリを有する統括サーバが、プロセッサとメモリを有する拠点サーバから収集したデータを処理する分散型データ処理システムのデータ処理方法であって、前記拠点サーバが、前記データを収集して標準化してからノードカット処理によって拠点データを生成する第１のステップと、前記統括サーバが、複数の拠点サーバから前記拠点データと、前記拠点データの列の属性と、前記拠点サーバのノードカット処理による前記拠点データの統合元と統合先の関係を収集する第２のステップと、前記統括サーバが、前記複数の拠点データを結合したときに、統合元と統合先を入れ替えてデータ量を削減可能な統合元と統合先の組み合わせを算出する入替演算を行う第３のステップと、前記統括サーバが、前記入替演算の結果、前記データ量を削減可能な統合元と統合先の組み合わせが存在する場合には、前記組み合わせを入替指示として前記拠点サーバに通知する第４のステップと、を含む。
【発明の効果】
【００１１】
本発明によれば、統括サーバが各拠点サーバから収集した拠点データを結合した結果、削減（統合）可能なデータを抽出して各拠点に通知することで、各拠点の統計処理を最適化して、統括サーバで収集するデータ量を削減することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施例１を示し、分散型のデータ処理システムの一例を示すブロック図である。
【図２】本発明の実施例１を示し、拠点サーバで行われる処理の一例を示すフローチャートである。
【図３】本発明の実施例１を示し、拠点サーバの拠点列統合部で行われる処理の一例を示すフローチャートである。
【図４】本発明の実施例１を示し、拠点列統合部で行われる処理の一例を示すフローチャートである。
【図５】本発明の実施例１を示し、統括サーバで行われる処理の一例を示すフローチャートである。
【図６】本発明の実施例１を示し、統括サーバの統合済列抽出部で行われる処理の一例を示すフローチャートである。
【図７】本発明の実施例１を示し、統括サーバの入替演算部で行われる処理の一例を示すフローチャートである。
【図８】本発明の実施例１を示し、拠点サーバの拠点列情報表の一例を示す図である。
【図９】本発明の実施例１を示し、拠点サーバの拠点列統合表の一例を示す図である。
【図１０】本発明の実施例１を示し、拠点サーバの列優先度表の一例を示す図である。
【図１１】本発明の実施例１を示し、統括サーバの拠点サーバ情報表の一例を示す図である。
【図１２】本発明の実施例１を示し、統括サーバの列属性情報表の一例を示す図である。
【図１３】本発明の実施例１を示し、統括サーバの列統合情報表の一例を示す図である。
【図１４】本発明の実施例１を示し、統括サーバの列状態表の一例を示す図である。
【図１５】本発明の実施例１を示し、拠点サーバのセンサデータの一例を示す図である。
【図１６】本発明の実施例１を示し、拠点サーバの拠点データの一例を示す図である。
【図１７】本発明の実施例１を示し、統括サーバの全拠点データと拠点データの一例を示す図である。
【図１８】本発明の実施例１を示し、分散型のデータ処理システムの機能要素の一例を示すブロック図である。
【図１９】本発明の実施例２を示し、拠点サーバで行われる処理の一例を示すフローチャートである。
【図２０】本発明の実施例２を示し、統括サーバで行われる処理の一例を示すフローチャートである。
【図２１】本発明の実施例２を示し、統括サーバの入替演算部で行われる処理の一例を示すフローチャートである。
【図２２】本発明の実施例２を示し、統括サーバの拠点サーバ情報表の一例を示す図である。
【図２３】本発明の実施例２を示し、統括サーバの全拠点データの一例を示す図である。
【図２４】本発明の実施例３を示し、拠点サーバで行われる処理の一例を示すフローチャートである。
【図２５】本発明の実施例３を示し、統括サーバで行われる処理の一例を示すフローチャートである。
【図２６】従来例を示し、エッジカット処理の一例を示す図である。
【図２７】本発明の実施例３を示し、統括サーバで行われるエッジカット処理の一例を示す図である。
【図２８】本発明の実施例４を示し、統括サーバで行われる処理の一例を示すフローチャートである。
【図２９】従来例を示し、全拠点データと分散処理結果の一例を示す図である。
【図３０】本発明の実施例４を示し、全拠点データと分散処理結果の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明の一実施形態について添付図面を用いて説明する。
【実施例１】
【００１４】
図１は、本発明の実施例１の分散型のデータ処理システムの一例を示すブロック図である。分散型のデータ処理システムは、生産ライン３からセンサデータを収集して拠点サーバ４で分析を行う拠点２−１〜２−ｋと、ネットワーク５を介して各拠点２−１〜２−ｋ各拠点のデータを収集して分析を行う統括サーバ１とを含む。なお、拠点の全体を指すときは「−」以降を省略した符号「２」を用いる。他の構成要素の符号についても同様である。また、統括サーバ１が所属する拠点を統括拠点とする。【００１５】
＜拠点の構成＞
以下、拠点２の構成について説明する。なお、拠点２−１（第１拠点）と拠点２−２（第２拠点）〜２−ｋ（第ｋ拠点）の構成は同様であるので、重複する説明は省略する。【００１６】
拠点２は、工程毎にセンサ３１を設置した生産ライン３と、センサ３１が測定したセンサデータを収集して分析を行う拠点サーバ４とを含む。拠点サーバ４は、演算処理を実行する中央演算処理装置４１と、センサ３１や統括サーバ１と通信を行う通信インタフェース４２と、データやプログラムを格納する補助記憶装置４３と、データやプログラムを保持する主記憶装置４４と、を含む計算機である。【００１７】
拠点サーバ４は、生産ライン３のセンサ３１からセンサデータ４５を収集して補助記憶装置４３に格納する。拠点サーバ４は、前記従来例に示した列の統合をセンサデータ４５に適用してデータ量を削減して拠点データ５６を生成する。そして、拠点サーバ４は、拠点データ５６を用いて当該拠点２に予め設定された分析処理や統計処理を実施する。【００１８】
各拠点サーバ４で実施する分析処理は、各拠点２毎に個々の問題点などを抽出するために実施される。このため、データ量を削減するために行う列の統合処理では、拠点２毎に統合の対象となるセンサデータ４５の列は異なる場合が生じる。このため、後述するように、各拠点２の拠点サーバ４は、統括拠点となる統括サーバ１からの入替指示を受け付けて、統合する列の最適化を図る。なお、本実施例１では、入替指示として、更新した列優先度表５９を統括サーバ１が送信する例を示す。【００１９】
拠点サーバ４は、主記憶装置４４にデータ収集部５１と、拠点入替判定部５２と、拠点列統合部５３と、拠点分析部５４と、送受信部５５をプログラムとしてロードして中央演算処理装置４１で実行する。また、主記憶装置４４には、各プログラムが利用するデータとして、拠点データ５６と、拠点列情報表５７と、拠点列統合表５８と、列優先度表５９が保持される。【００２０】
中央演算処理装置４１は、各機能部のプログラムに従って処理することによって、所定の機能を提供する機能部として稼働する。例えば、中央演算処理装置４１は、データ収集プログラムに従って処理することでデータ収集部５１として機能する。他のプログラムについても同様である。さらに、中央演算処理装置４１は、各プログラムが実行する複数の処理のそれぞれの機能を提供する機能部としても稼働する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。【００２１】
拠点サーバ４の各機能を実現するプログラム、テーブル等の情報は、補助記憶装置４３や不揮発性半導体メモリ、ハードディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶デバイス、または、ＩＣカード、ＳＤカード、ＤＶＤ等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。【００２２】
データ収集部５１は、生産ライン３のセンサ３１からセンサデータ４５を収集する。拠点入替判定部５２は、統括サーバ１からの入替指示に基づいて、指定されたセンサデータ４５の列が統合可能か否かを判定し、可能であれば統合する列を変更する。拠点列統合部５３は、拠点入替判定部５２の判定結果に基づいて、前記従来例と同様に、センサデータ４５から値が重複する列を除外してデータ量を削減した拠点データ５６を生成する。【００２３】
拠点分析部５４は、生成された拠点データ５６に対して、拠点２毎に定められた分析処理や統計処理を実施し、処理結果を出力する。送受信部５５は、統括サーバ１やセンサ３１との通信を実施する。【００２４】
センサデータ４５と、拠点データ５６と、拠点列情報表５７と、拠点列統合表５８と、列優先度表５９については後述する。【００２５】
＜統括拠点の構成＞
統括拠点として機能する統括サーバ１は、演算処理を実行する中央演算処理装置１１と、各拠点２の拠点サーバ４と通信を行う通信インタフェース１２と、データやプログラムを格納する補助記憶装置１３と、データやプログラムを保持する主記憶装置１４と、分析結果の表示などを行う入出力部１６と、を含む計算機である。統括サーバ１は、各拠点２で生成した拠点データ５６を収集して、予め設定した統括拠点の分析処理を行う。【００２６】
統括サーバ１は、まず、拠点サーバ４から取得する拠点データ５６について統合する列の最適化を実施して、各拠点サーバ４へ入替指示を送信する。統括サーバ１は、統合する列の最適化が完了した後に、各拠点サーバ４から拠点データ５６を収集して補助記憶装置１３に格納する。統括サーバ１は、各拠点２の拠点データ５６を結合して全拠点データ１５を生成し、全拠点データ１５に対して所定の分析処理や統計処理を実施する。統括サーバ１で実施する分析処理は、各拠点２全体に関する問題点などを抽出するために実施される。【００２７】
統括サーバ１は、各拠点２−１〜２−ｋの拠点サーバ４から拠点データ５６を収集して結合したと仮定した場合に、拠点サーバ４側の統合処理で、さらにデータが削減可能であるか否かを判定する。統括サーバ１は、各拠点データ５６を結合して全拠点データ１５とする際に、さらにデータの削減が可能な列の組み合わせがあれば拠点サーバ４に通知して、拠点データ５６の最適化を実施させる。この処理が、統合する例の最適化である。この処理を繰り返すことで、統括サーバ１が拠点２から拠点データ５６を取得する際のデータ量を順次削減する。これにより、各拠点２の拠点サーバ４から収集した拠点データ５６を結合した後の全拠点データ１５を最適化して生成し、統括サーバ１の分析処理で使用する全拠点データ１５のデータ量を削減できる。【００２８】
統括サーバ１は、主記憶装置１４に統合済列抽出部２１と、送受信部２２と、入替演算部２３と、統括入力データ生成部２４と、統括分析部２５とをプログラムとしてロードして中央演算処理装置１１で実行する。また、主記憶装置１４には、各プログラムが利用するデータとして、列優先度表２６と、拠点サーバ情報表２７と、列属性情報表２８と、列統合情報表２９と、列状態表３０が保持される。【００２９】
また、結合された全拠点データ１５は、補助記憶装置１３に格納することができる。入出力部１６は、キーボードやマウスやタッチパネルなどの入力装置と、ディスプレイなどの出力装置を含む。【００３０】
中央演算処理装置１１は、各機能部のプログラムに従って処理することによって、所定の機能を提供する機能部として稼働する。例えば、中央演算処理装置１１は、統合済列抽出プログラムに従って処理することで統合済列抽出部２１として機能する。他のプログラムについても同様である。さらに、中央演算処理装置１１は、各プログラムが実行する複数の処理のそれぞれの機能を提供する機能部としても稼働する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。【００３１】
統括サーバ１の各機能を実現するプログラム、テーブル等の情報は、補助記憶装置１３や不揮発性半導体メモリ、ハードディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶デバイス、または、ＩＣカード、ＳＤカード、ＤＶＤ等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。【００３２】
統括サーバ１は、分析処理を実施する前に、各拠点２の拠点サーバ４から拠点データ５６の状態等を示す属性情報などを受信する。統合済列抽出部２１は、拠点サーバ４から受信した情報に基づいて、列属性情報表２８と、列統合情報表２９と、列状態表３０とを生成する。【００３３】
入替演算部２３は、各拠点２の列属性情報表２８と列統合情報表２９及び列状態表３０を参照し、拠点データ５６を結合した場合に、さらに統合可能な列があるか否かを判定する。統合可能な列があれば、入替演算部２３が入替指示を生成する。送受信部２２は、該当する拠点サーバ４に入替指示を送信する。なお、本実施例１では、入替演算部２３が、対象の拠点２の列優先度表５９を更新したものを入替指示として拠点サーバ４に送信する例を示す。【００３４】
統括入力データ生成部２４は、各拠点２からの拠点データ５６と各拠点データ５６の属性情報等を取得して、各拠点データ５６を結合して全拠点データ１５を生成する。統括分析部２５は生成された全拠点データ１５を対象として、統括拠点で設定された所定の分析処理を実行して処理結果を出力する。【００３５】
全拠点データ１５と、列優先度表２６と、拠点サーバ情報表２７と、列属性情報表２８と、列統合情報表２９と、列状態表３０については後述する。【００３６】
＜テーブル＞
まず、拠点サーバ４で管理されるテーブルについて説明する。拠点サーバ４では、センサデータ４５と、拠点データ５６と、拠点列情報表５７と、拠点列統合表５８と、列優先度表５９が生成される。【００３７】
図１５は、センサデータ４５の一例を示す図である。拠点サーバ４が生産ライン３のセンサ３１から収集したセンサデータ４５は、時刻４５１と、列の識別子毎に測定した値を格納するデータ４５２−１〜４５２−ｎと、を一つのエントリに含む。図示の例では、列の識別子を１〜ｎとした例を示す。【００３８】
時刻４５１は、センサデータ４５が測定されたときのタイムスタンプが格納される。各拠点２−１〜２−ｋのデータ４５１〜４５１−ｎは、センサ３１が測定したセンサデータ４５である。【００３９】
図１６は、拠点データ５６の一例を示す図である。拠点データ５６は、拠点列統合部５３によってセンサデータ４５の列のうち、同一（または類似）の値の列をひとつの列に統合したテーブルである。【００４０】
拠点データ５６は、時刻５５１と、列の識別子毎にセンサデータ４５を格納するデータ５６２−１〜５５２−ｎと、を一つのエントリに含む。図示の例では、データ５６２−１と５５２−３が同一（または類似）の値と判定され、データ５６２−３の列が除外（図中黒色）され、データ５６２−１の列に統合（図中斜線）された例を示す。すなわち、図中、斜線のフィールドは値を使用する統合先を示し、図中黒色のフィールドは、値を使用しない統合元を示す。【００４１】
拠点サーバ４の拠点列統合部５３は列単位で、値が同一または値が類似する列を抽出して、ひとつの列に統合する。なお、統合する列は、後述の列優先度表５９の情報やラウンドロビン等、予め設定された条件で選択される。なお、列の値の類似は、センサデータ４５の値が比例関係にある列同士を類似する列と判定することができ、例えば、データ４５２−１とデータ４５２−４は値が比例しているので類似関係である。【００４２】
図８は、拠点列情報表５７の一例を示す図である。拠点列情報表５７は、センサデータ４５及び拠点データ５６の各列の値の内容または属性を識別するために各拠点２で設定されるテーブルである。【００４３】
拠点列情報表５７は、列の識別子を格納する列ＩＤ５７１と、センサ３１が測定するセンサデータ４５の名称を格納する列名５７２と、センサデータ４５の値の属性情報を格納する列属性５７３と、を一つのエントリに含む。【００４４】
列ＩＤ５７１は、拠点データ５６のデータ５６２−１〜５６２−ｎに対応する列の識別子である。本実施例１では、列の識別子は拠点２内でユニークな値であり、１〜ｎの識別子を使用する。【００４５】
図９は、拠点列統合表５８の一例を示す図である。拠点列統合表５８は、拠点データ５６で除外された列と、統合先の列の関係を示すテーブルである。拠点列統合表５８は、シリアル番号５８１と、統合先の列名を格納する統合先５８２と、拠点データ５６で除外された列名を格納する統合元５８３と、データが一致（または類似）した行数を格納する一致行数５８４と、を一つのエントリに含む。【００４６】
図示の例では、列名が「外気温」の列に「機器１温度」と「機器１感度」の列が統合得されたことを示す。換言すれば、拠点データ５６において、「機器１温度」と「機器１感度」に対応するデータが除外されて、「外気温」の列に統合されたことを示す。【００４７】
なお、本実施例１では、拠点データ５６で値が一致（または類似）した行数を一致行数５８４に格納する例を示すが、値が一致した行数と全行数の比率を格納するようにしてもよい。【００４８】
図１０は、優先度表５９の一例を示す図である。列優先度表５９は、統括サーバ１で生成されて、２つの列のうち統合先とする列と、除外する列が設定されたテーブルである。【００４９】
列優先度表５９は、シリアル番号５９１と、統合先として優先すべき列の識別子を格納する優先列ＩＤ５９２と、統合元として除外すべき列の識別子を格納する非優先列ＩＤ５９３と、を一つのエントリに含む。【００５０】
なお、統括サーバ１の列優先度表２６も図１０と同様であり、シリアル番号５９１と、優先列ＩＤ５９２と、非優先列ＩＤ５９３とを一つのエントリに含む。統括サーバ１の列優先度表２６は、システム設定の列優先度として統括サーバ１でのノウハウなどに基づいて予め設定される。【００５１】
図１１は、統括サーバ１の拠点サーバ情報表２７の一例を示す図である。拠点サーバ情報表２７は、統括サーバ１が拠点２から各種情報等を受信したときに更新される。【００５２】
拠点サーバ情報表２７は、シリアル番号２７１と、拠点２の識別子を格納する拠点ＩＤ２７２と、拠点２が管理するセンサ３１の数を格納するセンサ数２７３と、拠点データ５６の行数を格納するデータ行数２７４と、拠点データ５６の容量を格納するデータサイズ２７５と、を一つのエントリに含む。【００５３】
図１２は、統括サーバ１の列属性情報表２８の一例を示す図である。なお、列属性情報表２８は、統括サーバ１が拠点サーバ４毎に生成することができる。列属性情報表２８は、統括サーバ１が各拠点２の拠点サーバ４から受信した拠点データ５６のデータ５６２−１〜５６２−ｎの属性等が設定されたテーブルである。【００５４】
列属性情報表２８は、拠点データ５６及び全拠点データ１５の列の識別子を格納する列ＩＤ２８１と、各列の拠点データ５６の名称を格納する列名称２８２と、拠点データ５６の属性を格納する列属性２８３と、を一つの列に含む。【００５５】
列ＩＤ２８１は、拠点データ５６の５６２−１〜５６２−ｎに対応して１〜ｎの値が設定される。【００５６】
すなわち、列ＩＤ２８１＝「１」には、センサデータ４５の名称＝列名称２８２が「外気温」で、センサデータ４５の属性＝列属性２８３が「温度」のデータが格納される。【００５７】
図１３は、統括サーバ１の列統合情報表２９の一例を示す図である。列統合情報表２９は、統括サーバ１が各拠点２から拠点列統合表５８等を受信したときに生成される。なお、列統合情報表２９は、統括サーバ１が拠点サーバ４毎に生成することができる。【００５８】
列統合情報表２９は、拠点データ５６の列の識別子を格納する列ＩＤ２９１と、各拠点データ５６の列で値が一致した行の比率を格納する統合済率２９２と、拠点ＩＤ＝１（拠点２−１）の統合先を示す拠点ＩＤ＝１統合情報２９３と、拠点ＩＤ＝２（拠点２−２）の統合先を示す拠点ＩＤ＝２統合情報２９４と、をひとつの列に含む。なお図示はしないが、列統合情報表２９は、拠点ＩＤ＝ｋ（拠点２−ｋ）までの行を含む。【００５９】
統合済率２９２は、各列（１〜ｎ）ＩＤ２９１の行数に対して、統合元の列の値と一致した行数の比率が格納される。統合済率２９２が０％の列ＩＤ２９１は、他の列に統合されなかったことを示す。統合済率２９２が１００％の列ＩＤ２９１＝３は、他の列（列ＩＤ２９１＝１）に統合されたことを示す。【００６０】
拠点ＩＤ＝１統合情報２９３、拠点ＩＤ＝２統合情報２９４では、「なし」の列ＩＤ２９１は、他の列に統合されなかったことを示し、「１」の列ＩＤ２９１＝「３」は、統合先の列ＩＤを示す。【００６１】
図１４は、統括サーバ１の列状態表３０の一例を示す図である。なお、列状態表３０は、統括サーバ１が拠点サーバ４毎に生成することができる。【００６２】
列状態表３０は、拠点データ５６の各列と他の列の値の一致率を格納する。列状態表３０は、比較対象の列ＩＤを格納する列ＩＤ３０１と、列ＩＤ３０２〜列ＩＤ３０６を一つのエントリに含む。なお、図示の例では、列ＩＤ３０２〜列ＩＤ３０６が、列ＩＤ＝１〜４とｎを示す。【００６３】
列ＩＤ３０１が「比較列ＩＤ＝３」、列ＩＤ３０２＝「１」では「１００％一致」となっており、列ＩＤ＝３と列ＩＤ＝１の拠点データ５６が全ての拠点２で一致することを示す。【００６４】
列ＩＤ３０１が「比較列ＩＤ＝４」で、列ＩＤ３０４＝「３」では「９０％一致」となっており、列ＩＤ＝３と列ＩＤ＝４の拠点データ５６は、９０％が一致することを示す。【００６５】
図１７は、統括サーバ１の全拠点データ１５と拠点データ５６の関係を示す図である。全拠点データ１５は各拠点２の拠点サーバ４から収集した拠点データ５６を、結合したテーブルである。【００６６】
全拠点データ１５は、タイムスタンプを格納する時刻１５１と、列の識別子（以下、列ＩＤ）＝１〜５の拠点データ５６を格納するデータ１５１−１〜１５１−５を含む。なお、図示の例では、列ＩＤ＝１〜５としたが、実際には列ＩＤ＝１〜ｎの標準化された拠点データ５６を含む。【００６７】
図示の全拠点データ１５は、拠点２−１（第１拠点）の拠点データ５６−１と、拠点２−２（第２拠点）の拠点データ５６−２と、拠点２−３（第３拠点）の拠点データ５６−３を、同一の列ＩＤ毎に結合した例を示している。図１６と同様に、図中、斜線のフィールドは値を使用する統合先を示し、図中黒色のフィールドは、値を使用しない統合元を示す。【００６８】
図示の例では、第１拠点の拠点データ５６−１は、列ＩＤ＝３が列ＩＤ＝１に統合され、第２拠点の拠点データ５６−２は、列ＩＤ＝１が列ＩＤ＝３に統合され、第３拠点の拠点データ５６−３は、列ＩＤ＝１が列ＩＤ＝２に統合されている。【００６９】
統括サーバ１で、各拠点データ５６を結合したと仮定すると、第２拠点の拠点データ５６−２と第３拠点の拠点データ５６−３では、列ＩＤ＝１を除外して他の列に統合しているのに対し、第１拠点の拠点データ５６−１では列ＩＤ＝１を除外せずに統合先としている点が異なる。【００７０】
これに対して、第１拠点の拠点データ５６−１で、列ＩＤ＝１を列ＩＤ＝３に統合すれば、図中全拠点データ１５Ａのように、列ＩＤ＝１のデータは不要になり、各拠点２の拠点サーバ４は、列ＩＤ＝２と列ＩＤ＝３のデータを統括サーバ１へ送信すればよい。この結果、拠点サーバ４と統括サーバ１間のデータ転送量を削減できる。【００７１】
そこで、本実施例１の統括サーバ１は、第１拠点の拠点サーバ４で統合する列ＩＤの入替を指令する。すなわち、統括サーバ１は、第１拠点の拠点サーバ４に対して列ＩＤ＝１を列ＩＤ＝３へ統合するよう指令する。第１拠点の拠点サーバ４は、次回に生成する拠点データ５６−１について、統合先の列ＩＤ＝１を列ＩＤ＝３に入れ替えて、列方向のデータの統合を実施する。【００７２】
＜システムの概要＞
図１８は、分散型のデータ処理システムの機能要素の一例を示すブロック図である。拠点サーバ４は、生産ライン３のセンサ３１からセンサデータ４５を収集する。そして、管理者などの指令に応じて分析を行う際には、まず、拠点列統合部５３が分析対象のセンサデータ４５から、同一あるいは類似する列を除外してデータ量を削減した拠点データ５６を生成する。【００７３】
拠点分析部５４は、生成された拠点データ５６に対して所定の分析処理を実施して分析結果を出力する。なお、分析処理の実行は、毎週または毎月など拠点２の管理者などが定めた所定のタイミングで実施される。【００７４】
送受信部５５は、統合された列に関する情報や拠点データ５６等を統括サーバ１へ送信する。【００７５】
統括サーバ１は、各拠点２の拠点サーバ４からの拠点データ５６を収集する前に、統合する列の最適化を実施する。最適化が完了すると、統括サーバ１は、各拠点サーバ４から拠点データ５６を取得し、拠点データ５６を結合８して全拠点データ１５を生成して、統括拠点における所定の分析処理を実施する。なお、分析処理の実行は、毎週または毎月など統括拠点の管理者などが定めた所定のタイミングで実施される。【００７６】
統括サーバ１の統合済列抽出部２１は、各拠点サーバ４から統合された列の情報（拠点列統合表５８、拠点列情報表５７）を取得する（図中（１））。入替演算部２３は、抽出された列ＩＤと列優先度表２６から入れ替えが可能な列ＩＤを算出する。入替演算部２３は、拠点データ５６を結合したときに、データ量を削減可能な列ＩＤの組み合わせが存在すれば、送受信部２２から拠点サーバ４へ入替指示を送信する（２）。なお、入替指示には、複数の列ＩＤの組み合わせを含む拠点２毎の列優先度表５９を用いることができる。【００７７】
入替指示を受信した拠点サーバ４では、拠点入替判定部５２が入替指示（列優先度表５９）を参照して、統合する列ＩＤを入れ替えることが可能であるか否かを判定する。入れ替えが可能であれば、拠点入替判定部５２は拠点列統合部５３に統合先を入れ替える列ＩＤを通知する。拠点列統合部５３は、列優先度表５９を更新して次回の拠点データ５６の生成時に、入替指示を反映させる。統括サーバ１では、データ量を削減可能であれば、上記統合する列の最適化処理を繰り返して実行する。【００７８】
統括サーバ１は、最適化処理が完了すると、統括入力データ生成部２４が、各拠点サーバ４から拠点データ５６を取得し（３）、各拠点データ５６を結合して全拠点データ１５を生成する。そして、統括分析部２５は、全拠点データ１５を用いて、統括拠点で予め設定された所定の分析処理を実行する。【００７９】
以上のように、本実施例１の分散型データ処理システムでは、統括拠点の統括サーバ１は分析処理を行う前に、各拠点サーバ４で統合する列の最適化を実施して、入れ替え可能でデータ量を削減可能な列ＩＤの組み合わせを算出する。統括サーバ１はデータ量を削減可能な列ＩＤの組み合わせを拠点サーバ４に通知して、次回の拠点データ５６の生成時に統合する列ＩＤを変更させる。【００８０】
上記処理を繰り返すことで、統括サーバ１で分析処理を行う際に収集する拠点データ５６のデータ量を徐々に削減することが可能となる。なお、本実施例１では、統括サーバ１が、拠点列統合表５８等に基づいて統合する列の最適化を行った後に、各拠点サーバ４から処理対象のデータ（拠点データ５６）を収集する例を示したが、これに限定されるものではない。例えば、統括サーバ１が、最初に分析対象の拠点データ５６を収集した後に統合する列の最適化を行うようにしてもよい。【００８１】
＜処理の詳細＞
図２は、拠点サーバ４で行われる処理の一例を示すフローチャートである。この処理は、拠点２の分析処理を実行する際に開始される。なお、拠点サーバ４は、図示しない入出力装置から分析対象のセンサデータ４５が指定される。【００８２】
ステップＳ１では、拠点サーバ４のデータ収集部５１が、センサ３１からセンサデータ４５を収集して、拠点列情報表５７を生成（または更新）する。【００８３】
次に、ステップＳ２では、拠点サーバ４の拠点列統合部５３が、列優先度表５９を参照し、センサデータ４５の列毎のデータを比較して値が一致する列や、値が比例する列の組み合わせを特定し、統合（除外）対象の列ＩＤを算出する。なお、この列単位でデータを除外してデータ量を削減する処理をノードカット処理とする。本実施例のノードカット処理では、統合元（除外対象）の列を統合先（使用データ）の列へ統合する。【００８４】
また、拠点列統合部５３は、図９で示したように、統合対象の列名を拠点列情報表５７から取得して拠点列統合表５８を生成する。拠点列統合部５３は、センサデータ４５から統合元の列を削除したデータを拠点データ５６として生成する。【００８５】
ステップＳ４では、拠点データ５６を用いて拠点分析部５４が所定の分析処理を実行する。【００８６】
ステップＳ３では、送受信部５５が拠点列情報表５７のデータと、拠点列統合表５８のデータと、拠点データ５６の行数及びデータサイズを、統括サーバ１へ送信する。なお、ステップＳ３とステップＳ４の処理は非同期で行うことができる。なお、この時点では、拠点データ５６の送信は行われない。【００８７】
ステップＳ５では、送受信部５５が統括サーバ１から列の入替指示または終了通知を受信する。そして、ステップＳ６で送受信部５５は、最適化の終了通知を受信したか否かを判定する。終了通知を受信していればステップＳ１１へ進み、受信していなければステップＳ７へ進む。【００８８】
ステップＳ７では、拠点入替判定部５２が、入替指示を受け付けて列優先度表５９を参照して入れ替えが可能であるか否かを判定する。拠点入替判定部５２は、入替指示に含まれる統合先の列ＩＤと統合元の列ＩＤが、列優先度表５９の非優先列ＩＤ５９３と優先列ＩＤ５９２と一致していなければ入れ替え可能と判定し、そうでない場合には入れ替え不能と判定する。【００８９】
ステップＳ８では、拠点入替判定部５２が、判定結果が入れ替え可能であればステップＳ９へ進み、入れ替え不能であればステップＳ１０へ進む。ステップＳ９では、拠点入替判定部５２が、入替指示で指定された統合先の列ＩＤと、統合元の列ＩＤを入替リスト（図示省略）に格納する。なお、入替リストは、統合先の列ＩＤと統合元の列ＩＤの組み合わせ複数格納することができる。【００９０】
ステップＳ１０では、拠点入替判定部５２が、入替指示の列ＩＤのペアを全て処理したか否かを判定する。拠点入替判定部５２は、全ての列ＩＤのペアについて処理が完了していればステップＳ２へ戻って上記処理を繰り返し、完了していない場合にはステップＳ７へ戻って上記処理を繰り返す。【００９１】
一方、上記ステップＳ６の判定で終了通知を受信したステップＳ１１では、送受信部５５が分析の入力データとなる拠点データ５６と、更新された拠点列統合表５８のデータを統括サーバ１へ送信して処理を終了する。【００９２】
上記処理によって、拠点サーバ４では、ノードカット処理によってセンサデータ４５のデータ量を削減した拠点データ５６を生成し、データ量を削減した情報（拠点列統合表５８）と拠点データ５６の属性情報（拠点列情報表５７）とを生成し、これらのデータを統括サーバ１へ送信する。【００９３】
そして、拠点サーバ４は、統括サーバ１から入替指示を受け付けると、拠点２の列優先度表５９で指定されていない列ＩＤの組み合わせであれば、入替リストに加えて次回のノードカット処理に適用する。なお、拠点サーバ４は、入替リストの内容を列優先度表５９に追加しておく。【００９４】
このように、統合する列の最適を行っておくことで、統括サーバ１では、各拠点２から収集する拠点データ５６のデータ量を削減することが可能となる。【００９５】
図３は、拠点サーバ４の拠点列統合部５３で行われる処理の一例を示すフローチャートである。この処理は、図２のステップＳ２で行われる。【００９６】
まず、ステップＳ２１では、拠点列統合部５３が、分析対象のセンサデータ４５を取得して、正規分布などの周知の手法によって標準化する。次に、拠点列統合部５３は、標準化されたセンサデータ４５の列の数に応じてステップＳ２２〜Ｓ２７の繰り返しを実施し、さらに、標準化されたセンサデータ４５の列数−１でステップＳ２３〜Ｓ２６の繰り返しを実施する。【００９７】
ステップＳ２４では、拠点列統合部５３が、後述の２列間のノードカット処理を実施して、現在選択しているセンサデータ４５（ｉ列）を列単位で除外してｊ列に統合可能であれば、当該ｉ列を除外して拠点データ５６を生成する。なお、本実施例１では、ｉ列を除外する例を示すが、ｊ列を除外してもよく、ユーザが指定した除外ルールを適用することができる。ユーザが指定した除外ルールは、例えば、「列番号が大きい列を除外」や「データ分散値の小さい列を除外」などとすることができる。【００９８】
ステップＳ２５では、拠点列統合部５３が、現在選択しているｉ列のセンサデータ４５を除外したか否かを判定する。拠点列統合部５３が、ｉ列のセンサデータ４５を除外していればステップＳ２７へ進んで次の列（ｉ＋１）に進み、そうでない場合には次の列（ｊ＋１）の処理を実施する。【００９９】
上記処理によって、拠点列統合部５３は標準化されたセンサデータ４５のｉ列とｊ列のデータを比較して、データが一致する場合にはｉ列（またはｊ列）を除外して拠点データ５６を生成する。【０１００】
図４は、拠点サーバ４の拠点列統合部５３で行われる処理の一例を示すフローチャートである。この処理は、図３のステップＳ２４で行われる。【０１０１】
まず、ステップＳ３１では、拠点列統合部５３が、標準化されたセンサデータ４５のｉ列とｊ列で値が一致する行数を算出する。次に、ステップＳ３２では、拠点列統合部５３が、標準化されたセンサデータ４５のｉ列とｊ列で全ての行で値が一致するか否かを判定する。全ての行で値が一致していればステップＳ３３へ進み、一致していなければ処理を終了して上記図３の処理に戻る。【０１０２】
ステップＳ３３では、拠点列統合部５３が拠点２の列優先度表５９を参照して、現在のｉ列とｊ列の関係が拠点２側の列優先度表５９で指定されていれば、当該指定を選択してステップＳ３６へ進み、指定されていなければステップＳ３４へ進む。【０１０３】
ステップＳ３４では、拠点列統合部５３が統括サーバ１の列優先度表２６を参照して、現在のｉ列とｊ列の関係が統括サーバ１の列優先度表２６で指定されていれば、当該指定を選択してステップＳ３６へ進み、指定されていなければステップＳ３５へ進む。なお、統括サーバ１の列優先度表２６がシステム指定の優先度表となる。【０１０４】
ステップＳ３５では、拠点列統合部５３が拠点２のユーザ（または管理者）が指定した方法で除外する列（統合元）を決定する。【０１０５】
ステップＳ３６では、拠点列統合部５３が、上記選択された指定によって、標準化されたセンサデータ４５のｉ列のデータを削除して拠点データ５６を生成する。すなわち、拠点列統合部５３は、ｉ列のデータをｊ列に統合する。そして、拠点列統合部５３は、拠点列情報表５７を参照して列ＩＤから統合元のｉ列の列名５７２と、統合先のｊ列の列名５７２を取得し、拠点列統合表５８に追加する。また、拠点列統合部５３は、ｉ列とｊ列で値が一致した行数を拠点列統合表５８の一致行数５８４に設定する。【０１０６】
ステップＳ３７では、拠点列統合部５３が、拠点列統合表５８の統合先を参照して除外する列が含まれている場合には、除外する列の統合先を変更し、拠点列統合表５８を更新する。【０１０７】
上記処理によって、標準化されたセンサデータ４５は、ｉ列とｊ列で各行の値が一致した場合には、ｉ列をｊ列に統合してデータ量を削減した拠点データ５６を生成し、統合元のｉ列と、統合先のｊ列の関係を加えた拠点列統合表５８を生成する。【０１０８】
図５は、統括サーバ１で行われる処理の一例を示すフローチャートである。この処理は、統括サーバ１で、分析処理を実行するときに行われる。【０１０９】
ステップＳ４０では、統合済列抽出部２１が各拠点２毎の列優先度表５９を生成する。また、統合済列抽出部２１が統括拠点の列優先度表２６を生成する。列優先度表５９、２６は、各拠点２のノウハウなどに応じて予め設定されて、２つの列のうち統合先とする列と、除外する列が設定されたテーブルである。なお、各拠点の列優先度表５９については、予め設定した後に、統括サーバ１から受信した入替指示の内容をフィードバックすることができる。【０１１０】
ステップＳ４１では、送受信部２２が、各拠点２の拠点サーバ４から統合する列の情報として、拠点列情報表５７のデータと、拠点列統合表５８のデータと、拠点データ５６の行数とデータサイズを受信する。ステップＳ４２では、統合済列抽出部２１が受信した拠点２毎の統合する列の情報に基づいて、列属性情報表２８と、列統合情報表２９と、列状態表３０を生成する。【０１１１】
統合済列抽出部２１は、各拠点２の拠点列情報表５７の列ＩＤ５７１と列名５７２と列属性５７３を、それぞれ列属性情報表２８の列ＩＤ２８１と列名称２８２と列属性２８３に設定して、列属性情報表２８を生成する。【０１１２】
統合済列抽出部２１は、各拠点２の拠点列統合表５８の統合先５８２と統合元５８３と一致行数５８４と、拠点列情報表５７の列名５７２と列ＩＤ５７１から列統合情報表２９を生成する。【０１１３】
列統合情報表２９の統合済率２９２は、統合済列抽出部２１が、統合先５８２の一致行数５８４を全行数で除した１００分率（割合）を格納する。【０１１４】
また、統合済列抽出部２１は、拠点ＩＤ＝１統合情報２９３、拠点ＩＤ＝２統合情報２９４には、データの存在する列ＩＤ２９１に「１」を設定し、データの存在しない列ＩＤ２９１に「なし」を設定する。なお、図示はしないが、拠点ＩＤ＝３〜ｋについても、各列ＩＤ＝１〜ｎに対応する拠点ＩＤ＝３統合情報〜拠点ＩＤ＝ｋ統合情報が列状態表３０に含まれる。【０１１５】
統合済列抽出部２１は、各拠点２の拠点列統合表５８統合先５８２と統合元５８３と一致行数５８４と、拠点列情報表５７の列名５７２と列ＩＤ５７１から列状態表３０を生成する。列状態表３０は、列ＩＤと比較列ＩＤでデータ一致する比率を格納する。【０１１６】
ステップＳ４３では、入替演算部２３が、後述する図７のように、各拠点データ５６で統合可能な列を増やす組み合わせを選択する。そして、送受信部２２は、統合先５８２に追加可能な統合元５８３が存在すれば、該当する拠点２の列優先度表５９を更新する。【０１１７】
ステップＳ４４では、送受信部２２が入れ替え可能な列の組み合わせがあるか否かを判定する。送受信部２２は、入替演算部２３の演算結果で、入れ替え可能な列の組み合わせが存在すればステップＳ４５へ進み、存在しなければステップＳ４６に進む。【０１１８】
ステップＳ４５では、送受信部２２が、各拠点２の列優先度表５９を拠点サーバ４へ送信する。これにより、統括サーバ１は、統合する列の入れ替えを拠点サーバ４へ通知することができる。ステップＳ４５の処理の後には、ステップＳ４１へ戻って、上記処理を繰り返す。【０１１９】
一方、入れ替えの必要がないステップＳ４６では、送受信部２２が各拠点サーバ４に入れ替えの終了通知を送信する。また、送受信部２２が、統括サーバ１での分析処理に必要な拠点データ５６を該当する拠点２の拠点サーバ４へ要求する。【０１２０】
ステップＳ４７では、送受信部２２が、要求した拠点データ５６と拠点列情報表５７のデータを受信する。ステップＳ４８では、統括入力データ生成部２４が、各拠点２の拠点データ５６と、拠点列情報表５７のデータと、列属性情報表２８のデータとを突き合わせ、各拠点データ５６を結合して全拠点データ１５を生成する。【０１２１】
次に、ステップＳ４９では、統括分析部２５が、全拠点データ１５を入力として、所定の分析処理を実行する。ステップＳ５０では、統括分析部２５が、分析結果の列ＩＤを列属性情報表２８の列ＩＤ２８１に突き合わせて、分析結果の列名称２８２を取得して分析結果に付与する。【０１２２】
上記処理により、統括サーバ１は、各拠点サーバ４から受信した統合する列の情報に基づいて、統合可能な列を増大可能な列の組み合わせを算出して、統合可能な列が増大可能であれば、各拠点２の列優先度表５９を更新して統合する列を入れ替える。これにより、統括サーバ１が受信する拠点データ５６のデータ量を削減することが可能となる。【０１２３】
また、統括サーバ１は、統合可能な列を増大できなくなるまで各拠点２の列優先度表５９の更新を繰り返すことで、各拠点サーバ４で統合する列を最適化することが可能となるのである。【０１２４】
図６は、統括サーバ１の統合済列抽出部２１で行われる処理の一例を示すフローチャートである。この処理は、図５のステップＳ４２で実行される。【０１２５】
ステップＳ５１では、統合済列抽出部２１が、各拠点２の拠点列情報表５７から共通する列名５７２と列属性５７３を選択して、列統合情報表２９を生成する。統合済列抽出部２１は、列ＩＤ２８１をシーケンシャルに割り当てて、各拠点２で共通する列データの列名称２８２と列属性２８３を設定する。ステップＳ５２では、上述したように、列統合情報表２９と、列状態表３０を生成する。【０１２６】
ステップＳ５３では、統合済列抽出部２１が、列統合情報表２９に割り当てた列ＩＤ２８１の数＝ｉだけステップＳ５８までの処理を繰り返す。また、ステップＳ５４では、統合済列抽出部２１が、拠点サーバ４の数だけステップＳ５７までの処理を繰り返す。【０１２７】
ステップＳ５５では、現在選択している列ＩＤ２８１＝ｉで、現在選択している拠点データ５６で列名称２８２と列属性２８３に一致する列にデータがあるか否かを判定する。データが存在すればステップＳ５６へ進み、データがなければステップＳ５７に進む。【０１２８】
ステップＳ５６では、統合済列抽出部２１が、列ＩＤ＝ｉについて、列統合情報表２９に統合情報と統合済率２９２を設定し、列状態表３０に上述した一致率を設定する。【０１２９】
上記処理を、各拠点２の統合する列の情報について繰り返し、さらに、列ＩＤ＝ｉまで繰り返すことで、列統合情報表２９と列状態表３０が生成される。【０１３０】
図７は、統括サーバ１の入替演算部２３で行われる処理の一例を示すフローチャートである。この処理は、図５のステップＳ４３で実行される。【０１３１】
ステップＳ６１では、入替演算部２３が、列統合情報表２９の入替演算が未了の列で、かつ、統合済率２９２が最も高い列ＩＤ２９１を選択する。なお、図示はしないが、拠点列情報表５７等に、入替演算が未了か完了のいずれであるかを示すフラグやビットを設定し、入替演算部２３が処理したときに当該フラグやビットを設定すれば良い。【０１３２】
次に、ステップＳ６２では、入替演算部２３が、当該列ＩＤ２９１に統合可能な列が存在するか否かを判定する。統合可能な列が存在すればステップＳ６３へ進み、列が存在しない場合にはステップＳ６６へ進む。【０１３３】
入替演算部２３は、例えば、各拠点２の拠点列統合表５８の統合元５８３の中に、上記選択された列ＩＤ２８１が含まれる組み合わせがあれば、当該組み合わせを入れ替えが必要な列の組み合せとして選択する。図１３に示した列ＩＤ＝４を例に挙げると、統合済率が９０％で拠点ＩＤ＝１のデータが統合できていない状態を示す。そこで入替演算部２３は、拠点ＩＤ＝１の列優先度表５９を参照して、列ＩＤ＝４が他の列と統合されていないことを判定してから列の入れ替えを実施する。【０１３４】
そして、ステップＳ６３では、入替演算部２３が、当該組み合わせに対応する拠点２の列優先度表５９で、上記選択された列ＩＤ２８１の優先列ＩＤ５９２に設定し、前記選択された組み合わせの統合先５８２を非優先列ＩＤ５８３に設定して更新する。なお、当該エントリの列優先度表５９には、図示はしないが、入替命令であることを示すフラグやビットを含めるようにしても良い。【０１３５】
次に、入替演算部２３は、上記優先列ＩＤ５９２に設定した列ＩＤ２８１について、当該拠点２の拠点データ５６を入れ替えたと仮定した統合済率２９２を算出する。そして、ステップＳ６４では、入替演算部２３が、入れ替えを実施したと仮定した統合済率２９２＝１００％であるか否かを判定する。【０１３６】
換言すれば、入替演算部２３は、上記優先列ＩＤ５９２に、全ての拠点データ５６が統合されたことを判定する。全ての拠点データ５６が統合されていれば、ステップＳ６５へ進み、そうでなければ上記ステップＳ６２へ戻って上記処理を繰り返す。【０１３７】
次に、ステップＳ６５では、入替演算部２３が、入れ替えした状態を算出して列状態表３０に書き込んで、入替を実施した箇所と該当する列をロックする。これにより、当該拠点２の列状態表３０は確定される。【０１３８】
ステップＳ６６では、入替演算部２３が、列統合情報表２９を検索して統合済率２９２が０％を超え、かつ、入替演算が未了の列が存在するか否かを判定する。すなわち、入替演算部２３は、他の列に統合されてはいるが、入替演算が未了の拠点データ５６が存在するか否かを判定する。【０１３９】
入替演算部２３は、他の列に統合されて、かつ、入替演算が未了の拠点データ５６が存在すれば上記ステップＳ６１へ戻って上記処理を繰り返し、存在しなければ当該処理を終了し、図５の処理へ戻る。【０１４０】
上記処理を行うことで、入替演算部２３は、入れ替え可能な列を検出して、拠点２毎の列優先度表５９を更新することで、各拠点サーバ４へ統合対象の列を入れ替える指令を出力することができる。【０１４１】
以上、本実施例１によれば、統括拠点の統括サーバ１は各拠点２から収集した統合する列の情報に基づいて、拠点データ５６を結合した場合に、削減可能なデータの列の組み合わせを検出して各拠点２へ通知することで、各拠点２の統計処理を最適化して、かつ、統括拠点の統括サーバ１で収集する拠点データ５６のデータ量を削減することが可能となる。【０１４２】
なお、上記実施例１では、統括サーバ１の入替演算部２３で、統合可能な列数が増大する列の組み合わせ（結合後の拠点データ５６（全拠点データ１５）の列数が最小）がなくなってから、拠点データ５６を結合した全拠点データ１５を生成する例を示したが、これに限定されるものではない。例えば、統括サーバ１は、統合可能な列数が増大する列の組み合わせを入替指示として、拠点サーバ４へ送信した後、現在受信している拠点データ５６を結合して全拠点データ１５を生成して、統括分析部２５に分析を実施させても良い。そして、統括サーバ１は、入替指示を反映した拠点データ５６を次回の分析に用いるようにすることができる。【０１４３】
また、上記実施例１では、統合可能な列数が増大する列の組み合わせを列優先度表５９に含めて拠点サーバ４へ送信する例を示したが、これに限定されるものではない。例えば、統括サーバ１は、統合可能な列数が増大する列の組み合わせを入替指示として拠点サーバ４へ送信することができる。
【実施例２】
【０１４４】
図１９〜図２３は、本発明の実施例２を示す。前記実施例１では図７のステップＳ６４で示したように、全ての行が一致した場合に統合元の列を除外して統合先の列を利用する例を示したが、本実施例２では閾値以上の一致率で、統合元の列を統合先の列へ統合するものである。なお、その他の構成は前記実施例１と同様である。【０１４５】
図１９は実施例２を示し、拠点サーバ４で行われる処理の一例を示すフローチャートである。本実施例２では、前記実施例１の図２の処理において、ステップＳ３をステップＳ３Ａに置き換えたもので、その他の処理は前記実施例１の図２と同様である。【０１４６】
ステップＳ３Ａでは、送受信部５５が拠点列情報表５７のデータと、拠点列統合表５８のデータと、拠点データ５６の行数とデータサイズに加えて、拠点データ５６の列数を統括サーバ１へ送信する点が、前記実施例１と異なる。【０１４７】
図２０は、統括サーバ１で行われる処理の一例を示すフローチャートである。本実施例２では、前記実施例１の図５の処理において、ステップＳ４１の後にステップＳ４０１を追加したもので、その他の処理は前記実施例１の図５と同様である。【０１４８】
ステップＳ４０１では、統括サーバ１の送受信部２２が、拠点データの列数や行数やデータサイズの情報を受信して拠点サーバ情報表２７に設定する。このため、図２２で示すように拠点サーバ情報表２７にはデータ列数２７６のフィールドが追加され、拠点データ５６の列数が格納される。【０１４９】
図２１は、統括サーバ１の入替演算部２３で行われる処理の一例を示すフローチャートである。本実施例２では、前記実施例１の図７のステップＳ６４をステップＳ６４Ａに変更したもので、その他の処理は前記実施例１の図７と同様である。【０１５０】
ステップＳ６４では、入替演算部２３が、入れ替えを実施したと仮定した統合済率２９２が所定の閾値（例えば、７０％）以上であるか否かを判定する。換言すれば、入替演算部２３は、上記優先列ＩＤ５９２に、拠点データ５６で閾値以上の行が統合されたことを判定する。閾値以上の行が統合されていれば、ステップＳ６５へ進み、そうでなければ上記ステップＳ６２へ戻って上記処理を繰り返す。【０１５１】
図２３は、統括サーバ１の全拠点データ１５と分析結果の一例を示す図である。本実施例２では、統合元の列ＩＤ＝１と列ＩＤ＝３の統合先の一致率が８０％の例を示す。【０１５２】
本実施例２では、統合先と統合元の列ＩＤで、行の一致率は閾値以上であれば良いので、分析結果に一致率を表示することで、分析ごとに列ＩＤと一致率の推移を観察することで、経年劣化や異常検知に活用することができる。
【実施例３】
【０１５３】
図２４〜図２５、図２７は、本発明の実施例３を示す。本実施例３では、拠点分析部５４と統括分析部２５でデータ圧縮と主成分分析（ＰＣＡ：Principal Component Analysis）を実施する。なお、その他の構成は前記実施例１と同様である。なお、本実施例３のデータ圧縮としては、前記特許文献２のグラフ化によってデータ圧縮を行う技術（以下、エッジカット処理）を適用する例を示す。【０１５４】
図２４は、拠点サーバ４で行われる処理の一例を示すフローチャートである。本実施例２では、前記実施例１の図２の処理において、ステップＳ４をステップＳ４Ａに置き換えたもので、その他の処理は前記実施例１の図２と同様である。【０１５５】
ステップＳ４Ａでは、拠点分析部５４が拠点データ５６にエッジカット処理によるデータ圧縮を行ってから主成分分析を行う。【０１５６】
図２５は、統括サーバ１で行われる処理の一例を示すフローチャートである。本実施例３では、前記実施例１の図５の処理において、ステップＳ４９をステップＳ４９Ａに置き換えたもので、その他の処理は前記実施例１の図５と同様である。【０１５７】
ステップＳ４９Ａでは、統括分析部２５が、全拠点データ１５にエッジカット処理によるデータ圧縮を行ってから主成分分析を行う。【０１５８】
図２６は、従来例を示し、エッジカット処理を適用した主成分分析の一例を示す図である。エッジカット処理は目標処理時間を受け付けて、低相関のデータを除外していく技術である。ここで、処理対象の全拠点データ１５に、相関が大きい指標が多くある場合、エッジカット処理の閾値が大きくなるなど、計算誤差が大きくなり、相関行列１５２では、本来の関係性が見えなくなってしまう場合があった。【０１５９】
図２７は、本実施例３を示し、エッジカット処理を適用する前に、ノードカット処理を実施する例を示す図である。本実施例３では、前記実施例１と同様にノードカット処理を実施して、全拠点データ１５（拠点２では拠点データ５６）を生成する。【０１６０】
そして、本実施例３では、統括サーバ１が、ノードカット処理を行った全拠点データ１５から相関行列１５３を生成し、この相関行列１５２に対してエッジカット処理を実行し、相関行列１５４を得る。これにより、エッジカット処理における閾値の上昇を抑制して、計算誤差を抑制することができるのである。
【実施例４】
【０１６１】
図２８、図３０は、本発明の実施例４を示す。本実施例４では、前記実施例３の処理に、統合元の列の名称を分析結果に付加するようにしたものである。なお、その他の構成は前記実施例３と同様である。【０１６２】
図２８は、統括サーバ１で行われる処理の一例を示すフローチャートである。本実施例４では、前記実施例１の図５の処理において、ステップＳ５０をステップＳ５０Ａに置き換えたもので、その他の処理は前記実施例１の図５と同様である。【０１６３】
ステップＳ５０Ａでは、統括分析部２５が、分析結果の列ＩＤを列属性情報表２８の列ＩＤ２８１に突き合わせて、分析結果の列名称２８２を取得して分析結果に付与する。さらに、統括分析部２５は、分析結果の列ＩＤと列統合情報表２９の列ＩＤを突き合わせて、統合元の列ＩＤを取得し、列属性情報表２８から統合元の列名称２８２を取得して分析結果に付与する。【０１６４】
図２９は、統括サーバ１が出力する分析結果の一例を示す図である。本実施例４では、分析結果に列の名称と、統合元の列の名称が併記されるため、元の列データ間の相関関係がわかりやすくなる、という利点がある。【０１６５】
＜まとめ＞
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、又は置換のいずれもが、単独で、又は組み合わせても適用可能である。【０１６６】
また、上記の各構成、機能、処理部、及び処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。【０１６７】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【図１】
0006546704.tif 000002
【図２】
0006546704.tif 000003
【図３】
0006546704.tif 000004
【図４】
0006546704.tif 000005
【図５】
0006546704.tif 000006
【図６】
0006546704.tif 000007
【図７】
0006546704.tif 000008
【図８】
0006546704.tif 000009
【図９】
0006546704.tif 000010
【図１０】
0006546704.tif 000011
【図１１】
0006546704.tif 000012
【図１２】
0006546704.tif 000013
【図１３】
0006546704.tif 000014
【図１４】
0006546704.tif 000015
【図１５】
0006546704.tif 000016
【図１６】
0006546704.tif 000017
【図１７】
0006546704.tif 000018
【図１８】
0006546704.tif 000019
【図１９】
0006546704.tif 000020
【図２０】
0006546704.tif 000021
【図２１】
0006546704.tif 000022
【図２２】
0006546704.tif 000023
【図２３】
0006546704.tif 000024
【図２４】
0006546704.tif 000025
【図２５】
0006546704.tif 000026
【図２６】
0006546704.tif 000027
【図２７】
0006546704.tif 000028
【図２８】
0006546704.tif 000029
【図２９】
0006546704.tif 000030
【図３０】
0006546704.tif 000031