特許第6967568号(P6967568)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立製作所の特許一覧

特許6967568マシンラーニング向けデータ管理システムおよびデータ管理方法
<>
  • 特許6967568-マシンラーニング向けデータ管理システムおよびデータ管理方法 図000002
  • 特許6967568-マシンラーニング向けデータ管理システムおよびデータ管理方法 図000003
  • 特許6967568-マシンラーニング向けデータ管理システムおよびデータ管理方法 図000004
  • 特許6967568-マシンラーニング向けデータ管理システムおよびデータ管理方法 図000005
  • 特許6967568-マシンラーニング向けデータ管理システムおよびデータ管理方法 図000006
  • 特許6967568-マシンラーニング向けデータ管理システムおよびデータ管理方法 図000007
  • 特許6967568-マシンラーニング向けデータ管理システムおよびデータ管理方法 図000008
  • 特許6967568-マシンラーニング向けデータ管理システムおよびデータ管理方法 図000009
  • 特許6967568-マシンラーニング向けデータ管理システムおよびデータ管理方法 図000010
  • 特許6967568-マシンラーニング向けデータ管理システムおよびデータ管理方法 図000011
  • 特許6967568-マシンラーニング向けデータ管理システムおよびデータ管理方法 図000012
  • 特許6967568-マシンラーニング向けデータ管理システムおよびデータ管理方法 図000013
  • 特許6967568-マシンラーニング向けデータ管理システムおよびデータ管理方法 図000014
  • 特許6967568-マシンラーニング向けデータ管理システムおよびデータ管理方法 図000015
  • 特許6967568-マシンラーニング向けデータ管理システムおよびデータ管理方法 図000016
  • 特許6967568-マシンラーニング向けデータ管理システムおよびデータ管理方法 図000017
  • 特許6967568-マシンラーニング向けデータ管理システムおよびデータ管理方法 図000018
  • 特許6967568-マシンラーニング向けデータ管理システムおよびデータ管理方法 図000019
  • 特許6967568-マシンラーニング向けデータ管理システムおよびデータ管理方法 図000020
  • 特許6967568-マシンラーニング向けデータ管理システムおよびデータ管理方法 図000021
  • 特許6967568-マシンラーニング向けデータ管理システムおよびデータ管理方法 図000022
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6967568
(24)【登録日】2021年10月27日
(45)【発行日】2021年11月17日
(54)【発明の名称】マシンラーニング向けデータ管理システムおよびデータ管理方法
(51)【国際特許分類】
   G06F 11/14 20060101AFI20211108BHJP
   G06F 3/06 20060101ALI20211108BHJP
   G06F 13/10 20060101ALI20211108BHJP
   G06N 20/00 20190101ALI20211108BHJP
【FI】
   G06F11/14 648
   G06F3/06 304Z
   G06F13/10 340A
   G06F11/14 669
   G06N20/00
