(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024162920
(43)【公開日】2024-11-21
(54)【発明の名称】外部スキーマ生成装置及び外部スキーマ生成方法
(51)【国際特許分類】
G06F 16/21 20190101AFI20241114BHJP
【FI】
G06F16/21
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023078922
(22)【出願日】2023-05-11
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000279
【氏名又は名称】弁理士法人ウィルフォート国際特許事務所
(72)【発明者】
【氏名】高田 実佳
(72)【発明者】
【氏名】茂木 和彦
(72)【発明者】
【氏名】西川 記史
(72)【発明者】
【氏名】樫山 俊彦
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175CA07
(57)【要約】 (修正有)
【課題】アプリケーションの開発者にとって使い勝手の良い外部スキーマを提供する外部スキーマ生成装置及び方法を提供する。
【解決手段】ビュー生成装置において、プロセッサの適応マッピング部604は、データ200の各カラムとKPIツリー500の各項目との類似度に基づいて、KPIツリー500の各項目に対応するデータ200のカラムを対応カラムとして特定する全体管理部610と、対応カラムに基づいて、データ200が構成するデータベースの外部スキーマを生成するマッピング管理部612と、を備える。
【選択図】
図2
【特許請求の範囲】
【請求項1】
業務によって生成されたデータベースの外部スキーマを生成する外部スキーマ生成装置であって、
前記データベースに含まれるデータの各カラムと、前記業務の目標を示す指標値に関する目標情報の各項目との類似度に基づいて、前記目標情報の各項目に対応する前記カラムを対応カラムとして特定する特定部と、
前記対応カラムに基づいて、前記外部スキーマを生成する生成部と、を有する外部スキーマ生成装置。
【請求項2】
前記データベースに含まれるデータに関するメタデータに基づいて、前記類似度を算出する算出部をさらに有する、請求項1に記載の外部スキーマ生成装置。
【請求項3】
前記生成部は、前記対応カラムを含むデータに共通するカラムである共通カラムを結合キーとして当該データを結合して前記外部スキーマを生成する、請求項1に記載の外部スキーマ生成装置。
【請求項4】
前記目標情報の項目は、前記指標値を算出するために使用する使用データを含む、請求項1に記載の外部スキーマ生成装置。
【請求項5】
前記目標情報の項目は、前記指標値を算出する算出方法を含む、請求項1に記載の外部スキーマ生成装置。
【請求項6】
複数の前記目標情報が階層化されており、
前記特定部は、前記外部スキーマの生成対象となる前記目標情報である対象目標情報ごとに、当該対象目標情報の各項目に対応する前記対応カラムを特定し、
前記生成部は、前記対象目標情報ごとに、前記外部スキーマを生成する、請求項1に記載の外部スキーマ生成装置。
【請求項7】
前記特定部は、指定された前記目標情報と当該目標情報の下位の階層の目標情報とを前記対象目標情報とする、請求項6に記載の外部スキーマ生成装置。
【請求項8】
前記生成部は、前記対象目標情報の下位の前記目標情報に対する前記外部スキーマである下位スキーマが既に生成されている場合、前記下位スキーマにおける結合キーを用いて前記対象目標情報の前記外部スキーマを生成する、請求項6に記載の外部スキーマ生成装置。
【請求項9】
前記生成部は、前記対象目標情報が当該対象目標情報の下位に前記目標情報が存在しないリーフ情報の場合、当該対象目標情報の上位の目標情報と同じ目標情報の下位の目標情報であり、かつ、前記対象目標情報と同じ階層のリーフ情報である兄弟リーフ情報が存在し、さらに、当該兄弟リーフ情報に対する前記外部スキーマである兄弟スキーマが存在する場合、当該兄弟スキーマにおける結合キーを用いて、前記対象目標情報の前記外部スキーマを生成する、請求項6に記載の外部スキーマ生成装置。
【請求項10】
業務によって生成されたデータベースの外部スキーマを生成する外部スキーマ生成装置による外部スキーマ生成方法であって、
前記データベースに含まれるデータの各カラムと、前記業務の目標を示す指標値に関する目標情報の各項目との類似度に基づいて、各項目に対応する前記カラムを対応カラムとして特定し、
前記対応カラムに基づいて、前記外部スキーマを生成する、外部スキーマ生成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、外部スキーマ生成装置及び外部スキーマ生成方法に関する。
【背景技術】
【0002】
業務において生成されたデータベースは様々な用途のアプリケーションにて活用されている。
【0003】
業務の担当者は、業務に関する知識を有しているものの、データベースに関する知識及びアプリケーションを設計するためのプログラムに関する知識などを有していないため、アプリケーションの開発は、通常、業務の担当者とは別の開発者に依頼される。
【0004】
しかしながら、開発者は、通常、業務に関する知識を有していないため、アプリケーションで使用するデータとデータベースに含まれるデータとの間のマッピングに手間取ったり、場合によっては、業務に関する知識を学習したりする必要が生じる。
【0005】
これに対して特許文献1には、ユーザに対して様々なユーザインタフェースを提供して、ドラッグ&ドロップなどの操作に応じて、バックエンドで自動的にアプリケーションで使用するデータとデータベース内のデータとのマッピングなどを行うことで、アプリケーションを容易に作成する技術が開示されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】米国特許2017/0115968号明細書
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1に記載の技術は、業務の担当者に対するアプリケーションの作成を支援することを目的としており、ユーザがドラッグ&ドロップなどの操作に応じて指定したデータと、データベース内のデータとが完全に一致していなければならず、業務に関する知識を有していない開発者にとっては使い勝手が悪い。
【0008】
本開示の目的は、アプリケーションの開発者にとって使い勝手の良い外部スキーマを提供することが可能な外部スキーマ生成装置及び外部スキーマ生成方法を提供することである。
【課題を解決するための手段】
【0009】
本開示の一態様に従う外部スキーマ生成装置は、業務によって生成されたデータベースの外部スキーマを生成する外部スキーマ生成装置であって、前記データベースに含まれるデータの各カラムと、前記業務の目標を示す指標値に関する目標情報の各項目との類似度に基づいて、各項目に対応する前記カラムを対応カラムとして特定する特定部と、前記対応カラムに基づいて、前記外部スキーマを生成する生成部と、を有する。
【発明の効果】
【0010】
本発明によれば、アプリケーションの開発者にとって使い勝手の良い外部スキーマを提供することが可能になる。
【図面の簡単な説明】
【0011】
【
図1】本開示の一実施形態のビュー生成装置のハードウェア構成を示す図である。
【
図2】本開示の一実施形態のビュー生成装置の機能的な構成を示す図である。
【
図11】メタデータ抽出処理の一例を説明するためのフローチャートである。
【
図12】リネージ管理処理の一例を説明するためのフローチャートである。
【
図13】KPIツリー管理処理の一例を説明するための図である。
【
図14】全体処理の一例を説明するためのフローチャートである。
【
図15】適応マッピング処理の一例を説明するためのフローチャートである。
【
図16】類似性判定処理の一例を説明するためのフローチャートである。
【
図17】ビュー生成処理の一例を説明するためのフローチャートである。
【発明を実施するための形態】
【0012】
以下、本開示の実施形態について図面を参照して説明する。
【0013】
図1は、本開示の一実施形態のビュー生成装置のハードウェア構成を示す図である。
図1に示すビュー生成装置100は、データベースの外部スキーマであるビューを生成して提供する外部スキーマ生成装置である。ビュー生成装置100は、記憶装置101と、プロセッサ102と、メモリ103と、通信部104と、入力インタフェース105と、出力インタフェース106とを有し、これらバス107を介して相互に接続されている。なお、外部スキーマは、ビューに限らず、マテリアルビューなどでもよい。
【0014】
記憶装置101は、プロセッサ102の動作を規定するプログラム、及び、そのプログラムによって使用及び生成される種々のデータを記憶する。プロセッサは、例えば、CPU(Central Processing Unit)であり、記憶装置101に記憶されたプログラムをメモリ103に読み出し、メモリ103を利用してプログラムに応じた処理を実行する。通信部104は、外部装置であるクライアント装置110とネットワーク120を介して相互に通信可能に接続し、クライアント装置110に対して種々の情報の送受信を行う。入力インタフェース105は、ビュー生成装置100を利用するユーザから種々の情報を受け付ける入力部である。出力インタフェース106は、種々の情報を出力(例えば、表示)する出力部である。なお、クライアント装置110は、ビュー生成装置100を利用するユーザにて使用される。
【0015】
図2は、ビュー生成装置100の機能的な構成を示す図である。
図2に示すように記憶装置101は、データ200と、メタデータ300と、リネージ関連情報400と、KPIツリー(Key Performance Indicator Tree)500とを記憶する。また、プロセッサ102は、記憶装置101に記憶されたプログラム(図示せず)を実行することで、メタデータ抽出部601と、リネージ管理部602と、KPIツリー管理部603と、適応マッピング(Adaptive Mapping)部604とを実現する。
【0016】
図3は、データ200の一例を示す図である。データ200は、業務によって生成されるデータベースを構成するデータである。
【0017】
図3の例では、データ200として、業務で使用する設備(Equipment)に関する設備データ201と、業務の手順(Procedure)に関する手順データ202と、業務で行われた操作の記録である操作ログ(Operation_log)に関する操作ログデータ203と、業務における計画(Plan)に関する計画データ204とを含む。各データ201~204は、1以上のカラム210を有するテーブル構造を有している。
【0018】
図4は、メタデータ300の一例を示す図である。メタデータ300は、データ200に関するデータであり、例えば、データ200の種類ごとに生成される。
図4の例では、メタデータ300として、設備データ201に関するメタデータ301と、手順データ202に関するメタデータ302とが示されている。メタデータ300は、例えば、データ200の名称であるテーブル名310、及び、データ200の各カラムの名称であるカラム名311などを示す。なお、メタデータ300は、テーブル名及びカラム名だけでなく、それらに付随する任意の情報を有してもよい。
【0019】
図5及び
図6は、リネージ関連情報400の一例を示す図である。リネージ関連情報は、データ200の来歴に関する情報であり、
図5及び
図6の例では、リネージ関連情報400として、テーブルアクセスログ410と、カラムアクセスログ420と、ジョブ情報430と、リネージ記録情報440と、データセット情報450とを含む。
【0020】
テーブルアクセスログ410は、テーブル構造を有するデータ200に対するアクセスの履歴を示す情報であり、カラム411~414を含む。カラム411は、アクセスを識別する識別情報であるIDを格納する。カラム412は、アクセスされたデータを識別する識別情報であるデータID(DID)を格納する。カラム413は、データにアクセスされた時刻であるアクセス時間(ACCESS_TIME)を格納する。カラム414は、データにアクセスしたジョブを識別するジョブID(JOB_ID)を格納する。
【0021】
カラムアクセスログ420は、データ200内のカラムに対するアクセスの履歴を示す情報であり、カラム421~425を含む。カラム421は、アクセスを識別するIDを格納する。カラム422は、アクセスされたカラムを有するデータ200の名称であるテーブル名(TABLE_NAME)を格納する。カラム423は、アクセスされたカラムの名称であるカラム名を格納する。カラム424は、カラムにアクセスされた時刻であるアクセス時間を格納する。カラム425は、カラムにアクセスしたジョブを識別するジョブIDを格納する。
【0022】
ジョブ情報430は、データ200にアクセスするジョブに関する情報であり、カラム431~433を含む。カラム431は、ジョブIDを格納する。カラム432は、ジョブを発生させる発生源を示すジョブ発生情報を格納する。本実施形態では、ジョブ発生源として、SQL(Structured Query Language)文が示されているが、ジョブ発生源は、SQL文に限らず、クエリ又はプログラムなどでもよい。カラム433は、ジョブの名称であるジョブ名(JOB_NAME)を格納する。
【0023】
リネージ記録情報440は、データ200の来歴を示すリネージデータであり、カラム441~443を含む。カラム441は、生成元のデータ200であるソースデータを識別するソースID(SOURCE_ID)を格納する。カラム442は、ソースデータから生成されたデータ200であるターゲットデータを識別するターゲットID(TARGET_ID)を格納する。カラム443は、ターゲットデータを生成したジョブを識別するジョブIDを格納する。
【0024】
データセット情報450は、データ200のリストであり、カラム451~453を含む。カラム451は、データ200のデータIDを格納する。カラム452は、データ200のテーブル名を格納する。カラム453は、データ200がビューか否かを示すビューフラグ(VIEW_FLG)を格納する。ビューフラグは、
図8の例では、データ200がビューの場合、「1」を示し、データ200がビューでない場合、「0」を示す。
【0025】
図7は、KPIツリー500の一例を示す図である。KPIツリー500は、業務の大目標を達成するために必要な要素を記述した情報であり、各要素に対応するノードと、そのノード間の関係を示すリンクとを含むツリー構造(階層構造)を有するデータである。本実施形態では、ツリー構造の各階層をランク(RANK)と呼び、最上層のランクから順にランク1、ランク2、…と呼ぶことがある。また、ノードと接続され、かつ、そのノードよりも上層のノードを親ノード、ノードと接続され、かつ、そのノードよりも下層のノードを子ノードと呼ぶこともある。
【0026】
KPIツリー500は、
図7の例では、各ノードに関するノード情報を纏めたノードリスト510と、ノード間の関係を示すリンク情報502とを有する。
【0027】
ノードリスト510は、カラム511~515を含む。カラム511は、ノードを識別するノードID(NODE_ID)を格納する。カラム512は、ノードのカテゴリ(CATEGORY)を格納する。カラム513は、ノードにおける目標を示す指標値であるKPIを格納する。カラム514は、KPIを算出する方法(METHOD)であるKPI算出方法を格納する。カラム515は、KPIを算出するために使用するデータ(DATA)である使用データを格納する。なお、ノードリスト510の各レコードが、そのレコードのカラム511に格納されたノードIDのノードに関するノード情報である。また、ノード情報の各フィールドを項目と呼ぶこともある。
【0028】
リンク情報520は、カラム521~523を含む。カラム521は、ノードIDを格納する。カラム522は、ノードIDのノードの親ノードを識別する親ノードID(PARENT_ID)を格納する。カラム523は、ノードIDのノードの子ノードを識別する子ノードID(CHILD_ID)を格納する。子ノードが存在しない場合、カラム523は、「NULL」を格納する。
【0029】
図8は、KPIツリー500のツリー構造を示す図である。
図8の例では、ノード1~4を有するツリー構造が示されている。ノード1がランク1に所属し、ノード2がランク2に所属し、ノード3及び4がランク2に所属している。このとき、例えば、ノード2から見た場合、ノード1が親ノード、ノード3及び4が子ノードとなる。
【0030】
図2の説明に戻る。メタデータ抽出部601は、データ200からメタデータ300を抽出する。リネージ管理部602は、リネージ関連情報400を管理する。例えば、リネージ管理部602は、リネージ記録情報440を生成する。KPIツリー管理部603は、KPIツリー500を管理する。例えば、KPIツリー管理部603は、ユーザからの入力に従ってKPIツリーの生成及び更新を行う。
【0031】
適応マッピング部604は、データ200の外部スキーマであるビューを生成する。本実施形態では、適応マッピング部604は、KPIツリー500のノードごとにビューを生成する。
【0032】
適応マッピング部604は、具体的には、全体管理部610と、類似性判定部611と、マッピング管理部612とを有する。全体管理部610は、KPIツリー500の各ノードの各項目に対応するデータ200のカラムである対応カラムをマッピング先として特定する適応マッピング処理を実行する特定部である。類似性判定部611は、メタデータ300に基づいて、KPIツリー500の各ノードの各項目とデータ200のカラムとの類似度を算出する算出部である。類似度は、全体管理部610の適応マッピング処理にて使用される。マッピング管理部612は、全体管理部610による適応マッピング処理の結果に基づいて、KPIツリー500の各ノードのビューを生成する生成部である。また、マッピング管理部612は、各ノードのビューのリストを示すマッピングデータも生成する。
【0033】
図9は、マッピングデータの一例を示す図である。
図9に示すマッピングデータ700は、マッピングリスト710と、ビューリスト720とを含む。
【0034】
マッピングリスト710は、KPIツリー500のノードとビューとの対応関係を示す情報であり、
図9の例では、カラム711~713を含む。カラム711は、マッピング(対応付け)を識別するマッピングID(MAP_ID)を格納する。カラム712は、ノードのノードID(NODE_ID)を格納する。カラム713は、ノードに対応するビューを識別するビューID(VIEW_ID)を格納する。
【0035】
ビューリスト720は、ビューのリストであり、
図9の例では、カラム721~722を含む。カラム721は、ビューのビューIDを格納する。カラム722は、ビューの名称であるビュー名(VIEW_NAME)を格納する。
【0036】
図10は、ビューの一例を示す図である。
図10に示すビュー800は、あるノードに対応するビューの一例であり、データ200に含まれるカラムのうち、そのノードの項目に対応する対応カラムである複数のカラム801を含む。
【0037】
図11は、メタデータ抽出部601によるメタデータ抽出処理の一例を説明するためのフローチャートである。
【0038】
メタデータ抽出処理では、メタデータ抽出部601は、先ず、クライアント装置110から、データ200にアクセスするためのアクセス情報を受信する(ステップS101)。アクセス情報は、例えば、ホスト名、ポート番号、ユーザ名及びパスワードなどである。
【0039】
続いて、メタデータ抽出部601は、受信したアクセス情報に基づいてデータ200にアクセスし、そのデータからメタデータ300に必要な情報を抽出する(ステップS102)。メタデータ300に必要な情報は、例えば、データのテーブル名及びデータの各カラムのカラム、及び、それらに付随する情報などである。必要な情報の抽出は、例えば、既存のデータカタログツールなどを用いて行うことができる。
【0040】
メタデータ抽出部601は、抽出した情報をメタデータ300として記憶装置101に記憶し(ステップS103)、処理を終了する。
【0041】
図12は、リネージ管理部602によるリネージ管理処理の一例を説明するためのフローチャートである。
【0042】
リネージ管理処理では、リネージ管理部602は、先ず、クライアント装置110から、データ200にアクセスするためのアクセス情報を受信する(ステップS201)。
【0043】
続いて、リネージ管理部602は、受信したアクセス情報に基づいてデータ200にアクセスし、所定のタイミングでステップS203~S204の処理を繰り返すループ処理(A)を開始する(ステップS202)。所定のタイミングは、定期的なタイミング、又は、アクセスログ(テーブルアクセスログ410及びカラムアクセスログ420)が更新されたタイミングなどである。
【0044】
ループ処理(A)では、リネージ管理部602は、アクセスログを確認して、前回確認したタイミング以降におけるデータ200へのアクセスに関するアクセス内容を抽出する(ステップS203)。リネージ管理部602は、抽出したアクセス内容に基づいて、記憶装置101に記憶されたリネージ記録情報440を更新する(ステップS204)。
【0045】
その後、所定の条件が満たされると、リネージ管理部602は、ループ処理を抜け(ステップS205)、データとのアクセスを切断し(ステップS206)、処理を終了する。
【0046】
図13は、KPIツリー管理部603によるKPIツリー管理処理の一例を説明するための図である。
【0047】
KPIツリー管理部603は、クライアント装置110から、KPIツリーに追加するノードである新規ノードに関する新規ノード情報を受信する(ステップS301)。新規ノード情報は、例えば、新規ノードの内容(ノードID、カテゴリ、KPI、KPI算出方法及び使用データなど)と、新規ノードの親子関係(親ノードID及び子ノードIDなど)とを含む。
【0048】
KPIツリー管理部603は、新規ノード情報に基づいて、記憶装置101に記憶されたKPIツリー500を更新して(ステップS302)、処理を終了する。
【0049】
図14は、適応マッピング部604による全体処理の一例を説明するためのフローチャートである。
【0050】
全体処理では、適応マッピング部604の全体管理部610は、クライアント装置110から、ビューの生成対象を指定する対象指定情報を受信する。対象指定情報は、ビューの生成対象となるKPIツリーであるターゲットKPIツリーと、ビューの生成対象となる最上位のノードであるターゲットノードとを示す。全体管理部610は、対象指定情報に基づいて、ターゲットKPIツリーを記憶装置101から取得する(ステップS401)。適応マッピング部604は、ターゲットKPIツリーとメタデータ300とに基づいて、ターゲットKPIツリーにおけるターゲットノード及びそれよりも下位のノードをビューの生成対象である対象ノードとし、それらの対象ノードの各項目に対応する対応カラムを決定する適応マッピング処理(
図15参照)を実行する(ステップS402)。適応マッピング部604は、適応マッピング処理の処理結果に基づいてビューを生成して出力するビュー生成処理(
図17参照)を実行し(ステップS403)、処理を終了する。
【0051】
図15は、
図14のステップS402の適応マッピング処理の一例を説明するためのフローチャートである。
【0052】
適応マッピング処理では、適応マッピング部604の全体管理部610は、対象指定情報に基づいて、ターゲットKPIツリーからターゲットノードを特定する(ステップS501)。適応マッピング部604は、対象ノードの初期値としてターゲットノードを設定する(ステップS502)。
【0053】
全体管理部610は、深さ優先探索の手順で対象ノードを変えながら、ターゲットノード以下の各ノードの各項目のマッピング先が決定されるまで、ステップS501~S515を処理を繰り返すループ処理(B)を開始する(ステップS503)。深さ探索の手順とは、対象ノードがビューの定義されているノードとなるまで、対象ノードを初期値(ターゲットノード)から順にランクを大きくしていき(階層を下げていき)、対象ノードがビューの定義されているノードとなると、反対に対象ノードをターゲットノードのビューが生成されるまでランクを下げていく(階層を上げていく)ことを指す。
【0054】
ループ処理(B)では、全体管理部610は、対象ノードがリーフノードか否かを判定する(ステップS504)。
【0055】
対象ノードがリーフノードの場合(ステップS504:Yes)、全体管理部610は、対象ノードと同じ親ノードを有し、かつ対象ノードと同じランクのリーフノードである兄弟リーフノードが存在し、さらに、その兄弟リーフノードのビューが既に存在するか否かを確認する(ステップS505)。
【0056】
兄弟リーフノードのビューが存在する場合(ステップS505:Yes)、全体管理部610は、対象ノードのノード情報、メタデータ300及びリネージ関連を類似性判定部611に送信し、対象ノードのノード情報の各項目に対するマッピング先の候補を示すマッピング候補情報を生成するマッピング処理を行う。本実施形態では、ノード情報の使用データのマッピング先がデータ200のカラムとなり、ノード情報のKPI算出方法のマッピング先がジョブ発生源となる。このとき、使用データのマッピング先の候補となるカラムを有するデータ200が複数存在する場合、全体管理部610は、その複数のデータ200に共通するカラムである共通カラムと、兄弟リーフノードのビューの結合キーとを、対象ノードのビューの結合キーの候補としてマッピング候補情報に追加する(ステップS506)。
【0057】
一方、兄弟リーフノードの外部スキーマが定義されていない場合(ステップS505:No)でも、全体管理部610は、ステップS506と同様な処理を行う。ただし、使用データのマッピング先の候補となるカラムを有するデータ200が複数存在する場合、全体管理部610は、その複数のデータ200に共通するカラムである共通カラムを、対象ノードのビューの結合キーの候補としてマッピング候補情報に追加する。
(ステップS507)。
【0058】
ステップS506又はS507の処理が終了すると、全体管理部610は、マッピング候補情報において、対象ノードの使用データにデータ200のカラムがマッピングされているか(使用データに対応するカラムの候補はあるか)否かを確認する(ステップS508)。
【0059】
使用データにカラムがマッピングされている場合(ステップS508:Yes)、全体管理部610は、マッピング候補情報に対して、対象ノードのノード情報の項目(使用データ及びKPI算出方法)ごとに、類似度が高い順にマッピング先の候補を並べるソートを行う(ステップS509)。全体管理部610は、対象ノードのノード情報の項目ごとに類似度が高い方から所定数のマッピング先の候補をマッピング先として決定し、そのマッピング先を示すそのマッピング情報と対象ノードのノード情報とをマッピング管理部612に送信する(ステップS510)。所定数は、例えば、1以上である。
【0060】
使用データに対してカラムがマッピングされていない場合(ステップS508:No)、適応マッピング部604は、その使用データの修正又は追加をクライアント装置110を介してユーザに促す(ステップS511)。全体管理部610は、ユーザからクライアント装置110を介して、使用データの修正又は追加に関する要求を受信し、その要求に従って対象ノードの使用データに対する修正又は追加を行い(ステップS512)、ステップS505の処理に戻る。
【0061】
また、対象ノードがリーフノードでない場合(ステップS504:No)、全体管理部610は、マッピングリスト710に基づいて、対象ノードの下位のノード(子ノード)に対応するビューである下位ノードビュー(下位スキーマ)が存在するか否かを判断する(ステップS513)。
【0062】
下位ノードビューが存在しない場合(ステップS513:No)、当該対象ノードに対する処理を終了する。一方、下位ノードビューが存在する場合(ステップS513:Yes)、全体管理部610は、マッピングリストから下位ノードビューの定義を取得する(ステップS514)。そして、全体管理部610は、ステップS506と同様な処理を行う。ただし、また、全体管理部610は、下位ノードビューの定義に基づいて、下位ノードビューに含まれるデータ200のカラムを、対象ノードの使用データのマッピング候補として追加し、下位ノードビューの結合キーを対象ノードのビューの結合キーの候補としてマッピング候補に追加する(ステップS515)。その後、ステップS508の処理が実行される。
【0063】
そして、ターゲットノードの以下の全てのノードについてマッピング情報が生成されると、全体管理部610は、ループ処理(B)を抜けて(ステップS516)、処理を終了する。
【0064】
図16は、類似性判定部611による類似性判定処理の一例を説明するためのフローチャートである。
【0065】
類似性判定処理では、類似性判定部611は、処理対象となる2つのデータセット1及び2を特定する(ステップS601)。データセット1は、例えば、データ200のカラムを要素とする集合であり、データセット2は、例えば、対象ノードのノード情報の項目を要素とする集合である。
【0066】
類似性判定部611は、データセット1及び2の要素の組み合わせごとに、ステップS603~605の処理を繰り返すループ処理(C)を開始する(ステップS602)。
【0067】
ループ処理では、先ず、類似性判定部611は、メタデータ300を用いて、対象の組み合わせの要素間の類似度を計算する(ステップS603)。例えば、類似性判定部611は、各要素に関する情報(名称、型、内容(データ自体)、要素に付与された説明情報)ごとに類似度を算出する。類似度は、例えば、レーベンシュタイン距離であるが、文字列間の類似度を算出できるものであれば、これに限らない。
【0068】
類似性判定部611は、類似度が所定の閾値以上か否かを判定する(ステップS604)。なお、類似性判定部611は、項目等に関する情報ごとに類似度を算出した場合、各項目の類似度の統計値(例えば、平均値又は合計値など)が閾値以上か否かを判定する。
【0069】
類似度が閾値以上の場合(ステップS604:Yes)、類似性判定部611は、対象の組み合わせの要素を互いに対応するマッピング先の候補として決定する(ステップS605)。一方、類似度が閾値未満の場合(ステップS604:No)、類似性判定部611は、ステップS605の処理をスキップする。
【0070】
そして、全ての組み合わせについてステップS603~S605の処理が実行されると、類似性判定部611は、ループ処理(C)を抜けて(ステップS606)、処理を終了する。
【0071】
以上の処理により、類似度が高い要素同士をマッピング候補とすることができる。本実施形態では、結果的に、ノード情報の使用データとデータ200のカラムとがマッピングされる。また、同様にして、ノード情報のKPI算出方法とジョブ発生源とがマッピングすることができる。
【0072】
図17は、マッピング管理部612によるビュー生成処理の一例を説明するためのフローチャートである。
【0073】
マッピング管理処理では、マッピング管理部612は、対象ノードのノード情報である対象ノード情報とマッピング情報とを受信する(ステップS701)。マッピング管理部612は、マッピング情報ごとにステップS703~S711の処理を繰り返すループ処理(D)を開始する(ステップS702)。
【0074】
マッピング管理部612は、当該マッピング情報と同じマッピング情報から生成された既存のビューである既存表が存在するか否かを判断する(ステップS703)。
【0075】
既存表が存在する場合(ステップS703:Yes)、マッピング管理部612は、既存表を識別するビューIDを、対象ノードに対応するビューのビューIDとしてビューリストに追加する(ステップS704)。なお、ビューIDの取得は、例えば、既存のDBMS(Data Base Management System)などにて行うことができる。
【0076】
マッピング管理部612は、対象ノード情報に基づいて、対象ノードのノードIDをKPIツリー500のノードリスト501から取得する(ステップS705)。マッピング管理部612は、取得した対象ノードのノードIDと対象ノードに対応するビューのビューIDとを対応付けてマッピングリストに追加する(ステップS706)。
【0077】
また、既存表が存在しない場合(ステップS703:No)、マッピング管理部612は、マッピング情報に基づいて、対象ノードのビューの定義を生成する(ステップS707)。例えば、マッピング管理部612は、マッピング情報における対象ノードのノード情報の各項目に対応する対応カラムのそれぞれを有するデータをマッピング情報に含まれる結合キーで結合したものをビューの定義とする。このとき、ビューの名称は、ランダムに生成してもよいし、ユーザに入力させてもよいし、ユーザに予め入力させておいたものを使用してもよい。また、マッピング管理部612は、ジョブ発生源を用いてビューを定義してもよい。例えば、ビューの定義をSQLを用いて記載すると、以下のように表される。
create view xxx
select yyyy from “ジョブ発生源”
…
なお、KPI算出方法の類似するKPIはジョブ発生源も類推できる。
【0078】
マッピング管理部612は、ビューの定義に基づいて、ビューを生成する(ステップS708)。マッピング管理部612は、生成したビューのビューIDを取得してビューリストに追加する(ステップS709)。ビューの生成及びビューIDの取得は、例えば、DBMSにて行うことができる。
【0079】
マッピング管理部612は、対象ノード情報に基づいて、対象ノードのノードIDをKPIツリー500のノードリスト501から取得する(ステップS710)。マッピング管理部612は、取得した対象ノードのノードIDと対象ノードに対応するビューのビューID(生成したビューのビューID)とを対応付けてマッピングリストに追加する(ステップS711)。
【0080】
そして、マッピング管理部612は、全てのマッピング情報についてステップS703~S711の処理を行うと、ループ処理(D)を抜けて(ステップS712)、処理を終了する。
【0081】
以上説明したように本実施形態によれば、全体管理部610は、データ200の各カラムとKPIツリー500の各項目との類似度に基づいて、KPIツリー500の各項目に対応するデータ200のカラムを対応カラムとして特定する。マッピング管理部612は、対応カラムに基づいて、データ200が構成するデータベースの外部スキーマを生成する。このため、業務の内容を反映した外部スキーマを自動的に生成することが可能となるため、業務に関する知識に乏しいアプリケーションの開発者にとって使い勝手の良い外部スキーマを提供することが可能になる。
【0082】
また、本実施形態では、類似性判定部611は、データ200に関するメタデータ300に基づいて、データ200の各カラムとKPIツリー500の各項目との類似度を算出する。このため、類似度を容易に算出することが可能となる。
【0083】
また、本実施形態では、マッピング管理部612は、対応カラムを含むデータに共通するカラムである共通カラムを結合キーとしてそれらのデータを結合して外部スキーマを生成する。このため、業務の内容を反映したより適切な外部スキーマを生成することが可能となる。
【0084】
また、本実施形態では、全体管理部610は、KPIを算出するために使用する使用データに対応するカラムを対応カラムとして特定する。このため、業務の内容を反映したより適切な外部スキーマを生成することが可能となる。
【0085】
また、本実施形態によれば、指定されたターゲットノード以下のノードが対象ノードとして選択され、その対象ノードごとにビューが生成される。このため、業務の内容に応じた適切な外部スキーマを生成することが可能となる。
【0086】
また、本実施形態によれば、対象ノードの兄弟リーフノード及び子ノードのビューの結合キーが対象ノードのビューの結合キーとして用いられる。このため、業務の内容に応じた適切な外部スキーマを生成することが可能となる。
【0087】
上述した本開示の実施形態は、本開示の説明のための例示であり、本開示の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本開示の範囲を逸脱することなしに、他の様々な態様で本開示を実施することができる。
【符号の説明】
【0088】
100:ビュー生成装置 101:記憶装置 102:プロセッサ 103:メモリ 104:通信部 105:入力インタフェース 106:出力インタフェース 107:バス 110:クライアント装置 120:ネットワーク 200:データ 300:メタデータ 400:リネージ関連情報 500:KPIツリー 601:メタデータ抽出部 602:リネージ管理部 603:KPIツリー管理部 604:適応マッピング部 610:全体管理部 611:類似性判定部 612:マッピング管理部