JP7481283B2 - メタデータ管理装置、データ管理システムおよびデータ再現方法 - Google Patents

メタデータ管理装置、データ管理システムおよびデータ再現方法 Download PDF

Info

Publication number
JP7481283B2
JP7481283B2 JP2021033040A JP2021033040A JP7481283B2 JP 7481283 B2 JP7481283 B2 JP 7481283B2 JP 2021033040 A JP2021033040 A JP 2021033040A JP 2021033040 A JP2021033040 A JP 2021033040A JP 7481283 B2 JP7481283 B2 JP 7481283B2
Authority
JP
Japan
Prior art keywords
data
metadata
processing
management device
data processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021033040A
Other languages
English (en)
Other versions
JP2022134032A (ja
Inventor
淳平 大越
恒彦 馬場
俊彦 樫山
博亮 増田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2021033040A priority Critical patent/JP7481283B2/ja
Publication of JP2022134032A publication Critical patent/JP2022134032A/ja
Application granted granted Critical
Publication of JP7481283B2 publication Critical patent/JP7481283B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は、メタデータ管理装置、データ管理システムおよびデータ再現方法に関する。非制限的な具体的な分野としては、本発明は、データの更新等が行われる種々の環境下において、データ量の増大抑制と、データの再現性担保の両立を図ることを目的としたメタデータ管理装置、データ管理システムおよびデータ再現方法に関する。
近年、企業コンプライアンスやデータ利活用の高度化を背景に、データガバナンスと呼ばれるデータ管理の重要性が増している。データガバナンスは、企業が有するデータ(以下、「データ資産」ともいう)に対する管理上の統制であり、主に、計画、監視および執行のプロセスからなる。
かかるデータガバナンスを実現するためには、データ資産のメタデータを管理することが必要となる。メタデータ管理を実現するソフトウェアは、一般に、「データカタログ」と呼ばれている。なお、メタデータとは、あるデータに付随する情報(例えば、作成日時や作成者)や、データの利活用で生じる情報(例えば、利用時刻や利用者)や、データ間の関係性(例えば、あるデータを元に生成された別のデータ)など、データに付随させて保存可能なあらゆる情報を指す。
データガバナンスにおいては、データの再現性を担保することが重要な課題となる。例えば、典型的なデータ利活用のユースケースである機械学習においては、あるデータを入力とし、ある機械学習モデルを生成する。この生成した機械学習モデルを再現するためには、その入力となったデータの再現が必須となる。具体的には、生成した機械学習モデルの再現ができない、あるいは生成した機械学習モデルに何らかの不具合(例えば、精度の低下)が生じた等の問題が発生したケースにおいて、その入力となったデータを再現することが出来ない場合には、当該問題の原因を究明することができなくなる。したがって、データの再現性を担保することは、極めて重要な課題となっている。
上記のようなデータの再現性を担保する技術に関し、例えば、特許文献1に記載の技術が知られている。特許文献1には、任意の時点でデータベース(以下、「DB」と略称することがある)に保持されていたデータを参照する際の負荷を軽減する技術が記載されている。
また、データガバナンスにおいて、データは、ETL(Extract/Transform/Load)に代表されるデータ変換処理を複数経由した後に管理される場合もあり得る。このデータ変換処理のフロー(以下、「データ処理フロー」ともいう)を管理する技術として、例えば、特許文献2に記載の技術が知られている。特許文献2には、異なる組織によって作成され、用語やスキーマが異なるデータを扱うデータ処理フローに対する検索と再利用を可能にする技術が記載されている。
特開2016-103115号公報 WO18/011895号公報
特許文献1に記載の技術では、メインフレーム(大型汎用機)のDBに保持されたことがあるデータを保持するテンポラルDBをDB専用装置に設け、DBの更新時には、メインフレームで、アプリケーションが更新SQL(Structured Query Language)を発行すると、DBMS(DataBase Management System)がDBを更新して更新ログを記憶し、更新ログ捕捉部が定期的に更新ログを読み出し、DB専用装置で、更新ログ適用部が更新ログに基づいてテンポラルDBを更新する。また、特許文献1に記載の技術では、DBの参照時には、メインフレームで、アプリケーションが照会対象時刻付きの照会SQLを発行すると、DBMSが照会SQLを照会処理部に転送し、DB専用装置で、照会処理部が照会対象時刻のデータをテンポラルDBに照会して照会結果をDBMSに返す。
特許文献2に記載の技術では、データ処理フロー管理システムは、処理フローの情報と、処理フローの入力データ、および、出力データと、当該データのメタデータと、スキーマと、用語の類義関係定義とを管理する。そして、特許文献2に記載の技術では、処理フローの検索時には、検索条件に含まれる処理フローの入力データ、および出力データと、データ処理フロー管理システムが管理する処理フローの入力データ、および出力データを、メタデータ、スキーマ、用語の類義関係定義を用いて比較することで、検索条件で指定された処理フローと類似する処理フローを検索する。
ここで、特許文献1と特許文献2に記載の構成を適宜に組み合わせることにより、データ処理フローの出力データを再現可能な構成が得られるものと考えられる。具体的には、データに変更が生じた際に、特許文献1に記載の技術を使用して、照会対象時刻付きの照会SQLを発行することで、過去のある時刻のデータを取得することができる。さらに、特許文献2に記載の技術により、過去に実施したデータ処理フローを取得したデータに再度適用することで、データ処理フローの出力データを再現することができるものと考えられる。
しかしながら、これら特許文献1および2に記載の技術に基づいてデータ処理フローの出力データを再現可能なコンピュータシステムを構築しようとすると、データ量の肥大化が避けられないとの技術的課題が発生する。具体的には、上記技術によれば、データ処理フローを複数連結し、すなわち、あるデータ処理フローの出力データを別のデータ処理フローの入力データとして利用し、かつ、これらのデータ処理フローを複数回実行する場合、データベースに過去に生成したデータがすべて保存されることにより、データ量が肥大化するとの問題が生じる。
本発明の目的は、データの更新やデータ処理フローが変更され得る環境下において、データ量の増大を抑制しつつ、データの再現性を担保することが可能なメタデータ管理装置、データ管理システム、およびデータ再現方法を提供することにある。
上述した課題の少なくとも一つを解決するために、本発明の一側面は、
入力されたデータの分析を行うデータ分析装置および前記データが格納されるデータベースの管理を行うデータ管理装置が実行したデータ処理に係るメタデータを管理するメタデータ管理装置であって、
前記データ分析装置における前記データ処理の実行に応じて当該実行時のタイムスタンプを生成するタイムスタンプ管理部と、
前記データ処理の入力となったデータの特定に必要な条件式を生成する条件式管理部と、
前記タイムスタンプと前記条件式と前記データ処理とをリネージとして管理するメタデータ管理部と、
時刻指定を有するデータ再現処理要求に対し、前記リネージを用いて、前記データ処理を前記条件式に従って更新し、該更新されたデータにデータ再現処理を適用することにより、前記データ再現処理要求で指定された時刻におけるデータを再現するデータ再現処理管理部と、
を備える。
上述した課題の少なくとも一つを解決するために、本発明の他の一側面は、
上述のデータ分析装置、データ管理装置、およびメタデータ管理装置が互いに接続され、これら装置の協働によってデータおよびメタデータの管理を行うデータ管理システムであって、
RDBMS(Relational DataBase Management System)を用いて前記データおよび前記メタデータの管理を行う。
上述した課題の少なくとも一つを解決するために、本発明のさらに他の一側面は、
入力されたデータの分析を行うデータ分析装置および前記データが格納されるデータベースの管理を行うデータ管理装置が実行したデータ処理に係るメタデータを管理するメタデータ管理装置におけるデータ再現方法であって、
前記データ処理の実行に応じて当該実行時のタイムスタンプを生成し、
前記データ処理の入力となったデータの特定に必要な条件式を生成し、
前記タイムスタンプと前記条件式と前記データ処理とをリネージとして管理し、
時刻指定を有するデータ再現処理要求に対し、前記リネージを用いて、前記データ処理を前記条件式に従って更新し、
更新されたデータにデータ再現処理を適用することにより、前記データ再現処理要求で指定された時刻におけるデータを再現する。
本発明によれば、データ処理毎に、当該処理時のタイムスタンプと入力データの特定に必要な条件式とが紐づけてリネージとして管理するので、例えば出力データが削除された場合であっても、蓄積された入力データから出力データを再現することができる。したがって、本発明によれば、データの更新やデータ処理フローが変更され得る環境下において、データ量の増大を抑制しつつ、データの再現性を担保することができる。
本実施形態における情報処理システムのソフトウェア構成の一具体例を示す図である。 図1の情報処理システムのハードウェア構成を示す図である。 情報処理システムにおけるデータ処理、及びデータ再現処理におけるデータの流れ等を示すシーケンス図である。 データ管理装置における第1のデータベースに格納されたデータテーブルを示す図である。 メタデータ管理装置によるメタデータ更新処理を示すフローチャートである。 メタデータテーブルおよびメタデータテーブルの更新処理を示す図である。 データ分析装置のディスプレイに表示される画面の一例を示す図である。 データ分析装置のデータ処理内容格納部に格納されるデータ処理内容テーブルを示す図である。 本システムにおけるデータ処理を説明する図である。 本システムにおけるメタデータ生成、及び登録処理を示すフロー図である。 本システムにおけるリネージテーブルの一具体例を示す図である。 本システムにおける条件式の生成およびリネージテーブルの登録(ないし更新登録)の処理を示すフロー図である。 本システムを構成する装置の表示部に表示される手動データ処理管理画面の一例を示す図である。 本システムを構成する装置の表示部に表示されるデータ再現処理管理画面の一例を示す図である。 本システムにおけるデータ再現処理の一具体例を示すフロー図である。 図15のフローのサブルーチンであって、本システムにおけるデータ処理内容の再適用処理の一具体例を示すフロー図である。 本システムにおけるデータ再現処理を説明する図である。
以下、本発明の実施形態について、図面を参照して詳細に説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また、実施形態の中で説明されている諸要素、及びその組み合わせの全ては、発明の解決手段に必須であるとは限らない。
以下の説明では、情報をテーブルとして説明することがあるが、情報のデータ構造を限定するものではなく、どのようなデータ構造で表現されていてもよい。
また、以下の説明では、CPU(Central Processing Unit)は、1以上のプロセッサを含む。プロセッサは、処理の一部、又は全部を行うハードウェア回路を含んでもよいし、FPGA(Field Programmable Gate Array)等のハードウェア回路に代替されていてもよい。また、処理を、プログラムを主体として説明する場合があるが、プログラムは、CPU、あるいはその他のハードウェアによって実行されるため、実際の処理の主体はCPUあるいはその他のハードウェアとなる。
また、以下では、データベース(DB)システムとしてRDBMS(Relational DataBase Management System)や、データベースシステムに対する問い合わせ言語としてSQL(Structured Query Language)等、特定のシステムや問い合わせ言語にて説明することがあるが、データベースシステムや問い合わせ言語を限定するものではない。すなわち、RDBMS以外のデータベースシステムや、システムに応じた問い合わせ言語が用いられていてもよい。
本実施形態における情報処理システムのソフトウェア構成の一具体例を、図1を参照して説明する。図1は、本実施形態の情報処理システムにおけるソフトウェア構成を説明するための概略ブロック図である。図1に示す情報処理システム1(以下、単に「本システム」と略称する場合がある)は、データの更新やデータ処理フローが変更され得る環境下において、データ量の増大を抑制しつつ、データの再現性を担保するように、データおよびメタデータの管理を行うコンピュータシステムである。
図1に示すように、本実施形態の情報処理システム1は、本システムで実行されたデータ処理に係るメタデータの管理を行うメタデータ管理装置100と、本システムに入力されたデータの内容の分析等を行うデータ分析装置110と、主としてDBの管理を行うデータ管理装置120とを備える。かかる情報処理システム1は、本発明の「データ管理システム」に対応する。
なお、図1では、それぞれの装置100,110,120を異なるハードウェア(端末)として記載しているが、これらの装置100,110,120のいずれか2つ以上、或いは装置100,110,120の一部は、1つの計算機(1台の装置)として構成されていてもよい。
また、図1では、詳細を後述する各管理部(103、111、121)、各格納部(105、112)、及び各データベース(122、123)を異なる機能ブロックで記載しているが、ハードウェアとして異なるものであることを要求するものではない。したがって、各管理部(103、111、121)の動作は1つ以上のハードウェアで行われてもよく、各格納部(103、111、121)、および各データベース(122、123)は、ハードディスクドライブ等の1つ以上の記憶装置で実現されていてもよい。
図1を参照すると、メタデータ管理装置100は、本システムで生成されるメタデータを管理する機能を有するメタデータ管理部101を備える。また、メタデータ管理装置100は、本システムで生成されるタイムスタンプを管理する機能を有するタイムスタンプ管理部102と、本システムで生成される種々の条件式を管理する機能を有する条件式管理部103と、を備える。さらに、メタデータ管理装置100は、本システムで処理された種々のデータの再現処理の管理を行う機能を有するデータ再現処理管理部104と、上記のメタデータを保存(格納)するメタデータ格納部105とを備える。
一方、データ分析装置110は、情報処理システム1におけるデータ処理内容を管理する機能を有するデータ処理内容管理部111と、かかるデータ処理内容を保存(格納)する機能を有するデータ処理内容格納部112と、を備える。
また、データ管理装置120は、情報処理システム1内のデータベースを管理する機能を有するデータデータベース管理部121と、所定の種類のデータを格納する第1のデータベース122と、他の所定の種類のデータを格納する第2のデータベース123と、を備える。
図2は、本実施形態の情報処理システム1におけるハードウェア構成を示すブロック図である。以下、主として図2を参照して、本システムにおけるハードウェア構成の一具体例を説明する。
図1で上述したメタデータ管理装置100、データ分析装置110、及びデータ管理装置120は、サーバ装置、パーソナルコンピュータ、ワークステーションなどの一般的な情報処理装置により実現することができる。なお、以下は説明の便宜のため、メタデータ管理装置100、データ分析装置110、及びデータ管理装置120を、単に「装置100、110、120」などと略称する場合がある。
すなわち、図2に示すように、これら装置100、110、120のハードウェア構成は、装置100、110、120の順に、CPU201、211、221、NIC(Network Interface Card)205、215、225、主メモリ202、212、222、ストレージ203、213、223、キーボード206、216、226、マウス207、217、227、ディスプレイ208、218、228、及びこれらを接続するバス204、214、224を備えた構成とすることができる。そして、各装置100、110、120は、ネットワーク230を経由して相互に接続されている。以下は、上記各装置100、110、120におけるハードウェアの構成要素を、メタデータ管理装置100(すなわちCPU201、NIC205、主メモリ202、等)を代表例として説明する。他の装置110、120のハードウェアの構成要素は、基本的にはメタデータ管理装置100のハードウェアの構成要素と同様であるため、説明を割愛する。
CPU201は、装置100が備える各部を制御する。具体的には、CPU201は、メモリ202に必要なプログラムを読み込み、かかるプログラムを実行することで、各部(例えば、図1のメタデータ管理部101などの各ブロック)の機能を実現する。
NIC205は、ネットワーク230と接続するためのインターフェース装置である。
主メモリ202は、通常のRAM(Random Access Memory)などの揮発性メモリで構成され、CPU201が実行するプログラムや参照するデータが記憶される。
ストレージ203は、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの情報を記憶するデバイスである。
キーボード206、マウス207は、ユーザがデータやコマンドを入力するためのインターフェースデバイスである。
ディスプレイ208は、例えば、液晶ディスプレイモニタなどから構成され、必要な画面や各処理の結果を表示する「表示部」として機能する。
本実施形態において、特に言及のない場合、ユーザから各装置100、110、120への入力、及び各装置100、110、120からのユーザへの情報の表示は、これらキーボード206、マウス207、及びディスプレイ208によって集約的に行うものとする。
データ分析装置110、及びデータ管理装置120も、メタデータ管理装置100と同様のハードウェア構成(適宜、図2を参照)により実現することができる。以下は、主として、図示しない外部装置から入力されたデータがデータ管理装置120のストレージ223(第1のデータベース122)に格納されるとともに、ユーザがデータ分析装置110の操作入力部(キーボード216およびマウス217)を操作して、当該格納されたデータを編集(加工)する事例を仮定して説明する。
図3は、情報処理システム1内で行われる種々の動作(ユーザ操作、データ処理、データ再現処理等)の概要を示すシーケンス図である。
本実施形態の情報処理システム1の意図するところは、データ処理フローの実行や手動でのデータ処理の実行の際に、関係するメタデータを生成および登録する処理を行い、データ処理フローの実行や手動でのデータ処理が繰り返し実行されることによってデータの書き換えが多数回行われた場合であっても、過去に生成したデータを再現する、すなわち再度、生成可能とすることにある。
また、本実施形態の情報処理システム1における適用用途ないし運用事例の一具体例として、次のような事例が挙げられる。
情報処理システム1は工場に設置され、かかる工場の各所に設置されたセンサ(例えば工場内の機械の状態を検知するセンサ)のセンシングデータが装置120の第1のデータベース122に格納される。言い換えると、第1のデータベース122には、主としていわゆる「生データ」が記憶、蓄積される。また第1のデータベース122に格納されたデータ(生データ)に対しデータ処理を実施するための操作入力がユーザによって行われることで、装置120の第2のデータベース123に当該データ処理の結果が格納される(適宜、図1を参照)。ここで、ユーザの入力操作によって行われるデータ処理の一具体例としては、機械学習モデルを生成するための入力データを作成するための種々の編集(例えば、明らかにノイズと考えられるデータを削除するなど)が挙げられる。
第2のデータベース123は、上記のようなデータ処理(編集等)の繰り返しや、データ記憶容量の制限に基づくデータのライフサイクル管理により、格納されたデータが適宜、更新、及び削除される。かかる更新や削除は、データ管理装置120のデータベース管理部121によって、管理および実行される。
本実施形態の情報処理システム1は、このような環境下において、更新、及び削除された第2のデータベース123内のデータを、データ量の増大を抑制しつつ、再現すなわち再び生成することを実現したものである。上述のように、第2のデータベース123内のデータは、ユーザによってデータ処理が施されたデータであり、多大なコストが費やされ、かつ、付加価値ないし経済的な価値が高いデータが多い。このため、このようなデータを正確に再現することは非常に重要である。
図3は、本実施形態の情報処理システム1を構成する装置100、110、120間におけるデータ(情報)の流れやユーザ(符号300で示す)が行う操作等を説明するためのシーケンス図である。図3中、A301など、Aで始まるステップ番号は、ユーザ300の入力操作(データの編集など)および当該入力操作に応じてメタデータ管理装置100によって行われる処理を示す。同様に、図3中、S322など、データ管理装置120に関してSで始まるステップ番号は、ユーザ300の入力操作(データの編集など)および当該入力操作に応じてデータ管理装置120が行う処理を示す。
一方、図3中、S321など、メタデータ管理装置100に関してSで始まるステップ番号は、ユーザ300の入力操作(データの編集など)に関わらず、メタデータ管理装置100が例えば所定時間毎に自動で行う処理を示す。以下、主に、図3に示す流れに沿って説明する。
情報処理システム1の初期状態では、図1で説明した各機能部(ソフトウェアブロック)の動作に必要なプログラムを除き、第1のデータベース122にのみ、データ(上述した生データに対応する初期情報)として、図4に示す第1のデータテーブル(410)が格納されているものと仮定する。
なお、図4および他の図では、説明の便宜上および区別のため、かかる第1のデータテーブルの内容が更新される毎に、参照符号を410⇒420⇒430⇒440のように変えている。また、図4および他の図では、説明の複雑化を避けるため、出来るだけ単純なデータ構造かつ少ない情報量での図示を行っている。一方で、実際のシステムの運用では、より複雑なデータ構造かつ膨大な情報量でのデータの更新等が行われ得ることは、当業者であれば理解できるであろう。
さて、図1で上述した第1のデータベース122は、第1のデータテーブル410(初期情報)として、図4中の左上側に示すようなテーブル形式のデータを格納している。この例では、テーブルの二行目以降の各欄(以下、「データ欄」と呼ぶ場合がある)に記録されるデータの表題を示す先頭行の列として、データの生成時刻である「ts」列411、データのIDである「id」列412、データの値である「val」列413を有する。
このうち、「id」列412の下の各欄に記録されるIDは、情報処理システム1に接続された外部装置を識別する情報(識別子)である。IDの一具体例としては、例えば、上述した工場の事例において、工場内の特定の機械の稼働状態のセンシングデータを生成したセンサ(以下は便宜上、「第1センサ」という)を一意に特定するセンサ識別子が挙げられる。
次に、先頭行以外の行、例えば、2行目の「2020-08-04」から始まる行414は、データが格納される欄(すなわちデータ欄)であり、データの生成に伴って同様の行(データ欄)が追加される。図4に示す第1のデータテーブル410では、生成時刻「ts」列411とID「id」列412の組み合わせが、ある行を一意に特定するキーとなる。上述した工場の事例に当てはめると、図4中の左上に示す第1のデータテーブル(410)は、2020年8月4日に第1センサからセンシングデータ「123」が出力され、2020年8月5日に第1センサからセンシングデータ「145」が出力され、2020年8月6日に第1センサからセンシングデータ「167」が出力され、2020年8月7日に第1センサからはセンシングデータが出力されていない(データ値が「NULL」である)ことを記録している。
また、図3のシーケンス図とは独立に、メタデータ管理装置100のメタデータ管理部101は、データ管理装置120に格納されている各データベース(122,123)のメタデータを収集、及び更新する。このメタデータ管理部101によるメタデータ更新処理を、メタデータ更新処理のフロー(ステップ501~505)を示す図5および上述した図1、図2を参照して説明する。
ステップ501において、メタデータ管理装置100のメタデータ管理部101は、データ管理装置120に対しネットワーク230(適宜、図2を参照)を介してテーブル一覧を取得するためのSQLを発行することで問い合わせを行い、第1のデータベース122、及び第2のデータベース123に格納されているすべてのテーブルを収集(取得)し、テーブル一覧として集約する。
ステップ502において、メタデータ管理部101は、テーブル一覧に残りのテーブル(ここでは未更新のテーブル)があるか否かを判定し、YESすなわち「ある」と判定した場合はステップ503に進み、NOすなわち「ない」と判定した場合はステップ505に進む。かかる判定の具体的な手法については後述する。
ステップ503において、メタデータ管理部101は、テーブル一覧から未更新のテーブルのうちの一つを取得し、該取得されたテーブルをテーブル一覧から削除して、ステップ504(メタデータの更新処理)に進む。
図6は、主としてステップ502およびステップ504の処理内容を説明する図であり、メタデータ管理部101によって生成されるメタデータのデータテーブル(メタデータテーブル)および当該テーブルの更新前および更新後の状態の一具体例を示す。なお、図6および以下は、説明の便宜上および区別のため、かかるメタデータテーブルの内容が更新される毎に、参照符号を610⇒620のように変えて示す。
図6のメタデータテーブル610には、各メタデータのキーとなる「id」列611と、テーブル名である「data_source」列612と、データベース名である「database」列613と、接続先データベースのIPアドレスである「ip」列614と、接続先データベースのポート番号である「port」列615と、さらに、各行に対応し、各行が示すデータテーブルの列名「column」列631、及び列型「type」列632とが、データテーブル630として紐付けられるように管理される。併せて図4も参照すると、上述した(センシングデータに関する)第1のデータテーブル410は、図6の中央に示すデータテーブル630によって、「ts」、「id」、および「val」の3つの列を有すること(「column」列631を参照)、これら3つの列の型は、各々、「timestamp」、「int」、および「int」であること(「type」列632を参照)が、メタデータとして管理される。
言い換えると、図6に示すデータテーブル630を含むメタデータテーブル610は、本発明の「メタデータ」に対応する。
上記の前提のもと、一具体例では、ステップ502でメタデータ管理部101は、取得されたテーブル一覧の内容に基づいて、第1のデータベース122に格納されている元のデータ(生データ)のテーブルと、第2のデータベース123に格納されている対応するデータ(編集されたデータ。但し、未だ編集データが存在しない場合もある)のテーブルと、を比較する。そして、ステップ502でメタデータ管理部101は、かかる対応するデータのメタデータテーブルに未更新のものがあるか否かを判定し、未更新のものがある場合(ステップ502、YES)、上述したステップ503の処理を経てステップ504に移行する。
そして、ステップ504において、メタデータ管理部101は、前ステップで取得された一つのテーブル(この例では図4に示す第1のデータテーブル410)のデータ(データベース名、テーブル名、IPアドレス、ポート番号、及び各列の列名、及び列型)をそれぞれ取得する。さらに、ステップ504において、メタデータ管理部101は、メタデータテーブル(ここではメタデータテーブル610)を、データベース名、テーブル名、IPアドレス、及びポート番号の組み合わせにて走査し、一致する行が存在した場合、当該行の他の項目を更新し、一致する行が存在しない場合、重複しないIDを新たに付与し、新たな行を追加することによって、メタデータテーブル(610)を、図6中の下側に示すようなメタデータテーブル(620)に更新する。
図6中に示すメタデータテーブル(620)は、上述したデータテーブル630に加え、新たなデータテーブル640(「val」の列が「val_s」となっている)が紐付けられた例を示している。
一方、ステップ505において、メタデータ管理部101は、一定時間(例えば、1時間)待機した後、ステップ501に戻り、ステップ501以下の上述した一連の処理を繰り返す。
以上が、ユーザ300による入力操作(データ編集等)とは無関係に、メタデータ管理装置100のメタデータ管理部101によって自動的に行うメタデータ更新処理の概要である。
次に、ユーザ300による入力操作(データ編集等)に伴って本システムが行う処理内容について説明する。
ユーザ300は、データ分析装置110のキーボード206およびマウス207(図1を参照)を操作して、データ処理フローに係る一連の操作を実施する(図3中のA301)。ここで、データ処理フローに係る操作とは、データ処理フローに対する設計、検索、実行、登録などの機能に関する操作である。本実施形態では、これら設計、検索、実行、登録などの機能を、データ分析装置110のデータ処理内容管理部111によって実現する。なお、機能および操作はこれらに限られるものではなく、例えばデータの削除など、必要に応じて実装されていてもよい。
図7は、本実施形態のデータ分析装置110のディスプレイ218に表示される表示画面としてのデータ処理フロー管理画面700を示している。図示の例では、データ処理フロー管理画面700内に、設計画面710、詳細画面720、および検索画面731の3つのサブ画面を表示させた場合を示す。また、データ処理フロー管理画面700中のこれらサブ画面(710、720、731)の下には、実行ボタン740および登録ボタン750が表示されている。
以下、図7を参照して、これらサブ画面およびデータ処理フローに係る一連の操作(図3のA301)の内容を詳述する。
まず、ユーザ300は、図7中に示す設計画面710を通じて、新規にデータ処理フローを設計することができる。この例では、設計画面710内に、データ処理フローの典型的な構成である、データを取得(抽出)するExtract処理711と、データを変換するTransform処理712と、データをRAM等の作業領域に格納するLoad処理713と、の3つの処理を行うデータ処理フロー201が表示されている。説明の便宜のため、設計画面710内の処理711,712,713の表示子を「アイコン」とも称する。
設計画面710の下の詳細画面720は、上記3つの処理(711~713)のうちのいずれかのアイコンをマウス207のクリック等で選択することで表示される画面であり、図示の例は、Extract処理のアイコン711が選択された場合の詳細画面720を示している。
ユーザ300は、この詳細画面720を通じて、接続先のデータベースである第1のデータベース122のデータベース名(図中の「第1のデータベース」)721やIPアドレス722、Extract処理の内容725、726など、データの取得処理(すなわちExtract処理711)に必要な一連の情報を入力する。
図7中、「select」項で指定されている内容725が対象テーブル(「第1のデータテーブル」)の列名であり、「where」項で指定されている内容726がデータ選択の条件式(「*」はすべてのデータを意味する特別な記号)である。すなわち、詳細画面720を通じてExtract処理(711)を記述(定義)することにより、第1のデータテーブル(この例では図4中の第1のデータテーブル410)に含まれるすべてのデータが抽出(取得)される。
また、図7に示すデータ処理フロー管理画面700内における検索画面730の一具体例では、検索窓731、検索ボタン732、およびリスト733が表示される。以下、これらを順に説明する。
ユーザ300は、検索画面730中に表示された検索窓731に検索キーワード734を入力し、検索ボタン732をマウス217でのクリック等により選択することで、検索キーワード734がデータ処理フロー名に含まれるデータ処理フローの一覧をリスト733として閲覧することができる。具体的には、データ分析装置110のデータ処理内容管理部111(図1を参照)は、検索画面730内の検索ボタン732が選択された場合に、以下の処理を実行する。データ処理内容管理部111は、データ処理内容格納部112に格納されたデータ処理内容テーブル800(適宜、図8を参照)から、検索キーワード734に指定された文字列(図7に示す例では「データ処理」)を含むデータ処理フローの一覧を抽出し、検索画面730にリスト733として表示する。
また、ユーザ300は、図7中の実行ボタン740をクリック(選択)することで、設計したデータ処理フロー201を情報処理システム1内で実行することができる。ここで、ユーザ300の選択操作を検出したデータ分析装置110のデータ処理内容管理部111は、情報処理システム1によりデータ処理フロー201が実行された後に、データ管理装置120に対しデータの書き換えの指令を送信し(図3中のA302)、さらに、メタデータ管理装置100に対してデータ処理フロー201に関わる情報の送信を行う(図3中のA303)。これらの処理の詳細については後述する。
さらに、ユーザ300は、登録ボタン750をマウス217のクリック等で選択することで、設計画面710で設計したデータ処理フロー201を、後で検索可能な状態、かつ再利用可能な状態に保存することができる。具体的には、データ処理内容管理部111は、登録ボタン750のクリックを契機に、データ処理内容格納部112にユーザが設計したデータ処理フロー201を格納することによって、上記の機能(保存状態)を実現する。
図8は、データ分析装置110のデータ処理内容格納部112に格納されているデータ処理内容の管理テーブル(データ処理内容テーブル)800を示す。このデータ処理内容テーブル800には、データ処理フローの一覧801と、各行に対応するデータ処理内容のプログラム802、803と、が紐付けて管理されている。このうち、id=201で識別されるデータ処理内容、及びプログラム802は、上述した図7中のデータ処理フロー201に対応する。また、id=202で識別されるデータ処理内容については、後述の処理により追加される。「type」列805の値は、データ処理フロー管理画面700の操作により登録されるデータ処理フローについては、「flow」と記述される。
次に、図7で上述したデータ処理フロー管理画面700を通じて設計され、かつ、データ処理フロー201が実行された場合にデータ管理装置120が行う、データの書き換え処理(図3、A302、S322)について説明する。
図9は、本システムのデータ分析装置110において、第1のデータテーブル410から第2のデータテーブル902、903が生成され、さらに、第2のデータテーブル903のデータが機械学習のアプリケーション904において利用される様子を示している。以下、主に図9を参照して、データ処理フロー201の実行により、データ管理装置120における第1のデータベース122の第1のデータテーブル410から、第2のデータベース123の第2のデータテーブル902、903が生成される処理を説明する。
データ処理フロー201のExtract処理711の実行時に、データ分析装置110のデータ処理内容管理部111は、データ管理装置120に問い合わせを行い、第1のデータベース122から第1のデータテーブル410の全データを取得する(S911)。
この問い合わせは、データ管理装置120におけるデータベース(122,123)を管理するデータベースシステムに対応する問い合わせ言語を用いて行うことができる。例えば、問い合わせ言語としてSQL(Structured Query Language)が使用される場合、例えば「SELECT ts, id, val FROM “第1のデータテーブル”」等の式(条件式)により、問い合わせを行うことができる。
データ処理フロー201のTransform処理712が実行された場合、データ分析装置110のデータ処理内容管理部111は、データの前処理として、第1のデータテーブル410の「val」列413の値を、典型な標準化と呼ばれる処理(S921(平均値uの算出)、S922(標準偏差sの算出)、S923(各valの値xについての(x-u)/sの算出))により、平均値0、標準偏差1となるデータセットに変換して、第2のデータテーブル903を生成する。なお、値がNULLのデータは無視される(同データテーブル902を参照)。
データ処理フロー201のLoad処理713において、データ処理内容管理部111は、Transform処理712で生成したデータを、第2のデータベース123に第2のデータテーブル902として保存して処理を終える(S322)。
この保存処理は、Extract処理711と同様に、データ分析装置110がデータ管理装置120にSQL等の問い合わせ言語を用いて問い合わせを行うことで実現することができる。また、かかるS322の保存処理の後に、メタデータ管理装置100のメタデータ管理部101は、例えば予め定められた時刻の到来により、図5で上述したメタデータ更新処理フローを実行し、図6に示すように、メタデータテーブル610をメタデータテーブル620に更新することになる。
次に、図3のA303に示す処理、すなわちデータ分析装置110によって実行されるデータ処理フローに係る情報の送信について説明する。データ分析装置110は、メタデータ管理装置100に対し、データ処理フローに係る情報として、ユーザ300が設計画面710、及び詳細画面720で設計したデータ処理フロー201に係る情報をデータ処理内容テーブル800から取得し、id=201で識別される行、及び紐付いて管理されているプログラム(flow_201)802を送信する。
次に、図3のS321に示す処理、すなわちメタデータ管理装置100によって実行される、A303で受信されたデータ処理フローに係る情報を用いて、メタデータを生成、及び登録する処理について、図10を参照して説明する。図10は、メタデータ管理装置100によるメタデータ生成、及び登録の処理の一具体例を示すフローチャートである。
ステップ1001において、メタデータ管理装置100のメタデータ管理部101は、受信された情報、ここではデータ処理内容テーブル800の「type」列805の値が文字列「flow」と一致するか否かを判定する。
ここで、メタデータ管理部101は、一致すると判定した場合(ステップ1001、YES)、受信されたデータ処理内容が定義済みの処理であると判断し、ステップ1002に処理を進める。一方、メタデータ管理部101は、一致しないと判定した場合(ステップ1001、NO)、受信されたデータ処理内容が定義されいていない処理であると判断し、ステップ1003に処理を進める。
なお、本実施形態において、「データ処理内容」とは、データ処理フロー管理画面700を用いて設計されたデータ処理フロー(いわゆる自動処理)と、後に説明する手動データ処理管理画面1300でユーザが命令文を入力しデータテーブルを直接更新する手動データ処理と、の2種類が存在する。また、図8に示すデータ処理内容テーブル800では、「type」列805の値によって、自動処理か手動処理かが区別され、自動処理すなわちデータ処理フローが「flow」で示され、手動処理すなわち手動データ処理が「manual」で示される。
ステップ1002において、メタデータ管理部101は、受信したデータ処理フローとメタデータの突き合わせにより、データ処理フローの入力となっているデータを特定する。具体的には、メタデータ管理部101は、データ処理フローのプログラム802に含まれる、詳細画面720でユーザ300が設計した情報のうち、IPアドレス(「ip」項722)、Port番号(「port」項723)、データベース名(「database」項721)、及びテーブル名(「table」項724)の情報と一致するメタデータを、メタデータテーブル620を走査し、検索することによって特定する。この例では、ステップ1002の処理によって、入力データとしてメタデータテーブル620のid=101で識別されるデータが特定される。
ステップ1004において、メタデータ管理部101は、ステップ1002と同様に、Load処理で定義された、Extract処理と同様の情報(IPアドレス、Port番号、データベース名、テーブル名)を用いて、一致するデータを、メタデータテーブル620を走査することで検索し、出力データ(メタデータテーブル620のid=102で識別されるデータ)の特定を行う。この後、メタデータ管理部101は、以下に説明するステップ1005(リネージ生成)の処理、およびステップ1006の条件式の生成、登録の処理を行う。
次に、図11を参照してステップ1005の処理を説明する。図11は、本実施形態のメタデータ管理装置100が管理するリネージテーブルおよびリネージテーブルが更新されてゆく例を示す図である。図11中、説明の便宜および区別のため、かかるテーブルが更新される毎にリネージテーブルの符号を、1110⇒1120⇒1130・・・と変えて示している。なお、本実施形態において、リネージとは、入力データ、データ処理、及び出力データを含むメタデータの一種を指す。
入力データの特定(ステップ1002)、及び出力データの特定(ステップ1004)を行った後のステップ1005において、メタデータ管理部101は、メタデータテーブル620から取得された情報に基づいて、入力データ(「data_source」列1112)、データ処理内容(「process」列1113)、および出力データ(「data_target」列1114)を一つのリネージとして、リネージテーブル1110に格納する(図11を参照)。したがって、ステップ1005の終了時点で、リネージテーブル1110のうち、「id」列1111、「data_source」列1112、「process」列1113、「data_target」列1114のみが記載された状態となる。
なお、「id」列1111は必要に応じてリネージを一意に特定するために付与される値である。また、「data_source」列1112、及び「data_target」列1114には、図6の下側に示すメタデータテーブル620の「id」列611のデータ(この例では101、及び102)が格納される。さらに、「process」列1113には、図8に示すデータ処理内容テーブル800の「id」列804のうち該当するもの(この例では201)が格納される。
次に、図10のステップ1006の処理(条件式の生成および登録)を、図12を参照して説明する。図12は、本実施形態のメタデータ管理装置100が条件式を生成、及び登録する処理の一例を示すフローチャートである。
ステップ1201において、メタデータ管理装置100のタイムスタンプ管理部102は、データ処理フロー201の実行時刻に対応するタイムスタンプ(例えば、2020年8月8日の0時0分0秒の場合、「2020-08-08 00:00:00」)を生成し、リネージテーブル1110の該当するリネージ(この例ではid=301のリネージ)の「ts」列1115に、当該生成されたタイムスタンプを格納(挿入)する。なお、本実施例においては、この処理により、図11(上から2つ目)に示すように、リネージテーブルの内容が、リネージテーブル1110からリネージテーブル1120に更新される。
ステップ1202において、メタデータ管理装置100の条件式管理部103は、対象となっているリネージ(id=301)の「data_source」列1112から入力データのID(id=101)を取得する。続いて、条件式管理部103は、図6の下側に示すメタデータテーブル620の「id」列611を走査することによって、当該取得されたID(id=101)と一致する行を特定する。さらに、条件式管理部103は、該特定された行に紐付いて管理されているデータテーブル630(すなわちメタデータ)中から、型名(「type」列632)がtimestamp型である列(column)を特定する(この例では、列「ts」)。
ステップ1203において、条件式管理部103は、メタデータテーブル620の特定したデータテーブル、及び「ts」列の情報を用いて、データ管理装置120に問い合わせを行い、対象となっているメタデータのデータテーブル(図4の左上側に示す第1のデータテーブル410)から、前記timestamp型を有した列「ts」411の最大値(この例では最も新しい「2020-08-07」)と最小値(同、最も古い「2020-08-04」)を、それぞれ取得する。
ステップ1204において、条件式管理部103は、取得された最大値(「2020-08-07」)と最小値(「2020-08-04」)を用いて、最小値以上、最大値以下となるts(タイムスタンプ)を指定する条件式(この例では「2020-08-04 <= ts AND ts <= 2020-08-07」)を生成し、該生成された条件式を、リネージテーブル1120の対象となっている行(id=301のリネージ)の「condition」列1116に挿入(設定)する(図11中の上から3番目のテーブルを参照)。この条件式は、各々のタイムスタンプに対応した、入力データを一意に特定するための条件式である。ステップ1204の処理が実行されることにより、リネージテーブル1120のid=301のリネージに条件式が追記され、図11に示すように、リネージテーブル1120がリネージテーブル1130へと更新するように登録される。
かくして、本システムによれば、上記のような条件式が設定された後は、例えば第1のデータベース122に値が追加される事例が発生した場合であっても、当該設定された条件式に基づいて取得データを選択することにより、タイムスタンプ生成時と同じ入力データを再現することが可能となる。
また、条件式は、この例では一般的なSQLにおけるWHERE句に相当する記述を用いているが、対象となるデータベースシステムの問い合わせ言語に応じて変更されることができる。
なお、本実施の形態では、第1のデータテーブル410のように、あらかじめtimestamp型を有する列(「ts」列411)が存在するが、このような列が無い場合も考えられる。このような「ts」列411が存在しない第1のデータテーブルの例を、図4中の右上側に示す。図4中の右上側に示す第1のデータテーブル420は、同図左上側に示す第1のデータテーブル410と比較して分かるように、「ts」列411(timestamp型の列)を有さないこと以外は、第1のデータテーブル410と同様である。
この場合、メタデータ管理部101は、図5のメタデータ更新処理フローのステップ504で、テーブルの列にtimestamp型が無いことを検知し、timestamp型の列を有さない第1のデータテーブル420に対し、管理用のtimestamp型を有した列(「_ts」列)を、データの更新が生じた際に、自動でタイムスタンプを挿入する制約条件(命令)とともに追加する処理を行う。この制約条件(命令)の一例としては、SQLにおける「ALTER TABLE “第1のデータテーブル” ADD _ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP;」が挙げられる。
上記の制約条件は、第1のデータテーブル420に対し、タイムスタンプに関する列「_ts」を追加(ADD)し、既定の値として現在のタイムスタンプ(CURRENT_TIMESTAMP)を、データの挿入時に挿入せよ、という命令である。この命令により、第1のデータテーブル420は、第1のデータテーブル430のように変更され、すなわち図4の右下側に示すように、データの追加に応じてタイムスタンプが自動で挿入され、図12で説明した一連の処理が適用可能となる。
ところで、データ管理装置120によるデータの書き換え処理(図3、S322)と、メタデータ管理装置100によるメタデータ生成、及び登録処理(図3、S321)とが実行される間に第1のデータテーブルデータ410にデータが挿入される場合、実際に入力データとなった範囲と条件式で選択される範囲とに不一致(不整合)が生じる可能性がある。かかる不一致(不整合)を防止するためには、以下のような構成としてもよい。
すなわち、図3中のA301の操作の後、A302の処理を行う前に、データ処理フローに係る情報の送信(A303)と、メタデータ生成、及び登録(S321)の処理をそれぞれ追加的に実施する。加えて、データの書き換え処理(S322)の実行前及び実行後に、それぞれ条件式を生成し、これら2つの条件式が一致するか否かを判定する。
ここで、2つの条件式が一致すると判定された場合には、条件式同士の不整合がないと判断し、当該条件式を登録する。一方、2つの条件式が一致しないと判定された場合には不整合が発生したと判断し、データ分析装置110のディスプレイ218に図示しない修正画面を表示して、当該整合しない条件式をユーザ300に修正させるように促す表示を行う。
次に、手動データ処理に係る操作(図3、A304)、手動データ処理によるデータの書き換え(図3、A305)、及びデータ書き換え(図3、S323)の処理について説明する。
本システムにおいて、ユーザ300は、データ処理フローによるデータ処理(この例ではA301)の他にも、手動操作によってデータを修正することができる。図13は、本システムを構成する任意の装置の表示部(この例ではデータ分析装置110のディスプレイ218)に表示されるコマンドプロンプト画面としての、手動データ処理管理画面1300を示す。
ユーザ300は、手動データ処理管理画面1300が表示されている端末1301(ここではデータ分析装置110)にデータベースへの接続情報1302を入力し、問い合わせ言語(符号1303を参照)を用いてデータを操作することができる。あるいは、ユーザ300は、手動データ処理管理画面1300中の「読込」ボタン1304をマウス等で選択することにより、問い合わせ言語が記述されたファイルを読み込み、「実行」ボタン1305をマウス等で選択して実行することにより、上述した第2のデータベース123のデータテーブルを操作することができる。
図13に示す一具体例では、ユーザ300は、「CONNECT “第2のデータベース”」命令1302を実行することによって、第2のデータベース902に接続する。続いて、ユーザ300は、「DELETE FROM “第2のデータテーブル” WHERE ts = 2020-08-07 AND id = 1」命令1303を実行することによって、第2のデータテーブル902に存在する、「ts」列(タイムスタンプ)の値が「2020-08-07」かつ「id」列の値が「1」のデータを削除する(図9、S931も参照)。この操作により、データベース管理部121は、図9の右下側に示すように、第2のデータテーブル902を、(2020年8月7日のデータが削除された)第2のデータテーブル903に更新する。また、データ処理内容管理部111は、これらの一連の処理を、図8のデータ処理内容テーブル800に「type」列805が「manual」の手動更新として記載し、(ユーザ300によって入力された)一連の命令文をプログラム803として紐付けてデータ処理内容格納部112に格納する。
次に、手動データ処理に係る情報の送信(図3、A306)、及びメタデータ生成、及び登録処理(図3、S324)について説明する。
データ分析装置110のデータ処理内容管理部111は、手動データ処理管理画面1300が表示されている端末1301(ここでは自機すなわちデータ分析装置110)に対するユーザ300の入力を受け付け、受け付けた内容、すなわち、図8のデータ処理内容テーブル800に記載されている、「id」列804、「type」列805、「process」列806のそれぞれの内容、及びプログラム803を、手動データ処理に係る情報として、メタデータ管理装置100に送信する。
かかる手動データ処理に係る情報を受信したメタデータ管理装置100は、データ処理フローに係る情報を受信したとき(A303、S321)と同様に、メタデータ管理部101によって、図10で上述したフロー(メタデータの生成および登録)を再度実行する。
この場合、ステップ1001において、メタデータ管理装置100のメタデータ管理部101は、受信されたデータ処理内容の「type」が「manual」であることから、本データ処理が定義済みでない処理(手動によるデータ処理)であると判断し(ステップ1001、NO)、ステップ1003に処理を進める。
ステップ1003において、メタデータ管理部101は、受信したデータ処理内容に含まれるプログラム803の「CONNECT “第2のデータベース”」、及び「DELETE FROM “第2のデータテーブル” WHERE ts = 2020-08-07 AND id = 1」のうち、CONNECT文の以降に記述された文字列(第2のデータベース)から接続先データベース名、及びFROM文の以降に記述された文字列(第2のデータテーブル)からデータを取得するデータテーブル名をそれぞれ抽出する。そして、メタデータ管理部101は、メタデータテーブル620(図6を参照)を走査することによって、抽出された組み合わせと一致する行を特定し、特定されたID(この例では「102」)を取得する。
続くステップ1007において、メタデータ管理部101は、リネージのID(この例では「302」)を生成し、手動更新処理のID(「202」)、入出力データのID(「102」)、及びタイムスタンプ「2020-08-08 01:00:00」をリネージテーブル1130にリネージとして格納することにより、リネージテーブル1130を更新してリネージテーブル1140を生成する(図11中の上から3番目および4番目のテーブルを参照)。なお、リネージテーブル1140中の更新(追加)された欄における「condition」列には、値が存在しないことを示す「NULL」が記載される。
上記のようにステップ1007の処理が実行されることによって、リネージテーブル1130がリネージテーブル1140へと更新(変更)される。
図9中の右下側に示す第2のデータテーブル903が生成された後、ユーザ300は、同図のステップS941に示すデータの利用時(例えば、データの可視化や分析レポートの作成時)において、第2のデータテーブル903を入力データとして利用することができる。
次に、データ処理に係る操作がユーザ300により繰り返し行われることにより、データの上書きが発生する事例(図3中のS325)について、上述した工場内の第1センサからセンシングデータを取得する場合を前提として説明する。
時間が経過し、例えば、第1センサからの新たなセンシングデータが情報処理システム1に入力されたような場合、第1のデータテーブル410に新たなデータが追記され、図4中の左下に示すような第1のデータテーブル440として更新される。図4に示す例では、第1のデータテーブル440は、同図左上側に示す第1のデータテーブル410と比較して、2020年8月9日に第1センサ(id=1)から「189」の値を示すデータ欄(行414)が追加されている。
ユーザ300は、前述のデータ処理フローに係る操作(図3中のA301)と、手動データ処理に係る操作(図3中のA304)を再度繰り返し、新たなデータが反映された第2のデータテーブル(適宜、図9を参照)を再度作成する。
この時点で、以前作成した第2のデータテーブル903は上書きされ、その情報は失われる。本実施形態においては、以降の処理において第2のデータテーブル903を再現することが主たる目的となる。なお、ユーザ300の操作に基づくデータの上書き(図3のS325)の処理により、図11の下側に示すように、リネージテーブル1140が新たなリネージテーブル1150として更新される。このリネージテーブル1150は、リネージテーブル1140に対して、2020年8月10日分についての2つの処理(process;201,202)に関するデータ欄が追加されている。
以下、データ再現に係る操作(図3のA307)の内容について説明する。図14に、本システムを構成するいずれかの装置の表示部(例えばメタデータ管理装置100のディスプレイ208)に表示されるデータ再現処理管理画面1400を示す。
ユーザ300は、本システムの構成装置(ここではメタデータ管理装置100)に対し、データ再現処理管理画面1400での入力操作を通じて、データ再現対象の設定および実行指示を行う。具体的には、ユーザ300は、図14に示すように、データ再現処理管理画面1400中のデータテーブルリスト1410に、再現したいデータ1411(この例では第2のデータテーブル)を入力(指定)するとともに、「時刻」欄1412に、指定時刻(すなわち再現を所望する時刻)を入力(指定)する。そして、ユーザ300は、「再現処理実行」ボタン1413を選択(マウスクリック等)することにより、データ(図9の右下側に示す第2のデータテーブル903)の再現処理を、データ再現処理要求として指示する(図3中のA307を参照)。
上記のように、この指定時刻1412によって再現されるデータテーブルは、第2のデータテーブル903である。一方、上述したように、(更新後の)第1のデータテーブル440は、新規にデータ(ts=2020-08-09の行)が追加された状態となっている(図4中の左下側のテーブルを参照)。このため、この第1のデータテーブル440に対し、データ処理フロー201、及び手動更新202を適用するのみでは、図9のS921、及びS922の処理で生成される値が異なるため、第2のデータテーブル903を再現することができない。
そこで、本システムにおけるメタデータ管理装置100は、第2のデータテーブル903を再現するデータ再現処理を実現するために、次のような動作(処理手順)を実行する。以下、メタデータ管理装置100が実行するデータ再現処理の内容を順に説明する。
(データ再現処理)
図15は、本システムのメタデータ管理装置100が実行するデータ再現処理の流れを示すフローチャートである。以下、図15および図3を参照して、メタデータ管理装置100によるデータ再現処理の内容を説明する。
ステップ1501において、メタデータ管理装置100のデータ再現処理管理部104は、図14で説明したデータ再現処理管理画面1400を表示し、かかる画面を通じてユーザ300からのデータ再現処理要求(図3のA307)を受け付ける。
データ再現処理要求を受信した後のステップ1502において、データ再現処理管理部104は、データ再現処理要求で指定されたデータテーブル(ここでは「第2のデータテーブル」)に対し、メタデータテーブル620(図6を参照)を走査し、「data_source」列612の一致を判定することでデータ再現処理の対象となっているデータを特定し、そのデータのメタデータID(この例ではid=「102」)を取得する。
ステップ1503において、データ再現処理管理部104は、取得したメタデータID(102)をもとに、リネージテーブル1150(図11を参照)を、指定時刻(この例では図14中に示す「2020-08-08 02:00:00」)およびそれ以前の時刻(図11中の「ts」列1115の数値を参照)のデータ(当該テーブルの各欄)を、新しい順に走査する。そして、データ再現処理管理部104は、「data_target」列1114の値が、取得されたID(102)と一致する行のリネージのデータ処理内容(「process」列1113)のIDを取得する。
この例では、指定時刻1412が「2020-08-08 02:00:00」すなわち2020年8月8日午前2時00分00秒であるため、それ以前のリネージであるid=302からid=301のリネージのデータが走査され、id=302のリネージのデータ処理内容「process」列1113のid=202がステップ1503の処理により取得される。
ステップ1504において、データ再現処理管理部104は、データ分析装置110に対し、上記データ処理内容のID(202)によるデータ処理内容の検索要求を発行する。
データ分析装置110は、メタデータ管理装置100からの検索要求の問い合わせに対し、図8のデータ処理内容テーブル800を受信したデータ処理内容のID(202)を用いて走査し、ID(「id」列804)が一致したデータ処理内容(「手動更新202」)のデータ処理内容、及びプログラムを取得し、メタデータ管理装置100に対し結果を返す(図3のA308)。
ステップ1505において、データ再現処理管理部104は、データ処理内容(図8に示すデータ処理内容テーブル800)、及びプログラム802、803を受信し、データ処理内容の種類(「type」列805)が「flow」であるかを判定する。そして、データ再現処理管理部104は、flowであると判定した場合(一致した場合)は処理をステップ1506に進め、flowでないと判定した場合(一致しない場合)は処理をステップ1503に処理を戻す。
なお、データ再現処理管理部104は、ステップ1503に処理を戻した場合は、すでに取得したリネージを除外してデータ(リネージテーブル)の走査を行う。本実施形態においては、リネージテーブル1150(図11参照)のid=302のデータ処理内容(process=202)の種類は「manual」すなわち手動入力操作であるため(図8参照)、さらにid=301のデータ処理内容(process=201)までさかのぼってデータ処理内容が取得される。
続いて、ステップ1506において、データ再現処理管理部104は、現在のリネージID(301)以降、かつ指定時刻1412(この例では2020年8月8日午前2時00分00秒)までに実施された処理を再適用する。この再適用処理を、図16に再適用処理フロー(ステップ1601~1605)として示す。また、図16の再適用処理フローの実施によるデータ処理の内容を、図17を参照して説明する。
図16のステップ1601において、データ再現処理管理部104は、現在対象となっているデータ処理内容(すなわち、図11に示すリネージid=301のデータ処理内容)の図11に示す「condition」列1116を参照し、条件式が記載されていた場合、条件式が存在すると判定してステップ1602に処理を進め、一方、条件式が記載されていない(NULL値である)場合、ステップ1603に処理を進める。
ステップ1602において、データ再現処理管理部104は、既存のデータ処理フローの条件式に係る式(すなわち、図7に示すデータ処理フロー管理画面700のwhere項726部分)に、既に何らかの条件式が記載されている場合は、条件式を追加し、未指定の場合(もしくは図7に示すように「*」である場合)は、リネージテーブル1150の「condition」列に記載された条件式(例えば、id=301のリネージであれば、「2020-08-04 <= ts AND ts <= 2020-08-07」の条件式)を取得し、当該条件式によって、以前の条件式に係る式を上書きする。
このステップ1602の処理により、更新されたデータ処理フローがデータ処理フロー1700であり(図17を参照)、図17中に下線で強調して示すように、where項のデータ欄1702がリネージテーブル1150(図11を参照)の条件式で更新されることになる。なお、本実施形態において「条件式に係る式」とは、SQL(Structured Query Language)におけるWHERE句にて指定可能な式に相当するものであり、図7に示すデータ処理フロー管理画面700でのwhere項726の指定に該当する。
かくして、ステップ1602の処理が実行されることにより、新規にデータが追加されている場合でも、過去に入力データとして使用したデータのみが選択ひいては再現されるように、データ処理フローが更新される(適宜、図3中のS326も参照)。
ステップ1603において、データ再現処理管理部104は、データ処理内容の再適用を行う。本実施形態においては、ステップ1603の最初の実行により、リネージテーブル1150のid=301のデータ処理内容が再適用され、時刻ts=2020-08-08 00:00:00時点のデータが再現される。
なお、かかる再適用の処理は、メタデータ管理装置100のデータ再現処理管理部104が、データ分析装置110に対し、更新済みのデータ処理フロー1700の再適用要求を発行することにより実現される(図3中のA308を参照)。データ分析装置110は、A301、及びA302の処理と同様に、データ管理装置120に対し、データ処理フロー1700で定義された処理を実施することによって、データ処理内容の再適用を実現する。
かくして、データ処理フロー1700により、第1のデータテーブル440から、範囲1711のデータのみが抽出され、第2のデータテーブル902と同じデータからなる第2のデータテーブル1712が再度生成される(図17を参照)。
ステップ1604において、データ再現処理管理部104は、より最新のデータ処理内容が存在するか否かを判定する。
この判定の手法の一具体例として、データ再現処理管理部104は、リネージテーブル1150を、現在のリネージの「id」列1111を、時刻「ts」列1115がより新しい行に向かって走査し、リネージの存在の有無を確認することによって行う。そして、データ再現処理管理部104は、リネージが存在すると判定した場合(ステップ1604、YES)には処理をステップ1605に進め、存在しないと判定した場合(ステップ1604、NO)には処理を終える。但し、ステップ1604の処理は、時刻指定1412未満のリネージのみが対象となる。本実施形態においては、リネージid=302の処理のみが該当する。
ステップ1605において、データ再現処理管理部104は、一つ最新のデータ処理内容を取得し(すなわち、リネージid=302のデータ処理内容)、ステップ1601に処理を戻す。
そして、リネージid=302のデータ処理内容に関しても図16のフローが適用されることにより、プログラム803が第2のデータテーブル1712に対し適用され、再現対象である第2のデータテーブル903と同様のデータ構造およびデータを持った第2のデータテーブル1713が再度生成される(図9及び図17を参照)。
このように、図15および図16に示すデータ再現処理フローの実行により、リネージテーブル1150のid=301、及びid=302のデータ処理内容が、必要に応じて条件式を反映された状態にて再適用され、指定された時刻(この例ではs=2020-08-08 01:00:00)のデータを再現することが可能となる。なお、この例では、時刻指定1412で指定された時刻までデータの更新はないため、時刻指定1412の時刻においても同じデータとなる。
なお、データ再現処理管理部104は、図15に示すステップ1506の処理の一部として、以下の処理を行うことができる。すなわち、データ再現処理管理部104は、図16のデータ再現処理フロー終了の後、必要に応じてデータ管理装置120に対してデータベース(この例では第2のデータベース123)のデータを書き換える命令(図3中のA309)を出すことができる。加えて、データ再現処理管理部104は、必要に応じて、上述した操作入力部を通じてユーザ300が入力した操作入力内容(操作ログ)を検索および実行し(図3中のS327)、かかる操作ログの実行に応じて、データ管理装置120に対して第2のデータベース123のデータを書き換える命令(図3中のA310)を出すことによって、該当する手動更新を適用することもできる。
かくして、データ再現処理管理部104は、適宜、上記のような追加的な処理を行った後に、ユーザに終了の応答を返し(図3中のA311)、図15のデータ再現処理フローを終了させる。
かくして、本実施の形態の情報処理システム1では、メタデータ管理装置100(メタデータ管理部101)が、データ処理毎に、当該処理時のタイムスタンプ(図11中のts1115)と入力データの特定に必要な条件式(同図中のcondition1116)とを紐づけて管理するので、例えば出力データが削除された場合であっても、蓄積された入力データから出力データを再現することができる。したがって、情報処理システム1によれば、データ量の肥大化を抑制しつつデータ再現処理を担保することができる。
1 情報処理システム(データ管理システム)
100 メタデータ管理装置
101 メタデータ管理部
102 タイムスタンプ管理部
103 条件式管理部
104 データ再現処理管理部
105 メタデータ格納部
110 データ分析装置
111 データ処理内容管理部
112 データ処理内容格納部
120 データ管理装置
121 データベース管理部
122 第1のデータベース
123 第2のデータベース
201,211,221 CPU
202,212,222 主メモリ
203,213,223 ストレージ
204,214,224 バス
205,215,225 NIC
206,216,226 キーボード
207,217,227 マウス
208,218,228 ディスプレイ(表示部)
610 メタデータテーブル
630 データテーブル(メタデータ)
700 データ処理フロー管理画面
710 設計画面
720 詳細画面
731 検索画面
740 実行ボタン
750 登録ボタン
800 データ処理内容テーブル
902、903 第2のテーブル
903 第2のテーブル(再現対象)
1110、1120、1130、1140、1150 リネージテーブル
1111 id列
1112 data_source列
1113 process列
1114 data_target列
1300 手動データ処理管理画面
1400 データ再現処理管理画面

Claims (8)

  1. 入力されたデータの分析を行うデータ分析装置および前記データが格納されるデータベースの管理を行うデータ管理装置が実行したデータ処理に係るメタデータを管理するメタデータ管理装置であって、
    前記データ分析装置における前記データ処理の実行に応じて当該実行時のタイムスタンプを生成するタイムスタンプ管理部と、
    前記データ処理の入力となったデータの特定に必要な条件式を生成する条件式管理部と、
    前記タイムスタンプと前記条件式と前記データ処理とをリネージとして管理するメタデータ管理部と、
    時刻指定を有するデータ再現処理要求に対し、前記リネージを用いて、前記データ処理を前記条件式に従って更新し、該更新されたデータにデータ再現処理を適用することにより、前記データ再現処理要求で指定された時刻におけるデータを再現するデータ再現処理管理部と、
    を備えるメタデータ管理装置。
  2. 請求項1に記載のメタデータ管理装置において、
    前記メタデータ管理部は、前記データ処理において該データ処理のフローが定義されていないデータ処理が行われた場合、該データ処理を手動更新と判断して前記リネージとして管理し、
    前記データ再現処理管理部は、前記データ再現処理によって前記データを再現した後、当該データに対し手動更新が前記リネージとして存在する場合には、該当する手動更新を適用する、
    メタデータ管理装置。
  3. 請求項1に記載のメタデータ管理装置において、
    前記メタデータ管理部は、管理対象となるデータに対し、タイムスタンプに相当するデータ構造の有無を判定し、前記タイムスタンプに相当する前記データ構造が無い場合、当該データの更新に応じてタイムスタンプを自動で付与する制約条件を付与する、
    メタデータ管理装置。
  4. 請求項1に記載のメタデータ管理装置において、
    前記データ処理の前後で、前記タイムスタンプ管理部によるタイムスタンプの生成、及び前記条件式管理部による前記条件式の生成をそれぞれ行い、
    前記メタデータ管理部は、
    前記リネージの生成時に、生成された2つの前記条件式の一致を判定することで、実際の入力データと生成される条件式との不整合を検知する、
    メタデータ管理装置。
  5. 請求項1に記載のメタデータ管理装置において、
    前記データ再現処理に関する情報を入力する画面を表示する表示部を備える、
    メタデータ管理装置。
  6. 請求項1に記載のデータ分析装置、データ管理装置、およびメタデータ管理装置が互いに接続され、これら装置の協働によってデータおよびメタデータの管理を行うデータ管理システムであって、
    RDBMS(Relational DataBase Management System)を用いて前記データおよび前記メタデータの管理を行う、
    データ管理システム。
  7. 請求項6に記載のメタデータ管理装置において、
    前記条件式管理部は、前記条件式として、SQL(Structured Query Language)におけるWHERE句にて指定可能な式を生成する、
    メタデータ管理装置。
  8. 入力されたデータの分析を行うデータ分析装置および前記データが格納されるデータベースの管理を行うデータ管理装置が実行したデータ処理に係るメタデータを管理するメタデータ管理装置におけるデータ再現方法であって、
    前記データ処理の実行に応じて当該実行時のタイムスタンプを生成し、
    前記データ処理の入力となったデータの特定に必要な条件式を生成し、
    前記タイムスタンプと前記条件式と前記データ処理とをリネージとして管理し、
    時刻指定を有するデータ再現処理要求に対し、前記リネージを用いて、前記データ処理を前記条件式に従って更新し、
    更新されたデータにデータ再現処理を適用することにより、前記データ再現処理要求で指定された時刻におけるデータを再現する、
    データ再現方法。
JP2021033040A 2021-03-02 2021-03-02 メタデータ管理装置、データ管理システムおよびデータ再現方法 Active JP7481283B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021033040A JP7481283B2 (ja) 2021-03-02 2021-03-02 メタデータ管理装置、データ管理システムおよびデータ再現方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021033040A JP7481283B2 (ja) 2021-03-02 2021-03-02 メタデータ管理装置、データ管理システムおよびデータ再現方法

Publications (2)

Publication Number Publication Date
JP2022134032A JP2022134032A (ja) 2022-09-14
JP7481283B2 true JP7481283B2 (ja) 2024-05-10

Family

ID=83230068

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021033040A Active JP7481283B2 (ja) 2021-03-02 2021-03-02 メタデータ管理装置、データ管理システムおよびデータ再現方法

Country Status (1)

Country Link
JP (1) JP7481283B2 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016103115A (ja) 2014-11-27 2016-06-02 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation データベースを管理するシステム及び方法
WO2018011895A1 (ja) 2016-07-12 2018-01-18 株式会社日立製作所 データ処理フロー管理システムおよび方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016103115A (ja) 2014-11-27 2016-06-02 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation データベースを管理するシステム及び方法
WO2018011895A1 (ja) 2016-07-12 2018-01-18 株式会社日立製作所 データ処理フロー管理システムおよび方法

Also Published As

Publication number Publication date
JP2022134032A (ja) 2022-09-14

Similar Documents

Publication Publication Date Title
US7269580B2 (en) Application integration system and method using intelligent agents for integrating information access over extended networks
US8886617B2 (en) Query-based searching using a virtual table
US6782387B1 (en) System for document management and information processing
US7234112B1 (en) Presenting query plans of a database system
JP5570608B2 (ja) エクセル基盤の分析レポート作成システム及び方法
KR101013810B1 (ko) 엑셀기반 db테이블 갱신 시스템 및 방법
RU2406115C2 (ru) Доступ к сложным данным
US20110154296A1 (en) Multi trace parser
JP2000148461A (ja) ソフトウェアモデル及び既存のソ―スコ―ドを同期化させる方法及びその装置
US7792851B2 (en) Mechanism for defining queries in terms of data objects
JP2006012146A (ja) 影響分析のためのシステムおよび方法
US20070083543A1 (en) XML schema template builder
US20070255685A1 (en) Method and system for modelling data
JP2022504205A (ja) インタラクティブなデータプレップアプリケーションのための複数のデータセットの相関増分ロード
CN110941629A (zh) 元数据处理方法、装置、设备及计算机可读存储介质
KR100877156B1 (ko) 비정형 질의언어에 대한 사전 성능 분석 시스템 및 방법
US7707211B2 (en) Information management system and method
CN110245037B (zh) 一种基于日志的Hive用户操作行为还原方法
KR100581687B1 (ko) 이기종의 데이타베이스 관리시스템 통합방법 및 그 방법을실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는기록매체
JP3914081B2 (ja) アクセス権限設定方法および構造化文書管理システム
JP7481283B2 (ja) メタデータ管理装置、データ管理システムおよびデータ再現方法
JPH11265368A (ja) 作業手順管理システム
Fehily SQL
US8825707B2 (en) Generating BPEL control flows
US10534761B2 (en) Significant cleanse change information

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230424

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240313

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240416

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240425

R150 Certificate of patent or registration of utility model

Ref document number: 7481283

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150