実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
以下の説明では、「aaaテーブル」といった表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「aaaテーブル」を「aaa情報」と言うことができる。また、以下の説明において、各テーブルの構成は一例であり、1つのテーブルは、2以上のテーブルに分割されてもよいし、2以上のテーブルの全部又は一部が1つのテーブルであってもよい。
また、以下の説明では、「プロセッサ部」は、1以上のプロセッサを含む。少なくとも1つのプロセッサは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサである。1以上のプロセッサの各々は、シングルコアでもよいしマルチコアでもよい。プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。
また、以下の説明では、「時刻」は、年月日時分の単位で表現されるが、時刻の単位は、それよりも粗くても細かくてもよいし、また異なる単位でもよい。
図1は、一実施形態に係る計算機システムの構成図である。
計算機システム1は、リニエージ検出装置の一例としてのメタデータ管理装置100と、1以上のストレージシステム110と、を備えている。メタデータ管理装置100と、ストレージシステム110とは、ネットワーク106を介して接続されている。
ネットワーク106は、例えばイーサネット(登録商標)や、IEEE(Institute of Electrical and Electronics Engineers)802.11規格に基づく無線ネットワーク、SONET/SDH(Synchronous Optical Network/Synchronous Digital Hierarchy)規格に基づく広域ネットワーク、又は、これら複数のネットワークを組み合わせたネットワークである。
メタデータ管理装置100は、例えば、パーソナルコンピュータ、ラックマウントサーバ、又はブレードサーバ等で構成され、プロセッサ101、メモリ102、記憶デバイス103、ネットワークインタフェース(I/F)104、及びコンソール105を有する。プロセッサ101は、内部バス等を介して、メモリ102、記憶デバイス103、ネットワークI/F104、及びコンソール105と接続されている。なお、メタデータ管理装置100は、処理負荷の分散や可用性の向上等を目的として、プロセッサ101、メモリ102、記憶デバイス103、ネットワークI/F104、及びコンソール105の一部又は全部を複数有してもよい。また、メタデータ管理装置100は、物理的に一つ、又は複数の計算機で構成してもよく、また、一つの計算機により論理的に構成された仮想計算機としてもよいし、複数の計算機により論理的に構成された仮想計算機としてもよい。なお、メタデータ管理装置100を物理的に複数の計算機上で構成する場合には、各計算機のプロセッサ101はネットワーク106を介してデータ通信を行うようにすればよい。
プロセッサ101は、例えば、CPU(Central Processing Unit)等のハードウェアによる演算装置であり、メモリ102に格納されたプログラムを実行する。メモリ102は、例えば、揮発性の半導体メモリから構成され、プログラムやデータを一時的に記憶する。
記憶デバイス103は、例えば、ハードディスクドライブ(HDD:Hard Disk Drive)、ソリッドステートドライブ(SSD:Solid State Drive)、又はこれらを複数台組み合わせた不揮発性の記憶デバイスであり、プログラムやデータを長期間記憶する。記憶デバイス103は、例えば、オペレーティングシステム(OS:Operating System)やユーザプログラムを記憶する。記憶デバイス103に格納されたオペレーティングシステムや、ユーザプログラム(例えば、リニエージ検出プログラム)は、メタデータ管理装置100の起動時や、処理の実行時にメモリ102に読み出される。なお、メモリ102に読み出されたオペレーティングシステム及びユーザプログラムは、プロセッサ101によって実行され、各種機構が実現される。オペレーティングシステムやユーザプログラムは、リムーバブルメディア(CD−ROM、フラッシュメモリ等)又はネットワークを介してメタデータ管理装置100に提供され、記憶デバイス103に格納される。リムーバブルメディアからプログラムを記憶デバイス103に格納する場合には、メタデータ管理装置100は、リムーバルメディアからデータを読み込むインターフェースを備える必要がある。
ネットワークI/F104は、例えば、NIC(Network Interface Controller)等の通信デバイスで構成され、ネットワーク106と接続される。ネットワークI/F104は、ネットワーク106を介しての他の装置(例えば、ストレージシステム110)との通信時のプロトコル制御を行う。
コンソール105は、例えば、キーボード及びマウス等の入力装置と、液晶表示パネル等のディスプレイ装置とを備える。コンソール105は、後述するデータレイク300の管理者(データレイク管理者)の入力装置による各種操作入力に応じた操作信号を受信して操作入力の内容をプロセッサ101に通知する。また、コンソール105は、プロセッサ101から出力されるテキスト情報やグラフィカル情報に基づくテキストや画像等をディスプレイ装置に表示する。
ストレージシステム110は、例えば、複数の記憶デバイス111を備える。本実施形態では、複数のストレージシステム110の記憶デバイス111により、センサーデータ、ソーシャルメディアデータ等の定期的に生成されるデータを、ファイル形式で保持するデータ蓄積領域であるデータレイク300が構成されている。複数のストレージシステム110は、お互いに離れた場所(遠隔地)に配置されていてもよい。
次に、メタデータ管理装置100の機能構成について説明する。
図2は、一実施形態に係るメタデータ管理装置の機能構成図である、
メタデータ管理装置100は、データレイク300に格納されているデータファイル(単にファイルともいう)301を処理対象として、データファイル間のデータリニエージ(導出関係:単にリニエージということもある)を検出して、管理者へ提供するための処理を実行する。メタデータ管理装置100は、ファイルアクセス部201、メタデータ収集部202、特徴量生成部203、リニエージ検出部204、学習部205、表示操作部206、メタデータリポジトリ207、及び学習データストレージ208を有する。ファイルアクセス部201、メタデータ収集部202、特徴量生成部203、リニエージ検出部204、学習部205、及び表示操作部206は、主に、プロセッサ101がメモリ102のリニエージ検出プログラムを実行することにより構成される。メタデータリポジトリ207及び学習データストレージ208は、主に、記憶デバイス103により構成される。
メタデータリポジトリ207は、メタデータテーブル209及びリニエージテーブル210を格納する。メタデータテーブル209及びリニエージテーブル210については後述する。学習データストレージ208は、特徴量テーブル211を格納する。特徴量テーブル211については、後述する。
ファイルアクセス部201は、データレイク300に格納されているデータファイル301を認識し、データファイル301の内容及びデータファイル301に関するメタデータを読み出す。メタデータ収集部202は、ファイルアクセス部201が読み出したデータファイル301のメタデータと、データファイル301の内容から生成したメタデータとを、メタデータテーブル209に格納する。特徴量生成部203は、メタデータテーブル209に格納されたメタデータを読み出し、二つのデータファイル301の組(ファイルペア)毎に特徴量を生成し、特徴量テーブル211に格納する。
リニエージ検出部204は、特徴量テーブル211に格納された特徴量を読み出し、ファイルペアついてのデータリニエージを推測し、推測したデータリニエージの候補となるファイルペア(データリニエージ候補)をリニエージテーブル210に格納し、ファイルペア間にデータリニエージが存在するか否かの情報を特徴量テーブル211のラベルに格納する。
学習部205は、特徴量テーブル211が保持する特徴量とラベルとを読み出し、読出した特徴量とラベルとにより、学習処理を行って、リニエージ検出部204が保持する後述する分類器2041及びゲート関数部2042のパラメタを更新する。
表示操作部206は、リニエージテーブル210が保持するデータリニエージを読み出し、コンソール105により表示する。また、表示操作部206はコンソール105を介して操作入力の内容を受信して解釈し、リニエージテーブル210が保持するデータリニエージと、特徴量テーブル211のラベルとを更新する。
次に、リニエージ検出部204の詳細な構成について説明する。
図3は、一実施形態に係るリニエージ検出部及び関連する要素の機能構成図である。
リニエージ検出部204は、1以上の分類器2041、1以上のゲート関数部2042、及びコンバイナ2043を有する。リニエージ検出部204は、分類器2041及びゲート関数部2042を、それぞれ二つ以上備えるようにしてもよい。
分類器2041は、パラメタを有し、特徴量テーブル211が保持するファイルペアの特徴量を読み出し、ファイルペアを構成する二つのデータファイル301間にデータリニエージがあるか否かを判定するための評価値を、パラメタに基づいて算出して出力する。出力する評価値は、連続値でもよいし、任意の閾値によって2値に分類した結果を示す数値(分類値:例えば1と−1)でもよい。分類器2041は、例えば、線形分類器としてもよい。
ゲート関数部2042は、分類器2041のそれぞれに対応して一つずつ設けられている。ゲート関数部2042は、パラメタを有し、対応する分類器2041からの評価値を入力として受信し、評価値に対してパラメタに基づいた所定の重み付け処理を行って、すなわち、所定の重み付け係数を乗算して重み付け評価値を出力する。例えば、ゲート関数部2042は、特徴量テーブル211が保持するファイルペアの特徴量を読み出し、特徴量に基づいて重み付け係数を算出する。なお、重み付け係数は、0から1の範囲としてもよい。ゲート関数部2042で重み付け係数を求める関数は、例えば、ソフトマックス関数としてもよく、この場合には、ゲート関数部2042が有するパラメタは、ソフトマックス関数のパラメタとなる。
コンバイナ2043は、それぞれのゲート関数部2042が出力した重み付け評価値を入力として受信し、これらの重み付け評価値を混合した結果(総合評価値)を出力する。コンバイナ2043は、例えば、重み付け評価値の総和をとる総和関数により総合評価値を算出するようにしてもよい。
リニエージ検出部204は、コンバイナ2043により混合された結果(総合評価値)に基づいて、ファイルペアを構成する二つのデータファイル301間にデータリニエージがあるか否かの判定結果を、リニエージテーブル210及び特徴量テーブル211に格納する。なお、総合評価値に基づく判定結果としては、総合評価値そのままとしてもよいし、総合評価値を所定の閾値との関係に基づいて2値化した値としてもよい。
図4は、一実施形態に係るメタデータテーブルの構成図である。
メタデータテーブル209は、例えば、ドキュメント指向データベース管理システムが保持するデータベースである。メタデータテーブル209は、インデックス209Aとドキュメント209Bとを含む。
インデックス209Aは、データファイル301のそれぞれに対応するレコードを格納する。インデックス209Aのレコードは、idフィールドと、パス名(pathname)フィールドと、タイムスタンプ(timestamp)フィールドとを有する。idフィールドには、データファイル301を識別する一意な識別符号(例えば”F001”)が格納される。インデックス209Aの各レコードは、それぞれ一つのドキュメント209Bと対応しており、idフィールドが保持する一意な識別符号により識別可能となっている。パス名フィールドには、データファイル301のパス名が格納される。タイムスタンプフィールドには、データファイル301の生成されたタイムスタンプが格納される。
ドキュメント209Bは、インデックス209Aの所定のレコード(識別符号に対応するレコード)に対応するデータファイル301のメタデータ、及び、データファイル301の内容から生成されたメタデータを格納する。
図4のドキュメント209Bは、インデックス209Aのidフィールドが“F001”のレコードに対応するドキュメントであり、対応するインデックス209のidを示す“id”プロパティと、メタデータとして、データファイル301のパス名を示す“pathname”プロパティ、データファイル301のタイムスタンプを示す“timestamp”プロパティ、データファイル301のフォーマットを示す“format”プロパティ、データファイル301のフィールド数を示す“number_of_fields”プロパティ、データファイル301のフィールド名を示す“fields”プロパティ、等を含む。ドキュメント209Bが保持するメタデータの内の“pathname”プロパティ、“timestamp”プロパティは、データファイル301のメタデータとして、データレイク300が保持しているものを、ファイルアクセス部201が読み出して設定したものである。一方、“format”プロパティ、“number_of_fields”プロパティ、“fields”プロパティ等は、データファイル301の内容に基づいて、メタデータ収集部202が生成したメタデータである。なお、ファイルアクセス部201が収集するメタデータや、メタデータ収集部202が生成するメタデータは、これらに限定されない。
次に、リニエージテーブル210が管理するデータリニエージの概念について説明する。
図5は、一実施形態に係るデータリニエージの概念を説明する図である。
ここで、データレイク300が、例えば、データファイル301A、データファイル301B、及びデータファイル301Cを保持しているものとする。
例えば、リニエージ検出部204が、データファイル301Aを基に加工してデータファイル301Bを作成したと推測し、その推測を管理者が是認した場合には、データファイル301Aとデータファイル301Bとの間にあるリニエージ関係302Aは、“endorsed(承認)”の状態となる。一方、リニエージ検出部204が、データファイル301Aを基に加工してデータファイル301Cを作成したと推測し、その推測を管理者が是認していない場合には、リニエージ関係302Bは”candidate(候補)”の状態となる。また、リニエージ検出部204が、データファイル301Bを基に加工してデータファイル301Cが作成されたと推測し、その推測を管理者が否認した場合には、データファイル301Bとデータファイル301Cとの間にはデータリニエージは存在しない。また、リニエージ検出部204が、データファイル301Bとデータファイル301Cとの間には、データリニエージが存在しないと推測し、管理者が推測を是認も否認もしていない場合には、データファイル301Bとデータファイル301Cとの間にはデータリニエージは存在しない。
次に、リニエージテーブル210について説明する。
図6は、一実施形態に係るリニエージテーブルの構成図である。
リニエージテーブル210は、例えば、テーブル形式データであり、各レコードは、1つのファイルペアのデータリニエージに対応する。リニエージテーブル210のレコードは、idフィールドと、fromIdフィールドと、toIdフィールドと、batch_noフィールドと、statusフィールドとを有する。
idフィールドは、ファイルペアを一意に識別可能な識別符号が格納される。fromIdフィールドには、データリニエージを有する(導出関係を有する)ファイルペアの基となるデータファイル301に対応する識別符号(例えば、メタデータテーブル209で保持されるデータファイル301の識別符号と共通のもの)が格納される。toIdフィールドには、データリニエージを有するファイルペアの作成先となるデータファイル301に対応する識別符号が格納される。batch_noフィールドには、リニエージ検出部204が後述するリニエージ候補生成処理を実行する毎に付与される、処理を特定する識別符号(バッチ番号)が格納される。statusフィールドには、データリニエージの状態が格納される。具体的には、statusフィールドには、“endorsed”又は”candidate”が格納される。
次に、特徴量テーブル211について説明する。
図7は、一実施形態に係る特徴量テーブルの構成図である。
特徴量テーブル211は、例えば、テーブル形式データであり、各レコードは、データレイク300における2つのデータファイル301により構成される各ファイルペアに対応する。特徴量テーブル211のレコードは、idフィールドと、fromIdフィールドと、toIdフィールドと、labelフィールドと、endorsedフィールドと、複数のfeatureフィールド(feature1、feature2、feasture3、・・・)とを有する。
idフィールドには、ファイルペアの識別符号(例えば、リニエージテーブル210のidフィールドの識別符号と共通のもの)が格納される。fromIdフィールドには、ファイルペアの一方のデータファイル301に対応する識別符号(例えば、メタデータテーブル209で保持されるデータファイル301の識別符号と共通のもの)が格納される。toIdフィールドには、ファイルペアの他方のデータファイル301の識別符号が格納される。
labelフィールドには、ファイルペアを構成するデータファイル301間に、データリニエージ(導出関係)が存在するか否かを示す情報(ラベル)が格納される。本実施形態では、labelフィールドには、例えば、データリニエージが存在する場合には“1”が格納され、存在しない場合には、“−1”が格納される。endorsedフィールドには、データリニエージが是認されているか否かの情報が格納される。具体的には、endorsedフィールドには、データリニエージが是認されている場合、すなわち、“endorsed”である場合には、“1”が格納され、データリニエージが是認されていない場合、すなわち、“candidate”である場合には、“0”が格納される。例えば、ファイルペアのデータファイル301間にデータリニエージが存在しない場合、すなわち、labelフィールドが“−1”に設定されているレコードにおいて、管理者がその存在を否認した場合には、endorsedフィールドには“1”が格納される一方、管理者が否認も是認もしていない場合にはendorsedフィールドには“0”が格納される。featureフィールドのそれぞれには、特徴量生成部203がファイルペアから算出した、異なる特徴に関する特徴量が格納される。
次に、メタデータ管理装置100による処理動作について説明する。
図8は、一実施形態に係るリニエージ候補生成処理のフローチャートである。
リニエージ候補生成処理は、例えば、図示しないスケジューラの制御によって定期的に実行される。リニエージ候補生成処理は、実行される毎に、その処理を特定する識別符号(バッチ番号)が付与される。ここで、新たに実行される処理に付与されるバッチ番号は、例えば、数値であり、直前に行った処理のバッチ番号よりも大きい数値である。
まず、ファイルアクセス部201は、データレイク300が保持するデータファイル301をスキャンし、前回のリニエージ候補生成処理の実行時から現在までの間にデータレイク300に新規追加されたデータファイル301をリストアップする(ステップS602)。
次いで、メタデータ収集部202は、新規追加されたデータファイル301からメタデータを収集及び生成して、メタデータテーブル209に格納する(ステップS604)。
次いで、特徴量生成部203は、メタデータテーブル209が保持するレコードに基づいて、新規追加されたデータファイル301を最低1つ含むファイルペアをリストアップし、このファイルペアに一意な識別符号を付与し、特徴量テーブル211にファイルペアに対応するレコードを追加する(ステップS606)。更に、特徴量生成部203は、リストアップされたファイルペアのそれぞれについて、ファイルペアの複数の特徴量を算出し、それぞれの特徴量を特徴量テーブル211のfeatureフィールドのそれぞれに格納する(ステップS608)。
次いで、リニエージ検出部204は、リニエージ判定処理を実行する(ステップS610)。具体的には、リニエージ検出部204は、特徴量テーブル211に格納された各レコードのうちのデータリニエージの判定が行われていない全てのファイルペアに対応するレコード、具体的には、labelフィールドが空欄のレコードについて、このレコードが保持する特徴量を、各分類器2041に入力し、その後、コンバイナ2043から出力される総合評価値により、ファイルペアについてのデータリニエージの有無を判定する。この結果、ファイルペアにデータリニエージが存在すると判定した場合には、リニエージ検出部204は、特徴量テーブル211のこのファイルペアに対応するレコードのlabelフィールドに“1”を格納するとともに、リニエージテーブル210にこのファイルペアに対応するレコードを追加する。この際、リニエージテーブル210に追加するレコードのbatch_noフィールドには、今回の処理のバッチ番号を格納する。一方、データリニエージが存在しないと判定した場合は、リニエージ検出部204は、特徴量テーブル211のlabelフィールドに“−1”を格納する。
データリニエージの判定が行われていない全てのファイルペアに対応するレコードに対する処理が行われた後に、表示操作部206は、リニエージテーブル210に格納されたレコードのうち、batch_noフィールドのバッチ番号が最大のレコード、すなわち、今回の処理により追加されたレコードに基づいて、リニエージ候補に関する情報を含むリニエージ候補表示画面(図10参照)を生成し、コンソール105の表示画面に表示させる(ステップS612)。
次に、リニエージ検出部204によるリニエージ判定処理について詳述する。
図9は、一実施形態に係るリニエージ判定処理のフローチャートである。
リニエージ判定処理は、図8におけるステップS610のリニエージ判定処理に対応する。
リニエージ検出部204は、特徴量テーブル211が保持する各レコードのうち、labelフィールドが空欄のレコードのそれぞれを処理対象として、LOOP1の処理(ステップS804〜S818)を実行する。以下のLOOP1の処理の説明において、処理対象のレコードを対象レコードという。
まず、リニエージ検出部204は、対象レコードから、featureフィールドのそれぞれのフィールドから特徴量を取得し、各分類器2041に入力する(ステップS804)。ここで、各フィールドに格納された特徴量は、スカラ値であり、複数のフィールドからの特徴量を合わせると、全体としては特徴量ベクトルとなる。
次いで、リニエージ検出部204のそれぞれの分類器2041とその分類器2041に接続されたゲート関数部2042との組のそれぞれに対して、LOOP2の処理(ステップS808,S810)の処理を実行する。
分類器2041は、特徴量ベクトルを受信して、この分類器2041の処理により評価値を算出し(ステップS808)、評価値を接続されたゲート関数部2042に出力する。ゲート関数部2042は、分類器2041から入力された評価値を受信し、受信した評価値に対して、自身のパラメタに基づいて決定される重み付けを行った値(重み付け評価値)をコンバイナ2043に出力する(ステップS810)。
LOOP2の処理により、分類器2041及びゲート関数2042の組の数だけ重み付け評価値がコンバイナ2043に出力される。
LOOP2の処理後に、コンバイナ2043は、各分類器2041及びゲート関数2042の組から出力された重み付け評価値を混合し(ステップS812)、混合した結果(総合評価値)に基づく値(ここでは、1又は−1)を特徴量テーブル211のlabelフィールドに格納する(ステップS814)。次いで、コンバイナ2043は、総合評価値に基づいて、データリニエージがあるか否かを判定する(ステップS816)。この結果、データリニエージがあると判定した場合(ステップS816:YES)には、コンバイナ2043は、リニエージテーブル210に、データリニエージがあるファイルペアのレコードを追加する。すなわち、コンバイナ2043は、リニエージテーブル210に、ファイルペアの識別符号、ファイルペアを構成するデータファイル301の識別符号、リニエージ候補生成処理に付与されたバッチ番号を含み、statusフィールドが”candidate”であるレコードを追加する(ステップS818)。一方、データリニエージがないと判定した場合(ステップS816:NO)には、コンバイナ2043は、ステップS818を実行しない。
そして、特徴量テーブル211が保持する各レコードのうち、labelフィールドが空欄のレコードのすべてを処理対象として、LOOP1の処理(ステップS804〜S818)を実行した後、リニエージ判定処理を終了する。
このリニエージ判定処理によると、データレイク300に新たに追加されたデータファイルを含むファイルペアのすべてを対象にリニエージ判定処理が行われることとなる。
次に、リニエージ候補表示画面について説明する。
図10は、一実施形態に係るリニエージ候補表示画面の一例を示す図である。
リニエージ候補表示画面400は、リニエージ候補生成処理のステップS612の処理により、コンソール105のディスプレイ装置に表示される画面である。
リニエージ候補表示画面400は、表示操作部206が、リニエージテーブル210が保持するレコードのうち一部(例えば、batch_noフィールドのバッチ番号が最大のもの)をコンソール105に表示させる画面である。
リニエージ候補表示画面400においては、リニエージテーブル210に格納されているレコードに含まれているデータファイル301が、例えばデータファイルアイコン401(401A〜401D)として表示される。なお、データファイル301の識別符号を用いて、メタデータテーブル209を検索して、データファイル301のパス名やファイル名等を同定し、これらをデータファイルアイコン401に対応付けて表示させることにより、管理者が容易にデータファイルを認識できるようにしてもよい。
また、リニエージ候補表示画面400においては、リニエージテーブル210に格納されているレコードに対応するファイルペアを構成するデータファイル301のデータファイルアイコン401同士をデータリニエージ線402(402A,402B)で接続するように表示する。なお、データリニエージ線402に対して、レコードに格納されているデータリニエージの識別符号を併せて表示してもよい。
また、リニエージ候補表示画面400においては、リニエージテーブル210に格納されているファイルペアのレコードをデータリニエージ候補リスト403として表示する。データリニエージ候補リスト403のidフィールドには、リニエージテーブル210のidフィールドの識別符号が表示される。また、データリニエージ候補リスト403のsourceフィールド及びtargetフィールドのそれぞれには、リニエージテーブル201のfromIdフィールド及びtoIdフィールドが保持する識別符号を用いて、メタデータテーブル209のレコードを検索して同定された、それぞれのデータファイル301のパス名が表示される。また、データリニエージ候補リスト403のactionフィールドには、“Accept”、“Reject”、または“Unsure”のいずれか一つの値を選択できるように構成されたドロップダウンリストが表示される。データリニエージ候補リスト403の或るレコードのactionフィールドにおいて“Accept”が管理者により選択された場合は、このレコードに対応するファイルペアのデータリニエージについて是認の意思を表明したこととなる一方、“Reject”が選択された場合は、このレコードに対応するファイルペアのデータリニエージについて否認の意思を表明したこととなる。
また、リニエージ候補表示画面400には、データリニエージ追加ボタン(Add more)404及び正否情報送信ボタン(Submit)405が表示される。
正否情報送信ボタン405が管理者により押下されると、リニエージ候補表示画面400を表示するコンソール105は、データリニエージ候補リスト403のidフィールドに格納されている識別符号と、actionフィールドに設定された値とをもって、この識別符号に対応する管理者によるデータリニエージ候補の正否の情報として、表示操作部206に伝達する。
この結果、actionフィールドに設定された値が“Accept”である場合には、表示操作部206は、データリニエージ候補リスト403のidフィールドの識別符号に対応する特徴量テーブル211のレコードにおけるendorsedフィールドの値を“1”に設定し、データリニエージ候補リスト403のidフィールドの識別符号に対応するリニエージテーブル210のレコードのstatusフィールドの値を“endorsed”に設定する。また、actionフィールドに設定された値が“Reject”である場合には、表示操作部206は、データリニエージ候補リスト403のidフィールドの識別符号に対応するリニエージテーブル210のレコードを削除する。また、actionフィールドに設定された値が“Unsure”である場合には、表示操作部206は、特に何も行わない。
データリニエージ追加ボタン404が管理者により押下されると、リニエージ候補表示画面400を表示するコンソール105は、リニエージテーブル210が格納していないファイルペアであって、データリニエージがあるファイルペアを選択入力するためのダイアログを表示する。このダイアログに対して、管理者により、ファイルペアが選択されて確定の指示が出されると、コンソール105は、選択されたファイルペアのデータファイルを示す識別符号の組を表示操作部206に伝達する。
表示操作部206は、ファイルペアのデータファイルを示す識別符号の組の伝達を受け取ると、データファイルを示す識別符号の組に対応する特徴量テーブル211のレコードを特定し、特定したレコードのlabelフィールドの値をデータリニエージがあることを示す“1”に設定し、endorsedフィールドの値を“1”に設定する。また、表示操作部206は、特徴量テーブル211の特定したレコードのidフィールドの識別符号を特定し、リニエージテーブル210に、特定したidフィールドの識別符号、伝達を受けたファイルペアを構成するデータファイルの識別符号を含み、statusフィールドが”endorsed”であるレコードを追加する。これにより、管理者によりデータリニエージを有すると指定されたファイルペアに関するレコードがリニエージテーブル210に追加されることとなる。
リニエージ候補表示画面400のデータリニエージ候補リスト403において、例えば、
リニエージ検出部204の各ゲート関数部2042の重み付けが大きい順に、対応する分類器2041による評価処理を示す情報や、その評価値に関する情報を表示するようにしてもよい。このようにすると、重み付けが大きい分類器2041による評価値に関する情報を管理者が確認することができる。
なお、リニエージ候補表示画面400の表示の様式は、これに限定されるものではなく、データリニエージ候補リスト403のactionフィールドや、これに類する表示画面要素により、リニエージ検出部204が出力したデータリニエージ候補の結果に対して、管理者がその正否をメタデータ管理装置100に伝達することができるものであればよい。このリニエージ候補表示画面400に対して入力されてメタデータ管理装置100に送信されたデータリニエージ候補の正否情報は、リニエージ検出部204の学習に供されることとなる。
次に、メタデータ管理装置100による学習処理について説明する。
図11は、一実施形態に係る学習処理のフローチャートである。
表示操作部206が、リニエージ候補表示画面400の正否情報送信ボタン405が押下されることにより送信されるデータリニエージ候補の正否情報を受信すると(ステップS1002)、このデータリニエージ候補の正否情報に基づいて、リニエージテーブル210を更新するリニエージ情報更新処理を実行する(ステップS1004)。次いで、表示操作部206は、特徴量テーブル211を更新する学習データ追加処理を実行する(ステップS1006)。
学習部205は、データリニエージ候補の正否が確定したファイルペアの情報、すなわち、特徴量テーブル211のレコードのうち、endorsedフィールドが“1”に設定されている全てのレコードを学習データ(正解データ)として抽出し、この学習データに基づいて、リニエージ検出部204の学習、すなわち、リニエージ検出部204のパラメタ等を決定する学習を行う(ステップS1008)。例えば、リニエージ検出部204の分類器2041が線形分類器であり、ゲート関数部2042におけるゲート関数がソフトマックス関数である場合には、例えば、EM(Expectation−maximization)アルゴリズムによって線形分類器とソフトマックス関数のパラメタを求めることが、リニエージ検出部204の学習に相当する。なお、リニエージ検出部204の学習方法はこれに限られない。例えば、分類器2041による分類処理のパラメタのみを学習するようにしてもよく、また、ゲート関数部2042のパラメタのみを学習するようにしてもよい。
なお、ステップS1008におけるリニエージ検出部204の学習については、例えば、図示しないスケジューラの制御によって定期的に実行するようにしてもよい。
次に、リニエージ情報更新処理及び学習データ追加処理について説明する。
図12は、一実施形態に係るリニエージ情報更新処理及び学習データ追加処理のフローチャートである。
リニエージ情報更新処理は、図11のステップS1004の処理に対応し、学習データ追加処理は、図11のステップS1006の処理に対応する。
表示操作部206は、正否情報を受信した全てのデータリニエージ候補のそれぞれを処理対象として、LOOP1の処理(ステップS1104〜ステップS1116)を実行する。ここで、このLOOP1処理における処理対象とするデータリニエージ候補を対象データリニエージ候補ということとする。
表示操作部206は、対象データリニエージ候補に対する、リニエージ候補表示画面400のデータリニエージ候補リスト403のactionフィールドの選択が”Accept”、又は、”Reject”であるか否かを判定する(ステップS1104)。この結果、
actionフィールドの選択が”Accept”、又は、”Reject”でない場合、すなわち、“Unsure”である場合(ステップS1104:NO)である場合には、表示操作部206は、次の処理対象のデータリニエージ候補に対してLOOP1の処理を行う。
一方、actionフィールドの選択が”Accept”、又は、”Reject”である場合(ステップS1104)には、表示操作部206は、actionフィールドの選択が、”Accept”、であるか(データリニエージの存在が是認されているか)、”Reject”であるか(データリニエージの存在が否認されているか)を判定する。
この結果、表示操作部206は、actionフィールドの選択が、”Accept”、である場合(ステップS1106:YES)には、表示操作部206は、リニエージテーブル210の対象データリニエージ候補の識別符号に対応するレコードのstatusフィールドを“endorsed”に更新し(ステップS1108)、特徴量テーブル211の対象データリニエージ候補の識別符号に対応するレコードのendorsedフィールドを“1”に更新し(ステップS1110)、次の処理対象のデータリニエージ候補に対してLOOP1の処理を行う。
一方、actionフィールドの選択が”Reject”である場合(ステップS1106:NO)には、表示操作部206は、リニエージテーブル210の対象データリニエージ候補の識別符号に対応するレコードを削除し(ステップS1112)、特徴量テーブル211の対象データリニエージ候補の識別符号に対応するレコードのlabelフィールドを“−1”に更新し(ステップS1114)、endorsedフィールドを“1”に更新し(ステップS1116)、次の処理対象のデータリニエージ候補に対してLOOP1の処理を行う。
そして、表示操作部206は、正否情報を受信した全てのデータリニエージ候補のそれぞれを処理対象として、LOOP1の処理を行った後に、リニエージ情報更新処理及び学習データ追加処理を終了する。
このリニエージ情報更新処理及び学習データ追加処理によると、表示操作部206がリニエージ候補表示画面400に表示するデータリニエージに関する情報(リニエージテーブル210)は、管理者の意向を反映した内容に更新され、また、リニエージ検出部204の学習に供される学習データ(特徴量テーブル211)も、管理者の意向を反映した内容に更新されることとなる。
したがって、リニエージ検出部204が、逐次管理者の意向を反映したデータリニエージの検出処理を行うこととなり、例えば、類似したデータファイルに対するデータリニエージの判定における誤検出の発生を低減することができ、管理者の作業負荷を適切に低減することができる。
次に、一実施形態におけるデータリニエージ判定処理を、データファイルの具体例を用いて説明する。
図13は、データファイルとその内容の具体例を示す図である。
データレイク300は、例えば、センサーデータを含むデータファイル500を保持する。また、データレイク300は、データファイル501A,501B,501Cを保持する。
データファイル500は、センサ”S12345”が2017年4月1日に測定したデータを記録したファイルである。データファイル501Aは、センサ”S12345”が2017年3月31日に測定したデータを記録したファイルである。データファイル501Bは、センサ”S12345”が2017年4月1日に測定したデータ(すなわちデータファイル500が保持するデータ)を、ETLツールによってCSV(Commma Separated Values)形式に加工(変換)したファイルである。データファイル501Cは、センサ”S56789”が2017年4月1日に測定したデータを記録したファイルである。
上記した構成により、データファイル500と、各データファイル501A,501B,501Cのそれぞれのファイル関係502A,502B、502Cのうち、ファイル関係502Bのみがデータリニエージとなっている。
特徴量生成部203は、ステップS608において、これら4つのデータファイルを元にファイルペアをリストアップし、それぞれのファイルペアについて、例えば、2種類の特徴量x0、x1を生成する。なお、以下においては、説明を平易にするため、データファイル500と、各データファイル501A,501B,501Cとの3つのファイルペアを対象についてのみ考慮したものとする。
特徴量生成部203は、特徴量x0として、ファイルペアについて、データファイルの内容の類似性を数量化する。ファイルペアの2つのデータファイルを比較すると、その内容には異なる部分と重複する部分がある。内容の重複の度合を数量化する方法として、例えば、ファイルを複数のチャンクに分割し、チャンクそれぞれのチェックサムを算出する処理を2つのファイルについて行い、その結果もたらされる2つのチェックサムの系列のうち一致するものの比率を算出し、正規化することが考えられる。なお、データファイルの内容の重複の度合を数量化する方法は、これに限定されない。
例えば、データファイル500とデータファイル501Aとの内容について比較すると、測定日時と、記録されたセンサーデータとが異なるため、その重複は少ないため、特徴量x0の値は小さい。一方、データファイル500と501Bとの内容について比較すると、測定日時とセンサーデータとは共通であり、それらの間にある区切り文字が変換されているため、比較的重複があり、特徴量x0の値は比較的大きい。また、データファイル500と501Cとの内容について比較すると、測定日時が共通であり、しかも2つのセンサは類似した値を出力しているため、大きく重複しており、特徴量x0の値は大きい。
また、特徴量生成部203は、特徴量x1として、データファイルのファイル名の類似性を数量化する。データファイルのファイル名の類似性を数量化する方法としては、ファイル名のような文字列の差異を数量化する、例えばレーベンシュタイン距離を算出するようにしてもよい。なお、データファイルのファイル名の類似性を数量化する方法は、これに限定されない。
例えば、データファイル500とデータファイル501Aとのファイル名について比較すると、センサ名”S12345”の部分は共通するが、測定日時をUNIX(登録商標)時間で表現した部分は異なるため、比較的差異は大きく、特徴量x1は比較的大きくなる。なお、この例では、特徴量x1は、差異が大きいほど大きくなる、すなわち、類似性が高いほど小さくなるものとしている。また、データファイル500と501Bのファイル名について比較すると、センサ名、測定日時ともに共通であり、差異はファイルの拡張子の部分だけであるため、比較的差異は小さく、特徴量x1は、小さくなる。また、データファイル500と501Cとのファイル名について比較すると、測定日時の部分は共通だが、センサ名の部分が”S12345”および”S56789”と異なるため、比較的差異は大きく、特徴量x1は、比較的大きくなる。
上記のようにして特徴量生成部203により算出された、ファイルペア各々についてその特徴量x0、x1は、特徴量テーブル211のレコードとして格納される。
次に、リニエージ判定処理における分類器2041とゲート関数部2042との処理動作の具体例を示す。
図14は、分類器とゲート関数部とによる処理の具体例を説明する図である。図14は、上記説明した2つの特徴量x0、x1により構成される特徴量空間600を示している。
特徴量テーブル211の各レコードは、レコードに格納された特徴量x0、x1に従って特徴量空間600上の1点にマップされる。例えば、ファイル関係502Aに対応するファイルペア(データファイル500及びデータファイル501A)は、ファイルペアを構成するデータファイルの内容に重複は少なく、ファイル名の差異は大きいため、クラスタ601の中にマップされる。
また、ファイル関係502Bに対応するファイルペア(データファイル500及びデータファイル501B)は、ファイルペアを構成するデータファイルの内容にかなり重複がある一方で、ファイル名の差異は比較的小さいため、クラスタ602の中にマップされる。
また、ファイル関係502Cに対応するファイルペア(データファイル500及びデータファイル501C)は、ファイルペアを構成するデータファイルの内容は大きく重複し、かつファイル名の差異が大きいため、クラスタ603の中にマップされる。
特徴量空間600においては、クラスタ602にマップされるファイルペアにはデータリニエージが存在し、クラスタ601及びクラスタ603にマップされるファイルペアにはデータリニエージが存在しない。
ここで、リニエージ検出部204が、特徴量空間600上の3つのクラスタのうち、クラスタ602にマップされるファイルペアにはデータリニエージが存在し、クラスタ601及びクラスタ603にマップされるファイルペアにはデータリニエージが存在しないと判定するためには、クラスタ601とクラスタ602とを線形分離する識別線604と、クラスタ602とクラスタ603とを線形分離する識別線605との2つが必要である。
この2つの識別線のそれぞれは、特徴量x0とx1を入力とした2つの分類器2041のパラメタにより決定される。第1の分類器2041は、特徴量x0とx1を入力とし識別線604により線形分離することができる。この第1の分類器2041は、クラスタ601とクラスタ602のファイルペアとを高精度に分離することができる。また、第2の分類器2041は、特徴量x0とx1を入力とし識別線605により線形分離することができる。この第2の分類器2041は、クラスタ602とクラスタ603とのファイルペアを高精度に分離することができる。
2つの分類器2041に対応する2つのゲート関数部2042のそれぞれは、特徴量x0とx1とを入力し、自身のパラメタにより特徴量空間600上の識別線604と識別線605との境界である回帰直線606を境界として異なる重み付けの係数を算出し、分類器2041の出力に重みを与える。本実施形態では、第1の分類器2041に対応するゲート関数部2042は、データリニエージの有無の評価について高精度に分離することが可能であり範囲である回帰直線606よりも左側の範囲において、大きな値の重み付けの係数を算出し、回帰直線606よりも右側の範囲においては、小さな値の重み付けの係数を算出する。一方、第2の分類器2041に対応するゲート関数部2042は、回帰直線606よりも左側の範囲においては、小さな値の重み付けの係数を算出し、データリニエージの有無の評価について高精度に分離することが可能な範囲である回帰直線606よりも右側の範囲においては、大きな値の重み付けの係数を算出する。
このようにゲート関数部2042によって重み付けが行われた値は、コンバイナ2043により合算されて総合評価値として出力される。この際、回帰直線606よりも左側においては、第1の分類器2041の出力が優先された総合評価値となり、回帰直線606よりも右側においては、第2の分類器2041の出力が優先された総合評価値となる。これにより、リニエージ検出部204は、特徴量x0、x1を入力として特徴量空間600上にマップされるファイルペアを複数のクラスタに適切に分離することができる、すなわち、ファイルペアのデータリニエージの有無を適切に判定することができる。
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、適宜変形して実施することが可能である。
例えば、上記実施形態において、学習部205によりリニエージ検出部204の学習を行ったことにより、ゲート関数部2042の重み付けが所定値よりも小さくなった場合には、このゲート関数部2042と、このゲート関数部2042に対応する分類器2041との処理を実行しないようにしてもよく、また、以降において、このゲート関数部2042と、この分類器2041のパラメタとを学習しないようにしてもよい。このようにすると、データリニエージの検出に影響が小さい評価処理を行わずに済み、処理負荷を低減することができる。また、特徴量の内で、このゲート関数部2042に対応する分類器2041のみの評価処理に影響を及ぼす特徴量があれば、メタデータ収集部202においてこの特徴量を収集しないようにしてもよく、特徴量テーブル211において、この特徴量を格納しないようにしてもよい。このようにすると、処理負荷を低減できるとともに、特徴量テーブル211に必要となる記憶領域の容量を低減することができる。
また、上記実施形態における、プロセッサがプログラムを実行することにより構成していた機能部の一部又は全部を、ハードウェア回路で行うようにしてもよい。また、上記実施形態におけるプログラムは、プログラムソースからインストールされてよい。プログラムソースは、プログラム配布サーバ又は記憶メディア(例えば可搬型の記憶メディア)であってもよい。