(57)【要約】【課題】ＩＭＤＢ上に保持されたトランザクションデータを直接取得するとともに、必要に応じてトランザクションデータに対するデータクレンジングを可能とする。【解決手段】ＩＭＤＢ１１０を有するデータソースサーバ１００と、ＩＭＤＢ１１０に対してクエリを実行して分析結果を分析者端末４００に出力する分析処理サーバ３００とを有し、さらにクエリの対象となる元データについて不正値を検出して処理を行う不正値処理サーバ２００を有し、不正値処理サーバ２００は、元データに含まれる各データと分析結果に含まれる各データ項目との対応関係を把握するためのテーブルを作成する初期設定部２１０と、不正値の検出の処理要求をユーザから受けて、元データから不正値を有する第１のデータを検出し、対応する分析結果に含まれる第１のデータ項目を特定して、分析結果に対して不正値を有する旨を表示する不正値検出部２２０とを有する。【選択図】図１
2016062289.tif 000002
【特許請求の範囲】
【請求項１】
分析対象データを保持するインメモリデータベースを有するデータソースサーバと、
分析者端末からの要求を受けて前記インメモリデータベースに対してクエリを実行して前記分析対象データの分析を行い、分析結果を前記分析者端末に出力する分析処理サーバと、を有し、
前記分析対象データに対するデータクレンジングを行うデータクレンジングシステムであって、
さらに、前記分析対象データのうち、前記分析処理サーバが行う前記クエリの対象となる元データについて、不正値を検出してこれに対する処理を行う不正値処理サーバを有し、
前記不正値処理サーバは、
前記インメモリデータベースから前記元データを取得し、前記元データに含まれる各データと、前記分析処理サーバが出力する前記分析結果に含まれる各データ項目との対応関係を把握するための１つ以上のテーブルを作成する初期設定部と、
前記分析者端末に出力された前記分析結果に対する不正値の検出の処理要求を前記分析者端末を介してユーザから受けて、前記元データから不正値を有する第１のデータを検出し、前記各テーブルを参照して、前記第１のデータに対応する、前記分析結果に含まれる第１のデータ項目を特定して、前記分析者端末に表示されている前記分析結果に対して、前記第１のデータ項目が不正値を有する旨を表示する不正値検出部と、を有する、データクレンジングシステム。
【請求項２】
請求項１に記載のデータクレンジングシステムにおいて、
前記不正値処理サーバは、さらに、前記分析者端末に表示された前記第１のデータ項目に対する不正値の処理要求を前記分析者端末を介してユーザから受けて、前記各テーブルを参照して、前記第１のデータ項目に対応する前記第１のデータを特定し、前記第１のデータを含む前記元データのレコードを抽出して前記分析者端末に表示し、前記レコードに対する処理方法の指示を前記分析者端末を介してユーザから受けて、前記レコードに対して前記処理方法に基づいて処理を行い、これを反映させた前記元データに基づいて前記クエリの結果を再作成して前記分析処理サーバへ出力する不正値処理部を有する、データクレンジングシステム。
【請求項３】
請求項１に記載のデータクレンジングシステムにおいて、
前記テーブルは、
前記分析結果における表値および表軸と、前記分析対象データに対して定義されている軸の要素と、の対応関係を保持するテーブルと、
前記元データのレコードと、前記軸と、の対応関係を保持するテーブルと、を少なくとも含む、データクレンジングシステム。
【請求項４】
分析対象データを保持するインメモリデータベースを有するデータソースサーバと、
分析者端末からの要求を受けて前記インメモリデータベースに対してクエリを実行して前記分析対象データの分析を行い、分析結果を前記分析者端末に出力する分析処理サーバと、を有し、
前記分析対象データに対するデータクレンジングを行うデータクレンジングシステムにおいて、
前記分析対象データのうち、前記分析処理サーバが行う前記クエリの対象となる元データについて、不正値を検出してこれに対する処理を行う不正値処理サーバとして機能するよう、コンピュータに処理を実行させるデータクレンジングプログラムであって、
前記コンピュータに、
前記インメモリデータベースから前記元データを取得し、前記元データに含まれる各データと、前記分析処理サーバが出力する前記分析結果に含まれる各データ項目との対応関係を把握するための１つ以上のテーブルを作成する初期設定処理と、
前記分析者端末に出力された前記分析結果に対する不正値の検出の処理要求を前記分析者端末を介してユーザから受けて、前記元データから不正値を有する第１のデータを検出し、前記各テーブルを参照して、前記第１のデータに対応する、前記分析結果に含まれる第１のデータ項目を特定して、前記分析者端末に表示されている前記分析結果に対して、前記第１のデータ項目が不正値を有する旨を表示する不正値検出処理と、を実行させる、データクレンジングプログラム。
【請求項５】
請求項４に記載のデータクレンジングプログラムにおいて、
さらに、前記コンピュータに、前記分析者端末に表示された前記第１のデータ項目に対する不正値の処理要求を前記分析者端末を介してユーザから受けて、前記各テーブルを参照して、前記第１のデータ項目に対応する前記第１のデータを特定し、前記第１のデータを含む前記元データのレコードを抽出して前記分析者端末に表示し、前記レコードに対する処理方法の指示を前記分析者端末を介してユーザから受けて、前記レコードに対して前記処理方法に基づいて処理を行い、これを反映させた前記元データに基づいて前記クエリの結果を再作成して前記分析処理サーバへ出力する不正値処理を実行させる、データクレンジングプログラム。
【請求項６】
請求項４に記載のデータクレンジングプログラムにおいて、
前記初期設定処理は、前記テーブルとして、
前記分析結果における表値および表軸と、前記分析対象データに対して定義されている軸の要素と、の対応関係を保持するテーブルと、
前記元データのレコードと、前記軸と、の対応関係を保持するテーブルと、を少なくとも作成する、データクレンジングプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、トランザクションデータに基づいて分析や帳票作成を行う際の技術に関し、特に、インメモリデータベース技術により構築されたトランザクションデータからデータを直接取得する際に用いるデータクレンジングシステムおよびデータクレンジングプログラムに適用して有効な技術に関するものである。
【背景技術】
【０００２】
業務システム等によって大量に蓄積されるトランザクションデータに基づいて、各種の分析を行ったり帳票作成を行ったりする場合は多い。従来は、トランザクションデータからデータウェアハウス（ＤＷＨ）と呼ばれる分析用・帳票作成用のデータセットを作成して、分析や帳票作成を行っていた。ＤＷＨは、バッチ処理などにより作成されるが、その際、プログラムによる処理により、作成途中でデータクレンジングが行われている。データクレンジングとは、トランザクションデータ内の生データに対して重複や誤記、表記の揺れなどを削除・修正したり正規化したりするなどして、分析等に用いることができるように整備する処理である。
【０００３】
これに対し、例えば、特開２００５−３２１８４９号公報（特許文献１）には、ＤＷＨに格納される前の未確定データを基幹系データベースからサーバに収集して、一旦ＸＭＬ（eXtensible Markup Language）ファイルに変換し、これらのファイルからＤＷＨ内のテーブルと同形式の仮想テーブルを作成して、この仮想テーブルを対象として集計などの各種加工を行う技術が記載されている。これにより、ＤＷＨにまだ取り込まれておらず正規化やクレンジングの済んでいない未確定データであっても、ＤＷＨ内の確定データと同様にＯＬＡＰ（OnLine Analytical Processing）によるリアルタイムでのデータ分析を可能とするとされている。
【０００４】
一方で、昨今ではインメモリ技術が進展および普及してきており、これを用いたインメモリデータベース（ＩＭＤＢ）では、メモリ上でデータアクセスを行うことで高速処理を実現することができる。そこで、ＩＭＤＢをトランザクションデータの分析・帳票作成の仕組みに用いることが検討されている。
【０００５】
例えば、特開２０１３−２４６８３５号公報（特許文献２）には、ＩＭＤＢシステムによって、ＤＷＨによって記憶されている第１のデータにアクセスすることに対応する第１のデータモデルを記憶するステップと、第２のデータを記憶するステップと、第１のデータモデルを、第２のデータにアクセスすることに対応する第２のデータモデルに変換するステップと、第２のデータモデルに従い第２のデータを出力するステップとを有することで、ＩＭＤＢからデータを出力する技術が記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−３２１８４９号公報
【特許文献２】特開２０１３−２４６８３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
分析・帳票作成の仕組みにＩＭＤＢを利用するに際して、例えば、特許文献２に記載されているように、既に作成されているＤＷＨをＩＭＤＢに変換するのではなく、ＤＷＨを作成せずに、ＩＭＤＢ上に保持されたトランザクションデータに直接アクセスして分析や帳票作成を行うことで、さらに効率化・高速化を図ることが考えられる。しかしながら、この場合、従来ＤＷＨの作成時に行っていたデータクレンジングが行われず、生データを直接アクセスすることになるため、不正なデータによる不正確な結果を表示したり、データの型の不正により計算処理がエラーとなったりする場合があるなどの課題を有する。この点は、データクレンジングが行われていない未確定データをアクセス可能とする特許文献１の技術でも同様である。
【０００８】
これに対し、ＩＭＤＢ上でトランザクションデータを保持し、メモリ上でデータクレンジングを行って分析用のＤＷＨを作成するというような技術も存在するが、この場合、分析・帳票作成の処理の際にデータクレンジングの処理が必ず行われることになり、処理負荷が高くなるとともに処理時間も要し、ＩＭＤＢを用いる利点を十分に活かすことができない場合が生じ得る。
【０００９】
そこで本発明の目的は、分析や帳票作成の処理の際に、ＩＭＤＢ上に保持されたトランザクションデータ等の分析対象データを直接取得するとともに、必要に応じてトランザクションデータに対するデータクレンジングを可能とするデータクレンジングシステムおよびデータクレンジングプログラムを提供することにある。
【００１０】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
【００１２】
本発明の代表的な実施の形態によるデータクレンジングシステムは、分析対象データを保持するインメモリデータベースを有するデータソースサーバと、分析者端末からの要求を受けて前記インメモリデータベースに対してクエリを実行して前記分析対象データの分析を行い、分析結果を前記分析者端末に出力する分析処理サーバと、を有し、前記分析対象データに対するデータクレンジングを行うデータクレンジングシステムであって、以下の特徴を有するものである。
【００１３】
すなわち、データクレンジングシステムは、さらに、前記分析対象データのうち、前記分析処理サーバが行う前記クエリの対象となる元データについて、不正値を検出してこれに対する処理を行う不正値処理サーバを有し、前記不正値処理サーバは、前記インメモリデータベースから前記元データを取得し、前記元データに含まれる各データと、前記分析処理サーバが出力する前記分析結果に含まれる各データ項目との対応関係を把握するための１つ以上のテーブルを作成する初期設定部を有する。
【００１４】
また、前記分析者端末に出力された前記分析結果に対する不正値の検出の処理要求を前記分析者端末を介してユーザから受けて、前記元データから不正値を有する第１のデータを検出し、前記各テーブルを参照して、前記第１のデータに対応する、前記分析結果に含まれる第１のデータ項目を特定して、前記分析者端末に表示されている前記分析結果に対して、前記第１のデータ項目が不正値を有する旨を表示する不正値検出部と、を有する。
【００１５】
また、本発明は、上記のようなデータクレンジングシステムにおける不正値処理サーバとして機能するよう、コンピュータに処理を実行させるデータクレンジングプログラムにも適用することができる。
【発明の効果】
【００１６】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００１７】
すなわち、本発明の代表的な実施の形態によれば、分析や帳票作成の処理の際に、ＩＭＤＢ上に保持されたトランザクションデータ等の分析対象データを直接取得するとともに、必要に応じてトランザクションデータに対するデータクレンジングを行うことが可能となる。これにより、インメモリデータベース技術によるリアルタイム性の向上と、不正値検知による正確性の担保とを両立させ、トランザクションデータの分析や帳票作成を効率的かつ正確に実施することが可能となる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施の形態であるデータクレンジングシステムの構成例について概要を示した図である。
【図２】本発明の一実施の形態における分析や帳票作成処理の全体の流れの例について概要を示したフローチャートである。
【図３】本発明の一実施の形態におけるクエリ結果元データＴＢのデータ構成と具体的なデータの例について概要を示した図である。
【図４】（ａ）〜（ｃ）は、本発明の一実施の形態における分析や帳票作成の処理結果のデータの具体例について概要を示した図である。
【図５】本発明の一実施の形態における初期設定処理の流れの例について概要を示したフローチャートである。
【図６】本発明の一実施の形態におけるクエリ結果元データＴＢの各レコードに対して元データＩＤの項目を追加して値を付与した状態を示した図である。
【図７】本発明の一実施の形態におけるフィールドマスタＴＢのデータ構成と具体的なデータの例について概要を示した図である。
【図８】本発明の一実施の形態における軸マスタＴＢ（全体）のデータ構成と具体的なデータの例について概要を示した図である。
【図９】本発明の一実施の形態における軸要素マスタＴＢ（ユーザ）のデータ構成と具体的なデータの例について概要を示した図である。
【図１０】本発明の一実施の形態におけ軸要素マスタＴＢ（性別）のデータ構成と具体的なデータの例について概要を示した図である。
【図１１】本発明の一実施の形態における軸要素マスタＴＢ（日）のデータ構成と具体的なデータの例について概要を示した図である。
【図１２】本発明の一実施の形態における軸要素マスタＴＢ（月）のデータ構成と具体的なデータの例について概要を示した図である。
【図１３】本発明の一実施の形態における軸要素マスタＴＢ（年）のデータ構成と具体的なデータの例について概要を示した図である。
【図１４】本発明の一実施の形態における軸要素マスタＴＢ（年代）のデータ構成と具体的なデータの例について概要を示した図である。
【図１５】本発明の一実施の形態における元データ・軸対応ＴＢのデータ構成と具体的なデータの例について概要を示した図である。
【図１６】本発明の一実施の形態における表値管理ＴＢのデータ構成と具体的なデータの例について概要を示した図である。
【図１７】本発明の一実施の形態における分析結果対応関係ＴＢのデータ構成と具体的なデータの例について概要を示した図である。
【図１８】本発明の一実施の形態における不正値検出処理の流れの例について概要を示したフローチャートである。
【図１９】本発明の一実施の形態における不正値検出プログラム管理ＴＢのデータ構成と具体的なデータの例について概要を示した図である。
【図２０】本発明の一実施の形態における不正値管理ＴＢのデータ構成と具体的なデータの例について概要を示した図である。
【図２１】本発明の一実施の形態における不正値項目表示処理の流れの例について概要を示したフローチャートである。
【図２２】本発明の一実施の形態における不正値処理の流れの例について概要を示したフローチャートである。
【発明を実施するための形態】
【００１９】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００２０】
本発明の一実施の形態であるデータクレンジングシステムは、ＩＭＤＢ上に保持されたトランザクションデータに直接アクセスして分析や帳票作成を行う構成において、必要に応じて、直接アクセスとは非同期で不正値に対するデータクレンジングを行う不正値処理機能を有する。具体的には、トラウザクションデータに直接アクセスして分析や帳票作成を行う際に、別途、必要なクエリによりトランザクションデータから直接取得した元データ（トランザクションデータ全体から選択して取得したデータ）の各データと、分析結果や帳票内の各データとの対応関係の情報を保持しておく。
【００２１】
そして、トランザクションデータのスキーマやデータの妥当な値など、トランザクションデータの特性が既知である場合に、これに基づいて元データの中から不正値を検出し、既に作成されている対応関係の情報に基づいて分析結果や帳票における対応する項目を特定するとともに、当該項目について不正値が混在していることを表示してユーザに通知する。ユーザが当該項目を指定すると、不正値が含まれるトランザクションデータを表示し、ユーザからの処理方法の指示を受けて不正値を含むトランザクションデータを処理することでデータクレンジングを行う。そして、処理結果を分析結果や帳票に反映させる。
【００２２】
これにより、インメモリデータベース技術によるリアルタイム性の向上と、不正値検知による正確性の担保とを両立させ、トランザクションデータの分析や帳票作成を効率的かつ正確に実施することを可能とする。
【００２３】
＜システム構成＞
図１は、本発明の一実施の形態であるデータクレンジングシステムの構成例について概要を示した図である。データクレンジングシステム１は、例えば、トランザクションデータを保持するデータソースサーバ１００と、分析者端末４００からの要求に基づいてトランザクションデータを利用して分析や帳票作成などの処理を行う分析処理サーバ３００、およびトランザクションデータの不正値に対してデータクレンジングを行う不正値処理サーバ２００が、図示しないネットワークにそれぞれ接続されている構成を有する。
【００２４】
データソースサーバ１００は、例えば、サーバ機器やクラウドコンピューティング環境上の仮想サーバなどにより構成されるサーバシステムであり、図示しないＯＳ（Operating System）や、インメモリデータベースの管理機能を有するＤＢＭＳ（DataBase Management System）などのミドルウェアを有するとともに、メインメモリ上にトランザクションデータを保持するインメモリデータベース（ＩＭＤＢ）１１０を有している。ＩＭＤＢ１１０は、全てのトランザクションデータを保持するトランザクション（ＴＲＸ）元データテーブル（ＴＢ）１２１を有するとともに、これに対してＯＬＡＰにより分析等を行うためのキューブ１２２が予め定義されている。キューブ１２２には、分析等の際に用いられる軸（切り口）の情報を保持するビューである軸情報ビュー１２３が含まれている。
【００２５】
分析処理サーバ３００は、同様に、例えば、サーバ機器やクラウドコンピューティング環境上の仮想サーバなどにより構成されるサーバシステムであり、図示しないＯＳやＤＢＭＳなどのミドルウェア上で稼働するソフトウェアとして実装される分析処理部３１０を有する。分析処理部３１０は、分析者端末４００からの要求を受け付けて、データソースサーバ１００のＴＲＸ元データＴＢ１２１（もしくはキューブ１２２）に直接アクセスしてクエリを行って得たデータをクエリ結果ＴＢ３２１に保持するとともに、これに基づいて分析処理や帳票作成処理などを行って分析結果や帳票等を出力するアプリケーション機能を有する。
【００２６】
従って、分析や帳票作成等の業務を行うユーザは、ＰＣ（Personal Computer）等の情報処理端末からなる分析者端末４００を用いて分析処理サーバ３００にアクセスすることで、データソースサーバ１００のＩＭＤＢ１１０上に保持されているトランザクションデータ（もしくはキューブ１２２）に直接アクセスして、高いリアルタイム性のもとで分析や帳票作成などの処理を行うことができる。
【００２７】
しかしながら、この場合、上述したように、ＩＭＤＢ１１０上のトランザクションデータはデータクレンジングが行われていない生データであり、不正なデータが含まれている場合もある。従って、分析処理サーバ３００での分析や帳票作成の結果として、分析者端末４００上に不正確な結果を表示したり、データの型の不正により計算処理がエラーとなったりする場合が生じ得る。
【００２８】
そこで、本実施の形態では、不正値処理サーバ２００により、上記の直接アクセスによる分析や帳票作成とは非同期に、上記のような不正値に対してデータクレンジングの処理を施すことによって、正しいデータによってクエリ結果を再作成することを可能とする。
【００２９】
不正値処理サーバ２００も同様に、例えば、サーバ機器やクラウドコンピューティング環境上の仮想サーバなどにより構成されるサーバシステムであり、図示しないＯＳやＤＢＭＳなどのミドルウェア上で稼働するソフトウェアとして実装される初期設定部２１０、不正値検出部２２０、および不正値処理部２３０などの各部を有する。また、データベース等により実装されるクエリ結果元データＴＢ２４１、フィールドマスタＴＢ２４２、軸マスタＴＢ２４３、元データ・軸対応ＴＢ２４４、表値管理ＴＢ２４５、分析結果対応関係ＴＢ２４６、不正値検出プログラム管理ＴＢ２４７、不正値管理ＴＢ２４８、および再作成クエリ結果ＴＢ２４９などの各テーブルを有する。
【００３０】
初期設定部２１０は、不正値に対するデータクレンジングに先立って、ＩＭＤＢ１１０のＴＲＸ元データＴＢ１２１や軸情報ビュー１２３などに基づいて、初期設定として各テーブルのデータの整備を行う機能を有する。初期設定部２１０により整備されるテーブルは、クエリ結果元データＴＢ２４１、フィールドマスタＴＢ２４２、軸マスタＴＢ２４３、元データ・軸対応ＴＢ２４４、表値管理ＴＢ２４５、および分析結果対応関係ＴＢ２４６である。
【００３１】
ここで、クエリ結果元データＴＢ２４１は、ＩＭＤＢ１１０のＴＲＸ元データＴＢ１２１のうち、分析処理サーバ３００の分析処理部３１０が行ったクエリの対象となったデータ、すなわち、分析や帳票作成の対象となった元データを抽出したものである。また、分析結果対応関係ＴＢ２４６と元データ・軸対応ＴＢ２４４および軸マスタＴＢ２４３は、元データに含まれる各データと、分析処理サーバ３００の分析処理部３１０が作成する分析結果の表や帳票の各データ項目との対応関係の情報を保持するものである。これらのテーブルに基づいて、元データに含まれる不正値から、分析結果の表や帳票における対応する項目を特定する、もしくはその逆を行うことができる。初期設定部２１０による処理の詳細や各テーブルの内容については後述する。
【００３２】
不正値検出部２２０は、クエリ結果元データＴＢ２４１に保持された元データについて不正値か否かを判定して不正値を含む元データを検出し、分析結果の表や帳票において当該不正値が含まれる項目を特定して、分析者端末４００上に表示させる機能を有する。各データが不正値か否かを判別する手法は、特に限定されないが、例えば、データタイプ毎に、公知のロジックや手法を用いて判別するプログラムを保持しておき、元データの内容に応じて対応するプログラムを実行して検出する、というような手法をとることができる。
【００３３】
不正値処理部２３０は、分析結果や帳票において不正値が含まれる項目に対して、分析者端末４００を介してユーザから処理方法についての指示と処理要求を受けた場合に、その内容に基づいて不正値を処理してデータクレンジングを行い、クエリ結果を再作成して再作成クエリ結果ＴＢ２４９を作成する機能を有する。再作成クエリ結果ＴＢ２４９は、例えば、分析処理サーバ３００に送信され、分析処理部３１０により、これに基づいて分析結果や帳票が再作成される。これにより、ユーザからの処理方法の指示に基づいて行われたデータクレンジングの結果が分析結果の表や帳票に反映される。
【００３４】
なお、図１の構成例では、データソースサーバ１００、分析処理サーバ３００、および不正値処理サーバ２００をそれぞれ異なるサーバシステムとして構成しているが、これらは、例えば、それぞれ異なる筐体のサーバ機器上に構成してもよいし、同一のサーバ機器上に構築された複数の仮想サーバ上に構成されていてもよい。また、サーバ機器に限らず、全部または一部のサーバシステムの機能をＰＣ等の情報処理装置上に構成することも可能である。また、不正値処理サーバ２００上の各テーブルの全部または一部がＩＭＤＢ１１０上に保持される構成であってもよく、システムの規模やコスト、要求仕様などに応じて、各部の配置等は柔軟に構成することが可能である。
【００３５】
＜処理の流れ（全体）＞
図２は、データクレンジングシステム１による分析や帳票作成処理の全体の流れの例について概要を示したフローチャートである。分析や帳票作成の処理を開始すると、まず、分析処理サーバ３００の分析処理部３１０は、分析者端末４００を介したユーザからの要求に基づいて、ＩＭＤＢ１１０に対して必要なクエリを要求する（Ｓ０１）。ＩＭＤＢ１１０では、ＴＲＸ元データＴＢ１２１（もしくはキューブ１２２）に対して要求されたクエリを実行し、クエリ結果を分析処理サーバ３００に応答する（Ｓ０２）。
【００３６】
一方で、これと並行して、ＩＭＤＢ１１０（もしくはデータソースサーバ１００）は、ステップＳ０２でのクエリの対象となったＴＲＸ元データＴＢ１２１のデータを抽出して、即時にもしくは不正値処理サーバ２００からの要求に応じて、これを不正値処理サーバ２００へ送信する（Ｓ０３）。不正値処理サーバ２００では、取得した元データをクエリ結果元データＴＢ２４１に保持する。
【００３７】
図３は、クエリ結果元データＴＢ２４１のデータ構成と具体的なデータの例について概要を示した図である。ここでは、店舗での販売記録を保持するＴＲＸ元データＴＢ１２１から“購入日”が“２０１４／１／２”〜“２０１４／１／４”のデータを抽出した場合の例を示している。なお、図３の例では、太線枠で示す上から５行目のレコードおよび上から９行目のレコードにおいて、それぞれ、“金額”の項目および“年齢”の項目に値が保持されておらず、不正値となっていることを示している。
【００３８】
図２に戻り、その後、不正値処理サーバ２００では、初期設定部２１０により各種テーブルを整備するなどの初期設定処理を行う（Ｓ１０）。初期設定処理の内容については後述する。
【００３９】
ステップＳ０２によるクエリ結果を取得した分析処理サーバ３００の分析処理部３１０では、クエリ結果に基づいて、分析結果として表示するための加工・整形や集計等の処理を行ったり、帳票の作成を行ったりした上で、分析者端末４００に対して処理結果を表示する（Ｓ０４）。図４（ａ）は、上記の処理により分析者端末４００に表示される分析や帳票作成の処理結果のデータの具体例について概要を示した図である。ここでは、クエリ結果（元データは図３に示したクエリ結果元データＴＢ２４１と同内容）を集計・分析した結果の具体例を示している。表示された各項目のデータには、不正値が含まれるために表示内容が不正であるものが含まれている可能性がある。
【００４０】
そこで、図２に戻り、ユーザは、表示された内容に対して、分析者端末４００を介して不正値に対する処理を行うよう要求することができる（Ｓ０５）。例えば、ユーザは、分析者端末４００の画面上に表示された処理要求ボタンを押下するなどの処理により、不正値処理サーバ２００に対して不正値の処理、すなわちデータクレンジングを要求することができる。
【００４１】
不正値処理の要求を受けた不正値処理サーバ２００では、不正値検出部２２０により、ステップＳ０３で取得した元データ（クエリ結果元データＴＢ２４１）に含まれている不正値を検出し、不正値の情報を不正値管理ＴＢ２４８に出力する不正値検出処理を行う（Ｓ２０）。不正値検出処理の内容については後述する。
【００４２】
不正値検出部２２０は、その後、不正値管理ＴＢ２４８に記録された不正値について、これに対応する分析結果の表や帳票の項目が識別可能となるように分析者端末４００上に表示する不正値項目表示処理を行う（Ｓ３０）。不正値項目表示処理の内容については後述する。図４（ｂ）は、図４（ａ）のデータに対して、不正値項目表示処理によって不正値が検出された項目（図４の例では太線枠で示す“２０１４／１／３”の各データ項目）が強調表示されている状態を示している。
【００４３】
図２に戻り、不正値を含むものとして識別表示された各項目に対して、ユーザは、不正値に対する処理を指示するため、分析者端末４００を介して、不正値を含む項目を選択・特定して、不正値の処理を要求する（Ｓ０６）。
【００４４】
不正値の処理要求を受けた不正値処理サーバ２００では、不正値処理部２３０により、指定された項目に対応するクエリ結果元データＴＢ２４１のデータのうち、不正値を含むレコードを抽出して分析者端末４００上に表示させ、ユーザから処理方法の指示を受け付けるとともに、指示された処理方法に基づいて不正値を修正・削除等し、クエリ結果を再作成する不正値処理を行う（Ｓ４０）。不正値処理の内容については後述する。
【００４５】
再作成されたクエリ結果は、再作成クエリ結果ＴＢ２４９に保持され、分析処理サーバ３００に渡される。分析処理サーバ３００では、分析処理部３１０により、渡された再作成クエリ結果ＴＢ２４９に基づいて、分析結果として表示するための加工・整形や集計等の処理を行ったり、帳票の作成を行ったりした上で、分析者端末４００に対して処理結果を再表示する（Ｓ０７）。図４（ｃ）は、図４（ｂ）のデータに対して、不正値処理によって不正値が処理され、結果が再表示されている状態を示している。ここでは、“購入回数”と“購入人数”のデータが１ずつ削減されて、“売上げ”のデータに基づいて“１回あたりの平均購入金額”と“１人あたりの平均購入金額”のデータが再計算されている状態を示している。
【００４６】
＜処理の流れ（初期設定）＞
図５は、不正値処理サーバ２００の初期設定部２１０による初期設定処理（図２のステップＳ１０）の流れの例について概要を示したフローチャートである。初期設定処理では、分析処理サーバ３００の分析処理部３１０がＩＭＤＢ１１０に直接アクセスして行う分析処理とは非同期に、データクレンジングを行うための各種のテーブルを作成する処理を行う。まず、クエリ結果元データＴＢ２４１に保持されている各データ（レコード）に対して、これらを一意に識別するためのシーケンス番号やＩＤからなる“元データＩＤ”を付与する（Ｓ１１）。図６は、図３の例に示したクエリ結果元データＴＢ２４１の各レコードに対して“元データＩＤ”の項目を追加して値を付与した状態を示した図である。なお、図６の例では、“元データＩＤ”が５のレコードの“金額”、および“元データＩＤ”が９のレコードの“年齢”が不正値（図中ではブランク表示）となっている。
【００４７】
図５に戻り、さらに、クエリ結果元データＴＢ２４１から各フィールド（項目）の情報を抽出してフィールドマスタＴＢ２４２を作成する（Ｓ１２）。図７は、図６の例に示したクエリ結果元データＴＢ２４１から作成されたフィールドマスタＴＢ２４２のデータ構成と具体的なデータの例について概要を示した図である。フィールドマスタＴＢ２４２は、例えば、“フィールド”および“フィールドＩＤ”などの各項目を有する。“フィールドＩＤ”の項目には各フィールドを一意に識別するためのシーケンス番号やＩＤを保持する。“フィールド”の項目にはクエリ結果元データＴＢ２４１の各フィールド（項目）の名称を保持する。
【００４８】
図５に戻り、さらに、データソースサーバ１００のＩＭＤＢ１１０上のキューブ１２２に定義されている軸情報ビュー１２３を参照して軸情報を抽出し、軸マスタＴＢ２４３を作成する（Ｓ１３）。図８〜図１４は、軸マスタＴＢ２４３のデータ構成と具体的なデータの例について概要を示した図である。軸マスタＴＢ２４３は、全体の軸マスタと軸を構成する各要素の軸要素マスタとからなる。
【００４９】
図８は、軸マスタＴＢ（全体）２４３ａのデータ構成と具体的なデータの例について概要を示した図である。軸マスタＴＢ（全体）２４３ａは、例えば、ＩＭＤＢ１１０上のキューブ１２２における各軸と、各軸を構成する軸要素である年代、年、月、日、および性別のそれぞれについて、各軸要素のデータを一意に識別するためのコード値やＩＤを保持する“軸ＩＤ”、“年代ＩＤ”、“年ＩＤ”、“月ＩＤ”、“日ＩＤ”、および“性別ＩＤ”などの各項目を有する。
【００５０】
図９は、軸要素マスタＴＢ（ユーザ）２４３ｂのデータ構成と具体的なデータの例について概要を示した図である。当該テーブルは、例えば、既存のユーザマスタテーブルなどに基づいて作成される。ここでは、軸要素としてのユーザに係るマスタ情報を保持するため、例えば、“ＵＩＤ”、“年齢”および“性別”などの各項目を有する。“ＵＩＤ”の項目は、軸として利用可能な各ユーザを一意に識別するためのシーケンス番号やＩＤを保持する。“年齢”および“性別”の項目は、それぞれ、対象のユーザの年齢および性別の情報を保持する。なお、図６の例に示したクエリ結果元データＴＢ２４１では、“元データＩＤ”が９（“ＵＩＤ”が６）のレコードにおいて“年齢”の項目に値が保持されていない不正値となっているが、軸要素マスタＴＢ（ユーザ）２４３ｂを参照することで、当該ユーザの“年齢”が３３であることを把握することができる。
【００５１】
図１０は、軸要素マスタＴＢ（性別）２４３ｃのデータ構成と具体的なデータの例について概要を示した図である。ここでは、軸要素としての性別に係るマスタ情報を保持するため、例えば、“性別ＩＤ”、“性別”などの各項目を有する。“性別ＩＤ”の項目は、各性別の情報を一意に識別するためのコード値やＩＤなどを保持する。“性別”の項目は、軸として利用可能な性別の情報を保持する。性別が不明の場合についてもレコードを用意しておくことで、不正値となる可能性を低減させることができる。
【００５２】
同様に、図１１は、軸要素マスタＴＢ（日）２４３ｄの、図１２は、軸要素マスタＴＢ（月）２４３ｅの、図１３は、軸要素マスタＴＢ（年）２４３ｆのデータ構成と具体的なデータの例についてそれぞれ概要を示した図である。ここでは、軸要素としての日、月、年に係るマスタ情報を保持するため、例えば、“日（および月、年）ＩＤ”、“日（および月、年）”などの各項目を有する。“日（および月、年）ＩＤ”の項目は、日（および月、年）の情報を一意に識別するためのＩＤやコード値などを保持する。“日（および月、年）”の項目は、軸として利用可能な日（および月、年）の情報を保持する。
【００５３】
また、図１４は、軸要素マスタＴＢ（年代）２４３ｇのデータ構成と具体的なデータの例について概要を示した図である。ここでは、軸要素としての年代に係るマスタ情報を保持するため、例えば、“年代ＩＤ”、“年代”などの各項目を有する。“年代ＩＤ”の項目は、年代の情報を一意に識別するためのＩＤやコード値などを保持する。“年代”の項目は、軸として利用可能な年代の情報を保持する。
【００５４】
図５に戻り、ステップＳ１３で軸マスタＴＢ２４３が作成されると、次に、ステップＳ１１で“元データＩＤ”が付与されたクエリ結果元データＴＢ２４１と、軸マスタＴＢ２４３とに基づいて、元データ・軸対応ＴＢ２４４を作成する（Ｓ１４）。図１５は、元データ・軸対応ＴＢ２４４のデータ構成と具体的なデータの例について概要を示した図である。ここでは、図６に示したクエリ結果元データＴＢ２４１の各レコードが、図８に示した軸マスタＴＢ（全体）２４３ａにおける各軸のいずれに対応しているかの対応関係を、例えば、クエリ結果元データＴＢ２４１の“元データＩＤ”の項目と、軸マスタＴＢ（全体）２４３ａの“軸ＩＤ”の項目との組み合わせによって保持している。なお、上述したように、“元データＩＤ”が５および９のデータは、図６のクエリ結果元データＴＢ２４１の例に示すように不正値を含んでいる（太線枠で示している）。
【００５５】
図５に戻り、次に、分析処理サーバ３００の分析処理部３１０による分析結果として出力される表や帳票の項目（表値）と、ステップＳ１２で作成されたフィールドマスタＴＢ２４２とに基づいて、表値管理ＴＢ２４５を作成する（Ｓ１５）。図１６は、表値管理ＴＢ２４５のデータ構成と具体的なデータの例について概要を示した図である。表値管理ＴＢ２４５は、分析結果として出力される表や帳票の表値が、クエリ結果元データＴＢ２４１のどのフィールドのデータをどのように利用して求められるのかについての対応関係の情報を保持するテーブルであり、例えば、“表値管理ＩＤ”、“表値ＩＤ”、“表値”、“フィールドＩＤ”、“フィールド”、“利用フラグ”、“計算式”などの各項目を有する。
【００５６】
“表値管理ＩＤ”の項目は、表値とフィールドとの対応（組み合わせ）を一意に識別するシーケンス番号やＩＤの情報を保持する。“表値ＩＤ”および“表値”の項目は、それぞれ、対象の組み合わせにおける表値を特定するＩＤおよび表値の情報を保持する。また、“フィールドＩＤ”および“フィールド”の項目は、それぞれ、対象の組み合わせにおけるフィールドを特定するＩＤおよびフィールドの名称の情報を保持する。“利用フラグ”および“計算式”の項目は、それぞれ、対象の組み合わせにおいて表値の値の導出の際に対応するフィールドを利用するか否かを示すフラグ、および利用する場合における導出の際の計算式の情報を保持する。
【００５７】
図１６の例では、例えば、“表値管理ＩＤ”が６のレコードにおいて、“売上げ”の表値を導出する際に、“金額”のフィールドを利用し、その値（金額）の和を算出することで表値（“売上げ”）を導出することを示している。また、“表値管理ＩＤ”が８のレコードにおいて、“購入回数”の表値を導出する際に、“元データＩＤ”のフィールドを利用し、その数（レコード数）を算出することで表値（“購入回数”）を導出することを示している。なお、図１６の例では、“計算式”の項目において便宜上“金額の和”などの文章によって式を表現しているが、実際は具体的な数式により表現されていてもよい。
【００５８】
図５に戻り、最後に、分析結果として出力される表や帳票における表値と表軸との対応、およびステップＳ１３で作成された軸マスタＴＢ２４３とステップＳ１５で作成された表値管理ＴＢ２４５とに基づいて、分析結果対応関係ＴＢ２４６を作成する（Ｓ１６）。図１７は、分析結果対応関係ＴＢ２４６のデータ構成と具体的なデータの例について概要を示した図である。分析結果対応関係ＴＢ２４６は、分析結果として出力される表や帳票における表値と表軸との対応毎に、対象のデータを導出するために利用する軸要素の情報を保持するテーブルであり、例えば、“＃”、“表値”、“表軸”、“不正値番号”、“表値管理ＩＤ”、“年代ＩＤ”、“年ＩＤ”、“月ＩＤ”、“日ＩＤ”、“性別ＩＤ”などの各項目を有する。
【００５９】
“＃”の項目は、各対応関係を一意に識別するシーケンス番号の情報を保持する。“表値”および“表軸”の項目は、それぞれ、分析結果として出力される表や帳票における表値と表軸を特定する情報を保持する。“不正値番号”の情報は、対象の表値と表軸の対応（組み合わせ）が不正値を含む場合に、その旨を一意に識別する番号等の情報を保持する。図１７の例では、“＃”が６のレコードにおいて“不正値番号”が設定されており、不正値を含むことを示している。なお、不正値番号の値は、後述する不正値項目表示処理（図２のステップＳ３０）において、不正値を含む“表値”と“表軸”の組み合わせに対して設定される。
【００６０】
“表値管理ＩＤ”の項目は、対象の表値と表軸の組み合わせの値を導出する際に利用する表値の情報を、図１６に示した表値管理ＴＢ２４５の“表値管理ＩＤ”の値によって保持する。これにより、クエリ結果元データＴＢ２４１のフィールドとの対応関係についても把握することができる。“年代ＩＤ”、“年ＩＤ”、“月ＩＤ”、“日ＩＤ”、“性別ＩＤ”の各項目は、それぞれ、対象の表値と表軸の組み合わせに対応する軸要素を特定するＩＤの情報を保持する。図１７の例では、“年代ＩＤ”と“性別ＩＤ”の項目の値が全て“＊”（ワイルドカード）となっているが、これは各軸要素について全ての値を含むことを示している。
【００６１】
以上のような初期設定処理により、分析処理サーバ３００の分析処理部３１０による分析処理とは非同期に、データクレンジングを行うために各種の対応関係を把握するためのテーブルを作成しておく。
【００６２】
＜処理の流れ（不正値検出）＞
図１８は、不正値処理サーバ２００の不正値検出部２２０による不正値検出処理（図２のステップＳ２０）の流れの例について概要を示したフローチャートである。不正値検出処理では、分析者端末４００を介してユーザから不正値処理の要求を受けた不正値処理サーバ２００の不正値検出部２２０により、クエリ結果元データＴＢ２４１に含まれている不正値を検出し、不正値の情報を不正値管理ＴＢ２４８に出力する。
【００６３】
まず、不正値検出部２２０は、クエリ結果元データＴＢ２４１の全てのフィールドについて処理を繰り返すループ処理を開始する（Ｓ２１）。当該ループ処理では、まず、処理対象のフィールドについて不正値を検出するためのプログラムを抽出する（Ｓ２２）。具体的には、例えば、各フィールドについてそれぞれ不正値を検出する処理を行うプログラムを予め用意しておき、各フィールドとプログラムとの対応関係をテーブルに保持しておくことで、当該テーブルを参照して処理対象のフィールドに対応するプログラムを抽出する。
【００６４】
図１９は、各フィールドとその不正値を検出するプログラムとの対応を保持する不正値検出プログラム管理ＴＢ２４７のデータ構成と具体的なデータの例について概要を示した図である。不正値検出プログラム管理ＴＢ２４７は、例えば、“＃”、“フィールド”、“プログラム”、“内容”などの各項目を有する。
【００６５】
“＃”の項目は、各対応関係を一意に識別するシーケンス番号やＩＤの情報を保持する。“フィールド”および“プログラム”の項目は、それぞれ、クエリ結果元データＴＢ２４１におけるフィールド、および当該フィールドの不正値を検出するためのプログラムを特定する情報を保持する。図１９の例ではプログラムの名称により特定しているが、プログラムが存在するパス等の情報により特定してもよい。“内容”の項目は、対象のプログラムが行う不正値を検出する処理の内容に係る情報を保持する。図１９の例ではチェック内容の文言により特定しているが、チェック内容毎に設定されたコード値等により特定してもよい。なお、不正値の検出を行うプログラムは、各フィールドのデータ形式などに応じて、公知のアルゴリズムや手法を実装したプログラムやライブラリなどを適宜利用することができる。
【００６６】
図１８に戻り、ステップＳ２２で処理対象のフィールドに対応する不正値検出のためのプログラムが抽出されると、次に、クエリ結果元データＴＢ２４１における処理対象のフィールドの全ての元データについて処理を繰り返すループ処理を開始する（Ｓ２３）。当該ループ処理では、処理対象の元データについて、ステップＳ２２で抽出されたプログラムを実行することにより（Ｓ２４）、当該元データが不正値であるか否かを判定する（Ｓ２５）。
【００６７】
処理対象の元データが不正値である場合は、不正値管理ＴＢ２４８に当該元データが不正値であることを示す情報（不正値番号）を設定する（Ｓ２６）。図２０は、不正値管理ＴＢ２４８のデータ構成と具体的なデータの例について概要を示した図である。不正値管理ＴＢ２４８は、クエリ結果元データＴＢ２４１の各レコードにおいて、どのフィールドに不正値を有するかの情報を管理するテーブルであり、図６に示したクエリ結果元データＴＢ２４１が有する各フィールドと同じ項目に対してそれぞれＩＤを付した項目を有している。
【００６８】
図２０の例では、不正値管理ＴＢ２４８は、ＩＤ＝１（“元データＩＤ”）〜７（“製品名”）の７つの項目を有し、“元データＩＤ”の項目には、各レコードを識別するため、図６に示したクエリ結果元データＴＢ２４１において付与されている“元データＩＤ”と同じ値が設定されている。また、“元データＩＤ”が５のレコードのＩＤ＝６（“金額”）のフィールド、および“元データＩＤ”９のレコードのＩＤ＝３（“年齢”）のフィールドにそれぞれ不正値番号が設定されており、対応する元データが不正値であることを示している。すなわち、図６の例に示したクエリ結果元データＴＢ２４１において、“元データＩＤ”が５のレコードの“金額”のフィールド、および“元データＩＤ”が９のレコードの“年齢”のフィールドにそれぞれ値が設定されていない状況が不正値であるとして検出されたことを示している。
【００６９】
図１８に戻り、ステップＳ２６で不正値管理ＴＢ２４８に不正値番号を設定した後、もしくはステップＳ２５で処理対象の元データが不正値ではない場合は、次の元データの処理に移る（Ｓ２７、Ｓ２３）。全ての元データについてループ処理を終了した場合は、次のフィールドの処理に移る（Ｓ２８、Ｓ２１）。全てのフィールドについてループ処理を終了した場合は、不正値検出処理を終了する。
【００７０】
＜処理の流れ（不正値項目表示）＞
図２１は、不正値処理サーバ２００の不正値検出部２２０による不正値項目表示処理（図２のステップＳ３０）の流れの例について概要を示したフローチャートである。不正値項目表示処理では、上述した不正値検出処理により不正値管理ＴＢ２４８に記録された不正値について、これに対応する分析結果や帳票の項目が識別可能となるように分析者端末４００上に表示する。
【００７１】
まず、不正値検出部２２０は、不正値管理ＴＢ２４８から、不正値を有する（すなわち“不正値番号”が設定されている）元データとフィールドの組み合わせを取得する（Ｓ３１）。ここでは、不正値管理ＴＢ２４８における“元データＩＤ”の値と、該当するフィールドのＩＤの値を取得する。図２０に示した不正値管理ＴＢ２４８では、“元データＩＤ”が５のレコードの“金額”のフィールド（ＩＤ＝６）、および“元データＩＤ”が９のレコードの“年齢”のフィールド（ＩＤ＝３）が不正値を有している。
【００７２】
次に、ステップＳ３１で取得した元データとフィールドの全ての組み合わせについて処理を繰り返すループ処理を開始する（Ｓ３２）。当該ループ処理では、まず、処理対象の組み合わせにおける元データ、すなわち不正値を含む元データについて、図１５に示した元データ・軸対応ＴＢ２４４から、当該元データの“元データＩＤ”に対応する“軸ＩＤ”の情報を取得する（Ｓ３３）。図１５の例では、例えば、処理対象の元データの“元データＩＤ”が５であり、これに対応する“軸ＩＤ”の値（“４０２０１４０１０３２”）を取得する。
【００７３】
次に、取得した“軸ＩＤ”に係る軸について、図８に示した軸マスタＴＢ（全体）２４３ａから、関連する全ての軸要素のＩＤ情報を取得する（Ｓ３４）。図８の例では、例えば、“軸ＩＤ”が“４０２０１４０１０３２”のレコードにおける各軸要素のＩＤの値を取得する。
【００７４】
次に、図１６に示した表値管理ＴＢ２４５から、分析結果として出力される表や帳票における“表値”のために参照しているフィールド、すなわち“利用フラグ”が設定されているフィールドのうち、処理対象の組み合わせにおけるフィールド、すなわち不正値を含むフィールドの“フィールドＩＤ”を含む“表値”に対応する“表値管理ＩＤ”を全て取得する（Ｓ３５）。図１６の例では、例えば、処理対象のフィールドの“フィールドＩＤ”が６（“金額”）であり、これを含む“表値”のうち、“利用フラグ”が設定されている表値（太線枠で示された“売上げ”）に対応する“表値管理ＩＤ”である６を取得する。
【００７５】
次に、図１７に示した分析結果対応関係ＴＢ２４６から、ステップＳ３４で取得した“表値”の“表値管理ＩＤ”、およびステップＳ３３で取得した各軸要素のＩＤ（“年代ＩＤ”、“年ＩＤ”、“月ＩＤ”、…）を含む“表値”と“表軸”の組み合わせを全て取得する（Ｓ３６）。図１７の例では、例えば、ステップＳ３４で取得した“表値管理ＩＤ”が６であり、ステップＳ３３で取得した“年ＩＤ”、“月ＩＤ”、“日ＩＤ”がそれぞれ“２０１４”、“２０１４０１”、“２０１４０１０３”であることから、“＃”が６のレコードが該当する（軸要素の“年代ＩＤ”および“性別ＩＤ”は、値が“＊”であるため全ての値が該当する）。従って、“表値”と“表軸”の組み合わせとして、“＃”が６のレコードにおける値である“売上げ”と“２０１４／１／３”を取得する。
【００７６】
次に、分析結果対応関係ＴＢ２４６の当該レコードの“不正値番号”に、処理対象の組み合わせに対応する“不正値番号”の値を設定する（Ｓ３７）。ここでは、処理対象の元データの“元データＩＤ”が５であり、図２０の不正値管理ＴＢ２４８において対応する不正値番号が“ｄ５ｆ６”であることから、図１７の例では、“不正値番号”に当該値が設定された状態を示している。
【００７７】
その後、分析結果として出力される表や帳票において、ステップＳ３８で取得した“表値”と“表軸”の組み合わせに対応するセル等の項目に、不正値を有する旨が識別可能となるような表示を行う（Ｓ３８）。例えば、図４（ｂ）に示すように、“売上げ”の表軸において“２０１４／１／３”の表値が不正値を有することを、強調表示により識別可能とする。強調表示の手法については特に限定されず、図４（ｂ）の例に示すように太線枠とする他に、セルや文字の色を変えたり、アイコン等の画像を表示したりしてもよい。
【００７８】
以上の一連の処理を、不正値を有する元データとフィールドの全ての組み合わせについて繰り返して実行し（Ｓ３９、Ｓ３２）、不正値項目表示処理を終了する。
【００７９】
＜処理の流れ（不正値処理）＞
図２２は、不正値処理サーバ２００の不正値処理部２３０による不正値処理（図２のステップＳ４０）の流れの例について概要を示したフローチャートである。不正値処理では、上記の不正値項目表示処理により不正値を有するものとして表示されたデータについて、分析者端末４００を介してユーザから指示された処理方法に基づいて不正値を修正・削除等し、クエリ結果を再作成する。
【００８０】
まず、分析者端末４００に表示されたデータのうち、不正値を有するものとして表示されたデータに対してユーザが選択して処理を要求すると（図２のステップＳ０６）、不正値処理部２３０は、図１７に示した分析結果対応関係ＴＢ２４６から、ユーザにより指示されたデータの“表値”と“表軸”の組み合わせに対応する“不正値番号”を取得する（Ｓ４１）。図４（ｂ）の例において、ユーザにより“売上げ”の表軸の“２０１４／１／３”の表値のデータに対する不正値の処理が指示された場合、図１７の例では、“＃”が６のレコードの“不正値番号”（“ｄ５ｆ６”）が得られる。
【００８１】
次に、図２０に示した不正値管理ＴＢ２４８から、ステップＳ４１で取得した“不正値番号”に対応する“元データＩＤ”を取得する（Ｓ４２）。図２０の例では、“不正値番号”として“ｄ５ｆ６”を有するレコードの“元データＩＤ”である５が得られる。そして、取得した“元データＩＤ”に対応するレコードを図６に示したクエリ結果元データＴＢ２４１から抽出して、分析者端末４００上に表示させる（Ｓ４３）。ここで表示されたレコードの内容に基づいて、ユーザは、不正値の内容を把握し、修正や削除等の処理内容についての指示を分析者端末４００を介して行うことができる。
【００８２】
ユーザからの処理内容の指示を受けた不正値処理サーバ２００の不正値処理部２３０では、指示された処理内容に基づいて、ステップＳ４３で取得したクエリ結果元データＴＢ２４１のレコードに対して修正や削除等の不正値の処理を行い（Ｓ４４）、処理結果のレコードをクエリ結果元データＴＢ２４１に反映させて、再作成クエリ結果ＴＢ２４９を作成し（Ｓ４５）、不正値処理を終了する。上述したように、再作成クエリ結果ＴＢ２４９に基づいて、分析処理サーバ３００の分析処理部３１０は、不正値を処理した適切なデータに基づいて、分析結果として出力される表や帳票を図４（ｃ）の例に示すように再表示する（図２のステップＳ０７）。
【００８３】
なお、上述の説明の中で示した各種テーブルのデータ構成（項目）はあくまで一例であり、同様のデータを保持・管理することが可能な構成であれば、他のテーブル構成やデータ構成であってもよい。
【００８４】
以上に説明したように、本発明の一実施の形態であるデータクレンジングシステム１によれば、ＩＭＤＢ１１０上に保持されたＴＲＸ元データＴＢ１２１に直接アクセスして分析や帳票作成を行う構成において、これとは非同期に、不正値処理サーバ２００により、必要なクエリによりＴＲＸ元データＴＢ１２１から直接取得したクエリ結果元データＴＢ２４１の各データ（“元データＩＤ”と各フィールドの組み合わせ）と、分析結果の表や帳票内の各データ項目（表値と表軸の組み合わせ）との対応関係が把握可能となるような情報をテーブルに保持しておく。具体的には、本実施の形態では、元データ・軸対応ＴＢ２４４（および軸マスタＴＢ２４３）によって“元データＩＤ”と軸（軸要素）との対応関係を把握し、分析結果対応関係ＴＢ２４６によって軸（軸要素）と分析結果の表や帳票における表値と表軸の組み合わせとの対応関係を把握することで実現する。
【００８５】
これにより、クエリ結果元データＴＢ２４１の中から不正値を検出し、別途作成して保持している対応関係の情報に基づいて分析結果の表や帳票における対応するデータ項目を特定するとともに、当該項目について不正値が混在していることをユーザに通知することが可能となる。また、ユーザから当該データ項目についての不正値の処理方法の指示を受けると、別途作成して保持している対応関係の情報に基づいて不正値を含む元データを特定して指示された処理を行い、処理結果を分析結果の表や帳票に反映させることが可能となる。
【００８６】
このように、ＴＲＸ元データＴＢ１２１に直接アクセスして分析処理等を行うのとは非同期に、必要に応じてデータクレンジングを行うことが可能となり、インメモリデータベース技術によるリアルタイム性の向上と、不正値検知による正確性の担保とを両立させ、トランザクションデータの分析や帳票作成を効率的かつ正確に実施することが可能となる。
【００８７】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は上記の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、上記の実施の形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、上記の実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【産業上の利用可能性】
【００８８】
本発明は、インメモリデータベース技術により構築されたトランザクションデータからデータを直接取得する際に用いるデータクレンジングシステムおよびデータクレンジングプログラムに利用可能である。
【符号の説明】
【００８９】
１…データクレンジングシステム、
１００…データソースサーバ、１１０…インメモリデータベース、１２１…ＴＲＸ元データＴＢ、１２２…キューブ、１２３…軸情報ビュー、
２００…不正値処理サーバ、２１０…初期設定部、２２０…不正値検出部、２３０…不正値処理部、２４１…クエリ結果元データＴＢ、２４２…フィールドマスタＴＢ、２４３…軸マスタＴＢ、２４３ａ…軸マスタＴＢ（全体）、２４３ｂ…軸要素マスタＴＢ（ユーザ）、２４３ｃ…軸要素マスタＴＢ（性別）、２４３ｄ…軸要素マスタＴＢ（日）、２４３ｅ…軸要素マスタＴＢ（月）、２４３ｆ…軸要素マスタＴＢ（年）、２４３ｇ…軸要素マスタＴＢ（年代）、２４４…元データ・軸対応ＴＢ、２４５…表値管理ＴＢ、２４６…分析結果対応関係ＴＢ、２４７…不正値検出プログラム管理ＴＢ、２４８…不正値管理ＴＢ、２４９…再作成クエリ結果ＴＢ、
３００…分析処理サーバ、３１０…分析処理部、３２１…クエリ結果ＴＢ、
４００…分析者端末
【図１】
2016062289.tif 000003
【図２】
2016062289.tif 000004
【図３】
2016062289.tif 000005
【図４】
2016062289.tif 000006
【図５】
2016062289.tif 000007
【図６】
2016062289.tif 000008
【図７】
2016062289.tif 000009
【図８】
2016062289.tif 000010
【図９】
2016062289.tif 000011
【図１０】
2016062289.tif 000012
【図１１】
2016062289.tif 000013
【図１２】
2016062289.tif 000014
【図１３】
2016062289.tif 000015
【図１４】
2016062289.tif 000016
【図１５】
2016062289.tif 000017
【図１６】
2016062289.tif 000018
【図１７】
2016062289.tif 000019
【図１８】
2016062289.tif 000020
【図１９】
2016062289.tif 000021
【図２０】
2016062289.tif 000022
【図２１】
2016062289.tif 000023
【図２２】
2016062289.tif 000024