(57)【特許請求の範囲】
【請求項１】
計算機からの分析実行リクエストに基づいて、複数の入力データを組み合わせて分析を行う計算機システムであるデータ分析システムが実行するデータ管理方法であって、
前記データ分析システムのリクエスト解析部が、前記計算機からの分析実行リクエストを解析してタスクを識別し、識別したタスクごとにタスクの実行後に生成される中間データを識別し、識別した中間データを消去するか否かを判定するための制約情報を生成する第１のステップと、
前記データ分析システムのタスク管理部が、識別された各タスクについて、前記制約情報に基づいて中間データを消去するか否かを判定する第２のステップと、
前記データ分析システムのタスク実行部が、識別されたタスクを実行すると共に、前記第２のステップでの判定結果に基づいて前記タスクの中間データを消去する第３のステップと、
を備えることを特徴とするデータ管理方法。
【請求項２】
前記データ分析システムは、消去対象とする中間データの属性情報が規定された消去対象情報を備え、
前記リクエスト解析部は、識別した中間データに前記属性情報が所定数以上含まれるか否かを解析した結果を前記制約情報に含め、
前記タスク管理部は、前記制約情報に基づいて、識別された中間データに前記属性情報が前記所定数以上含まれると判定した場合、前記中間データを消去すると判定する、
ことを特徴とする請求項１に記載のデータ管理方法。
【請求項３】
前記タスク管理部は、前記タスク実行部がタスクを実行するためのフローを生成するものであり、前記フローにタスクを追加し、前記制約情報に基づいて、前記タスクの実行後に生成される中間データに前記属性情報が前記所定数以上含まれると判定した場合、前記中間データを消去するための消去タスクを前記タスクに続いて前記フローに追加する処理を識別されたタスクについて逐次に行って前記フローを生成し、
前記タスク実行部は、前記フローに従ってタスクを実行する、
ことを特徴とする請求項２に記載のデータ管理方法。
【請求項４】
前記リクエスト解析部は、識別した中間データが最後に使用されるタスクを示す情報を前記制約情報に含め、
前記タスク管理部は、前記制約情報に基づいて、識別されたタスクの実行後に生成される中間データが最後に使用されると判定した場合、前記中間データを消去すると判定する、
ことを特徴とする請求項１に記載のデータ管理方法。
【請求項５】
前記タスク管理部は、前記タスク実行部がタスクを実行するためのフローを生成するものであり、前記フローにタスクを追加し、前記制約情報に基づいて、前記タスクの実行後に生成される中間データが最後に使用されると判定した場合、前記中間データを消去するための消去タスクを前記タスクに続いて前記フローに追加する処理を識別されたタスクについて逐次に行って前記フローを生成し、
前記タスク実行部は、前記フローに従ってタスクを実行する、
ことを特徴とする請求項４に記載のデータ管理方法。
【請求項６】
前記リクエスト解析部は、識別した中間データに係る生成時間が予め定めたしきい値より短いか否かを解析した結果を前記制約情報に含め、
前記タスク管理部は、前記制約情報に基づいて、識別された中間データに係る生成時間が前記しきい値より短いと判定した場合、前記中間データを消去すると判定する、
ことを特徴とする請求項１に記載のデータ管理方法。
【請求項７】
前記タスク管理部は、前記タスク実行部がタスクを実行するためのフローを生成するものであり、前記フローにタスクを追加し、前記制約情報に基づいて、前記タスクの実行後に生成される中間データに係る生成時間が前記しきい値より短いと判定した場合、前記中間データを消去するための消去タスクを前記タスクに続いて前記フローに追加する処理を識別されたタスクについて逐次に行って前記フローを生成し、
前記タスク実行部は、前記フローに従ってタスクを実行する、
ことを特徴とする請求項６に記載のデータ管理方法。
【請求項８】
前記タスク実行部が、前記分析実行リクエストの全てのタスクを実行した後、消去していない中間データを全て消去する第４のステップと、
前記タスク実行部が、前記分析実行リクエストの全てのタスクを実行した結果を前記分析実行リクエストの実行結果として前記計算機に送信する第５のステップと、
前記計算機が、受信した前記分析実行リクエストの実行結果を出力する第６のステップと、
を備えることを特徴とする請求項１に記載のデータ管理方法。
【請求項９】
計算機からの分析実行リクエストに基づいて、複数の入力データを組み合わせて分析を行うデータ分析システムであって、
前記計算機からの分析実行リクエストを解析してタスクを識別し、識別したタスクごとにタスクの実行後に生成される中間データを識別し、識別した中間データを消去するか否かを判定するための制約情報を生成するリクエスト解析部と、
識別された各タスクについて、前記制約情報に基づいて中間データを消去するか否かを判定するタスク管理部と、
識別されたタスクを実行すると共に、前記タスク管理部での判定結果に基づいて前記タスクの中間データを消去するタスク実行部と、
を備えることを特徴とするデータ分析システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ管理方法およびデータ分析システムに関し、例えば複数の入力データを組み合わせて分析を行うデータ分析システムに適用して好適なものである。
【背景技術】
【０００２】
任意の企業間でのデータエクスチェンジは、現状ではデータ保安の契約が難しいなどからオープンデータのやりとりとなっている。一方、データエクスチェンジコンソーシアムでは、企業間のデータのやりとりに対する契約のテンプレートの作成が進められ、今後、任意の企業間でデータの取り扱いに対するセキュリティ契約を交わしたデータエクスチェンジが実施されると考えられる。【０００３】
また、このデータエクスチェンジで得たデータについては、複数のタスクから構成される分析フローによって分析する形態（バッチ処理）がとられる。一般に、このようなバッチ処理では、タスク失敗時の迅速な再実行のため、中間データを分析フローが終了するまで残し、分析フローが終了した場合、中間データを削除する運用が行われている。【０００４】
一方、データエクスチェンジによって、複数社が持つデータを結合して分析を行うことが考えられる。このとき、複数社のデータの結合で生成された中間データは、データの組合せによって個人を特定できるようになるなど、入力データそれぞれに対して、セキュリティリスクの高いものとなり得る。【０００５】
この点、セキュリティレベルを入力データの属性で判断し、データの秘匿化の要否に応じて処理を変更する技術が開示されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１４−２１１６０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に記載の技術では、フロー投入時の入力データの属性でセキュリティリスクを判断するため、各タスクによって行われるデータ結合等によるセキュリティリスクの変化には対応できないという問題がある。【０００８】
これに対し、セキュリティリスクの高いデータは使ったらすぐ消去し、セキュリティリスクの低いデータはフロー終了まで残しておくということをすることで、変動するセキュリティリスクへ対応するとともに、タスク失敗時には迅速な再実行を行うことができる。【０００９】
しかしながら、動的に変化するセキュリティリスクの高低を判断するのは困難であり、中間データを消去すべきなのか残すべきなのかを判断できないという問題がある。【００１０】
本発明は以上の点を考慮してなされたもので、中間データを適切なタイミングで消去し得るデータ管理方法を提案しようとするものである。
【課題を解決するための手段】
【００１１】
かかる課題を解決するため本発明においては、計算機からの分析実行リクエストに基づいて、複数の入力データを組み合わせて分析を行う計算機システムであるデータ分析システムが実行するデータ管理方法であって、前記データ分析システムのリクエスト解析部が、前記計算機からの分析実行リクエストを解析してタスクを識別し、識別したタスクごとにタスクの実行後に生成される中間データを識別し、識別した中間データを消去するか否かを判定するための制約情報を生成する第１のステップと、前記データ分析システムのタスク管理部が、識別された各タスクについて、前記制約情報に基づいて中間データを消去するか否かを判定する第２のステップと、前記データ分析システムのタスク実行部が、識別されたタスクを実行すると共に、前記第２のステップでの判定結果に基づいて前記タスクの中間データを消去する第３のステップと、を設けるようにした。
【００１２】
また本発明においては、計算機からの分析実行リクエストに基づいて、複数の入力データを組み合わせて分析を行うデータ分析システムであって、前記計算機からの分析実行リクエストを解析してタスクを識別し、識別したタスクごとにタスクの実行後に生成される中間データを識別し、識別した中間データを消去するか否かを判定するための制約情報を生成するリクエスト解析部と、識別された各タスクについて、前記制約情報に基づいて中間データを消去するか否かを判定するタスク管理部と、識別されたタスクを実行すると共に、前記タスク管理部での判定結果に基づいて前記タスクの中間データを消去するタスク実行部と、を設けるようにした。【００１３】
上記構成では、分析実行リクエストを解析して中間データを消去するか否かを判定するための制約情報が生成され、制約情報に基づいて中間データが消去される。
【発明の効果】
【００１４】
本発明によれば、中間データを適切なタイミングで消去し得るデータ管理方法を実現することができる。
【図面の簡単な説明】
【００１５】
【図１】第１の実施の形態によるデータ分析システムの構成の一例を示す図である。
【図２】第１の実施の形態による計算機の構成の一例を示す図である。
【図３】第１の実施の形態による管理サーバの構成の一例を示す図である。
【図４】第１の実施の形態によるフロー情報管理表の一例を示す図である。
【図５】第１の実施の形態によるタスク管理表の一例を示す図である。
【図６】第１の実施の形態によるブラックリスト管理表の一例を示す図である。
【図７】第１の実施の形態による制約ルール管理表の一例を示す図である。
【図８】第１の実施の形態によるフロー管理表の一例を示す図である。
【図９】第１の実施の形態によるフロー情報取得処理に係るフローチャートの一例を示す図である。
【図１０】第１の実施の形態によるタスククエリ解析処理に係るフローチャートの一例を示す図である。
【図１１】第１の実施の形態による制約判定処理に係るフローチャートの一例を示す図である。
【図１２】第１の実施の形態によるフロー生成処理に係るフローチャートの一例を示す図である。
【図１３】第１の実施の形態によるフロー実行処理に係るフローチャートの一例を示す図である。
【図１４】第２の実施の形態による制約ルール管理表の一例を示す図である。
【図１５】第２の実施の形態による制約判定処理に係るフローチャートの一例を示す図である。
【図１６】第２の実施の形態によるフロー生成処理に係るフローチャートの一例を示す図である。
【図１７】第３の実施の形態による制約ルール管理表の一例を示す図である。
【図１８】第３の実施の形態による中間データ生成時間しきい値管理表の一例を示す図である。
【図１９】第３の実施の形態によるタスク実行時間管理表の一例を示す図である。
【図２０】第３の実施の形態による制約判定処理に係るフローチャートの一例を示す図である。
【図２１】第３の実施の形態によるフロー生成処理に係るフローチャートの一例を示す図である。
【図２２】第３の実施の形態によるフロー実行処理に係るフローチャートの一例を示す図である。
【発明を実施するための形態】
【００１６】
以下図面について、本発明の一実施の形態を詳述する。
【００１７】
（１）第１の実施の形態
（データ分析システムの構成）
図１において、１は全体として第１の実施の形態によるデータ分析システムを示す。このデータ分析システム１は、少なくとも１つの計算機１１０と、少なくとも１つの管理サーバ１２０とを含んで構成され、それぞれがネットワーク１３０を介して接続される。また、分析フロー実行者１４０は、計算機１１０を用いて、入力データに関する分析実行リクエストを管理サーバ１２０に送信し、そのレスポンスとして分析結果（出力データ）を得る。かかるデータ分析システム１では、出力データの生成過程において、入力データを結合することにより入力データよりもセキュリティリスクが高くなり得る中間データを安全に管理することができる。以下、詳細について説明する。
【００１８】
図２は、計算機１１０の構成の一例を示す。計算機１１０は、分析フロー実行者１４０から分析の要求（分析実行リクエストを送信する指示）を受けると、管理サーバ１２０に対し、分析実行リクエストを送信し、そのレスポンスとして管理サーバ１２０から受け取った分析結果を分析フロー実行者１４０に提示する。かかる計算機１１０は、ＣＰＵ（Central  Processing  Unit）２１０、メモリ２２０、記憶装置２３０、入力装置２４０、出力装置２５０、および通信ポート２６０を備える。
【００１９】
ＣＰＵ２１０は、記憶装置２３０に記憶されたプログラム等をメモリ２２０に読み出して実行することにより、計算機１１０の機能を実現する。入力装置２４０は、ポインティングデバイス、キーボードなどであり、分析フロー実行者１４０から分析実行リクエストを送信する指示等を受け付ける。出力装置２５０は、ディスプレイ等であり、管理サーバ１２０から受け取った分析結果等を表示する。通信ポート２６０は、ネットワークインタフェースカードなどであり、管理サーバ１２０と通信可能に接続する。
【００２０】
図３は、管理サーバ１２０の構成の一例を示す。管理サーバ１２０は、計算機１１０からの分析実行リクエストを解析し、中間データを消去（削除）するタイミングを決定し、分析を実行しつつ、決定されたタイミングで中間データを消去し、分析結果を計算機１１０に送信する。かかる管理サーバ１２０は、ＣＰＵ３１０、メモリ３２０、記憶装置３３０、入力装置３４０、出力装置３５０、および通信ポート３６０を備える。
【００２１】
記憶装置３３０には、フロー情報取得プログラム３７０、タスククエリ解析プログラム３７１、制約判定プログラム３７２、フロー生成プログラム３７３、フロー実行プログラム３７４、フロー情報管理表３７５、タスク管理表３７６、ブラックリスト管理表３７７、制約ルール管理表３７８、およびフロー管理表３７９を備える。ＣＰＵ３１０により記憶装置３３０のプログラムおよび管理表がメモリ３２０にロードされて実行されることで、管理サーバ１２０の機能（フロー情報取得部、タスククエリ解析部、制約判定部、フロー生成部、フロー実行部など）が実現される。
【００２２】
入力装置３４０は、ポインティングデバイス、キーボードなどであり、各種の情報を入力する。出力装置３５０は、ディスプレイ等であり、各種の情報を出力する。通信ポート３６０は、ネットワークインタフェースカードなどであり、計算機１１０と通信可能に接続する。
【００２３】
（管理表の構成）
図４は、フロー情報管理表３７５の一例を示す。フロー情報管理表３７５は、タスクを一意に識別可能なタスク識別情報を格納するタスクＩＤ４１０の欄と、入力データの入力ソースを識別可能な入力ソース識別情報を格納する入力ソース４２０の欄と、入力データの項目を示す入力項目情報を格納する入力データ４３０の欄と、タスクで実行するクエリを格納するクエリ４４０の欄とを含んで構成される。なお、クエリは、本例では、データベースに対する処理内容を文字列で表したものであり、例えば、ＳＱＬ（Structured  Query  Language）文である。
【００２４】
図５は、タスク管理表３７６の一例を示す。タスク管理表３７６は、タスクを一意に識別可能なタスク識別情報を格納するタスクＩＤ５１０の欄と、入力データの入力ソースを識別可能な入力ソース識別情報を格納する入力ソース５２０の欄と、入力データの項目を示す入力項目情報を格納する入力データ５３０の欄と、中間データ（一のタスクにおける出力データ）の項目を示す中間項目情報を格納する中間データ５４０の欄と、中間データを一意に示す中間データ識別情報を格納する中間データＩＤ５５０とを含んで構成される。
【００２５】
図６は、ブラックリスト管理表３７７の一例を示す。ブラックリスト管理表３７７は、ブラックリストに属する属性（例えば、セキュリティのレベルが高いと判定する入力データの属性（項目））を一意に識別可能な属性識別情報を格納するＩＤ６１０の欄と、属性を示す属性情報を格納する属性６２０の欄とを含んで構成される。なお、ブラックリスト管理表３７７は、消去対象とする中間データの属性情報が規定された消去対象情報の一例である。
【００２６】
図７は、制約ルール管理表３７８の一例を示す。制約ルール管理表３７８は、中間データを一意に識別可能な中間データ識別情報を格納する中間データＩＤ７１０の欄と、中間データへの対応を示す対応情報（中間データを消去するか否かを示す消去識別情報）を格納する対応７２０の欄とを含んで構成される。なお、制約ルール管理表３７８は、中間データを消去するか否かを判定するための制約情報の一例である。
【００２７】
図８は、フロー管理表３７９の一例を示す。フロー管理表３７９は、タスクを一意に識別可能なタスク識別情報を格納するＩＤ８１０の欄と、タスクの内容を示すタスク情報（ｔａｓｋ１のクエリを実行することを示す「ｔａｓｋ１」、中間データ１を消去する消去クエリを実行することを示す「中間データ１消去」等）を格納するタスク８２０の欄とを含んで構成される。
【００２８】
（データ分析処理（データ分析システムにおけるデータ管理方法））
データ分析処理では、計算機１１０からの分析実行リクエストに応じてデータ分析を行って分析結果を計算機１１０に送信するために、一連の処理（フロー情報取得処理、タスククエリ解析処理、制約判定処理、フロー生成処理、およびフロー実行処理）が行われる。図９〜図１３を用いてデータ分析処理の詳細について説明する。
【００２９】
図９は、フロー情報取得部（フロー情報取得プログラム３７０）により行われるフロー情報取得処理に係る処理手順を示す。フロー情報取得部は、計算機１１０から分析実行リクエストを受信し、分析実行リクエストの内容を解析してフロー情報管理表３７５に保存する処理を行う。
【００３０】
まず、フロー情報取得部は、計算機１１０から分析実行リクエストを受信する（ステップＳ９１０）。
【００３１】
続いて、フロー情報取得部は、分析実行リクエストを解析し、タスクごとにクエリ等を分解してフロー情報管理表３７５に保存する（ステップＳ９２０）。より具体的には、フロー情報取得部は、分析実行リクエスト内に含まれるタスクＩＤをフロー情報管理表３７５のタスクＩＤ４１０に、入力データの入力ソース名をフロー情報管理表３７５の入力ソース４２０に、クエリを分析して得られる入力データの項目をフロー情報管理表３７５の入力データ４３０に、クエリをフロー情報管理表３７５のクエリ４４０に保存する。
【００３２】
以上が、フロー情報取得部におけるフロー情報取得処理の説明である。
【００３３】
図１０は、タスククエリ解析部（タスククエリ解析プログラム３７１）により行われるタスククエリ解析処理に係る処理手順を示す。タスククエリ解析部は、クエリを解析し、一のタスク（クエリ）における入力データと出力データとの関係を明確にする処理を行う。
【００３４】
まず、タスククエリ解析部は、フロー情報管理表３７５に保持されているタスクで処理の終わっていないものがあるか否かを判定する（ステップＳ１０１０）。タスククエリ解析部は、処理の終わっていないものがあると判定した場合、ステップＳ１０２０に処理を移し、処理の終わっていないものがないと判定した場合、タスククエリ解析処理を終了する。
【００３５】
ステップＳ１０２０では、タスククエリ解析部は、フロー情報管理表３７５のクエリ４４０の欄の処理対象のタスクを解析し、入力データと出力データとの関係を把握（例えば、タスクごとに入力データおよび出力データを特定）する。
【００３６】
続いて、タスククエリ解析部は、処理対象のタスクを解析した結果に基づいてタスク管理表３７６を更新し（ステップＳ１０３０）、ステップＳ１０１０に処理を移す。より具体的には、タスククエリ解析部は、フロー情報管理表３７５の処理対象のタスクのタスクＩＤ４１０をタスク管理表のタスクＩＤ５１０の欄に、フロー情報管理表３７５の処理対象のタスクの入力ソース４２０またはステップＳ１０２０で把握した中間データが入力ソースとなる場合はその中間データのＩＤをタスク管理表の入力ソース５２０の欄に、フロー情報管理表３７５の処理対象のタスクの入力データ４３０またはステップＳ１０２０で把握した中間データが入力ソースとなる場合はその中間データの項目をタスク管理表の入力データ５３０の欄に、ステップＳ１０２０で把握した出力データの項目をタスク管理表の中間データ５４０の欄に、タスク管理表の中間データＩＤ５５０の欄には連番となるようにＩＤを記載する。
【００３７】
以上が、タスククエリ解析部におけるタスククエリ解析処理の説明である。
【００３８】
図１１は、制約判定部（制約判定プログラム３７２）により行われる制約判定処理に係る処理手順を示す。制約判定部は、各タスクで生成される中間データを消去するか残すかを判定し、制約ルール管理表３７８を生成する。
【００３９】
まず、制約判定部は、タスク管理表３７６に含まれる中間データで処理の終わっていないものがあるか否かを判定する（ステップＳ１１１０）。制約判定部は、処理の終わっていないものがあると判定した場合、ステップＳ１１２０に処理を移し、処理の終わっていないものがないと判定した場合、制約判定処理を終了する。
【００４０】
ステップＳ１１２０では、制約判定部は、タスク管理表３７６の処理対象の中間データの中間データ５４０にブラックリスト管理表３７７の属性６２０が予め定めたしきい値以上の個数（所定数以上）含まれているか否かを判定する（ステップＳ１１２０）。制約判定部は、しきい値以上の個数含まれていると判定した場合、ステップＳ１１３０に処理を移し、しきい値以上の個数含まれていないと判定した場合、ステップＳ１１４０に処理を移す。なお、所定数は、「１」であってもよいし、「２」以上（複数）であってもよい。
【００４１】
ステップＳ１１３０では、制約判定部は、タスク管理表３７６の処理対象の中間データの中間データＩＤ５５０を制約ルール管理表３７８の中間データＩＤ７１０に、制約ルール管理表３７８の対応７２０の欄に「消去」を記載し、ステップＳ１１１０に処理を移す。
【００４２】
ステップＳ１１４０では、制約判定部は、タスク管理表３７６の処理対象の中間データの中間データＩＤ５５０を制約ルール管理表３７８の中間データＩＤ７１０に、制約ルール管理表３７８の対応７２０の欄に「残す」を記載し、ステップＳ１１１０に処理を移す。
【００４３】
以上が、制約判定部における制約判定処理の説明である。
【００４４】
図１２は、フロー生成部（フロー生成プログラム３７３）により行われるフロー生成処理に係る処理手順を示す。フロー生成部は、制約ルール管理表３７８の情報に基づいて実際にタスクを実行するためのフローを生成する。この際、中間データを消去するタイミングが規定（決定）される。
【００４５】
まず、フロー生成部は、タスク管理表３７６のタスクに処理の終わっていないものがあるか否かを判定する（ステップＳ１２１０）。フロー生成部は、処理の終わっていないものがあると判定した場合、ステップＳ１２２０に処理を移し、処理の終わっていないものがないと判定した場合、ステップＳ１２５０に処理を移す。
【００４６】
ステップＳ１２２０では、フロー生成部は、フロー管理表３７９のタスク８２０の欄にタスク管理表３７６の処理対象のタスクを追加し、ＩＤ８１０の欄については連番で付与する。
【００４７】
続いて、フロー生成部は、タスク管理表３７６の処理対象のタスクの入力ソース５２０に記載されている中間データＩＤを、制約ルール管理表３７８の中間データＩＤ７１０の欄で検索し、該当するレコードの対応７２０の欄を確認する（ステップＳ１２３０）。フロー生成部は、レコードの対応７２０の欄の値が「消去」である場合、ステップＳ１２４０に処理を移し、レコードの対応７２０の欄の値が「残す」である場合、または入力ソース５２０に記載されている値が中間データＩＤでない場合（「Ａ社」、「Ｂ社」などの場合）、ステップＳ１２１０に処理を移す。
【００４８】
ステップＳ１２４０では、フロー生成部は、タスク管理表３７６の処理対象のタスクの入力ソース５２０に記載されている中間データを消去するタスク（消去タスク）をフロー管理表３７９のタスク８２０の欄に追加し、ＩＤ８１０の欄については連番で付与し、ステップＳ１２１０に処理を移す。
【００４９】
ステップＳ１２５０では、フロー生成部は、全ての中間データを消去するタスクをフロー管理表３７９のタスク８２０の欄に追加し、ＩＤ８１０の欄については連番で付与し、フロー生成処理を終了する。
【００５０】
以上が、フロー生成部におけるフロー生成処理の説明である。
【００５１】
図１３は、フロー実行部（フロー実行プログラム３７４）により行われるフロー実行処理に係る処理手順を示す。フロー実行部は、フロー管理表３７９で定義されたフローに従ってタスクを実行する。
【００５２】
まず、フロー実行部は、フロー管理表３７９のタスクに処理の終わっていないものがあるか否かを判定する（ステップＳ１３１０）。フロー実行部は、処理の終わっていないものがあると判定した場合、ステップＳ１３２０に処理を移し、処理の終わっていないものがないと判定した場合、ステップＳ１３３０に処理を移す。
【００５３】
ステップＳ１３２０では、フロー実行部は、フロー管理表３７９のタスク８２０の欄に記載された処理対象のタスクを実行し、ステップＳ１３１０に処理を移す。
【００５４】
ステップＳ１３３０では、フロー実行部は、計算機１１０に分析結果を送信（通知）し、フロー実行処理を終了する。なお、計算機１１０では、分析結果が出力装置２５０により出力される。
【００５５】
以上が、フロー実行部におけるフロー実行処理の説明である。
【００５６】
上述したように、本実施の形態によれば、ブラックリストに載った属性を含むデータが中間データとして生成された場合、当該中間データを使用後すぐに消去でき、セキュリティリスクを削減できる。また、セキュリティリスクの無い中間データに関しては、フロー終了まで保持でき、タスクでの障害発生時に迅速に再実行を行うことができる。
【００５７】
（２）第２の実施の形態
第２の実施の形態の構成は、第１の実施の形態の構成と基本的に同様である。ただし、管理サーバ１２０の記憶装置３３０に記憶される制約ルール管理表３７８の構成が異なる。また、管理サーバ１２０の記憶装置３３０に記憶される制約判定プログラム３７２およびフロー生成プログラム３７３が異なる。以下、詳細について説明する。
【００５８】
図１４は、制約ルール管理表３７８の一例を示す。制約ルール管理表３７８は、中間データを一意に識別可能な中間データ識別情報を格納する中間データＩＤ１４１０の欄と、中間データＩＤが示す中間データを最後に利用するタスクを示す最終利用タスク情報を格納する最終利用タスク１４２０の欄とを含んで構成される。
【００５９】
図１５は、制約判定部（制約判定プログラム３７２）により行われる制約判定処理に係る処理手順を示す。制約判定部は、中間データが最後に使われるタスクを特定し、制約ルール管理表３７８を生成する。
【００６０】
まず、制約判定部は、タスク管理表３７６に含まれる中間データで処理の終わっていないものがあるか否かを判定する（ステップＳ１５１０）。制約判定部は、処理の終わっていないものがあると判定した場合、ステップＳ１５２０に処理を移し、処理の終わっていないものがないと判定した場合、制約判定処理を終了する。
【００６１】
ステップＳ１５２０では、制約判定部は、タスク管理表３７６の処理対象の中間データの中間データＩＤ５５０がタスク管理表３７６の入力ソース５２０の欄で最後に記載されているタスクのタスクＩＤ５１０を制約ルール管理表３７８の最終利用タスク１４２０の欄に記載し、ステップＳ１５１０に処理を移す。
【００６２】
以上が、制約判定部における制約判定処理の説明である。
【００６３】
図１６は、フロー生成部（フロー生成プログラム３７３）により行われるフロー生成処理に係る処理手順を示す。フロー生成部は、制約ルール管理表３７８の情報に基づいて実際にタスクを実行するフローを生成する。この際、中間データを消去するタイミングが決定される。
【００６４】
まず、フロー生成部は、タスク管理表３７６のタスクに処理の終わっていないものがあるか否かを判定する（ステップＳ１６１０）。フロー生成部は、処理の終わっていないものがあると判定した場合、ステップＳ１６２０に処理を移し、処理の終わっていないものがないと判定した場合、ステップＳ１６６０に処理を移す。
【００６５】
ステップＳ１６２０では、フロー生成部は、フロー管理表３７９のタスク８２０の欄にタスク管理表３７６の処理対象のタスクを記載し、ＩＤ８１０の欄については連番で付与する。
【００６６】
続いて、フロー生成部は、制約ルール管理表３７８をタスク管理表３７６の処理対象のタスクの入力ソース５２０に記載された中間データＩＤで検索する（ステップＳ１６３０）。続いて、フロー生成部は、処理対象のタスク（タスクＩＤ）が最終利用タスクであるか否かを判定する（ステップＳ１６４０）。フロー生成部は、最終利用タスクであると判定した場合、ステップＳ１６５０に処理を移し、最終利用タスクでないと判定した場合または入力ソース５２０に記載されている値が中間データＩＤでない場合、ステップＳ１６１０に処理を移す。
【００６７】
ステップＳ１６５０では、フロー生成部は、タスク管理表３７６の処理対象のタスクの入力ソース５２０に記載されている中間データを消去するタスク（消去タスク）をフロー管理表３７９のタスク８２０の欄に追加し、ＩＤ８１０の欄については連番で付与し、ステップＳ１６１０に処理を移す。
【００６８】
ステップＳ１６６０では、フロー生成部は、全ての中間データを消去するタスクをフロー管理表３７９のタスク８２０の欄に追加し、ＩＤ８１０の欄については連番で付与し、フロー生成処理を終了する。
【００６９】
以上が、フロー生成部におけるフロー生成処理の説明である。なお、引き続き、図１３に示すフロー実行処理が行われるが、同じ処理であるので、その説明を省略する。
【００７０】
上述したように、本実施の形態によれば、タスクの実行後に使用されなくなる中間データを使用後すぐに消去することで、フローの終了まで当該中間データを保持して当該中間データが攻撃されてしまう事態を回避でき、セキュリティリスクを削減できる。
【００７１】
（３）第３の実施の形態
第３の実施の形態の構成は、第１の実施の形態の構成と基本的に同様である。ただし、管理サーバ１２０の記憶装置３３０に記憶される制約ルール管理表３７８の構成が異なる。また、管理サーバ１２０の記憶装置３３０に中間データ生成時間しきい値管理表１８００とタスク実行時間管理表１９００とが新たに記憶される。また、管理サーバ１２０の記憶装置３３０に記憶される制約判定プログラム３７２、フロー生成プログラム３７３、およびフロー実行プログラム３７４が異なる。
【００７２】
図１７は、制約ルール管理表３７８の一例を示す。制約ルール管理表３７８は、中間データを一意に識別可能な中間データ識別情報を格納する中間データＩＤ１７１０の欄と、中間データの生成に係る時間を示す生成時間情報を格納する生成時間１７２０の欄と、中間データへの対応を示す対応情報を格納する対応１７３０の欄とを含んで構成される。
【００７３】
図１８は、中間データ生成時間しきい値管理表１８００の一例を示す。中間データ生成時間しきい値管理表１８００は、しきい値を格納するしきい値１８１０の欄を含んで構成される。
【００７４】
図１９は、タスク実行時間管理表１９００の一例を示す。タスク実行時間管理表１９００は、タスク（クエリ）の実行に要した時間を一意に識別可能な識別情報を格納するＩＤ１９１０と、タスクの実行に要した時間を示す実行時間情報を格納する実行時間１９２０の欄と、タスクで実行するクエリを格納するクエリ１９３０の欄とを含んで構成される。
【００７５】
図２０は、制約判定部（制約判定プログラム３７２）により行われる制約判定処理に係る処理手順を示す。制約判定部は、中間データの生成時間としきい値とから中間データを消去するか残すかを判定し、制約ルール管理表３７８を生成する。
【００７６】
まず、制約判定部は、タスク管理表３７６に含まれる中間データで処理の終わっていないものがあるか否かるかを判定する（ステップＳ２０１０）。制約判定部は、処理の終わっていないものがあると判定した場合、ステップＳ２０２０に処理を移し、処理の終わっていないものがないと判定した場合、制約判定処理を終了する。
【００７７】
ステップＳ２０２０では、制約判定部は、処理対象の中間データのタスクのクエリ４４０を実行時間管理表１９００のクエリ１９３０の欄で検索し、実行時間１９２０に記載された値を制約ルール管理表３７８の生成時間１７２０に記載する。
【００７８】
続いて、制約判定部は、制約ルール管理表３７８の処理対象の中間データの生成時間１７２０に値があるか否かを判定する（ステップＳ２０３０）。制約判定部は、値があると判定した場合、ステップＳ２０４０に処理を移し、値がないと判定した場合、ステップＳ２０７０に処理を移す。
【００７９】
ステップＳ２０４０では、制約判定部は、制約ルール管理表３７８の処理対象の中間データの生成時間１７２０の値と中間データ生成時間しきい値管理表１８００のしきい値１８１０の値とを比較し、生成時間がしきい値より小さいか否かを判定する。制約判定部は、小さいと判定した場合、ステップＳ２０５０に処理を移し、小さくないと判定した場合、ステップＳ２０６０に処理を移す。
【００８０】
ステップＳ２０５０では、制約判定部は、制約ルール管理表３７８の処理対象の中間データの対応１７３０の欄に「消去」と記載し、ステップＳ２０１０に処理を移す。
【００８１】
ステップＳ２０６０では、制約判定部は、制約ルール管理表３７８の処理対象の中間データの対応１７３０の欄に「残す」と記載し、ステップＳ２０１０に処理を移す。
【００８２】
ステップＳ２０７０では、制約判定部は、制約ルール管理表３７８の処理対象の中間データの対応１７３０の欄に「残す」と記載し、ステップＳ２０１０に処理を移す。
【００８３】
以上が、制約判定部における制約判定処理の説明である。
【００８４】
図２１は、フロー生成部（フロー生成プログラム３７３）により行われるフロー生成処理に係る処理手順を示す。フロー生成部は、制約ルール管理表３７８の情報に基づいて実際にタスクを実行するフローを生成する。この際、中間データを消去するタイミングが決定される。
【００８５】
まず、フロー生成部は、タスク管理表３７６のタスクに処理の終わっていないものがあるか否かを判定する（ステップＳ２１１０）。フロー生成部は、処理の終わっていないものがあると判定した場合、ステップＳ２１２０に処理を移し、処理の終わっていないものがないと判定した場合、ステップＳ２１５０に処理を移す。
【００８６】
ステップＳ２１２０では、フロー生成部は、フロー管理表３７９のタスク８２０の欄にタスク管理表３７６の処理対象のタスクを追加し、ＩＤ８１０の欄については連番で付与する。
【００８７】
続いて、フロー生成部は、タスク管理表３７６の処理対象のタスクの入力ソース５２０に記載されている中間データＩＤを、制約ルール管理表３７８の中間データＩＤ１７１０の欄で検索し、該当するレコードの対応１７３０の欄を確認する（ステップＳ２１３０）。フロー生成部は、該当するレコードの対応１７３０の欄の値が「消去」である場合、ステップＳ２１４０に処理を移し、該当するレコードの対応１７３０の欄の値が「残す」である場合または入力ソース５２０に記載されている値が中間データＩＤでない場合、ステップＳ２１１０に処理を移す。
【００８８】
ステップＳ２１４０では、フロー生成部は、タスク管理表３７６の処理対象のタスクの入力ソース５２０に記載されている中間データを消去するタスク（消去タスク）をフロー管理表３７９のタスク８２０の欄に追加し、ＩＤ８１０の欄については連番で付与し、ステップＳ２１１０に処理を移す。
【００８９】
ステップＳ２１５０では、フロー生成部は、全ての中間データを消去するタスクをフロー管理表３７９のタスク８２０の欄に追加し、ＩＤ８１０の欄については連番で付与し、フロー生成処理を終了する。
【００９０】
以上が、フロー生成部におけるフロー生成処理の説明である。
【００９１】
図２２は、フロー実行部（フロー実行プログラム３７４）により行われるフロー実行処理に係る処理手順を示す。フロー実行部は、フロー管理表３７９で定義されたフローに従ってタスクを実行する。
【００９２】
まず、フロー実行部は、フロー管理表３７９のタスクに処理の終わっていないものがあるか否かを判定する（ステップＳ２２１０）。フロー実行部は、処理の終わっていないものがあると判定した場合、ステップＳ２２２０に処理を移し、処理の終わっていないものがないと判定した場合、ステップＳ２２４０に処理を移す。
【００９３】
ステップＳ２２２０では、フロー実行部は、フロー管理表３７９のタスク８２０の欄に記載された処理対象のタスクを実行する。
【００９４】
続いて、フロー実行部は、処理対象のタスクのクエリに一致するクエリを格納したタスク実行時間管理表１９００のクエリ１９３０があるか否かを確認し、ある場合、当該クエリ１９３０に対応する実行時間１９２０の欄にタスクの実行時間で更新し、ない場合、レコードを追加（ＩＤ１９１０の欄については連番で付与し、実行時間１９２０に処理対象のタスクの実行時間を格納し、クエリ１９３０に処理対象のタスクのクエリを格納）し、ステップＳ２２１０に処理を移す（ステップＳ２２３０）。
【００９５】
ステップＳ２２４０では、フロー実行部は、計算機１１０に分析結果を送信（通知）し、フロー実行処理を終了する。なお、計算機１１０では、分析結果が出力装置２５０により出力される。
【００９６】
以上が、フロー実行部におけるフロー実行処理の説明である。
【００９７】
上述したように、本実施の形態によれば、生成に時間のかからない中間データを消去することで、フローの終了まで当該中間データを保持して当該中間データが攻撃されてしまう事態を回避でき、セキュリティリスクを削減できる。また、生成に長い時間を要する中間データについては保持するため、タスクでの障害発生時に、迅速に再実行を行うことができる。
【００９８】
（４）他の実施の形態
なお上述の第１〜第３の実施の形態においては、本発明をデータ分析システム１に適用するようにした場合について述べたが、本発明はこれに限らず、この他種々の計算機システムに広く適用することができる。
【００９９】
また上述の第１〜第３の実施の形態においては、個々の実施の形態について述べたが、本発明はこれに限らず、第１〜第３の実施の形態を適宜に組み合わせて構成するようにしてもよい。
【０１００】
例えば、第１の実施の形態の構成と第２の実施の形態の構成とを組み合わせてもよい。この場合、例えば、中間データの最終利用タスクを判定した後に、当該最終利用タスクにより生成される中間データにブラックリスト管理表に含まれる属性がしきい値以上含まれているか否かを判定し、制約ルール管理表を生成するようにしてもよい。この構成によれば、例えば、中間データが使われなくなった時点で、セキュリティリスクのある中間データは削除し、セキュリティリスクの無い中間データを保持できるので、セキュリティリスクを削減でき、タスクでの障害発生時には、迅速に再実行を行うことができる。
【０１０１】
また、例えば、第１の実施の形態の構成と第３の実施の形態の構成とを組み合わせてもよい。この場合、例えば、各中間データについて、生成時間としきい値とに基づいて対応（残すか消去するか）を判定した後に、残すと判定した中間データについて、更に、ブラックリスト管理表に含まれる属性がしきい値以上含まれているか否かを判定し、含まれていると判定した場合は消去するように変更し、制約ルール管理表を生成するようにしてもよい。この構成によれば、例えば、生成に長い時間を要する中間データであっても、セキュリティリスクのあるデータを消去でき、セキュリティリスクを削減できる。
【０１０２】
また、例えば、第２の実施の形態の構成と第３の実施の形態の構成とを組み合わせてもよい。この場合、例えば、中間データの最終利用タスクを判定すると共に、生成時間としきい値とに基づいて対応（残すか消去するか）を判定し、制約ルール管理表を生成するようにしてもよい。この構成によれば、例えば、タスクの実行後に、使用されなくなる中間データをすぐに消去し、かつ、生成に時間のかからない中間データを消去することで、フローの終了まで当該中間データを保持して当該中間データが攻撃されてしまう事態を回避でき、セキュリティリスクを更に削減できる。
【０１０３】
なお、上述した構成は、例示であり、その他の構成でもよく、発明の要旨の範囲内で適宜の構成を採用することができる。
【０１０４】
また上述の第１の実施の形態においては、ステップＳ１１２０において、中間データの属性にブラックリスト管理表３７７に含まれるものがしきい値以上あるか否かを判定する場合について述べたが、本発明はこれに限らず、属性ごとに重み付けを設け、中間データの属性にブラックリスト管理表３７７に含まれるものの重み付けの総和が所定のしきい値を超えるか否かを判定するようにしてもよい。
【０１０５】
また上述の第３の実施の形態においては、ステップＳ２２３０において、実行時間１９２０の欄を最新の値に更新する場合について述べたが、本発明はこれに限らず、過去の実行時間を記憶し、実行時間１９２０の欄を代表値（平均値、中央値、最頻値等）にするようにしてもよい。
【０１０６】
また上述の第３の実施の形態においては、タスク実行時間管理表１９００の実行時間を生成時間とする場合について述べたが、本発明はこれに限らず、実際の生成に要した時間を生成時間とするようにしてもよい。この場合、フローには、中間データの消去タスクを追加することなく、フローの各タスクの実行時（例えばステップＳ２２２０の後）に、中間データの生成時間としきい値とを比較し、生成時間がしきい値より小さい場合、当該中間データを消去するようにしてもよい。
【０１０７】
また上述の実施の形態においては、少なくとも下記の特徴を有している。
【０１０８】
計算機からの分析実行リクエストに基づいて、複数の入力データを組み合わせて分析を行うデータ分析システムにおけるデータ管理方法であって、リクエスト解析部（例えば、フロー情報取得部、タスククエリ解析部、制約判定部）が、上記計算機からの分析実行リクエストを解析してタスクを識別し、識別したタスクごとにタスクの実行後に生成される中間データを識別し、識別した中間データを消去するか否かを判定するための制約情報を生成する第１のステップと、タスク管理部（例えば、フロー生成部）が、識別された各タスクについて、上記制約情報に基づいて中間データを消去するか否かを判定する第２のステップと、タスク実行部（例えば、フロー実行部）が、識別されたタスクを実行すると共に、上記第２のステップでの判定結果に基づいて上記タスクの中間データを消去する第３のステップと、を備えることを特徴とする。
【０１０９】
上記タスク管理部は、上記タスク実行部がタスクを実行するためのフローを生成するものであってもよく、例えば、上記フローにタスクを追加し、上記制約情報に基づいて、上記タスクの実行後に生成される中間データを消去すると判定した場合、上記中間データを消去するための消去タスクを上記タスクに続いて上記フローに追加する処理を識別されたタスクについて逐次に行って上記フローを生成する。
【符号の説明】
【０１１０】
１……データ分析システム、１１０……計算機、１２０……管理サーバ、３７０……フロー情報取得プログラム、３７１……タスククエリ解析プログラム、３７２……制約判定プログラム、３７３……フロー生成プログラム、３７４……フロー実行プログラム、３７５……フロー情報管理表、３７６……タスク管理表、３７７……ブラックリスト管理表、３７８……制約ルール管理表、３７９……フロー管理表。
【図１】
0006606310.tif 000002
【図２】
0006606310.tif 000003
【図３】
0006606310.tif 000004
【図４】
0006606310.tif 000005
【図５】
0006606310.tif 000006
【図６】
0006606310.tif 000007
【図７】
0006606310.tif 000008
【図８】
0006606310.tif 000009
【図９】
0006606310.tif 000010
【図１０】
0006606310.tif 000011
【図１１】
0006606310.tif 000012
【図１２】
0006606310.tif 000013
【図１３】
0006606310.tif 000014
【図１４】
0006606310.tif 000015
【図１５】
0006606310.tif 000016
【図１６】
0006606310.tif 000017
【図１７】
0006606310.tif 000018
【図１８】
0006606310.tif 000019
【図１９】
0006606310.tif 000020
【図２０】
0006606310.tif 000021
【図２１】
0006606310.tif 000022
【図２２】
0006606310.tif 000023