(57)【特許請求の範囲】
【請求項１】
各種データのローデータからキュレーテッドデータを生成し、前記キュレーテッドデータを学習することで学習データモデルを生成するデータ分析サーバと、
前記学習データモデルを格納する第１の記憶領域と、前記キュレーテッドデータを格納する第２の記憶領域と、前記ローデータを格納する第３の記憶領域と、を有するデータストレージと、
前記データストレージを管理するストレージ管理サーバと、を有し、
前記データ分析サーバは、
前記学習データモデルと、前記学習データモデルを生成するための前記ローデータを格納するローデータバケットと、前記学習データモデルを生成するための前記キュレーテッドデータを格納するキュレーテッドデータバケットと、の対応を管理する第１のデータ構成情報と、
前記学習データモデルと前記第１の記憶領域、前記キュレーテッドデータバケットと前記第２の記憶領域、及び、前記ローデータバケットと前記第３の記憶領域と、の対応を管理する第２のデータ構成情報と、を管理し、
前記学習データモデルの生成時に、前記ストレージ管理サーバを介して前記データストレージに対し、前記学習データモデルを生成するための前記キュレーテッドデータを格納する前記第２の記憶領域、及び、前記学習データモデルを生成するための前記ローデータを格納する前記第３の記憶領域のスナップショットの取得の指示を行う、
ことを特徴とするデータ管理システム。
【請求項２】
請求項１に記載のデータ管理システムにおいて、
前記ローデータバケットは、データレイクであり、
前記キュレーテッドデータバケットは、学習データセットであり、
前記学習データモデルは、学習モデルである、ことを特徴とするデータ管理システム。
【請求項３】
請求項２に記載のデータ管理システムにおいて、
前記データ分析サーバは、前記ストレージ管理サーバからストレージ構成管理情報とスナップショット管理情報を受信し、前記第１の記憶領域、前記第２の記憶領域、及び、前記第３の記憶領域のスナップショット取得時を管理する第３のデータ構成情報を生成し、
前記第１のデータ構成情報、前記第２のデータ構成情報、及び、前記第３のデータ構成情報に基づいて、データ構成関係を生成する、ことを特徴とするデータ管理システム。
【請求項４】
請求項３に記載のデータ管理システムにおいて、
前記データ分析サーバによって生成される前記データ構成関係は、
前記ローデータバケット、前記キュレーテッドデータバケット、及び、前記学習データモデルとの関係と、
前記ローデータバケットと前記第３の記憶領域、前記キュレーテッドデータバケットと前記第２の記憶領域、及び、前記学習データモデルと前記第３の記憶領域との関係と、
前記第１の記憶領域、前記第２の記憶領域、及び、前記第３の記憶領域の少なくとも一つのスナップショットとの関係とを表したものであることを特徴とするデータ管理システム。
【請求項５】
請求項２に記載のデータ管理システムにおいて、
前記データ分析サーバは、前記ストレージ管理サーバからストレージ構成管理情報とスナップショット管理情報を受信し、前記第１の記憶領域、前記第２の記憶領域、及び、前記第３の記憶領域のスナップショット取得時を管理する第３のデータ構成情報を生成し、
前記第１のデータ構成情報、前記第２のデータ構成情報、及び、前記第３のデータ構成情報に基づいて、データ時系列関係を生成する、ことを特徴とするデータ管理システム。
【請求項６】
請求項５に記載のデータ管理システムにおいて、
前記データ分析サーバによって生成される前記データ時系列関係は、
前記ローデータバケット、前記キュレーテッドデータバケット、及び、前記学習データモデルとの関係と、
前記ローデータバケットと前記第３の記憶領域、前記キュレーテッドデータバケットと前記第２の記憶領域、及び、前記学習データモデルと前記第３の記憶領域との関係と、
前記第１の記憶領域、前記第２の記憶領域、及び、前記第３の記憶領域のスナップショット取得時刻との関係とを表したものであることを特徴とするデータ管理システム。
【請求項７】
請求項２に記載のデータ管理システムにおいて、
前記データ分析サーバは、前記ストレージ管理サーバからストレージ構成管理情報とスナップショット管理情報を受信し、前記第１の記憶領域、前記第２の記憶領域、及び、前記第３の記憶領域のスナップショット取得時を管理する第３のデータ構成情報を生成し、
前記第２のデータ構成情報と前記第３のデータ構成情報に基づいて、同一時刻に取得された、前記学習データモデル、前記キュレーテッドデータバケット、及び、前記ローデータバケットのスナップショットの内の少なくとも二つを、コンシステントスナップショットグループとして管理する、ことを特徴とするデータ管理システム。
【請求項８】
請求項２に記載のデータ管理システムにおいて、
前記データ分析サーバは、処理部と表示装置を有し、
前記処理部は、複数のジョブオブジェクトを前記表示装置のノードリスト部に表示し、
前記ジョブオブジェクトを、前記ノードリスト部から選択し、ワークフロー表示領域にドロップすることで、データ準備処理のワークフロー定義情報を生成することを特徴とするデータ管理システム。
【請求項９】
請求項８に記載のデータ管理システムにおいて、
前記ノードリスト部に表示される前記複数のジョブオブジェクトは、
前記ローデータバケットからデータを読み出すロードデータオブジェクトと、
関連付けられたジョブオブジェクトのデータに対し、当該データをキュレートするデータキュレーションオブジェクトと、
関連付けられたジョブオブジェクトのデータに対し、当該データを格納する格納ジョブオブジェクトと、
関連付けられたジョブオブジェクトのデータに対し、当該データのスナップショットを取得するスナップショット取得ジョブオブジェクトと、を含む、ことを特徴とするデータ管理システム。
【請求項１０】
各種データのローデータからキュレーテッドデータを生成し、前記キュレーテッドデータを学習することで学習データモデルを生成するデータ分析サーバと、前記学習データモデルを格納する第１の記憶領域と、前記キュレーテッドデータを格納する第２の記憶領域と、前記ローデータを格納する第３の記憶領域と、を有するデータストレージと、前記データストレージを管理するストレージ管理サーバと、を有するデータ管理システムにおけるデータ管理方法であって、
前記データ分析サーバは、
前記学習データモデルと、前記学習データモデルを生成するための前記ローデータを格納するローデータバケットと、前記学習データモデルを生成するための前記キュレーテッドデータを格納するキュレーテッドデータバケットと、の対応を第１のデータ構成情報として管理し、
前記学習データモデルと前記第１の記憶領域、前記キュレーテッドデータバケットと前記第２の記憶領域、及び、前記ローデータバケットと前記第３の記憶領域と、の対応を管理する第２のデータ構成情報と、を管理し、
前記学習データモデルの生成時に、前記ストレージ管理サーバを介して前記データストレージに対し、前記学習データモデルを生成するための前記キュレーテッドデータを格納する前記第２の記憶領域、及び、前記学習データモデルを生成するための前記ローデータを格納する前記第３の記憶領域のスナップショットの取得の指示を行う、
ことを特徴とするデータ管理方法。
【請求項１１】
請求項１０に記載のデータ管理方法において、
前記データ分析サーバは、
前記ストレージ管理サーバからストレージ構成管理情報とスナップショット管理情報を受信し、前記第１の記憶領域、前記第２の記憶領域、及び、前記第３の記憶領域のスナップショット取得時を管理する第３のデータ構成情報を生成し、
前記第２のデータ構成情報と前記第３のデータ構成情報に基づいて、同一時刻に取得された、前記学習データモデル、前記キュレーテッドデータバケット、及び、前記ローデータバケットのスナップショットの内の少なくとも二つを、コンシステントスナップショットグループとして管理する、ことを特徴とするデータ管理方法。
【請求項１２】
請求項１０に記載のデータ管理方法において、
前記データ分析サーバは、
学習データモデル生成の指示を受領すると、
前記ローデータバケットを参照し、
参照された前記ローデータバケットに対応する前記第３の記憶領域のスナップショット取得指示を前記ストレージ管理サーバに通知し、
前記ストレージ管理サーバは、前記データストレージに対し、前記第３の記憶領域のスナップショット取得を指示し、
前記データストレージは、前記第３の記憶領域のスナップショットを取得して、前記ストレージ管理サーバに通知し、
前記データ分析サーバは、前記ストレージ管理サーバから、前記参照された前記第３の記憶領域のスナップショットの取得通知を受領すると、前記参照された前記ローデータバケットのキュレーションを実行し、
前記キュレーションを実行されたデータを前記キュレーテッドデータバケットに格納して、前記ストレージ管理サーバに対して前記キュレーテッドデータバケットに対応する前記第２の記憶領域のスナップショットの取得を指示し、
前記データストレージは、前記ストレージ管理サーバから指示に応じて、前記第２の記憶領域のスナップショットを取得して、前記ストレージ管理サーバに通知する、ことを特徴とするデータ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マシンラーニング向けデータ管理技術に関する。
【背景技術】
【０００２】
人工知能ＡＩ（Artificial Intelligence）技術において、各種データを収集し、マシンラーニング（Machine Learning）やディープラーニング（Deep Learning)を活用し、パターンを認識させることで、ビジネスや生活における様々な難しいタスクをこなせるようにコンピュータをトレーニングしている。
【０００３】
例えば、各種データは、各種センサからのデータであり、マシンラーニングやディープラーニングといった分析アプリケーションが、各種データを分析する。そのため、データ管理システムは、各種データと、各種データから必要な情報のみを選別するフィルタリング等を行って有益な状態とした学習データセットと、学習データセットをＡＩアプリケーションによって分析した学習モデルと、をそれぞれ格納する。
【０００４】
しかし、データ管理システム上から各種データ、学習データセット、学習モデルは、データ管理システム上で、時間経過に伴い、随時更新されるため、消失してしまう。このように、必要なデータがデータ管理システム上に保管されていないため、後になって、学習モデルの再学習や根拠探索を行うことができない。
【０００５】
一般的に、ある時点のデータを保管する技術として、複数世代のバックアップイメージを格納する技術として特許文献１がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許第９４０５７５６号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記特許文献１によれば、複数世代のバックアップイメージを保管し、バックアップイメージからオリジナルなデータをリストアすることができるが、マシンラーニングやディープラーニングといったＡＩ分析アプリケーションとの連携は考慮されていない。言い換えれば、学習モデル生成時の各種データ等を保管すること考慮されていない。そのため、ＡＩアプリ利用者が学習モデルの再学習や根拠探索などを目的として、過去のデータを参照したいときに、同時点のデータが保管されておらず、参照することができない。
【０００８】
本発明の目的は、ＡＩアプリ利用者が学習データモデルの再学習や根拠探索などを目的とした、過去のデータを参照可能なデータ管理システム及びデータ管理方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明のデータ管理システムの一態様は、各種データのローデータからキュレーテッドデータを生成し、キュレーテッドデータを学習することで学習データモデルを生成するデータ分析サーバと、学習データモデルを格納する第１の記憶領域と、キュレーテッドデータを格納する第２の記憶領域と、ローデータを格納する第３の記憶領域と、を有するデータストレージと、データストレージを管理するストレージ管理サーバと、を有する。データ分析サーバは、学習データモデルと、学習データモデルを生成するためのローデータを格納するローデータバケットと、学習データモデルを生成するためのキュレーテッドデータを格納するキュレーテッドデータバケットと、の対応を管理する第１のデータ構成情報と、学習データモデルと第１の記憶領域、キュレーテッドデータバケットと第２の記憶領域、及び、ローデータバケットと第３の記憶領域と、の対応を管理する第２のデータ構成情報と、を管理し、学習データモデルの生成時に、ストレージ管理サーバを介してデータストレージに対し、学習データモデルを生成するためのキュレーテッドデータを格納する第２の記憶領域、及び、学習データモデルを生成するためのローデータを格納する第３の記憶領域のスナップショットの取得の指示を行う。
【発明の効果】
【００１０】
本発明によれば、過去のデータを参照することで、ＡＩアプリ利用者が学習データモデルの再学習や根拠探索などを実現することができる。
【図面の簡単な説明】
【００１１】
【図１】実施例のデータ管理コンセプトを示す図である。
【図２】本発明の技術課題の一例を説明する図である。
【図３】実施例のデータ管理システムのシステム構成の一例を示す図である。
【図４】実施例のデータ管理システムのソフトウェア構成の一例を示す図である。
【図５】実施例のデータ関係図（構成図）の一例を示す図である。
【図６】実施例のデータ関係図（時系列）の一例を示す図である。
【図７】実施例のストレージ構成管理情報の一例を示す図である。
【図８】実施例のスナップショット管理情報の一例を示す図である。
【図９】実施例のデータ構成情報（キュレーテッドデータバケットから学習データモデル）の一例を示す図である。
【図１０】実施例のデータ構成情報（ローデータバケットからキュレーテッドデータバケット）の一例を示す図である。
【図１１】実施例のデータ構成情報（データソースからローデータバケット）の一例を示す図である。
【図１２】実施例のデータ構成情報（データバケットストレージ構成情報）の一例を示す図である。
【図１３】実施例のデータ構成情報（コンシステントスナップショットグループ）の一例を示す図である。
【図１４】実施例のワークフロー定義情報（データ準備処理）の一例を示す図である。
【図１５】実施例のワークフロー定義情報（データ復元処理）の一例を示す図である。
【図１６】実施例のスナップショット取得処理フローの一例を示す図である。
【図１７】実施例のスナップショット取得処理フローの一例を示す図である。
【図１８】実施例のスナップショット復元処理フローの一例を示す図である。
【図１９】実施例のスナップショット復元処理フローのＧＵＩ表示例を示す図である。
【図２０】実施例のデータ構成管理ＧＵＩ、データ関係図（時系列）の一例を示す図である。
【図２１】実施例のデータ構成管理ＧＵＩ、データ関係図（構成図）の一例を示す図である。
【発明を実施するための形態】
【００１２】
以下の説明において、「インターフェース部」は、１以上のインターフェースでよい。この１以上のインターフェースは、１以上の同種の通信インターフェースデバイス（例えば１以上のＮＩＣ（Network Interface Card））であってもよいし、２以上の異種の通信インターフェースデバイス（例えばＮＩＣとＨＢＡ（Host Bus Adapter））であってもよい。
【００１３】
また、以下の説明において、「メモリ部」は、１以上のメモリであり、典型的には主記憶デバイスでよい。メモリ部における少なくとも１つのメモリは、揮発性メモリであってもよいし不揮発性メモリであってもよい。
【００１４】
また、データストレージは、少なくとも一つのＰＤＥＶにより、冗長構成を有する論理的な記憶領域であるＬＤＥＶ（Logical Device）を構成する。各ＬＤＥＶは、少なくとも一つのＬＵ（Logical Unit）を有する。以下の説明において、「ＰＤＥＶ」は、物理的な記憶デバイス（Physical storage DEVice）を意味し、典型的には、不揮発性の記憶デバイス、例えばＨＤＤ（Hard Disk Drive）又はＳＳＤ（Solid State Drive）である。もしくは、フラッシュパッケージでもよい。
【００１５】
また、冗長構成は、Erasure Coding、ＲＡＩＮ（Redundant Array of Independent Nodes）及びノード間ミラーリングのように複数のノード装置での構成でもよいし、ＰＤＥＶ部の少なくとも一部としての１以上のＲＡＩＤ（Redundant Array of Independent (or Inexpensive) Disks）グループのように単一の計算機（例えばノード装置）での構成でもよい。
【００１６】
また、以下の説明において、「プロセッサ」は、１以上のプロセッサである。少なくとも１つのプロセッサは、典型的には、ＣＰＵ（Central Processing Unit）のようなマイクロプロセッサであるが、ＧＰＵ（Graphics Processing Unit）のような他種のプロセッサでもよい。少なくとも１つのプロセッサは、シングルコアでもよいしマルチコアでもよい。
【００１７】
また、少なくとも１つのプロセッサは、処理の一部又は全部を行うハードウェア回路（例えばＦＰＧＡ（Field-Programmable Gate Array）又はＡＳＩＣ（Application Specific Integrated Circuit）といった広義のプロセッサでもよい。
【００１８】
また、以下の説明において、「ｘｘｘテーブル」といった表現により、入力に対して出力が得られる情報を説明することがあるが、この情報は、どのような構造のデータでもよいし、入力に対する出力を発生するニューラルネットワークのような学習モデルでもよい。従って、「ｘｘｘテーブル」を「ｘｘｘ情報」と言うことができる。
【００１９】
また、以下の説明において、各テーブルの構成は一例であり、１つのテーブルは、２以上のテーブルに分割されてもよいし、２以上のテーブルの全部又は一部が１つのテーブルであってもよい。
【００２０】
また、以下の説明において、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ部によって実行されることで、定められた処理を、適宜に記憶部及び／又はインターフェース部などを用いながら行うため、処理の主語が、プロセッサ部（或いは、そのプロセッサ部を有するコントローラのようなデバイス）とされてもよい。
【００２１】
プログラムは、計算機のような装置にインストールされてもよいし、例えば、プログラム配布サーバ又は計算機が読み取り可能な（例えば非一時的な）記録媒体にあってもよい。また、以下の説明において、２以上のプログラムが１つのプログラムとして実現されてもよいし、１つのプログラムが２以上のプログラムとして実現されてもよい。
【００２２】
また、以下の説明において、「計算機システム」は、１以上の物理的な計算機を含んだシステムである。物理的な計算機は、汎用計算機でも専用計算機でもよい。物理的な計算機は、Ｉ／Ｏ（Input/Output）要求を発行する計算機（例えばホスト計算機やサーバシステムと呼ぶ）として機能してもよいし、Ｉ／Ｏ要求に応答してデータのＩ／Ｏを行う計算機（例えばストレージ装置）として機能してもよい。
【００２３】
すなわち、計算機システムは、データ管理システムを構成する。データ管理システムは、データを格納するためＩ／Ｏ要求を発行する１以上のデータ転送サーバ、Ｉ／Ｏ要求に応答してデータのＩ／Ｏを行う１以上のストレージ装置であるデータストレージ、データストレージを管理するストレージ管理サーバ、データストレージに格納されたデータを分析するデータ分析サーバ、及び、データ分析サーバの分析結果を利用する少なくとも１つのクライアントコンピュータと、を有する。
【００２４】
物理的な計算機において、１以上の仮想的な計算機（例えばＶＭ（Virtual Machine））が実行されてもよい。仮想的な計算機は、Ｉ／Ｏ要求を発行する計算機でもよいし、Ｉ／Ｏ要求に応答してデータのＩ／Ｏを行う計算機でもよい。
【００２５】
また、計算機システムは、１以上（典型的には複数）の物理的なノード装置で構成された分散システムでよい。物理的なノード装置は、物理的な計算機である。
【００２６】
また、物理的な計算機（例えばノード装置）が所定のソフトウェアを実行することにより、その物理的な計算機、又は、その物理的な計算機を含んだ計算機システムに、ＳＤｘ（Software-Defined anything）が構築されてもよい。ＳＤｘとしては、例えば、ＳＤＳ（Software Defined Storage）又はＳＤＤＣ（Software-defined Datacenter）が採用されてもよい。
【００２７】
また、以下の説明において、種々の対象の識別情報として、識別番号が使用されるが、識別番号以外の種類の識別情報（例えば、英字や符号を含んだ識別子）が採用されてもよい。
【００２８】
また、以下の説明において、同種の要素を区別しないで説明する場合には、参照符号（又は、参照符号のうちの共通符号）を使用し、同種の要素を区別して説明する場合は、要素の識別番号（又は参照符号）を使用することがある。
【実施例１】
【００２９】
＜データ管理コンセプト＞
以下、図面を参照して、実施例を説明する。
まず、実施例に係るデータ管理コンセプトを説明する。
【００３０】
図１は、実施例のデータ管理コンセプトを示す図である。
データソースの一例として、ＩｏＴデバイス、業務データベース、パブリックデータ、及び、ＷＥＢやＳＮＳを例に説明する。ＩｏＴデバイス１４ａからのローデータ、業務データベース１４ｂからのローデータ、パブリックデータ１４ｃからのローデータ、ＷＥＢやＳＮＳ１４ｄからのローデータは、少なくとも一つのローデータバケット１３ａ〜１３ｃに格納される。
【００３１】
ローデータバケット１３に格納されたローデータを分類し、つなぎ合わせて新しい価値を持たせて共有したキュレーテッドデータとして、キュレーテッドデータバケット１２に格納される。
【００３２】
キュレーテッドデータバケット１２に格納されたデータは、マシンラーニングやディープラーニングといった分析アプリケーション１０によって分析され、学習データモデル１１ａ、１１ｂを得る。
【００３３】
ここで、本実施例で用いる用語と一般的用語との対応を説明すると、ローデータバケットは、データソースからのデータを格納するデータレイクに相当し、キュレーテッドデータバケットは学習データセットに相当し、学習データモデルは学習モデルに相当する。
【００３４】
このように、データソースからの各種データ（ローデータ）は、データレイクに相当するローデータバケット１３にいったん格納され、分析しやすい形であるキュレーテッドデータとして、学習データセットに相当するキュレーテッドデータバケットに格納される。キュレーテッドデータバケットに格納されたデータは、マシンラーニングやディープラーニングといった分析アプリケーションによって分析され、学習モデルに相当する学習データモデルとして、ユーザやアプリケーション１０に提供される。学習データモデルは、通常ファイルシステムのファイルで管理される。
【００３５】
＜技術課題＞
図２は、本発明の技術課題の一例を説明する図である。
データソースからのローデータは、常に生成されるため、随時更新される。図２は、ＩｏＴデバイス１４ａと業務データベース１４ｂからのローデータを格納するローデータバケット１３ａは、２０１９年７月１日に更新され、業務データベース１４ｂとパブリックデータ１４ｃからのローデータは２０１９年６月１日に更新され、パブリックデータ１４ｃとＳＮＳ１４ｄからのローデータは２０１９年７月２０日に更新されていることを示している。
【００３６】
一方、学習データモデル１１ａは、２０１９年１月１日の学習データモデルで、学習データモデル１１ｂは、２０１９年４月１日の学習データモデルである。
【００３７】
キュレーテッドデータバケット１２には、２０１９年４月１日にキュレーションされたデータが格納されている。
【００３８】
このような状況において、２０１９年１月１日の学習データモデル１１ａについて、ＡＩアプリ利用者が学習データモデルの再学習や根拠探索などを目的として、過去のローデータやキュレーテッドデータを参照したいときに、同時点のデータが保管されていないため、参照することができないことが課題となる。学習データモデル１１ｂについても、同様の課題が生じる。また、キュレーテッドデータについても、同時点のローデータが既にローデータバケット１３に保管されていないため、参照することができない。
【００３９】
本実施例のデータ管理システムは、ＡＩアプリ利用者が学習データモデルを学習データモデルの再学習や根拠探索、再検証を行う際に、必要なキュレーテッドデータやローデータを参照することができるデータ管理システムを提供する。
【００４０】
＜システム構成＞
図３は、実施例のデータ管理システムの構成図の一例を示したものである。
ＩｏＴデバイス、業務データベース、パブリックデータ、及び、ＷＥＢやＳＮＳといったデータソース１４と、データソース１４からのデータ（ローデータ）を格納するデータストレージ３４と、データストレージにデータソース１４からのデータを転送する一つ以上のデータ転送サーバ３５とを有する。尚、データソース１４が直接データストレージ３４にデータを転送する場合には、データ転送サーバ３５は、不要である。
【００４１】
データストレージ３４は、図１で示したローデータバケット１３に対応するＬＵと、キュレーテッドデータバケット１２と対応するＬＵと、学習データモデル１１を格納するＬＵと、を提供する。尚、ＬＵは、前述の通り、冗長機能を有する論理的な記憶領域であるＬＤＥＶ（Logical Device）から構成される。各ＬＤＥＶは、ＨＤＤ（Hard Disk Drive）又はＳＳＤ（Solid State Drive）から構成されるＰＤＥＶにより構成される。
【００４２】
データ管理システム１は、データ分析サーバ３２、ストレージ管理サーバ３３、データストレージ３４、データ転送サーバ３５と、を含む。
【００４３】
データストレージ３４は、複数（又は１つ）の物理的記憶デバイスであるＰＤＥＶと、ＰＤＥＶに接続されたストレージコントローラとを有する。
【００４４】
ストレージコントローラは、Ｉ／Ｆと、メモリと、それらに接続されたプロセッサとを有する。Ｉ／Ｆは、他の計算機システムとストレージコントローラとの間のデータのやり取りを仲介する通信インターフェースデバイスである。
【００４５】
データ転送サーバ３５は、ストレージコントローラに対して、Ｉ／Ｏ先（例えばＬＵＮ（Logical Unit Number）のような論理ボリューム番号や、ＬＢＡ（Logical Block Address）のような論理アドレス）を指定したＩ／Ｏ要求（ライト要求又はリード要求）を送信する。尚、データソース１４がデータストレージ３４にローデータを転送する場合にも、同様にＬＵＮやＬＢＡを指定したＩ／Ｏ要求を送信する。
【００４６】
データストレージ３４のメモリは、プロセッサが実行するプログラムと、プロセッサが使用するデータを記憶する。メモリには、スナップショットを取得するためのスナップショットプログラムが格納され、プロセッサによって実行することで、スナップショット実行機能３４１を実現する。
【００４７】
ストレージ管理サーバ３３は、データストレージ３４を管理する。ストレージ管理サーバ３３は、データ分析サーバ３２と連携して、データストレージに格納されたデータのスナップショットの取得を制御する。ストレージ管理サーバ３３は、一般的な計算機システムの構成を有する。即ち、プロセッサとメモリとを有し、例えば、メモリに格納されたスナップショットの取得タイミングを制御するスナップショット制御プログラムをプロセッサが実行することで、スナップショット制御機能を実現する。
【００４８】
データ分析サーバ３２は、各種データのローデータからキュレーテッドデータを生成し、キュレーテッドデータを学習することで学習データモデルを生成する。学習データモデルはクライアントコンピュータ３１に提供されても良い。データ分析サーバ３２は、データ管理機能３２１、データ分析機能３２２、データ準備機能３２３と、を有する。尚、学習データモデルは、データストレージ３４に転送され、格納される。データ分析サーバの詳細は、後述する。
【００４９】
＜ソフトウェア構成＞
図４は、実施例のデータ管理システムのソフトウェア構成の一例を示す図である。
図４は、データ分析サーバ３２、ストレージ管理サーバ３３、及びデータストレージ３４の各機能を示している。
【００５０】
データストレージ３４は、学習データモデルを格納するデータ記憶領域３４１、キュレーテッドデータバケットに対応し、キュレーテッドデータを格納するデータ記憶領域３４３、ローデータバケットに対応し、ローデータを格納するデータ記憶領域３４４と、を有する。各データ記憶領域はＬＵに対応する。また、データストレージ３４は、各データ領域であるＬＵを含むＬＤＥＶのスナップショットを取得するスナップショット実行機能３４２を有する。スナップショットの技術は、既に広く利用されているため、詳細な説明は省略する。
【００５１】
ストレージ管理サーバ３３は、データストレージ３４を管理し、分析サーバ３２と連携して、データストレージに格納されたデータのスナップショットの取得を制御する。ストレージ管理サーバ３３は、ＬＵとＬＤＥＶとの関係を管理するストレージ構成管理情報３３１を記憶装置に格納する。また、ストレージ管理サーバ３３は、スナップショットの取得タイミングを制御するスナップショット制御機能３３２を有する。また、ストレージ管理サーバ３３は、記憶装置にスナップショット制御機能３３２によって、取得したスナップショットを管理するためのスナップショット管理情報３３３を、記憶装置に格納する。
【００５２】
データ分析サーバ３２は、メモリ、処理部となるプロセッサ、表示装置を有する一般的な計算機システムである。データ分析サーバ３２は、データ管理機能３２１、データ分析機能３２２、及びデータ準備機能３２３と、を有する。各機能は、メモリに格納されたデータ管理プログラム、データ分析プログラム、及びデータ準備プログラムをプロセッサが実行することにより実現される。
【００５３】
データ管理機能３２１は、図１４や図１５で示すワークフロー定義情報３２１１、図９から図１２で示すデータ構成情報３２１２を有し、ストレージ管理サーバ３３のスナップショット制御機能３３２に対しスナップショット取得指示を行うスナップショット指示機能３２１４、ワークフロー定義情報３２１１に定義されたワークフローを実行するワークフロー実行機能３２１３と、を有する。
【００５４】
データ準備機能３２３は、データストレージ３４のデータ記憶領域３４４に対応し、ローデータを格納するローデータバケット１３と、データソース１４からのデータを収集し、ローデータバケット１３に格納するデータ収集機能３２３２と、ローデータバケット１３に格納されたデータをキュレーションし、キュレーテッドデータバケット１２に格納するデータキュレーション機能３２３１と、を有する。尚、キュレーテッドデータバケット１２は、データストレージ３４のデータ領域３４３と対応する。
【００５５】
データ分析機能３２２は、データ準備機能３２３のキュレーテッドデータバケットに格納されたキュレーテッドデータを、マシンラーニングやディープラーニング等によって学習を行うデータモデル学習機能３２２２と、データモデル学習機能３２２２による学習データモデルを格納する学習データモデル１１、学習データモデル１１に格納された学習データモデルを利用してデータ分析するデータ分析アプリケーションと、を有する。尚、学習データモデル１１は、ファイルとしてデータストレージ３４のデータ記憶領域３４１に格納される。
【００５６】
既に、述べたように、データストレージ３４のデータ記憶領域３４１、データ記憶領域３４３、データ記憶領域３４４のそれぞれは、データストレージ３４のストレージコントローラによって提供されるＬＵに対応する。
【００５７】
データ準備機能３２３は、データソース１４から各種データを受領し、ローデータバケット１３に格納する。ローデータバケット１３に格納された各種データは、データキュレーション機能３２３１によって、キュレーションされて分析しやすい状態のキュレーテッドデータとしてキュレーテッドデータバケット１２に格納される。
【００５８】
キュレーテッドデータバケット１２に格納されたキュレーテッドデータは、データモデル学習機能３２２２によって、学習データモデルが生成され、格納される。
【００５９】
このように、データ分析サーバ３２は、データ準備機能３２３と、データ分析機能３２２とにより、図１に示したような、ローデータ、キュレーテッドデータ、学習データモデルといった各レイヤのデータを生成し、管理する。また、ローデータ、キュレーテッドデータ、学習データモデルといった各レイヤのデータは、データストレージ３４の対応するＬＵに格納される。
【００６０】
＜データ関係図＞
図５は、実施例のデータ関係図（構成図）の一例を示す図である。
データ関係図（構成図）は、データ構成関係とも呼ぶ。データ構成関係は、データ管理機能３２１のデータ構成情報３２１２として管理される。図５は、図４のデータ分析サーバ３２のローデータバケット１３、キュレーテッドデータバケット１２、学習データモデル１１といった各レイヤと、データストレージ３４の各ＬＵとの対応関係と、を示し、更に、各ＬＵとスナップショットの関係を示している。
【００６１】
例えば、データ分析サーバ上では、データソースＳ０１(１４ａ)のローデータは、ローデータバケットＲ０１（１３ａ）に格納され、データソースＳ０２(１４ｂ)のローデータは、ローデータバケットＲ０２（１３ｂ）に格納される。また、データ分析サーバ上では、ローデータバケットＲ０１（１３ａ）とローデータバケットＲ０２（１３ｂ）に格納されたローデータからデータキュレーション機能３２３１によってキュレーテッドデータを生成し、キュレーテッドデータバケットＣ０１（１２ａ）に格納する。さらに、データ分析サーバ上では、キュレーテッドデータバケットＣ０１（１２ａ）に格納されたキュレーテッドデータをデータモデル学習機能３２２２が学習し、学習データモデルＭ０１（１１ａ）を生成する。
【００６２】
データソースＳ０３（１４ｃ）についても、同様に、ローデータバケットＲ０３（１３ｃ）に格納し、キュレーテッドデータをキュレーテッドデータバケットＣ０２（１２ｂ）に格納し、学習データモデルＭ０２（１１ｂ）、学習データモデルＭ０３（１１ｃ）を生成する。
【００６３】
データ分析サーバ上で、データソースからのローデータを格納するローデータバケット１３と、ローデータバケットに格納されたデータをキュレーションしたキュレーテッドデータを格納するキュレーテッドデータバケット１２と、キュレーテッドデータバケット１２に格納されたキュレーテッドデータをデータモデル学習機能によって学習された学習データモデルと、を対応付けて管理することで、ＡＩアプリ利用者が学習データモデルの再学習や根拠探索などを目的として、過去のデータを参照したいときに、同時点のデータの対応関係を管理することができる。
【００６４】
一方、データストレージ３４では、ストレージコントローラにより複数のＬＵが提供される。例えば、ＬＵ０１（５１）はローデータバケットＲ０１（１３ａ）に対応し、ＬＵ０２（５２）はローデータバケットＲ０２（１３ｂ）に対応し、ＬＵ０３（５３）はローデータバケットＲ０３（１３ｃ）に対応して、異なるデータソース１４のローデータを対応するＬＵに格納する。
【００６５】
また、データ分析サーバ３２上の、キュレーテッドデータバケットＣ０１（１２ａ）はＬＵ０４に、キュレーテッドデータバケットＣ０２（１２ｂ）はＬＵ０５に対応する。さらに、データ分析サーバ３２上の、学習データモデルＭ０１（１１ａ）、学習データモデルＭ０２（１１ｂ）、及び、学習データモデルＭ０３（１１ｃ）はＬＵ０６（５６）に格納される。
【００６６】
ＬＵ０１（５１）は、スナップショット実行機能３４２により、異なる時点の３つのスナップショットＳＳ０１（５１Ｓ１）、スナップショットＳＳ０２（５１Ｓ２）、及び、スナップショットＳＳ０３（５１Ｓ３）を取得している。
【００６７】
同様に、ＬＵ０３は一つのスナップショットＳＳ０４（５３Ｓ１）を、ＬＵ０４は二つのスナップショットＳＳ０５（５４Ｓ１）とスナップショットＳＳ０６（５４Ｓ２）を取得している。ＬＵ０５やＬＵ０６についても、図５に示したようにスナップショットを取得している。
【００６８】
本実施例において、データ分析サーバ上のローデータバケット１３と、キュレーテッドデータバケット１２、学習データモデル１１の各レイヤのデータをデータストレージ３４の各ＬＵに対応して管理すると共に、データストレージ３４の各ＬＵの異なる時刻に取得されたスナップショットとの関係を、図５に示したデータ関係図のように管理することで、ＡＩアプリ利用者が学習データモデルの再学習や根拠探索などを目的として、過去のデータを保管し、参照を容易に行うことができる。
【００６９】
図６は、実施例のデータ関係図（時系列）の一例を示す図である。
データ関係図（時系列）は、データ時系列関係とも呼ぶ。データ時系列関係は、データ管理機能３２１のデータ構成情報３２１２として管理される。
【００７０】
図６のデータ関係図（時系列）は、図５のデータ関係図(構成図)におけるデータソースＳ０１と、ローデータバケットＲ０１、キュレーテッドデータバケットＣ０１、学習データモデルＭ０１を格納するＬＵ０１（５１）、ＬＵ０４（５４）、ＬＵ０６（５６）の最新状態と、各ＬＵのスナップショット取得時間との関係を示している。データ時系列関係は、ローデータバケット、キュレーテッドデータバケット、及び、学習データモデルとの関係と、ローデータバケットと第１の記憶領域（ＬＵ）、キュレーテッドデータバケットと第２の記憶領域（ＬＵ）、及び、学習データモデルと第３の記憶領域（ＬＵ）との関係と、第１の記憶領域、第２の記憶領域、及び、第３の記憶領域のスナップショット取得時刻との関係とを表したものである。
【００７１】
尚、ＬＵ０６は、学習データモデルＭ０１の他、学習データモデルＭ０２と学習データモデルＭ０３とファイル形式で格納するＬＵである。
【００７２】
ローデータバケットＲ０１に対応するＬＵ０１は、２０１９年４月１日２３時５９分に取得したスナップショットＳＳ０１、２０１８年１０月２５日４時０分に取得したスナップショットＳＳ０２、２０１７年２月３日１６時３０分に取得したスナップショットＳＳ０３の３つのスナップショットが取得されている。
【００７３】
キュレーテッドデータバケットＣ０１に対応するＬＵ０４は、２０１９年４月１日２３時５９分に取得したスナップショットＳＳ０５、２０１９年１月１日１０時１８分に取得したスナップショットＳＳ０６が取得されている。
【００７４】
学習データモデルＭ０１を格納するＬＵ０６は、２０１９年４月１日２３時５９分に取得したスナップショットＳＳ０８、２０１９年１月１日１０時１８分に取得したスナップショットＳＳ０９、２０１８年１０月２５日４時０分に取得したスナップショットＳＳ１０の３つのスナップショットが取得されている。
【００７５】
図６に示した関係図によると、２０１９年４月１日２３時５９分時点には、ローデータバケットＲ０１、キュレーテッドデータバケットＣ０１、学習データモデルＭ０１のスナップショットが取得されており、ＡＩアプリ利用者が学習データモデルＭ０１の再学習や根拠探索などを目的として、学習データモデルＭ０１を生成する元データであるキュレーテッドデータやキュレーテッドデータの基となった過去のローデータを参照することができる。
【００７６】
２０１９年１月１日１０時１８分時点のデータとしては、キュレーテッドデータＣ０１のスナップショットＳＳ０６と、学習データモデルＭ０１のスナップショットＳＳ０９が存在し、ローデータバケットのスナップショットが存在しないため、学習データモデルＭ０１の再学習等は、キュレーテッドデータに基づく分析のみが可能であり、ローデータに基づく分析はできない。
【００７７】
一方、２０１８年１０月２５日４時０分時点のデータとしては、ローデータＲ０１のスナップショットＳＳ０２と、学習データモデルＭ０１のスナップショットＳＳ１０が存在し、キュレーテッドデータバケットのスナップショットが存在しないため、学習データモデルＭ０１の再学習等は、ローデータに基づく分析のみが可能であり、キュレーテッドデータに基づく分析は、ローデータをキュレーションする必要がある。
【００７８】
学習データモデルＭ０１について、精度の高い再分析を行うためには、分析したい時刻の学習データモデルＭ０１の他、ローデータバケットＲ０１、キュレーテッドデータバケットＣ０１の両方のデータが保管されていることが望ましい。
【００７９】
例えば、アプリケーション側で特定のカメラによる記録画像に価値があると判断した場合、学習データモデルＭ０１を生成した時点のローデータについても分析できることが望ましい。
【００８０】
＜管理情報＞
次に、管理情報について説明する。
【００８１】
図７は、ストレージ管理サーバ３３のストレージ構成管理情報３３１の内容を示したものである。
ストレージ構成管理情報３３１は、データストレージ３４の記憶領域を特定するターゲットＩＤ７１に対し、ターゲットＩＤに対応するＬＤＥＶの識別子であるＬＤＥＶ７３と、ＬＤＥＶに含まれるＬＵの識別情報であるＬＵＮ７２とを対応して管理する。
【００８２】
例えば、ターゲットＩＤ７１が「192.168.1.2」は、ＬＵＮ７２が「LU06」で、ＬＤＥＶ７３が「DEV01」であることを示している。
【００８３】
図８は、実施例のスナップショット管理情報の一例を示す図である。図８は、ストレージ管理サーバ３３のスナップショット管理情報３３３の内容を示している。スナップショット管理情報３３３は、ＬＤＥＶの識別子であるＬＤＥＶ８１に対し、スナップショットの識別子であるスナップショット８２とスナップショットの取得時間８３とが対応して管理されている。
【００８４】
例えば、ＬＤＥＶ８１「DEV01」は、スナップショット識別子「SS08」で識別されるスナップショットが、スナップショットの取得時間８３「Apr.1.2019」に取得されたことを示している。
【００８５】
ストレー構成管理情報３３１とスナップショット管理情報３３３は、ストレージ管理サーバ３３からデータ分析サーバ３２のデータ管理機能３２１に送信され、データ構成情報の一部となる。これにより、データ管理機能３２１は、各ＬＵとスナップショットとの対応が管理され、例えば、図５に示すデータ関係図(構成図)を構成することができる。また、データ管理機能３２１は、各スナップショットの取得時刻も管理できるため、例えば、図６に示すデータ関係図（時系列）を構成することができる。
【００８６】
＜データ構成情報＞
図９は、実施例のデータ構成情報（キュレーテッドデータバケットから学習データモデル）の一例を示す図である。
図９に示したデータ構成情報（キュレーテッドデータバケットから学習データモデル）は、データ分析サーバ３２のデータ管理機能３２１によって管理される。
【００８７】
データ構成情報（キュレーテッドデータバケットから学習データモデル）は、図１に示したデータ管理コンセプトの内、キュレーテッドデータバケット１２から学習データモデル１１の対応を関するための情報である。データ構成情報（キュレーテッドデータバケットから学習データモデル）は、学習データモデルの識別子であるデータモデル９１、学習データモデルＭ０１等を参照するための格納場所であるデータストア９２、キュレーテッドデータバケットを識別するキュレーテッドデータバケット９３、学習データモデルの生成時刻を示す時刻情報９４との対応を管理する。
【００８８】
例えば、学習データモデル９１「M01」は、「/mnt/str01」に格納され、キュレーテッドデータバケット「Ｃ０１」から、「Apr.1.2019」に生成されてデータであることを示す。学習データモデルは、ファイルのため、格納場所は、ファイルシステムで示される。
【００８９】
図１０は、実施例のデータ構成情報（ローデータバケットからキュレーテッドデータバケット）の一例を示す図である。図１０に示したデータ構成情報（ローデータバケットからキュレーテッドデータバケット）は、データ分析サーバ３２のデータ管理機能３２１によって管理される。
【００９０】
実施例のデータ構成情報（ローデータバケットからキュレーテッドデータバケット）は、図１のローデータバケット１３とキュレーテッドデータバケット１２との対応を管理するための情報である。データ構成情報（ローデータバケットからキュレーテッドデータバケット）は、キュレーテッドデータの識別子１０１、ローデータバケットの識別子１０２との対応を管理する。
【００９１】
例えば、キュレーテッドデータの識別子１０１が「C01」は、ローデータバケットの識別子１０２「R01、R02」が対応して管理されている。
【００９２】
図９と図１０に示したデータ構成情報は、学習データモデルと、学習データモデルを生成するためのローデータを格納するローデータバケットと、学習データモデルを生成するためのキュレーテッドデータを格納するキュレーテッドデータバケットと、の対応を管理する第１のデータ構成情報となる。
【００９３】
図１１は、実施例のデータ構成情報（データソースからローデータバケット）の一例を示す図である。図１１に示したデータ構成情報（データソースからローデータバケット）は、データ分析サーバ３２のデータ管理機能３２１によって管理される。
【００９４】
実施例のデータ構成情報（データソースからローデータバケット）は、図１のデータソース１４と、ローデータバケット１３との対応を管理するための情報である。データ構成情報（データソースからローデータバケット）は、ローデータバケットの識別子１１１、データソースの識別子１１２との対応を管理する。
【００９５】
例えば、ローデータバケットの識別子１１１が「R01」は、データソースの識別子１１２「S01」が対応して管理されている。
【００９６】
図１２は、実施例のデータ構成情報（データバケットストレージ構成情報）の一例を示す図である。図１２に示したデータ構成情報（データバケットストレージ構成情報））は、データ分析サーバ３２のデータ管理機能３２１によって管理される。
【００９７】
実施例のデータ構成情報（データバケットストレージ構成情報）は、図５に示したデータ分析サーバ３２上の、学習データモデル１１、キュレーテッドデータバケット１２、ローデータバケット１３と、学習データモデル１１、キュレーテッドデータバケット１２、ローデータバケット１３に対応するデータストレージ３４上のＬＵとの関係を示している。
【００９８】
例えば、データストア１２１が「/mnt/str01」は、データストレージを特定するデバイス１２２「/dev/sda01」と、データストレージのターゲットＩＤ１２３「192.168.1.2」と、ＬＵＮ１２４「LU06」とが対応していることを示している。また、データストア１２１が「C01」は、データストレージを特定するデバイス１２２「/dev/sdc01」と、データストレージのターゲットＩＤ１２３「192.168.1.3」と、ＬＵＮ１２４「LU04」とが対応していることを示している。
【００９９】
学習データモデルとＬＵ０６、キュレーテッドデータバケットＣ０１とＬＵ０４、及び、ローデータバケットＲ０１とＬＵ０１と、の対応を管理する。
【０１００】
このように、データ分析サーバ３２で認識する学習データモデル１１、キュレーテッドデータバケット１２、ローデータバケット１３が、どのデータストレージのどのＬＵに対応するかを、第２のデータ構成情報として管理する。これにより、図５に示したようなデータ関係図（構成図）を把握することができる。また、データストレージ３４の対応するＬＵのスナップショットを取得することで、データ分析サーバ上の、学習データモデル１１、キュレーテッドデータバケット１２、ローデータバケット１３といった各レイヤの情報のスナップショットを、取得することができ、各ＬＵとスナップショットの関係を図５に示したようなデータ関係図（構成図）を把握することができる。
【０１０１】
本実施例のデータ管理システムは、データ分析サーバ３２で管理される学習データモデル１１、キュレーテッドデータバケット１２、ローデータバケット１３といった各レイヤと、データストレージで管理するＬＵとの対応付けを行い、対応付けられたＬＵに関して、データストレージが有するスナップショット機能を利用することで、データ分析サーバを利用するＡＩアプリ利用者が過去のデータを参照して、学習データモデルの再学習や根拠探索などを行うことができる。
【０１０２】
図１３は、実施例のデータ構成情報（コンシステントスナップショットグループ）の一例を示す図である。実施例のデータ構成情報（コンシステントスナップショットグループ）は、グループ１３１の識別子に対し、グループに含まれるデータ１３２、各データの取得日時１３３、スナップショットを特定するスナップショットＩＤ１３４との対応を管理する。
【０１０３】
図１３のデータ構成情報（コンシステントスナップショットグループ）は、図６の実施例のデータ関係図（時系列）を例に説明したものである。
【０１０４】
グループ１３１「G01」には、データ１３２として「M01」「C01」「R01」(図５参照)が含まれ、「M01」は、「Apr.1.2019」に取得され、スナップショットID「SS08」に格納される。「C01」は、「Apr.1.2019」に取得され、スナップショットID「SS05」に格納される。「R01」は、「Apr.1.2019」に取得され、スナップショットID「SS01」に格納される。このデータ構成情報（コンシステントスナップショットグループ）を参照すれば、学習データモデルに対し、同一時刻で取得したキュレーテッドデータバケットのスナップショット、ローデータバケットのスナップショットが存在するかを容易に判定することができる。
【０１０５】
図１３のデータ構成情報（コンシステントスナップショットグループ）は、図１２に示したデータ構成情報（第２のデータ構成情報）と、図７に示したストレージ構成管理情報及び図８に示したスナップショット管理情報から生成される第３のデータ構成情報に基づいて、同一時刻に取得された、学習データモデル、キュレーテッドデータバケット、及び、ローデータバケットのスナップショットの内の少なくとも二つを、コンシステントスナップショットグループとして管理する。
【０１０６】
このように、各ＬＵのスナップショット取得時刻を管理しているので、図６に示したようなデータ関係図（時系列）として、ＬＵとスナップショット取得時間を把握することができる。
【０１０７】
＜ワークフロー定義情報＞
図１４は、実施例のワークフロー定義情報（データ準備処理）の一例を示す図である。
作成されたワークフロー定義情報は、データ分析サーバ３２のデータ管理機能３２１によって管理されるワークフロー定義情報３２１１となる。
図１４において、まず、ワークフロー１４１で、データキュレーション機能３２３１がローデータバケット１３をロードする。
【０１０８】
次に、ワークフロー１４２で、ローデータバケットのスナップショットを取得する。この処理は、例えば、図５のローデータバケットR01に対応するLU０１のスナップショットSS01を取得する動作に対応する。図４では、スナップショット実行機能３４２がデータ記憶領域３４４のスナップショットを取得する動作に対応する。
【０１０９】
次に、ワークフロー１４３で、データキュレーション機能３２３１がローデータバケットのデータをキュレーションする。
【０１１０】
ワークフロー１４４で、キュレーションされたデータは、キュレーテッドデータバケット１１に格納（更新）される。格納(更新)されたキュレーテッドデータバケットは、ワークフロー１４５で、スナップが取得される。図５のキュレーテッドデータバケットＣ０１に対応するＬＵ０４のスナップショットＳＳ０５を、データストレージ３４のスナップショット実行機能３４２が取得する動作に対応する。
【０１１１】
次に、ワークフロー１４６で、キュレーテッドデータバケットＣ０１のデータをデータモデル学習機能３２２２により学習し、学習データモデルを生成する。
【０１１２】
ワークフロー１４７で、学習データモデルを格納する。尚、学習データモデルは、対応するデータストレージのＬＵに格納する。この処理は、図５の学習データモデルＭ０１をデータストレージ３４のＬＵ０６に格納する処理に対応する。
【０１１３】
ワークフロー１４８で、ＬＵ０６に格納された学習データモデルのスナップショットを取得する。実際には、データストレージ３４のスナップショット実行機能３４２がＬＵ０６に対応するＬＤＶＥのスナップショットを取得することで達成される。
【０１１４】
図１４に示したように、ローデータからキュレーテッドデータを介し、学習データモデルを生成するデータフローに加え、ローデータバケットからデータキュレーション機能がデータをロードしたタイミング、データキュレーション機能がキュレーテッドデータバケットにキュレーテッドデータを格納するタイミング、及び、学習データモデルを対応するＬＵに格納するタイミングのそれぞれで、各データのスナップショットを取得するワークフローを作成し、ワークフロー定義情報３２１１として格納する。
【０１１５】
このワークフローを実行する際には、データ管理機能３２１のワークフロー実行機能３２１３が、データ分析機能３２２、データ準備機能３２３、ストレージ管理サーバ３３に指示を行う。
【０１１６】
図１５は、実施例のワークフロー定義情報（データ復元処理）の一例を示す図である。
作成されたワークフロー定義情報は、データ分析サーバ３２のデータ管理機能３２１によって管理されるワークフロー定義情報３２１１となる。
【０１１７】
まず、ワークフロー１５１で、学習データモデルを選択する。
【０１１８】
次に、ワークフロー１５２で、データ管理機能３２１は、図１３のデータ構成情報（コンシステントスナップショットグループ）を参照することで、コンシステントグループを検索する。図１３の例では、同一時刻で、学習データモデル、キュレーテッドデータバケット、ローデータバケットのスナップショットが存在する、グループ１３１が「Ｇ０１」が、発見される。
【０１１９】
次に、ワークフロー１５３で、キュレーテッドデータバケット１３２「Ｃ０１」のスナップショットＩＤ１３４「ＳＳ０５」により、キュレーテッドデータバケットをリストアする。この処理は、データストレージ３４のスナップショット実行機能３４２によって行われる。
【０１２０】
次に、ワークフロー１５４で、ローデータバケット１３２「Ｒ０１」のスナップショットＩＤ１３４「ＳＳ０１」により、ローデータバケットをリストアする。この処理は、データストレージ３４のスナップショット実行機能３４２によって行われる。
【０１２１】
＜スナップショット取得処理＞
図１６は、実施例のスナップショット取得処理フローの一例を示す図である。
データ準備機能３２３は、データソースから各種データを受領し、ローデータバケットを随時更新する（Ｓ１６１）。
【０１２２】
データ管理機能３２１は、図１４で説明したワークフローを開始させる指示をデータ準備機能３２３に指示する（Ｓ１６２）。或いは、学習データモデルの作成指示とすることができる。
【０１２３】
データ準備機能３２３が、ワークフローの開始指示を受領すると、ローデータバケットを参照する（Ｓ１６３）。
【０１２４】
ワークフローの開始に伴って、ローデータバケットを参照すると、データ管理機能３２１のスナップショット指示機能３２１４は、スナップショット制御機能３３２に対し、スナップショット取得処理を実行する指示する（Ｓ１６４）。
【０１２５】
スナップショット制御機能３３２は、データストレージ３４のスナップショット実行機能３４２に対し、スナップショット実行させることで、ローデータバケットに対応するＬＵを含む記憶領域（ＬＤＥＶ）のスナップショットを取得し、データ管理機能３２１に通知する（Ｓ１６５）。
【０１２６】
データ管理機能３２１は、データ準備機能３２３のデータキュレーション機能３２３１に対し、データキュレーション処理を実行させる、指示を行う（Ｓ１６６）。
【０１２７】
指示を受領したデータ準備機能３２３は、キュレーテッドデータバケットを更新し、データ管理機能３２１に通知する（Ｓ１６７）。
【０１２８】
通知を受けたデータ管理機能３２１は、キュレーテッドデータバケットのスナップショット取得の実行をスナップショット制御機能３３２に指示する（Ｓ１６８）。
【０１２９】
スナップショット制御機能３３２は、データストレージ３４のスナップショット実行機能３４２に対し、スナップショット実行させることで、キュレーテッドデータバケットに対応するＬＵを含む記憶領域（ＬＤＥＶ）のスナップショットを取得する（Ｓ１６９）。
【０１３０】
このように、図１４に示したワークフローを実行するため、学習データモデルを生成するための、ローデータバケットの参照時、ローデータからキュレーテッドデータバケットの更新時に、ローデータバケットとキュレーテッドデータバケットとのスナップショットを取得することで、学習データモデル生成時に対応したローデータバケットとキュレーテッドデータバケットを保管することができ、後日、学習データモデルを再検討時にローデータバケットとキュレーテッドデータバケットを参照することができる。
【０１３１】
図１７は、実施例のスナップショット取得処理フローを示す図である。
データ管理機能３２１は、データ分析機能３２２に対し学習データモデル処理の実行指示を行う（Ｓ１７１）。
【０１３２】
データ分析機能３２２は、学習データモデルの生成を行い、データ管理機能３２１に通知する（Ｓ１７２）。
【０１３３】
データ管理機能３２１は、学習データモデルの生成通知を受け取ると、スナップショット制御機能３３２に対し、記憶領域のスナップショットの取得を指示する（Ｓ１７３）。
【０１３４】
スナップショット制御機能３３２は、データストレージ３４のスナップショット実行機能３４２に対し、スナップショット実行させることで、学習データモデルを格納するＬＵを含む記憶領域（ＬＤＥＶ）のスナップショットを取得する（Ｓ１７４）。
【０１３５】
データ管理機能３２１は、スナップショット制御機能３３２から学習データモデルのスナップショットの取得通知を受領すると、データ構成情報を更新する（Ｓ１７５）。
【０１３６】
図１８は、実施例のスナップショット復元処理フローの一例を示す図である。
データ管理機能３２１に、ユーザから再現する学習データモデルが入力される（Ｓ１８）。データ管理機能３２１は、図１３のデータ構成情報（コンシステントスナップショットグループ）を参照することで、コンシステントグループを検索し、スナップショット制御機能３３２に通知する（Ｓ１８２）。
【０１３７】
スナップショット制御機能３３２は、キュレーテッドデータバケットのスナップショットを復元(リストア)し、データ管理機能３２１に通知する（Ｓ１８３）。
【０１３８】
その後、スナップショット制御機能３３２は、ローデータバケットのスナップショットを復元し、データ管理機能３２１に通知する（Ｓ１８４）。
【０１３９】
＜表示例＞
図１９は、実施例のスナップショット復元処理フローのＧＵＩ表示例を示す図である。
ユーザは、ノードリスト部１９４からジョブを選択し、ワークフロー（スナップショット復元処理フロー）をワークフロー表示領域１９２にドラッグアンドドロップすることで、スナップショット復元処理フロー１９３を作成する。
【０１４０】
図１９においては、最初にロードデータのジョブが選択され、ロードデータについて、スナップショット取得のジョブと、データキュレーションのジョブが関連付けられ、さらに、データキュレーションのジョブに対し、キュレーテッドデータを格納するジョブが関連付けられた処理フローが構成されている。
【０１４１】
データ分析サーバ３２は、処理部と表示装置を有し、処理部は、表示装置のノードリスト部に複数のジョブオブジェクトを表示する。表示装置に表示された複数のジョブオブジェクトの中から、ユーザが選択し、ワークフロー表示領域にドロップすることで、データ準備処理のワークフロー定義情報を生成する。
【０１４２】
複数のジョブオブジェクトは、ローデータバケットからデータを読み出すロードデータオブジェクト(Load data)と、関連付けられたジョブオブジェクトのデータに対し、当該データをキュレートするデータキュレーションオブジェクト(Data Curation)と、関連付けられたジョブオブジェクトのデータに対し、当該データを格納する格納ジョブオブジェクト(Store)と、関連付けられたジョブオブジェクトのデータに対し、当該データのスナップショットを取得するスナップショット取得ジョブオブジェクト(Get Snapshot)と、が含まれる。
【０１４３】
このように、ワークフローを視覚的に作成することができるため、サーバ管理、データストレージ管理に精通していないデータ分析を行うユーザであっても、容易に、学習データモデルに対応するキュレーテッドデータバケットやローデータバケットについて、スナップショットを取得でき、過去の学習データモデルの再分析を行うことが可能となる。
【０１４４】
図２０は、実施例のデータ構成管理ＧＵＩの一例を示す図である。図２０の表示例は、図６の実施例のデータ関係図（時系列）を表示した例である。表示はクライアントコンピュータ３１の表示装置や、データ分析サーバ３２の表示装置に表示される。この表示により、ユーザは、同一時刻に取得された、ローデータバケット、キュレーテッドデータバケット、学習データモデルのスナップショット（コンシステントスナップショットグループ）を容易に把握することができる。
【０１４５】
図２１は、実施例のデータ構成管理ＧＵＩの一例を示す図である。このＧＵＩは、図５の実施例のデータ関係図（構成図）を表示した例である。この表示はクライアントコンピュータ３１の表示装置や、データ分析サーバ３２の表示装置に表示される。この表示により、ユーザは、データ分析サーバ上のローデータバケット、キュレーテッドデータバケット、学習データモデルが、データストレージ上のどのＬＵに対応するかを確認することができ、ローデータバケットやキュレーテッドデータバケット等のスナップショットを取得する際に、どのＬＵのスナップショットを取得すればよいか容易に把握することができる。
【０１４６】
以上、本実施例によれば、学習データモデルの生成フロー開始時に、ローデータバケットのスナップショットの取得、キュレーテッドデータ作成時にキュレーテッドデータバケットのスナップショットの取得、学習データモデルのスナップショットの取得を行うことで、学習データモデルの再検討や根拠探索を行いことができる。
【０１４７】
学習データモデルを作成、更新した時点で、学習データモデルのデータ属性に一致するローデータバケットのスナップショットだけを取得しても良い。例えば、学習データモデルの属性がファイルであれば，該当するローデータバケットのうちファイルストレージに格納されたデータのみスナップショットを取得する。
【０１４８】
また、定期的にローデータバケットのスナップショットを取得してもよい。このとき、特定のデータソース（センサ・カメラ等）を指定し、関連するローデータバケットのみスナップショットを取得しても良い。
【０１４９】
アプリケーション側で特定のカメラによる記録画像に価値があると判断した場合、その記録を失わないようスナップショットを運用するといったユースケースに対応することができる。
【０１５０】
また、学習データモデルを作成するために必要となる、データ分析サーバ上のローデータバケットやキュレーテッドデータとの関係を管理し、ローデータバケットやキュレーテッドデータバケットとデータストレージ上のＬＵとの対応関係を管理することで、学習データモデルの作成、更新に影響したデータについて、データの保管を行うことできる。
【０１５１】
このように、学習データモデルの基となる過去のデータを参照することで、ＡＩアプリ利用者が学習データモデルの再学習や根拠探索などを実現することができる。
【符号の説明】
【０１５２】
１：データ管理システム
１０：アプリケーション、
１１：学習データモデル、
１２：キュレーテッドデータバケット、
１３：ローデータバケット、
１４：データソース、
３２：データ分析サーバ、
３３：ストレージ管理サーバ、
３４：データストレージ、
３５：データ転送サーバ。
【図１】
0006967568.tif 000002
【図２】
0006967568.tif 000003
【図３】
0006967568.tif 000004
【図４】
0006967568.tif 000005
【図５】
0006967568.tif 000006
【図６】
0006967568.tif 000007
【図７】
0006967568.tif 000008
【図８】
0006967568.tif 000009
【図９】
0006967568.tif 000010
【図１０】
0006967568.tif 000011
【図１１】
0006967568.tif 000012
【図１２】
0006967568.tif 000013
【図１３】
0006967568.tif 000014
【図１４】
0006967568.tif 000015
【図１５】
0006967568.tif 000016
【図１６】
0006967568.tif 000017
【図１７】
0006967568.tif 000018
【図１８】
0006967568.tif 000019
【図１９】
0006967568.tif 000020
【図２０】
0006967568.tif 000021
【図２１】
0006967568.tif 000022