【請求項の数】12
【全頁数】26
(21)【出願番号】特願2019-192920(P2019-192920)
(22)【出願日】2019年10月23日
(65)【公開番号】特開2021-68181(P2021-68181A)
(43)【公開日】2021年4月30日
【審査請求日】2020年8月11日
(73)【特許権者】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001689
【氏名又は名称】青稜特許業務法人
(72)【発明者】
【氏名】田口 雄一
【審査官】 井上 宏一
(56)【参考文献】
【文献】 特開2014−092878(JP,A)
【文献】 特開2016−192000(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/14
G06F 3/06
G06F 13/10
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
各種データのローデータからキュレーテッドデータを生成し、前記キュレーテッドデータを学習することで学習データモデルを生成するデータ分析サーバと、
前記学習データモデルを格納する第1の記憶領域と、前記キュレーテッドデータを格納する第2の記憶領域と、前記ローデータを格納する第3の記憶領域と、を有するデータストレージと、
前記データストレージを管理するストレージ管理サーバと、を有し、
前記データ分析サーバは、
前記学習データモデルと、前記学習データモデルを生成するための前記ローデータを格納するローデータバケットと、前記学習データモデルを生成するための前記キュレーテッドデータを格納するキュレーテッドデータバケットと、の対応を管理する第1のデータ構成情報と、
前記学習データモデルと前記第1の記憶領域、前記キュレーテッドデータバケットと前記第2の記憶領域、及び、前記ローデータバケットと前記第3の記憶領域と、の対応を管理する第2のデータ構成情報と、を管理し、
前記学習データモデルの生成時に、前記ストレージ管理サーバを介して前記データストレージに対し、前記学習データモデルを生成するための前記キュレーテッドデータを格納する前記第2の記憶領域、及び、前記学習データモデルを生成するための前記ローデータを格納する前記第3の記憶領域のスナップショットの取得の指示を行う、
ことを特徴とするデータ管理システム。
【請求項2】
請求項1に記載のデータ管理システムにおいて、
前記ローデータバケットは、データレイクであり、
前記キュレーテッドデータバケットは、学習データセットであり、
前記学習データモデルは、学習モデルである、ことを特徴とするデータ管理システム。
【請求項3】
請求項2に記載のデータ管理システムにおいて、
前記データ分析サーバは、前記ストレージ管理サーバからストレージ構成管理情報とスナップショット管理情報を受信し、前記第1の記憶領域、前記第2の記憶領域、及び、前記第3の記憶領域のスナップショット取得時を管理する第3のデータ構成情報を生成し、
前記第1のデータ構成情報、前記第2のデータ構成情報、及び、前記第3のデータ構成情報に基づいて、データ構成関係を生成する、ことを特徴とするデータ管理システム。
【請求項4】
請求項3に記載のデータ管理システムにおいて、
前記データ分析サーバによって生成される前記データ構成関係は、
前記ローデータバケット、前記キュレーテッドデータバケット、及び、前記学習データモデルとの関係と、
前記ローデータバケットと前記第3の記憶領域、前記キュレーテッドデータバケットと前記第2の記憶領域、及び、前記学習データモデルと前記第3の記憶領域との関係と、
前記第1の記憶領域、前記第2の記憶領域、及び、前記第3の記憶領域の少なくとも一つのスナップショットとの関係とを表したものであることを特徴とするデータ管理システム。
【請求項5】
請求項2に記載のデータ管理システムにおいて、
前記データ分析サーバは、前記ストレージ管理サーバからストレージ構成管理情報とスナップショット管理情報を受信し、前記第1の記憶領域、前記第2の記憶領域、及び、前記第3の記憶領域のスナップショット取得時を管理する第3のデータ構成情報を生成し、
前記第1のデータ構成情報、前記第2のデータ構成情報、及び、前記第3のデータ構成情報に基づいて、データ時系列関係を生成する、ことを特徴とするデータ管理システム。
【請求項6】
請求項5に記載のデータ管理システムにおいて、
前記データ分析サーバによって生成される前記データ時系列関係は、
前記ローデータバケット、前記キュレーテッドデータバケット、及び、前記学習データモデルとの関係と、
前記ローデータバケットと前記第3の記憶領域、前記キュレーテッドデータバケットと前記第2の記憶領域、及び、前記学習データモデルと前記第3の記憶領域との関係と、
前記第1の記憶領域、前記第2の記憶領域、及び、前記第3の記憶領域のスナップショット取得時刻との関係とを表したものであることを特徴とするデータ管理システム。
【請求項7】
請求項2に記載のデータ管理システムにおいて、
前記データ分析サーバは、前記ストレージ管理サーバからストレージ構成管理情報とスナップショット管理情報を受信し、前記第1の記憶領域、前記第2の記憶領域、及び、前記第3の記憶領域のスナップショット取得時を管理する第3のデータ構成情報を生成し、
前記第2のデータ構成情報と前記第3のデータ構成情報に基づいて、同一時刻に取得された、前記学習データモデル、前記キュレーテッドデータバケット、及び、前記ローデータバケットのスナップショットの内の少なくとも二つを、コンシステントスナップショットグループとして管理する、ことを特徴とするデータ管理システム。
【請求項8】
請求項2に記載のデータ管理システムにおいて、
前記データ分析サーバは、処理部と表示装置を有し、
前記処理部は、複数のジョブオブジェクトを前記表示装置のノードリスト部に表示し、
前記ジョブオブジェクトを、前記ノードリスト部から選択し、ワークフロー表示領域にドロップすることで、データ準備処理のワークフロー定義情報を生成することを特徴とするデータ管理システム。
【請求項9】
請求項8に記載のデータ管理システムにおいて、
前記ノードリスト部に表示される前記複数のジョブオブジェクトは、
前記ローデータバケットからデータを読み出すロードデータオブジェクトと、
関連付けられたジョブオブジェクトのデータに対し、当該データをキュレートするデータキュレーションオブジェクトと、
関連付けられたジョブオブジェクトのデータに対し、当該データを格納する格納ジョブオブジェクトと、
関連付けられたジョブオブジェクトのデータに対し、当該データのスナップショットを取得するスナップショット取得ジョブオブジェクトと、を含む、ことを特徴とするデータ管理システム。
【請求項10】
各種データのローデータからキュレーテッドデータを生成し、前記キュレーテッドデータを学習することで学習データモデルを生成するデータ分析サーバと、前記学習データモデルを格納する第1の記憶領域と、前記キュレーテッドデータを格納する第2の記憶領域と、前記ローデータを格納する第3の記憶領域と、を有するデータストレージと、前記データストレージを管理するストレージ管理サーバと、を有するデータ管理システムにおけるデータ管理方法であって、
前記データ分析サーバは、
前記学習データモデルと、前記学習データモデルを生成するための前記ローデータを格納するローデータバケットと、前記学習データモデルを生成するための前記キュレーテッドデータを格納するキュレーテッドデータバケットと、の対応を第1のデータ構成情報として管理し、
前記学習データモデルと前記第1の記憶領域、前記キュレーテッドデータバケットと前記第2の記憶領域、及び、前記ローデータバケットと前記第3の記憶領域と、の対応を管理する第2のデータ構成情報と、を管理し、
前記学習データモデルの生成時に、前記ストレージ管理サーバを介して前記データストレージに対し、前記学習データモデルを生成するための前記キュレーテッドデータを格納する前記第2の記憶領域、及び、前記学習データモデルを生成するための前記ローデータを格納する前記第3の記憶領域のスナップショットの取得の指示を行う、
ことを特徴とするデータ管理方法。
【請求項11】
請求項10に記載のデータ管理方法において、
前記データ分析サーバは、
前記ストレージ管理サーバからストレージ構成管理情報とスナップショット管理情報を受信し、前記第1の記憶領域、前記第2の記憶領域、及び、前記第3の記憶領域のスナップショット取得時を管理する第3のデータ構成情報を生成し、
前記第2のデータ構成情報と前記第3のデータ構成情報に基づいて、同一時刻に取得された、前記学習データモデル、前記キュレーテッドデータバケット、及び、前記ローデータバケットのスナップショットの内の少なくとも二つを、コンシステントスナップショットグループとして管理する、ことを特徴とするデータ管理方法。
【請求項12】
請求項10に記載のデータ管理方法において、
前記データ分析サーバは、
学習データモデル生成の指示を受領すると、
前記ローデータバケットを参照し、
参照された前記ローデータバケットに対応する前記第3の記憶領域のスナップショット取得指示を前記ストレージ管理サーバに通知し、
前記ストレージ管理サーバは、前記データストレージに対し、前記第3の記憶領域のスナップショット取得を指示し、
前記データストレージは、前記第3の記憶領域のスナップショットを取得して、前記ストレージ管理サーバに通知し、
前記データ分析サーバは、前記ストレージ管理サーバから、前記参照された前記第3の記憶領域のスナップショットの取得通知を受領すると、前記参照された前記ローデータバケットのキュレーションを実行し、
前記キュレーションを実行されたデータを前記キュレーテッドデータバケットに格納して、前記ストレージ管理サーバに対して前記キュレーテッドデータバケットに対応する前記第2の記憶領域のスナップショットの取得を指示し、
前記データストレージは、前記ストレージ管理サーバから指示に応じて、前記第2の記憶領域のスナップショットを取得して、前記ストレージ管理サーバに通知する、ことを特徴とするデータ管理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マシンラーニング向けデータ管理技術に関する。
【背景技術】
【0002】
人工知能AI(Artificial Intelligence)技術において、各種データを収集し、マシンラーニング(Machine Learning)やディープラーニング(Deep Learning)を活用し、パターンを認識させることで、ビジネスや生活における様々な難しいタスクをこなせるようにコンピュータをトレーニングしている。
【0003】
例えば、各種データは、各種センサからのデータであり、マシンラーニングやディープラーニングといった分析アプリケーションが、各種データを分析する。そのため、データ管理システムは、各種データと、各種データから必要な情報のみを選別するフィルタリング等を行って有益な状態とした学習データセットと、学習データセットをAIアプリケーションによって分析した学習モデルと、をそれぞれ格納する。
【0004】
しかし、データ管理システム上から各種データ、学習データセット、学習モデルは、データ管理システム上で、時間経過に伴い、随時更新されるため、消失してしまう。このように、必要なデータがデータ管理システム上に保管されていないため、後になって、学習モデルの再学習や根拠探索を行うことができない。
【0005】
一般的に、ある時点のデータを保管する技術として、複数世代のバックアップイメージを格納する技術として特許文献1がある。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】米国特許第9405756号明細書
【発明の概要】
【発明が解決しようとする課題】
【0007】
上記特許文献1によれば、複数世代のバックアップイメージを保管し、バックアップイメージからオリジナルなデータをリストアすることができるが、マシンラーニングやディープラーニングといったAI分析アプリケーションとの連携は考慮されていない。言い換えれば、学習モデル生成時の各種データ等を保管すること考慮されていない。そのため、AIアプリ利用者が学習モデルの再学習や根拠探索などを目的として、過去のデータを参照したいときに、同時点のデータが保管されておらず、参照することができない。
【0008】
本発明の目的は、AIアプリ利用者が学習データモデルの再学習や根拠探索などを目的とした、過去のデータを参照可能なデータ管理システム及びデータ管理方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するため、本発明のデータ管理システムの一態様は、各種データのローデータからキュレーテッドデータを生成し、キュレーテッドデータを学習することで学習データモデルを生成するデータ分析サーバと、学習データモデルを格納する第1の記憶領域と、キュレーテッドデータを格納する第2の記憶領域と、ローデータを格納する第3の記憶領域と、を有するデータストレージと、データストレージを管理するストレージ管理サーバと、を有する。データ分析サーバは、学習データモデルと、学習データモデルを生成するためのローデータを格納するローデータバケットと、学習データモデルを生成するためのキュレーテッドデータを格納するキュレーテッドデータバケットと、の対応を管理する第1のデータ構成情報と、学習データモデルと第1の記憶領域、キュレーテッドデータバケットと第2の記憶領域、及び、ローデータバケットと第3の記憶領域と、の対応を管理する第2のデータ構成情報と、を管理し、学習データモデルの生成時に、ストレージ管理サーバを介してデータストレージに対し、学習データモデルを生成するためのキュレーテッドデータを格納する第2の記憶領域、及び、学習データモデルを生成するためのローデータを格納する第3の記憶領域のスナップショットの取得の指示を行う。
【発明の効果】
【0010】
本発明によれば、過去のデータを参照することで、AIアプリ利用者が学習データモデルの再学習や根拠探索などを実現することができる。
【図面の簡単な説明】
【0011】
図1】実施例のデータ管理コンセプトを示す図である。
図2】本発明の技術課題の一例を説明する図である。
図3】実施例のデータ管理システムのシステム構成の一例を示す図である。
図4】実施例のデータ管理システムのソフトウェア構成の一例を示す図である。
図5】実施例のデータ関係図(構成図)の一例を示す図である。
図6】実施例のデータ関係図(時系列)の一例を示す図である。
図7】実施例のストレージ構成管理情報の一例を示す図である。
図8】実施例のスナップショット管理情報の一例を示す図である。
図9】実施例のデータ構成情報(キュレーテッドデータバケットから学習データモデル)の一例を示す図である。
図10】実施例のデータ構成情報(ローデータバケットからキュレーテッドデータバケット)の一例を示す図である。
図11】実施例のデータ構成情報(データソースからローデータバケット)の一例を示す図である。
図12】実施例のデータ構成情報(データバケットストレージ構成情報)の一例を示す図である。
図13】実施例のデータ構成情報(コンシステントスナップショットグループ)の一例を示す図である。
図14】実施例のワークフロー定義情報(データ準備処理)の一例を示す図である。
図15】実施例のワークフロー定義情報(データ復元処理)の一例を示す図である。
図16】実施例のスナップショット取得処理フローの一例を示す図である。
図17】実施例のスナップショット取得処理フローの一例を示す図である。
図18】実施例のスナップショット復元処理フローの一例を示す図である。
図19】実施例のスナップショット復元処理フローのGUI表示例を示す図である。
図20】実施例のデータ構成管理GUI、データ関係図(時系列)の一例を示す図である。
図21】実施例のデータ構成管理GUI、データ関係図(構成図)の一例を示す図である。
【発明を実施するための形態】
【0012】
以下の説明において、「インターフェース部」は、1以上のインターフェースでよい。この1以上のインターフェースは、1以上の同種の通信インターフェースデバイス(例えば1以上のNIC(Network Interface Card))であってもよいし、2以上の異種の通信インターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
【0013】
また、以下の説明において、「メモリ部」は、1以上のメモリであり、典型的には主記憶デバイスでよい。メモリ部における少なくとも1つのメモリは、揮発性メモリであってもよいし不揮発性メモリであってもよい。
【0014】
また、データストレージは、少なくとも一つのPDEVにより、冗長構成を有する論理的な記憶領域であるLDEV(Logical Device)を構成する。各LDEVは、少なくとも一つのLU(Logical Unit)を有する。以下の説明において、「PDEV」は、物理的な記憶デバイス(Physical storage DEVice)を意味し、典型的には、不揮発性の記憶デバイス、例えばHDD(Hard Disk Drive)又はSSD(Solid State Drive)である。もしくは、フラッシュパッケージでもよい。
【0015】
また、冗長構成は、Erasure Coding、RAIN(Redundant Array of Independent Nodes)及びノード間ミラーリングのように複数のノード装置での構成でもよいし、PDEV部の少なくとも一部としての1以上のRAID(Redundant Array of Independent (or Inexpensive) Disks)グループのように単一の計算機(例えばノード装置)での構成でもよい。
【0016】
また、以下の説明において、「プロセッサ」は、1以上のプロセッサである。少なくとも1つのプロセッサは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサであるが、GPU(Graphics Processing Unit)のような他種のプロセッサでもよい。少なくとも1つのプロセッサは、シングルコアでもよいしマルチコアでもよい。
【0017】
また、少なくとも1つのプロセッサは、処理の一部又は全部を行うハードウェア回路(例えばFPGA(Field-Programmable Gate Array)又はASIC(Application Specific Integrated Circuit)といった広義のプロセッサでもよい。
【0018】
また、以下の説明において、「xxxテーブル」といった表現により、入力に対して出力が得られる情報を説明することがあるが、この情報は、どのような構造のデータでもよいし、入力に対する出力を発生するニューラルネットワークのような学習モデルでもよい。従って、「xxxテーブル」を「xxx情報」と言うことができる。
【0019】
また、以下の説明において、各テーブルの構成は一例であり、1つのテーブルは、2以上のテーブルに分割されてもよいし、2以上のテーブルの全部又は一部が1つのテーブルであってもよい。
【0020】
また、以下の説明において、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ部によって実行されることで、定められた処理を、適宜に記憶部及び/又はインターフェース部などを用いながら行うため、処理の主語が、プロセッサ部(或いは、そのプロセッサ部を有するコントローラのようなデバイス)とされてもよい。
【0021】
プログラムは、計算機のような装置にインストールされてもよいし、例えば、プログラム配布サーバ又は計算機が読み取り可能な(例えば非一時的な)記録媒体にあってもよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
【0022】
また、以下の説明において、「計算機システム」は、1以上の物理的な計算機を含んだシステムである。物理的な計算機は、汎用計算機でも専用計算機でもよい。物理的な計算機は、I/O(Input/Output)要求を発行する計算機(例えばホスト計算機やサーバシステムと呼ぶ)として機能してもよいし、I/O要求に応答してデータのI/Oを行う計算機(例えばストレージ装置)として機能してもよい。
【0023】
すなわち、計算機システムは、データ管理システムを構成する。データ管理システムは、データを格納するためI/O要求を発行する1以上のデータ転送サーバ、I/O要求に応答してデータのI/Oを行う1以上のストレージ装置であるデータストレージ、データストレージを管理するストレージ管理サーバ、データストレージに格納されたデータを分析するデータ分析サーバ、及び、データ分析サーバの分析結果を利用する少なくとも1つのクライアントコンピュータと、を有する。
【0024】
物理的な計算機において、1以上の仮想的な計算機(例えばVM(Virtual Machine))が実行されてもよい。仮想的な計算機は、I/O要求を発行する計算機でもよいし、I/O要求に応答してデータのI/Oを行う計算機でもよい。
【0025】
また、計算機システムは、1以上(典型的には複数)の物理的なノード装置で構成された分散システムでよい。物理的なノード装置は、物理的な計算機である。
【0026】
また、物理的な計算機(例えばノード装置)が所定のソフトウェアを実行することにより、その物理的な計算機、又は、その物理的な計算機を含んだ計算機システムに、SDx(Software-Defined anything)が構築されてもよい。SDxとしては、例えば、SDS(Software Defined Storage)又はSDDC(Software-defined Datacenter)が採用されてもよい。
【0027】
また、以下の説明において、種々の対象の識別情報として、識別番号が使用されるが、識別番号以外の種類の識別情報(例えば、英字や符号を含んだ識別子)が採用されてもよい。
【0028】
また、以下の説明において、同種の要素を区別しないで説明する場合には、参照符号(又は、参照符号のうちの共通符号)を使用し、同種の要素を区別して説明する場合は、要素の識別番号(又は参照符号)を使用することがある。
【実施例1】
【0029】
<データ管理コンセプト>
以下、図面を参照して、実施例を説明する。
まず、実施例に係るデータ管理コンセプトを説明する。
【0030】
図1は、実施例のデータ管理コンセプトを示す図である。
データソースの一例として、IoTデバイス、業務データベース、パブリックデータ、及び、WEBやSNSを例に説明する。IoTデバイス14aからのローデータ、業務データベース14bからのローデータ、パブリックデータ14cからのローデータ、WEBやSNS14dからのローデータは、少なくとも一つのローデータバケット13a〜13cに格納される。
【0031】
ローデータバケット13に格納されたローデータを分類し、つなぎ合わせて新しい価値を持たせて共有したキュレーテッドデータとして、キュレーテッドデータバケット12に格納される。
【0032】
キュレーテッドデータバケット12に格納されたデータは、マシンラーニングやディープラーニングといった分析アプリケーション10によって分析され、学習データモデル11a、11bを得る。
【0033】
ここで、本実施例で用いる用語と一般的用語との対応を説明すると、ローデータバケットは、データソースからのデータを格納するデータレイクに相当し、キュレーテッドデータバケットは学習データセットに相当し、学習データモデルは学習モデルに相当する。
【0034】
このように、データソースからの各種データ(ローデータ)は、データレイクに相当するローデータバケット13にいったん格納され、分析しやすい形であるキュレーテッドデータとして、学習データセットに相当するキュレーテッドデータバケットに格納される。キュレーテッドデータバケットに格納されたデータは、マシンラーニングやディープラーニングといった分析アプリケーションによって分析され、学習モデルに相当する学習データモデルとして、ユーザやアプリケーション10に提供される。学習データモデルは、通常ファイルシステムのファイルで管理される。
【0035】
<技術課題>
図2は、本発明の技術課題の一例を説明する図である。
データソースからのローデータは、常に生成されるため、随時更新される。図2は、IoTデバイス14aと業務データベース14bからのローデータを格納するローデータバケット13aは、2019年7月1日に更新され、業務データベース14bとパブリックデータ14cからのローデータは2019年6月1日に更新され、パブリックデータ14cとSNS14dからのローデータは2019年7月20日に更新されていることを示している。
【0036】
一方、学習データモデル11aは、2019年1月1日の学習データモデルで、学習データモデル11bは、2019年4月1日の学習データモデルである。
【0037】
キュレーテッドデータバケット12には、2019年4月1日にキュレーションされたデータが格納されている。
【0038】
このような状況において、2019年1月1日の学習データモデル11aについて、AIアプリ利用者が学習データモデルの再学習や根拠探索などを目的として、過去のローデータやキュレーテッドデータを参照したいときに、同時点のデータが保管されていないため、参照することができないことが課題となる。学習データモデル11bについても、同様の課題が生じる。また、キュレーテッドデータについても、同時点のローデータが既にローデータバケット13に保管されていないため、参照することができない。
【0039】
本実施例のデータ管理システムは、AIアプリ利用者が学習データモデルを学習データモデルの再学習や根拠探索、再検証を行う際に、必要なキュレーテッドデータやローデータを参照することができるデータ管理システムを提供する。
【0040】
<システム構成>
図3は、実施例のデータ管理システムの構成図の一例を示したものである。
IoTデバイス、業務データベース、パブリックデータ、及び、WEBやSNSといったデータソース14と、データソース14からのデータ(ローデータ)を格納するデータストレージ34と、データストレージにデータソース14からのデータを転送する一つ以上のデータ転送サーバ35とを有する。尚、データソース14が直接データストレージ34にデータを転送する場合には、データ転送サーバ35は、不要である。
【0041】
データストレージ34は、図1で示したローデータバケット13に対応するLUと、キュレーテッドデータバケット12と対応するLUと、学習データモデル11を格納するLUと、を提供する。尚、LUは、前述の通り、冗長機能を有する論理的な記憶領域であるLDEV(Logical Device)から構成される。各LDEVは、HDD(Hard Disk Drive)又はSSD(Solid State Drive)から構成されるPDEVにより構成される。
【0042】
データ管理システム1は、データ分析サーバ32、ストレージ管理サーバ33、データストレージ34、データ転送サーバ35と、を含む。
【0043】
データストレージ34は、複数(又は1つ)の物理的記憶デバイスであるPDEVと、PDEVに接続されたストレージコントローラとを有する。
【0044】
ストレージコントローラは、I/Fと、メモリと、それらに接続されたプロセッサとを有する。I/Fは、他の計算機システムとストレージコントローラとの間のデータのやり取りを仲介する通信インターフェースデバイスである。
【0045】
データ転送サーバ35は、ストレージコントローラに対して、I/O先(例えばLUN(Logical Unit Number)のような論理ボリューム番号や、LBA(Logical Block Address)のような論理アドレス)を指定したI/O要求(ライト要求又はリード要求)を送信する。尚、データソース14がデータストレージ34にローデータを転送する場合にも、同様にLUNやLBAを指定したI/O要求を送信する。
【0046】
データストレージ34のメモリは、プロセッサが実行するプログラムと、プロセッサが使用するデータを記憶する。メモリには、スナップショットを取得するためのスナップショットプログラムが格納され、プロセッサによって実行することで、スナップショット実行機能341を実現する。
【0047】
ストレージ管理サーバ33は、データストレージ34を管理する。ストレージ管理サーバ33は、データ分析サーバ32と連携して、データストレージに格納されたデータのスナップショットの取得を制御する。ストレージ管理サーバ33は、一般的な計算機システムの構成を有する。即ち、プロセッサとメモリとを有し、例えば、メモリに格納されたスナップショットの取得タイミングを制御するスナップショット制御プログラムをプロセッサが実行することで、スナップショット制御機能を実現する。
【0048】
データ分析サーバ32は、各種データのローデータからキュレーテッドデータを生成し、キュレーテッドデータを学習することで学習データモデルを生成する。学習データモデルはクライアントコンピュータ31に提供されても良い。データ分析サーバ32は、データ管理機能321、データ分析機能322、データ準備機能323と、を有する。尚、学習データモデルは、データストレージ34に転送され、格納される。データ分析サーバの詳細は、後述する。
【0049】
<ソフトウェア構成>
図4は、実施例のデータ管理システムのソフトウェア構成の一例を示す図である。
図4は、データ分析サーバ32、ストレージ管理サーバ33、及びデータストレージ34の各機能を示している。
【0050】
データストレージ34は、学習データモデルを格納するデータ記憶領域341、キュレーテッドデータバケットに対応し、キュレーテッドデータを格納するデータ記憶領域343、ローデータバケットに対応し、ローデータを格納するデータ記憶領域344と、を有する。各データ記憶領域はLUに対応する。また、データストレージ34は、各データ領域であるLUを含むLDEVのスナップショットを取得するスナップショット実行機能342を有する。スナップショットの技術は、既に広く利用されているため、詳細な説明は省略する。
【0051】
ストレージ管理サーバ33は、データストレージ34を管理し、分析サーバ32と連携して、データストレージに格納されたデータのスナップショットの取得を制御する。ストレージ管理サーバ33は、LUとLDEVとの関係を管理するストレージ構成管理情報331を記憶装置に格納する。また、ストレージ管理サーバ33は、スナップショットの取得タイミングを制御するスナップショット制御機能332を有する。また、ストレージ管理サーバ33は、記憶装置にスナップショット制御機能332によって、取得したスナップショットを管理するためのスナップショット管理情報333を、記憶装置に格納する。
【0052】
データ分析サーバ32は、メモリ、処理部となるプロセッサ、表示装置を有する一般的な計算機システムである。データ分析サーバ32は、データ管理機能321、データ分析機能322、及びデータ準備機能323と、を有する。各機能は、メモリに格納されたデータ管理プログラム、データ分析プログラム、及びデータ準備プログラムをプロセッサが実行することにより実現される。
【0053】
データ管理機能321は、図14図15で示すワークフロー定義情報3211、図9から図12で示すデータ構成情報3212を有し、ストレージ管理サーバ33のスナップショット制御機能332に対しスナップショット取得指示を行うスナップショット指示機能3214、ワークフロー定義情報3211に定義されたワークフローを実行するワークフロー実行機能3213と、を有する。
【0054】
データ準備機能323は、データストレージ34のデータ記憶領域344に対応し、ローデータを格納するローデータバケット13と、データソース14からのデータを収集し、ローデータバケット13に格納するデータ収集機能3232と、ローデータバケット13に格納されたデータをキュレーションし、キュレーテッドデータバケット12に格納するデータキュレーション機能3231と、を有する。尚、キュレーテッドデータバケット12は、データストレージ34のデータ領域343と対応する。
【0055】
データ分析機能322は、データ準備機能323のキュレーテッドデータバケットに格納されたキュレーテッドデータを、マシンラーニングやディープラーニング等によって学習を行うデータモデル学習機能3222と、データモデル学習機能3222による学習データモデルを格納する学習データモデル11、学習データモデル11に格納された学習データモデルを利用してデータ分析するデータ分析アプリケーションと、を有する。尚、学習データモデル11は、ファイルとしてデータストレージ34のデータ記憶領域341に格納される。
【0056】
既に、述べたように、データストレージ34のデータ記憶領域341、データ記憶領域343、データ記憶領域344のそれぞれは、データストレージ34のストレージコントローラによって提供されるLUに対応する。
【0057】
データ準備機能323は、データソース14から各種データを受領し、ローデータバケット13に格納する。ローデータバケット13に格納された各種データは、データキュレーション機能3231によって、キュレーションされて分析しやすい状態のキュレーテッドデータとしてキュレーテッドデータバケット12に格納される。
【0058】
キュレーテッドデータバケット12に格納されたキュレーテッドデータは、データモデル学習機能3222によって、学習データモデルが生成され、格納される。
【0059】
このように、データ分析サーバ32は、データ準備機能323と、データ分析機能322とにより、図1に示したような、ローデータ、キュレーテッドデータ、学習データモデルといった各レイヤのデータを生成し、管理する。また、ローデータ、キュレーテッドデータ、学習データモデルといった各レイヤのデータは、データストレージ34の対応するLUに格納される。
【0060】
<データ関係図>
図5は、実施例のデータ関係図(構成図)の一例を示す図である。
データ関係図(構成図)は、データ構成関係とも呼ぶ。データ構成関係は、データ管理機能321のデータ構成情報3212として管理される。図5は、図4のデータ分析サーバ32のローデータバケット13、キュレーテッドデータバケット12、学習データモデル11といった各レイヤと、データストレージ34の各LUとの対応関係と、を示し、更に、各LUとスナップショットの関係を示している。
【0061】
例えば、データ分析サーバ上では、データソースS01(14a)のローデータは、ローデータバケットR01(13a)に格納され、データソースS02(14b)のローデータは、ローデータバケットR02(13b)に格納される。また、データ分析サーバ上では、ローデータバケットR01(13a)とローデータバケットR02(13b)に格納されたローデータからデータキュレーション機能3231によってキュレーテッドデータを生成し、キュレーテッドデータバケットC01(12a)に格納する。さらに、データ分析サーバ上では、キュレーテッドデータバケットC01(12a)に格納されたキュレーテッドデータをデータモデル学習機能3222が学習し、学習データモデルM01(11a)を生成する。
【0062】
データソースS03(14c)についても、同様に、ローデータバケットR03(13c)に格納し、キュレーテッドデータをキュレーテッドデータバケットC02(12b)に格納し、学習データモデルM02(11b)、学習データモデルM03(11c)を生成する。
【0063】
データ分析サーバ上で、データソースからのローデータを格納するローデータバケット13と、ローデータバケットに格納されたデータをキュレーションしたキュレーテッドデータを格納するキュレーテッドデータバケット12と、キュレーテッドデータバケット12に格納されたキュレーテッドデータをデータモデル学習機能によって学習された学習データモデルと、を対応付けて管理することで、AIアプリ利用者が学習データモデルの再学習や根拠探索などを目的として、過去のデータを参照したいときに、同時点のデータの対応関係を管理することができる。
【0064】
一方、データストレージ34では、ストレージコントローラにより複数のLUが提供される。例えば、LU01(51)はローデータバケットR01(13a)に対応し、LU02(52)はローデータバケットR02(13b)に対応し、LU03(53)はローデータバケットR03(13c)に対応して、異なるデータソース14のローデータを対応するLUに格納する。
【0065】
また、データ分析サーバ32上の、キュレーテッドデータバケットC01(12a)はLU04に、キュレーテッドデータバケットC02(12b)はLU05に対応する。さらに、データ分析サーバ32上の、学習データモデルM01(11a)、学習データモデルM02(11b)、及び、学習データモデルM03(11c)はLU06(56)に格納される。
【0066】
LU01(51)は、スナップショット実行機能342により、異なる時点の3つのスナップショットSS01(51S1)、スナップショットSS02(51S2)、及び、スナップショットSS03(51S3)を取得している。
【0067】
同様に、LU03は一つのスナップショットSS04(53S1)を、LU04は二つのスナップショットSS05(54S1)とスナップショットSS06(54S2)を取得している。LU05やLU06についても、図5に示したようにスナップショットを取得している。
【0068】
本実施例において、データ分析サーバ上のローデータバケット13と、キュレーテッドデータバケット12、学習データモデル11の各レイヤのデータをデータストレージ34の各LUに対応して管理すると共に、データストレージ34の各LUの異なる時刻に取得されたスナップショットとの関係を、図5に示したデータ関係図のように管理することで、AIアプリ利用者が学習データモデルの再学習や根拠探索などを目的として、過去のデータを保管し、参照を容易に行うことができる。
【0069】
図6は、実施例のデータ関係図(時系列)の一例を示す図である。
データ関係図(時系列)は、データ時系列関係とも呼ぶ。データ時系列関係は、データ管理機能321のデータ構成情報3212として管理される。
【0070】
図6のデータ関係図(時系列)は、図5のデータ関係図(構成図)におけるデータソースS01と、ローデータバケットR01、キュレーテッドデータバケットC01、学習データモデルM01を格納するLU01(51)、LU04(54)、LU06(56)の最新状態と、各LUのスナップショット取得時間との関係を示している。データ時系列関係は、ローデータバケット、キュレーテッドデータバケット、及び、学習データモデルとの関係と、ローデータバケットと第1の記憶領域(LU)、キュレーテッドデータバケットと第2の記憶領域(LU)、及び、学習データモデルと第3の記憶領域(LU)との関係と、第1の記憶領域、第2の記憶領域、及び、第3の記憶領域のスナップショット取得時刻との関係とを表したものである。
【0071】
尚、LU06は、学習データモデルM01の他、学習データモデルM02と学習データモデルM03とファイル形式で格納するLUである。
【0072】
ローデータバケットR01に対応するLU01は、2019年4月1日23時59分に取得したスナップショットSS01、2018年10月25日4時0分に取得したスナップショットSS02、2017年2月3日16時30分に取得したスナップショットSS03の3つのスナップショットが取得されている。
【0073】
キュレーテッドデータバケットC01に対応するLU04は、2019年4月1日23時59分に取得したスナップショットSS05、2019年1月1日10時18分に取得したスナップショットSS06が取得されている。
【0074】
学習データモデルM01を格納するLU06は、2019年4月1日23時59分に取得したスナップショットSS08、2019年1月1日10時18分に取得したスナップショットSS09、2018年10月25日4時0分に取得したスナップショットSS10の3つのスナップショットが取得されている。
【0075】
図6に示した関係図によると、2019年4月1日23時59分時点には、ローデータバケットR01、キュレーテッドデータバケットC01、学習データモデルM01のスナップショットが取得されており、AIアプリ利用者が学習データモデルM01の再学習や根拠探索などを目的として、学習データモデルM01を生成する元データであるキュレーテッドデータやキュレーテッドデータの基となった過去のローデータを参照することができる。
【0076】
2019年1月1日10時18分時点のデータとしては、キュレーテッドデータC01のスナップショットSS06と、学習データモデルM01のスナップショットSS09が存在し、ローデータバケットのスナップショットが存在しないため、学習データモデルM01の再学習等は、キュレーテッドデータに基づく分析のみが可能であり、ローデータに基づく分析はできない。
【0077】
一方、2018年10月25日4時0分時点のデータとしては、ローデータR01のスナップショットSS02と、学習データモデルM01のスナップショットSS10が存在し、キュレーテッドデータバケットのスナップショットが存在しないため、学習データモデルM01の再学習等は、ローデータに基づく分析のみが可能であり、キュレーテッドデータに基づく分析は、ローデータをキュレーションする必要がある。
【0078】
学習データモデルM01について、精度の高い再分析を行うためには、分析したい時刻の学習データモデルM01の他、ローデータバケットR01、キュレーテッドデータバケットC01の両方のデータが保管されていることが望ましい。
【0079】
例えば、アプリケーション側で特定のカメラによる記録画像に価値があると判断した場合、学習データモデルM01を生成した時点のローデータについても分析できることが望ましい。
【0080】
<管理情報>
次に、管理情報について説明する。
【0081】
図7は、ストレージ管理サーバ33のストレージ構成管理情報331の内容を示したものである。
ストレージ構成管理情報331は、データストレージ34の記憶領域を特定するターゲットID71に対し、ターゲットIDに対応するLDEVの識別子であるLDEV73と、LDEVに含まれるLUの識別情報であるLUN72とを対応して管理する。
【0082】
例えば、ターゲットID71が「192.168.1.2」は、LUN72が「LU06」で、LDEV73が「DEV01」であることを示している。
【0083】
図8は、実施例のスナップショット管理情報の一例を示す図である。図8は、ストレージ管理サーバ33のスナップショット管理情報333の内容を示している。スナップショット管理情報333は、LDEVの識別子であるLDEV81に対し、スナップショットの識別子であるスナップショット82とスナップショットの取得時間83とが対応して管理されている。
【0084】
例えば、LDEV81「DEV01」は、スナップショット識別子「SS08」で識別されるスナップショットが、スナップショットの取得時間83「Apr.1.2019」に取得されたことを示している。
【0085】
ストレー構成管理情報331とスナップショット管理情報333は、ストレージ管理サーバ33からデータ分析サーバ32のデータ管理機能321に送信され、データ構成情報の一部となる。これにより、データ管理機能321は、各LUとスナップショットとの対応が管理され、例えば、図5に示すデータ関係図(構成図)を構成することができる。また、データ管理機能321は、各スナップショットの取得時刻も管理できるため、例えば、図6に示すデータ関係図(時系列)を構成することができる。
【0086】
<データ構成情報>
図9は、実施例のデータ構成情報(キュレーテッドデータバケットから学習データモデル)の一例を示す図である。
図9に示したデータ構成情報(キュレーテッドデータバケットから学習データモデル)は、データ分析サーバ32のデータ管理機能321によって管理される。
【0087】
データ構成情報(キュレーテッドデータバケットから学習データモデル)は、図1に示したデータ管理コンセプトの内、キュレーテッドデータバケット12から学習データモデル11の対応を関するための情報である。データ構成情報(キュレーテッドデータバケットから学習データモデル)は、学習データモデルの識別子であるデータモデル91、学習データモデルM01等を参照するための格納場所であるデータストア92、キュレーテッドデータバケットを識別するキュレーテッドデータバケット93、学習データモデルの生成時刻を示す時刻情報94との対応を管理する。
【0088】
例えば、学習データモデル91「M01」は、「/mnt/str01」に格納され、キュレーテッドデータバケット「C01」から、「Apr.1.2019」に生成されてデータであることを示す。学習データモデルは、ファイルのため、格納場所は、ファイルシステムで示される。
【0089】
図10は、実施例のデータ構成情報(ローデータバケットからキュレーテッドデータバケット)の一例を示す図である。図10に示したデータ構成情報(ローデータバケットからキュレーテッドデータバケット)は、データ分析サーバ32のデータ管理機能321によって管理される。
【0090】
実施例のデータ構成情報(ローデータバケットからキュレーテッドデータバケット)は、図1のローデータバケット13とキュレーテッドデータバケット12との対応を管理するための情報である。データ構成情報(ローデータバケットからキュレーテッドデータバケット)は、キュレーテッドデータの識別子101、ローデータバケットの識別子102との対応を管理する。
【0091】
例えば、キュレーテッドデータの識別子101が「C01」は、ローデータバケットの識別子102「R01、R02」が対応して管理されている。
【0092】
図9図10に示したデータ構成情報は、学習データモデルと、学習データモデルを生成するためのローデータを格納するローデータバケットと、学習データモデルを生成するためのキュレーテッドデータを格納するキュレーテッドデータバケットと、の対応を管理する第1のデータ構成情報となる。
【0093】
図11は、実施例のデータ構成情報(データソースからローデータバケット)の一例を示す図である。図11に示したデータ構成情報(データソースからローデータバケット)は、データ分析サーバ32のデータ管理機能321によって管理される。
【0094】
実施例のデータ構成情報(データソースからローデータバケット)は、図1のデータソース14と、ローデータバケット13との対応を管理するための情報である。データ構成情報(データソースからローデータバケット)は、ローデータバケットの識別子111、データソースの識別子112との対応を管理する。
【0095】
例えば、ローデータバケットの識別子111が「R01」は、データソースの識別子112「S01」が対応して管理されている。
【0096】
図12は、実施例のデータ構成情報(データバケットストレージ構成情報)の一例を示す図である。図12に示したデータ構成情報(データバケットストレージ構成情報))は、データ分析サーバ32のデータ管理機能321によって管理される。
【0097】
実施例のデータ構成情報(データバケットストレージ構成情報)は、図5に示したデータ分析サーバ32上の、学習データモデル11、キュレーテッドデータバケット12、ローデータバケット13と、学習データモデル11、キュレーテッドデータバケット12、ローデータバケット13に対応するデータストレージ34上のLUとの関係を示している。
【0098】
例えば、データストア121が「/mnt/str01」は、データストレージを特定するデバイス122「/dev/sda01」と、データストレージのターゲットID123「192.168.1.2」と、LUN124「LU06」とが対応していることを示している。また、データストア121が「C01」は、データストレージを特定するデバイス122「/dev/sdc01」と、データストレージのターゲットID123「192.168.1.3」と、LUN124「LU04」とが対応していることを示している。
【0099】
学習データモデルとLU06、キュレーテッドデータバケットC01とLU04、及び、ローデータバケットR01とLU01と、の対応を管理する。
【0100】
このように、データ分析サーバ32で認識する学習データモデル11、キュレーテッドデータバケット12、ローデータバケット13が、どのデータストレージのどのLUに対応するかを、第2のデータ構成情報として管理する。これにより、図5に示したようなデータ関係図(構成図)を把握することができる。また、データストレージ34の対応するLUのスナップショットを取得することで、データ分析サーバ上の、学習データモデル11、キュレーテッドデータバケット12、ローデータバケット13といった各レイヤの情報のスナップショットを、取得することができ、各LUとスナップショットの関係を図5に示したようなデータ関係図(構成図)を把握することができる。
【0101】
本実施例のデータ管理システムは、データ分析サーバ32で管理される学習データモデル11、キュレーテッドデータバケット12、ローデータバケット13といった各レイヤと、データストレージで管理するLUとの対応付けを行い、対応付けられたLUに関して、データストレージが有するスナップショット機能を利用することで、データ分析サーバを利用するAIアプリ利用者が過去のデータを参照して、学習データモデルの再学習や根拠探索などを行うことができる。
【0102】
図13は、実施例のデータ構成情報(コンシステントスナップショットグループ)の一例を示す図である。実施例のデータ構成情報(コンシステントスナップショットグループ)は、グループ131の識別子に対し、グループに含まれるデータ132、各データの取得日時133、スナップショットを特定するスナップショットID134との対応を管理する。
【0103】
図13のデータ構成情報(コンシステントスナップショットグループ)は、図6の実施例のデータ関係図(時系列)を例に説明したものである。
【0104】
グループ131「G01」には、データ132として「M01」「C01」「R01」(図5参照)が含まれ、「M01」は、「Apr.1.2019」に取得され、スナップショットID「SS08」に格納される。「C01」は、「Apr.1.2019」に取得され、スナップショットID「SS05」に格納される。「R01」は、「Apr.1.2019」に取得され、スナップショットID「SS01」に格納される。このデータ構成情報(コンシステントスナップショットグループ)を参照すれば、学習データモデルに対し、同一時刻で取得したキュレーテッドデータバケットのスナップショット、ローデータバケットのスナップショットが存在するかを容易に判定することができる。
【0105】
図13のデータ構成情報(コンシステントスナップショットグループ)は、図12に示したデータ構成情報(第2のデータ構成情報)と、図7に示したストレージ構成管理情報及び図8に示したスナップショット管理情報から生成される第3のデータ構成情報に基づいて、同一時刻に取得された、学習データモデル、キュレーテッドデータバケット、及び、ローデータバケットのスナップショットの内の少なくとも二つを、コンシステントスナップショットグループとして管理する。
【0106】
このように、各LUのスナップショット取得時刻を管理しているので、図6に示したようなデータ関係図(時系列)として、LUとスナップショット取得時間を把握することができる。
【0107】
<ワークフロー定義情報>
図14は、実施例のワークフロー定義情報(データ準備処理)の一例を示す図である。
作成されたワークフロー定義情報は、データ分析サーバ32のデータ管理機能321によって管理されるワークフロー定義情報3211となる。
図14において、まず、ワークフロー141で、データキュレーション機能3231がローデータバケット13をロードする。
【0108】
次に、ワークフロー142で、ローデータバケットのスナップショットを取得する。この処理は、例えば、図5のローデータバケットR01に対応するLU01のスナップショットSS01を取得する動作に対応する。図4では、スナップショット実行機能342がデータ記憶領域344のスナップショットを取得する動作に対応する。
【0109】
次に、ワークフロー143で、データキュレーション機能3231がローデータバケットのデータをキュレーションする。
【0110】
ワークフロー144で、キュレーションされたデータは、キュレーテッドデータバケット11に格納(更新)される。格納(更新)されたキュレーテッドデータバケットは、ワークフロー145で、スナップが取得される。図5のキュレーテッドデータバケットC01に対応するLU04のスナップショットSS05を、データストレージ34のスナップショット実行機能342が取得する動作に対応する。
【0111】
次に、ワークフロー146で、キュレーテッドデータバケットC01のデータをデータモデル学習機能3222により学習し、学習データモデルを生成する。
【0112】
ワークフロー147で、学習データモデルを格納する。尚、学習データモデルは、対応するデータストレージのLUに格納する。この処理は、図5の学習データモデルM01をデータストレージ34のLU06に格納する処理に対応する。
【0113】
ワークフロー148で、LU06に格納された学習データモデルのスナップショットを取得する。実際には、データストレージ34のスナップショット実行機能342がLU06に対応するLDVEのスナップショットを取得することで達成される。
【0114】
図14に示したように、ローデータからキュレーテッドデータを介し、学習データモデルを生成するデータフローに加え、ローデータバケットからデータキュレーション機能がデータをロードしたタイミング、データキュレーション機能がキュレーテッドデータバケットにキュレーテッドデータを格納するタイミング、及び、学習データモデルを対応するLUに格納するタイミングのそれぞれで、各データのスナップショットを取得するワークフローを作成し、ワークフロー定義情報3211として格納する。
【0115】
このワークフローを実行する際には、データ管理機能321のワークフロー実行機能3213が、データ分析機能322、データ準備機能323、ストレージ管理サーバ33に指示を行う。
【0116】
図15は、実施例のワークフロー定義情報(データ復元処理)の一例を示す図である。
作成されたワークフロー定義情報は、データ分析サーバ32のデータ管理機能321によって管理されるワークフロー定義情報3211となる。
【0117】
まず、ワークフロー151で、学習データモデルを選択する。
【0118】
次に、ワークフロー152で、データ管理機能321は、図13のデータ構成情報(コンシステントスナップショットグループ)を参照することで、コンシステントグループを検索する。図13の例では、同一時刻で、学習データモデル、キュレーテッドデータバケット、ローデータバケットのスナップショットが存在する、グループ131が「G01」が、発見される。
【0119】
次に、ワークフロー153で、キュレーテッドデータバケット132「C01」のスナップショットID134「SS05」により、キュレーテッドデータバケットをリストアする。この処理は、データストレージ34のスナップショット実行機能342によって行われる。
【0120】
次に、ワークフロー154で、ローデータバケット132「R01」のスナップショットID134「SS01」により、ローデータバケットをリストアする。この処理は、データストレージ34のスナップショット実行機能342によって行われる。
【0121】
<スナップショット取得処理>
図16は、実施例のスナップショット取得処理フローの一例を示す図である。
データ準備機能323は、データソースから各種データを受領し、ローデータバケットを随時更新する(S161)。
【0122】
データ管理機能321は、図14で説明したワークフローを開始させる指示をデータ準備機能323に指示する(S162)。或いは、学習データモデルの作成指示とすることができる。
【0123】
データ準備機能323が、ワークフローの開始指示を受領すると、ローデータバケットを参照する(S163)。
【0124】
ワークフローの開始に伴って、ローデータバケットを参照すると、データ管理機能321のスナップショット指示機能3214は、スナップショット制御機能332に対し、スナップショット取得処理を実行する指示する(S164)。
【0125】
スナップショット制御機能332は、データストレージ34のスナップショット実行機能342に対し、スナップショット実行させることで、ローデータバケットに対応するLUを含む記憶領域(LDEV)のスナップショットを取得し、データ管理機能321に通知する(S165)。
【0126】
データ管理機能321は、データ準備機能323のデータキュレーション機能3231に対し、データキュレーション処理を実行させる、指示を行う(S166)。
【0127】
指示を受領したデータ準備機能323は、キュレーテッドデータバケットを更新し、データ管理機能321に通知する(S167)。
【0128】
通知を受けたデータ管理機能321は、キュレーテッドデータバケットのスナップショット取得の実行をスナップショット制御機能332に指示する(S168)。
【0129】
スナップショット制御機能332は、データストレージ34のスナップショット実行機能342に対し、スナップショット実行させることで、キュレーテッドデータバケットに対応するLUを含む記憶領域(LDEV)のスナップショットを取得する(S169)。
【0130】
このように、図14に示したワークフローを実行するため、学習データモデルを生成するための、ローデータバケットの参照時、ローデータからキュレーテッドデータバケットの更新時に、ローデータバケットとキュレーテッドデータバケットとのスナップショットを取得することで、学習データモデル生成時に対応したローデータバケットとキュレーテッドデータバケットを保管することができ、後日、学習データモデルを再検討時にローデータバケットとキュレーテッドデータバケットを参照することができる。
【0131】
図17は、実施例のスナップショット取得処理フローを示す図である。
データ管理機能321は、データ分析機能322に対し学習データモデル処理の実行指示を行う(S171)。
【0132】
データ分析機能322は、学習データモデルの生成を行い、データ管理機能321に通知する(S172)。
【0133】
データ管理機能321は、学習データモデルの生成通知を受け取ると、スナップショット制御機能332に対し、記憶領域のスナップショットの取得を指示する(S173)。
【0134】
スナップショット制御機能332は、データストレージ34のスナップショット実行機能342に対し、スナップショット実行させることで、学習データモデルを格納するLUを含む記憶領域(LDEV)のスナップショットを取得する(S174)。
【0135】
データ管理機能321は、スナップショット制御機能332から学習データモデルのスナップショットの取得通知を受領すると、データ構成情報を更新する(S175)。
【0136】
図18は、実施例のスナップショット復元処理フローの一例を示す図である。
データ管理機能321に、ユーザから再現する学習データモデルが入力される(S18)。データ管理機能321は、図13のデータ構成情報(コンシステントスナップショットグループ)を参照することで、コンシステントグループを検索し、スナップショット制御機能332に通知する(S182)。
【0137】
スナップショット制御機能332は、キュレーテッドデータバケットのスナップショットを復元(リストア)し、データ管理機能321に通知する(S183)。
【0138】
その後、スナップショット制御機能332は、ローデータバケットのスナップショットを復元し、データ管理機能321に通知する(S184)。
【0139】
<表示例>
図19は、実施例のスナップショット復元処理フローのGUI表示例を示す図である。
ユーザは、ノードリスト部194からジョブを選択し、ワークフロー(スナップショット復元処理フロー)をワークフロー表示領域192にドラッグアンドドロップすることで、スナップショット復元処理フロー193を作成する。
【0140】
図19においては、最初にロードデータのジョブが選択され、ロードデータについて、スナップショット取得のジョブと、データキュレーションのジョブが関連付けられ、さらに、データキュレーションのジョブに対し、キュレーテッドデータを格納するジョブが関連付けられた処理フローが構成されている。
【0141】
データ分析サーバ32は、処理部と表示装置を有し、処理部は、表示装置のノードリスト部に複数のジョブオブジェクトを表示する。表示装置に表示された複数のジョブオブジェクトの中から、ユーザが選択し、ワークフロー表示領域にドロップすることで、データ準備処理のワークフロー定義情報を生成する。
【0142】
複数のジョブオブジェクトは、ローデータバケットからデータを読み出すロードデータオブジェクト(Load data)と、関連付けられたジョブオブジェクトのデータに対し、当該データをキュレートするデータキュレーションオブジェクト(Data Curation)と、関連付けられたジョブオブジェクトのデータに対し、当該データを格納する格納ジョブオブジェクト(Store)と、関連付けられたジョブオブジェクトのデータに対し、当該データのスナップショットを取得するスナップショット取得ジョブオブジェクト(Get Snapshot)と、が含まれる。
【0143】
このように、ワークフローを視覚的に作成することができるため、サーバ管理、データストレージ管理に精通していないデータ分析を行うユーザであっても、容易に、学習データモデルに対応するキュレーテッドデータバケットやローデータバケットについて、スナップショットを取得でき、過去の学習データモデルの再分析を行うことが可能となる。
【0144】
図20は、実施例のデータ構成管理GUIの一例を示す図である。図20の表示例は、図6の実施例のデータ関係図(時系列)を表示した例である。表示はクライアントコンピュータ31の表示装置や、データ分析サーバ32の表示装置に表示される。この表示により、ユーザは、同一時刻に取得された、ローデータバケット、キュレーテッドデータバケット、学習データモデルのスナップショット(コンシステントスナップショットグループ)を容易に把握することができる。
【0145】
図21は、実施例のデータ構成管理GUIの一例を示す図である。このGUIは、図5の実施例のデータ関係図(構成図)を表示した例である。この表示はクライアントコンピュータ31の表示装置や、データ分析サーバ32の表示装置に表示される。この表示により、ユーザは、データ分析サーバ上のローデータバケット、キュレーテッドデータバケット、学習データモデルが、データストレージ上のどのLUに対応するかを確認することができ、ローデータバケットやキュレーテッドデータバケット等のスナップショットを取得する際に、どのLUのスナップショットを取得すればよいか容易に把握することができる。
【0146】
以上、本実施例によれば、学習データモデルの生成フロー開始時に、ローデータバケットのスナップショットの取得、キュレーテッドデータ作成時にキュレーテッドデータバケットのスナップショットの取得、学習データモデルのスナップショットの取得を行うことで、学習データモデルの再検討や根拠探索を行いことができる。
【0147】
学習データモデルを作成、更新した時点で、学習データモデルのデータ属性に一致するローデータバケットのスナップショットだけを取得しても良い。例えば、学習データモデルの属性がファイルであれば,該当するローデータバケットのうちファイルストレージに格納されたデータのみスナップショットを取得する。
【0148】
また、定期的にローデータバケットのスナップショットを取得してもよい。このとき、特定のデータソース(センサ・カメラ等)を指定し、関連するローデータバケットのみスナップショットを取得しても良い。
【0149】
アプリケーション側で特定のカメラによる記録画像に価値があると判断した場合、その記録を失わないようスナップショットを運用するといったユースケースに対応することができる。
【0150】
また、学習データモデルを作成するために必要となる、データ分析サーバ上のローデータバケットやキュレーテッドデータとの関係を管理し、ローデータバケットやキュレーテッドデータバケットとデータストレージ上のLUとの対応関係を管理することで、学習データモデルの作成、更新に影響したデータについて、データの保管を行うことできる。
【0151】
このように、学習データモデルの基となる過去のデータを参照することで、AIアプリ利用者が学習データモデルの再学習や根拠探索などを実現することができる。
【符号の説明】
【0152】
1:データ管理システム
10:アプリケーション、
11:学習データモデル、
12:キュレーテッドデータバケット、
13:ローデータバケット、
14:データソース、
32:データ分析サーバ、
33:ストレージ管理サーバ、
34:データストレージ、
35:データ転送サーバ。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21