(57)【要約】【課題】ＥＴＬプログラムに係るデータを管理することができるデータ管理装置を提供する。【解決手段】予め定められた定義情報に基づいて、ＥＴＬプログラムにおける処理のまとまりを示すステップごとに、データが流れる量が変化するステップを示すデータ量変化点であるか否かを解析し、データ量変化点においてデータが流れる先を示す遷移先のステップを解析するＥＴＬプログラム解析部と、ＥＴＬプログラム解析部で解析された遷移先のステップごとに、ＥＴＬプログラムに入力されたデータが含まれているか否かを判定し、ＥＴＬプログラムにおいてデータが流れる経路を示すデータフローパスをデータに対応付けるデータフローパス解析部と、データフローパス解析部で対応付けられたデータおよびデータフローパスを出力する出力制御部と、を設けるようにした。【選択図】図１
2019207538.tif 000002
【特許請求の範囲】
【請求項１】
予め定められた定義情報に基づいて、ＥＴＬ（Ｅｘｔｒａｃｔ／Ｔｒａｎｓｆｏｒｍ／Ｌｏａｄ）プログラムにおける処理のまとまりを示すステップごとに、データが流れる量が変化するステップを示すデータ量変化点であるか否かを解析し、前記データ量変化点においてデータが流れる先を示す遷移先のステップを解析するＥＴＬプログラム解析部と、
前記ＥＴＬプログラム解析部で解析された遷移先のステップごとに、前記ＥＴＬプログラムに入力されたデータが含まれているか否かを判定し、前記ＥＴＬプログラムにおいて前記データが流れる経路を示すデータフローパスを前記データに対応付けるデータフローパス解析部と、
前記データフローパス解析部で対応付けられたデータおよびデータフローパスを出力する出力制御部と、
を備えることを特徴とするデータ管理装置。
【請求項２】
前記出力制御部は、前記ＥＴＬプログラムのステップのうち、前記ＥＴＬプログラム解析部で解析されたデータ量変化点と前記データ量変化点における遷移先のステップとを識別可能に表示し、かつ、前記データフローパス解析部で対応付けられたデータおよびデータフローパスを表示する、
ことを特徴とする請求項１に記載のデータ管理装置。
【請求項３】
前記ＥＴＬプログラムに入力されたデータのうち、同じデータフローパスが対応付けられたデータの集合の各々について、データの項目ごとに特徴を抽出する特徴抽出部と、
前記特徴抽出部により抽出された項目の特徴に基づいて、テストデータを生成するテストデータ生成部と、
を備えることを特徴とする請求項１に記載のデータ管理装置。
【請求項４】
前記ＥＴＬプログラム解析部により解析されたデータ量変化点ごとに、前記ＥＴＬプログラムに入力されたデータが遷移先のステップに流れる量および遷移先のステップに流れない量をデータフローバランスとして求めるデータフローバランス解析部と、
前記テストデータ生成部により生成されたテストデータをデータフローバランス解析部に処理させて求められたデータフローバランスが生成条件のデータフローバランスを満たしているか否かを判定するテストデータ検証部と、
を備えることを特徴とする請求項３に記載のデータ管理装置。
【請求項５】
前記テストデータ検証部は、前記生成条件のデータフローバランスを満たしていないと判定した場合、前記テストデータ生成部により生成されたテストデータが一定量を超えたか否かを判定し、
前記特徴抽出部は、前記テストデータ検証部により前記一定量を超えたと判定された場合、前記入力されたデータと、前記テストデータ生成部により生成されたテストデータとのうち、同じデータフローパスが対応付けられたデータの集合の各々について、データの項目ごとに特徴を抽出する、
ことを特徴とする請求項４に記載のデータ管理装置。
【請求項６】
前記テストデータ検証部は、前記生成条件のデータフローバランスを満たしていないと判定した場合、前記テストデータ生成部により生成されたテストデータが一定量を超えたか否かを判定し、
前記テストデータ生成部は、前記テストデータ検証部により前記一定量を超えていないと判定された場合、前記特徴抽出部により抽出された項目の特徴に基づいて、更にテストデータを生成する、
ことを特徴とする請求項４に記載のデータ管理装置。
【請求項７】
前記出力制御部は、前記データフローバランス解析部で求められたデータフローバランスを前記生成条件のデータフローバランスの初期値として設定し、前記初期値を変更可能な画面を表示する、
ことを特徴とする請求項４に記載のデータ管理装置。
【請求項８】
ＥＴＬプログラム解析部が、予め定められた定義情報に基づいて、ＥＴＬ（Ｅｘｔｒａｃｔ／Ｔｒａｎｓｆｏｒｍ／Ｌｏａｄ）プログラムにおける処理のまとまりを示すステップごとに、データが流れる量が変化するステップを示すデータ量変化点であるか否かを解析し、前記データ量変化点においてデータが流れる先を示す遷移先のステップを解析する第１のステップと、
データフローパス解析部が、前記ＥＴＬプログラム解析部で解析された遷移先のステップごとに、前記ＥＴＬプログラムに入力されたデータが含まれているか否かを判定し、前記ＥＴＬプログラムにおいて前記データが流れる経路を示すデータフローパスを前記データに対応付ける第２のステップと、
出力制御部が、前記データフローパス解析部で対応付けられたデータおよびデータフローパスを出力する第３のステップと、
を備えることを特徴とするデータ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ管理装置およびデータ管理方法に関し、例えばＥＴＬ（Extract / Transform / Load）プログラムに係るデータに適用して好適なものである。
【背景技術】
【０００２】
近年、企業内に散在する情報資産を統合、分析などするデータマネジメントが注目され、様々な形式のデータを統合して活用するために、ＥＴＬプログラムが導入されている。
【０００３】
ＥＴＬプログラムでは、基幹系システムからデータを抽出し、抽出したデータをデータウェアハウスで利用しやすいように変換し、データウェアハウスに流し込む処理が行われる。
【０００４】
近時、ＥＴＬ処理をしてデータを提供するデータ管理システムからデータを取得する際に、データの取得単位に関わらず効率的なデータ取得を可能とする技術が提案されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１６−０９１３１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特定のデータが他のデータ資産に及ぼす影響などの調査をするためにデータの流れを追跡したいとき、ＥＴＬプログラムの負荷テスト、性能テスト等のテストに用いるデータ（テストデータ）を作成したいとき等、ＥＴＬプログラムに係るデータの管理においては、ＥＴＬプログラムにおけるデータの流れを把握する必要がある。
【０００７】
ここで、特許文献１に記載の技術では、効率的にデータを取得することはできるが、ＥＴＬプログラムにいてどのように各データが流れているかは把握されていない。
【０００８】
また、ＥＴＬプログラムにおける各ステップ（予め定義された処理のまとまり）において、ＪａｖａＳｃｒｉｐｔ（登録商標）の実行、ＳＱＬ（Structured Query Language）の実行、外部プログラムの呼び出しなどができるため、機械的に厳密な静的解析により各データの流れを把握することは困難である。
【０００９】
このように、ＥＴＬプログラムの特徴として、処理の過程でデータの加工を行うことが多く、かつ、複数の分岐を経由するため、任意のステップに到達するための条件は複雑となり、ＥＴＬプログラムにおけるデータの流れを把握するために、時間がかかってしまうという問題がある。
【００１０】
本発明は以上の点を考慮してなされたもので、ＥＴＬプログラムに係るデータを管理することができるデータ管理装置、データ管理方法などを提案しようとするものである。
【課題を解決するための手段】
【００１１】
かかる課題を解決するため本発明においては、予め定められた定義情報に基づいて、ＥＴＬ（Ｅｘｔｒａｃｔ／Ｔｒａｎｓｆｏｒｍ／Ｌｏａｄ）プログラムにおける処理のまとまりを示すステップごとに、データが流れる量が変化するステップを示すデータ量変化点であるか否かを解析し、前記データ量変化点においてデータが流れる先を示す遷移先のステップを解析するＥＴＬプログラム解析部と、前記ＥＴＬプログラム解析部で解析された遷移先のステップごとに、前記ＥＴＬプログラムに入力されたデータが含まれているか否かを判定し、前記ＥＴＬプログラムにおいて前記データが流れる経路を示すデータフローパスを前記データに対応付けるデータフローパス解析部と、前記データフローパス解析部で対応付けられたデータおよびデータフローパスを出力する出力制御部と、を設けるようにした。
【００１２】
また本発明においては、ＥＴＬプログラム解析部が、予め定められた定義情報に基づいて、ＥＴＬ（Ｅｘｔｒａｃｔ／Ｔｒａｎｓｆｏｒｍ／Ｌｏａｄ）プログラムにおける処理のまとまりを示すステップごとに、データが流れる量が変化するステップを示すデータ量変化点であるか否かを解析し、前記データ量変化点においてデータが流れる先を示す遷移先のステップを解析する第１のステップと、データフローパス解析部が、前記ＥＴＬプログラム解析部で解析された遷移先のステップごとに、前記ＥＴＬプログラムに入力されたデータが含まれているか否かを判定し、前記ＥＴＬプログラムにおいて前記データが流れる経路を示すデータフローパスを前記データに対応付ける第２のステップと、出力制御部が、前記データフローパス解析部で対応付けられたデータおよびデータフローパスを出力する第３のステップと、を設けるようにした。
【００１３】
上記構成によれば、対応付けられたデータおよびデータフローパスが出力されるので、例えば、ユーザは、ＥＴＬプログラムにおけるデータの流れを把握できるようなる。
【発明の効果】
【００１４】
本発明によれば、ＥＴＬプログラムに係るデータを管理することができる。
【図面の簡単な説明】
【００１５】
【図１】第１の実施の形態によるデータ管理システムに係る構成の一例を示す図である。
【図２】第１の実施の形態による解析結果管理テーブルの一例を示す図である。
【図３】第１の実施の形態によるデータフローパス管理テーブルの一例を示す図である。
【図４】第１の実施の形態による特徴管理テーブルの一例を示す図である。
【図５】第１の実施の形態によるデータ解析処理に係るフローチャートの一例を示す図である。
【図６】第１の実施の形態によるＥＴＬプログラム解析処理に係るフローチャートの一例を示す図である。
【図７】第１の実施の形態によるデータフローバランス解析処理に係るフローチャートの一例を示す図である。
【図８】第１の実施の形態によるデータフローパス解析処理に係るフローチャートの一例を示す図である。
【図９】第１の実施の形態による特徴抽出処理に係るフローチャートの一例を示す図である。
【図１０】第１の実施の形態によるテストデータの生成に関する処理に係るフローチャートの一例を示す図である。
【図１１】第１の実施の形態によるテストデータ生成処理に係るフローチャートの一例を示す図である。
【図１２】第１の実施の形態によるテストデータ検証処理に係るフローチャートの一例を示す図である。
【図１３】第１の実施の形態による入力ファイル登録画面の一例を示す図である。
【図１４】第１の実施の形態によるＥＴＬプログラムの一例を示す図である。
【図１５】第１の実施の形態によるデータフローパスの判定方法を説明するための図である。
【図１６】第１の実施の形態によるデータフローパスの判定方法を説明するための図である。
【図１７】第１の実施の形態による統計処理エンジンを説明するための図である。
【図１８】第１の実施の形態による解析結果表示画面の一例を示す図である。
【図１９】第１の実施の形態による生成条件設定画面の一例を示す図である。
【発明を実施するための形態】
【００１６】
以下図面について、本発明の一実施の形態を詳述する。
【００１７】
本実施の形態では、特定のデータが他のデータ資産に及ぼす影響などの調査をするためにデータの流れを追跡したいとき、ＥＴＬプログラムの負荷テスト、性能テスト等のテストに用いるデータ（テストデータ）を作成したいとき等に、ＥＴＬプログラムにおけるデータの流れを把握可能な構成について説明する。
【００１８】
例えば、データ・アーキテクチャの複雑化に伴い、様々なデータがどのように利用され、関連し合っているかを追跡して管理することの重要性が高まっている。ＥＴＬプログラムにおけるデータの流れを把握することは、特定のデータが他のデータ資産に及ぼす影響を理解するために役立つ。
【００１９】
また、例えば、ＥＴＬプログラムを組み込んだシステムの開発では、顧客から受領した実データに基づいてテストデータを作成し、負荷テスト、性能テスト等のテストを実施する手法がとられている。テストの際は、受領した実データに基づいてデータ量およびデータフローバランスを調節し、テストの内容に応じた様々なバリエーションのテストデータを作成してテストすることで、システムの品質向上が図られている。
【００２０】
この際、一般的には、作成したテストデータをＥＴＬプログラムに処理させることで、各ステップの入出力データ量を取得することができるため、この情報に基づいてテストデータ作成者は、データフローバランスを確認する。目的のバランスになっていない場合、各ステップの処理を解析して条件を洗い出し、テストデータを条件に合うように再作成（または修正）する。
【００２１】
上述したように、ＥＴＬプログラムの特徴として、処理の過程でデータの加工を行うことが多く、かつ複数の分岐を経由するため、任意のステップに到達するための条件は複雑となり、テストデータの作成には非常に工数がかかる。また、各ステップの延長でＪａｖａＳｃｒｉｐｔ（登録商標）の実行、ＳＱＬ（Structured Query Language）の実行、外部プログラムの呼び出しなどができるため、機械的に厳密な静的解析を行うことは困難である。
【００２２】
この点、ＥＴＬプログラムにおけるデータの流れを把握することで、ＥＴＬプログラムのテストにおいて、任意のデータフローバランスのテストデータを容易に作成することができる。
【００２３】
本実施の形態では、ＥＴＬプログラムにおけるデータの流れの把握に係る構成（データ管理）について主に説明する。
【００２４】
（１）第１の実施の形態
図１において、１は全体として第１の実施の形態によるデータ管理システムを示す。
【００２５】
データ管理システム１は、データ管理装置１０、入力装置１１、出力装置１２などを含んで構成される。
【００２６】
データ管理装置１０は、サーバ装置等の計算機（コンピュータ）であり、ＣＰＵ（Central Processing Unit）１００、主記憶装置１１０、補助記憶装置１２０等を含んで構成される。
【００２７】
ＣＰＵ１００は、プロセッサ、マイクロプロセッサ、コプロセッサ、マイクロコントローラなどである。主記憶装置１１０は、例えば、ＲＡＭ（Random Access Memory）、ＤＲＡＭ（Dynamic Random Access Memory）、ＳＲＡＭ（Static Random Access Memory）などの半導体メモリである。補助記憶装置１２０は、ＨＤＤ（Hard Disk Drive）等の磁気ディスク、ＭＯ（Magneto-Optical Disk）等の光ディスク、磁気テープ、フラッシュメモリ等の半導体メモリなどである。
【００２８】
データ管理装置１０の機能（ＥＴＬプログラム解析部１１１、データフローバランス解析部１１２、データフローパス解析部１１３、特徴抽出部１１４、テストデータ生成部１１５、テストデータ検証部１１６、インタフェース部１１７など）は、例えば、ＣＰＵ１００がプログラムを主記憶装置１１０に読み出して実行すること（ソフトウェア）により実現されてもよいし、専用の回路などのハードウェアにより実現されてもよいし、ソフトウェアとハードウェアとが組み合わされて実現されてもよい。また、データ管理装置１０の機能の一部は、データ管理装置１０と通信可能な他のコンピュータにより実現されてもよい。
【００２９】
ＥＴＬプログラム解析部１１１は、例えば、予め定められた定義情報に基づいて、ＥＴＬプログラムにおける処理のまとまりを示すステップごとに、データが流れる量が変化するステップを示すデータ量変化点であるか否かを解析し、データ量変化点においてデータが流れる先を示す遷移先のステップを解析する。
【００３０】
データフローバランス解析部１１２は、例えば、ＥＴＬプログラム解析部１１１により解析されたデータ量変化点ごとに、ＥＴＬプログラムに入力されたデータが遷移先のステップに流れる量および遷移先のステップに流れない量をデータフローバランスとして求める。
【００３１】
データフローパス解析部１１３は、例えば、ＥＴＬプログラム解析部１１１で解析された遷移先のステップごとに、ＥＴＬプログラムに入力されたデータが含まれているか否かを判定し、ＥＴＬプログラムにおいてデータが流れる経路を示すデータフローパスをデータに対応付ける。
【００３２】
特徴抽出部１１４は、例えば、ＥＴＬプログラムに入力されたデータのうち、同じデータフローパスが対応付けられたデータの集合の各々について、データの項目ごとに特徴を抽出する。
【００３３】
テストデータ生成部１１５は、例えば、特徴抽出部１１４により抽出された項目の特徴に基づいて、テストデータを生成する。
【００３４】
テストデータ検証部１１６は、例えば、テストデータ生成部１１５により生成されたテストデータをデータフローバランス解析部１１２に処理させて求められたデータフローバランスが生成条件のデータフローバランスを満たしているか否かを判定する。また、テストデータ検証部１１６は、生成条件のデータフローバランスを満たしていないと判定した場合、テストデータ生成部１１５により生成されたテストデータ（なお、後述の仮テストデータであってもよいし、教師データであってもよい。）が一定量を超えたか否かを判定する。
【００３５】
なお、テストデータ検証部１１６により一定量を超えていないと判定された場合、テストデータ生成部１１５は、特徴抽出部１１４により抽出された項目の特徴に基づいて、更にテストデータを生成する。他方、テストデータ検証部１１６により一定量を超えたと判定された場合、特徴抽出部１１４は、入力されたデータと、テストデータ生成部１１５により生成されたテストデータとのうち、同じデータフローパスが対応付けられたデータの集合の各々について、データの項目ごとに特徴を抽出する。
【００３６】
インタフェース部１１７は、入力装置１１からの入力を制御したり（入力制御部の一例）、出力装置１２への出力を制御したりする（出力制御部の一例）。インタフェース部１１７は、例えば、データフローパス解析部１１３で対応付けられたデータおよびデータフローパスを出力装置１２に出力する。
【００３７】
なお、データ管理装置１０の機能の詳細については、図５〜図１２を用いて後述する。
【００３８】
また、補助記憶装置１２０は、各種の情報（解析結果管理テーブル１２１、データフローパス管理テーブル１２２、特徴管理テーブル１２３等）を記憶する。なお、解析結果管理テーブル１２１、データフローパス管理テーブル１２２、特徴管理テーブル１２３については、図２〜図４を用いて後述する。
【００３９】
入力装置１１は、ユーザが操作可能なキーボード、ポインティングデバイス等の外部装置であり、ネットワーク、ケーブルなどの通信経路１３を介してデータ管理装置に接続される。
【００４０】
出力装置１２は、ディスプレイ、プリンタ、スピーカ等の外部装置であり、通信経路１３を介してデータ管理装置１０に接続される。例えば、出力装置１２は、各種の画面（後述の入力ファイル登録画面２０、解析結果表示画面７０、生成条件設定画面８０など）を表示したり、（例えば、データフローパス解析部１１３で対応付けられたデータおよびデータフローパス）を紙などの媒体に印刷したりする。
【００４１】
なお、データ管理装置１０は、入力装置１１および出力装置１２を含んで構成されるノートパソコン、タブレット端末等であってもよい。
【００４２】
図２は、解析結果管理テーブル１２１の一例を示す図である。
【００４３】
解析結果管理テーブル１２１には、ＥＴＬプログラム解析部１１１で抽出されたステップに係る情報と、データフローバランス解析部１１２で算出されたデータフローに係る情報とが格納される。
【００４４】
より具体的には、解析結果管理テーブル１２１には、ＥＴＬプログラムを識別可能な名称を示すＥＴＬプログラム名、データ量（レコード数）が変化するステップを示すデータ量変化点、データ量変化点からの遷移先のステップを示す遷移先ステップ、各ステップで推移するデータ量の割合を示すデータフローバランスの情報が対応付けられて格納されている。本例では、ＥＴＬプログラム名およびデータ量変化点が複合主キーとして用いられる。
【００４５】
図３は、データフローパス管理テーブル１２２の一例を示す図である。
【００４６】
データフローパス管理テーブル１２２には、データフローパス解析部１１３で抽出されたデータフローパスに係る情報が格納される。
【００４７】
より具体的には、データフローパス管理テーブル１２２には、ＥＴＬプログラム名、データ入力が行われるステップを識別可能な名称を示すデータ入力ステップ名、データを識別可能な名称を示すデータ名、データを識別可能なデータＩＤ、データフローパスの情報が対応付けられて格納されている。本例では、ＥＴＬプログラム名、データ入力ステップ名、データ名、およびデータＩＤが複合主キーとして用いられる。
【００４８】
図４は、特徴管理テーブル１２３の一例を示す図である。
【００４９】
特徴管理テーブル１２３には、特徴抽出部１１４で抽出された特徴に係る情報が格納される。
【００５０】
より具体的には、特徴管理テーブル１２３には、ＥＴＬプログラム名、データ入力ステップ名、データフローパス、カラム名、特徴（関数）の情報が対応付けられて格納されている。本例では、ＥＴＬプログラム名、データ入力ステップ名、データフローパス、およびカラム名が複合主キーとして用いられる。
【００５１】
図５は、ＥＴＬプログラムに入力されるデータの流れを解析する処理（データ解析処理）に係るフローチャートの一例を示す図である。
【００５２】
まず、インタフェース部１１７は、ＥＴＬプログラムおよび実データの入力を受け付ける（ステップＳ１００）。例えば、インタフェース部１１７は、出力装置１２に表示される入力ファイル登録画面２０を介して、ＥＴＬプログラムおよび実データの入力を受け付ける。なお、入力ファイル登録画面２０については、図１３を用いて説明する。
【００５３】
ここで、実データとは、顧客のシステム環境にある実際のデータをいい、一または複数の項目の情報を含む複数のレコードを含んで構成される。実データの項目については、特に限定されるものではないが、本実施の形態では、予定ＩＤ、予定開始日時、予定完了日時、実績ＩＤ、実績開始日時、実績完了日時、工数、および緊急度であるケースを例に挙げて適宜説明する。
【００５４】
図１３は、入力ファイル登録画面２０の一例を示す図である。
【００５５】
入力ファイル登録画面２０では、画面上部に、解析対象のＥＴＬプログラムを入力するためのファイルパス入力欄２１および参照ボタン２２が設けられている。ファイルパス入力欄２１には、ＥＴＬプログラム（ファイル）が格納されている場所を示すファイルパスが入力される。参照ボタン２２では、ファイルシステムを参照してＥＴＬプログラムのファイルを選択可能である。
【００５６】
例えば、ユーザは、入力装置１１を操作して、参照ボタン２２をクリックしてファイルシステムを参照し、ＥＴＬプログラムのｋｔｒファイルを選択することで、選択されたｋｔｒファイルのファイルパスがファイルパス入力欄２１にセットされる。
【００５７】
また、入力ファイル登録画面２０では、画面下部に、解析対象の実データを入力するためのデータ入力ステップ入力欄２３とファイルパス入力欄２４と参照ボタン２５とユニークキー入力欄２６とが設けられている。データ入力ステップ入力欄２３には、実データの入力を行うステップの名称（データ入力ステップ名）が入力される。ファイルパス入力欄２４には、実データ（ファイル）が格納されている場所を示すファイルパスが入力される。参照ボタン２５では、ファイルシステムを参照して実データのファイルを選択可能である。ユニークキー入力欄２６には、実データのユニークキーの列名（例えば、実データの予定ＩＤ）が入力される。なお、列名は、１つの項目により指定されることも、複数の項目により指定されることもある。
【００５８】
例えば、ユーザは、入力装置１１を操作して、ＥＴＬプログラムのデータ入力ステップ名、実データ、およびユニークキーを入力する。データ入力ステップが複数ある場合、ユーザは、必要に応じて行を追加ボタン２７により追加し、データ入力ステップに対応する実データおよび実データのユニークキーを指定する。
【００５９】
なお、入力については、ファイルからの入力に限られるものではなく、例えば、ＤＢ（database）からの入力であってもよい。この場合、ファイルパスに代えて、ＤＢへのアクセス情報（ＤＢのＩＰアドレス、ユーザ名、パスワード、テーブル名）を入力可能とする。
【００６０】
ユーザは、入力ファイル登録ボタン２８をクリックすることで、実データの解析を指示する（後述のＥＴＬプログラム解析処理が開始される）。
【００６１】
続いて、ＥＴＬプログラム解析処理が行われる（ステップＳ２００）。なお、詳細については図６を用いて後述するが、ＥＴＬプログラム解析処理では、ＥＴＬプログラムのステップの組み合わせパターンからデータ量変化点が洗い出される。
【００６２】
続いて、データフローバランス解析処理が行われる（ステップＳ３００）。なお、詳細については図７を用いて後述するが、データフローバランス解析処理では、ＥＴＬプログラムに実データを処理させ、各ステップの入出力データ量から各データ量変化点のデータフローバランスが算出される。
【００６３】
続いて、特徴抽出処理が行われる（ステップＳ４００）。なお、詳細については図９を用いて後述するが、特徴抽出処理では、同じデータフローパスのデータ群に対して統計処理が行われ、データフローパスごとのデータの特徴が抽出される。
【００６４】
続いて、インタフェース部１１７は、解析処理の結果（解析結果）を出力装置１２に出力し（ステップＳ５００）、データ解析処理を終了する。例えば、インタフェース部１１７は、データフローバランスおよび各レコードのデータフローパスが含まれる解析結果表示画面７０を出力装置１２に表示する。解析結果表示画面７０については、図１８を用いて後述する。
【００６５】
図６は、ＥＴＬプログラム解析処理に係るフローチャートの一例を示す図である。
【００６６】
まず、ＥＴＬプログラム解析部１１１は、入力されたＥＴＬプログラムを開く（ステップＳ２１０）。例えば、ＥＴＬプログラム解析部１１１は、入力ファイル登録画面２０を介して指定されたＥＴＬプログラムを開く。
【００６７】
続いて、ＥＴＬプログラム解析部１１１は、ＥＴＬプログラムのステップ（ステップ定義）ごとに、ステップＳ２２０〜ステップＳ２４０を繰り返す。ＥＴＬプログラム解析部１１１は、全てのステップについて処理を行うと、ＥＴＬプログラム解析処理を終了する。ステップ定義とは、ＥＴＬプログラムに含まれるステップをテキストで定義したものである。なお、ステップ定義については、図１４を用いて説明する。
【００６８】
図１４は、ＥＴＬプログラムの一例（ステップ定義３０の一例）を示す図である。
【００６９】
ステップ定義３０では、ＸＭＬ（Extensible Markup Language）形式で定義した例を示すが、例えば、Ｃ、Ｊａｖａ（登録商標）、Ｐｙｔｈｏｎなどのプログラミング言語、ＳＱＬ文、ＸＭＬ形式、ＪＳＯＮ（JavaScript Object Notation）形式などの形式であってもよい。
【００７０】
ステップ定義３０には、ステップのタイプ、遷移元のステップの名称、遷移先のステップの名称などが記述されている。例えば、＜ｔｙｐｅ＞識別子に「ＦｉｌｔｅｒＲｏｗｓ」が指定されていた場合、このステップは、２つの分岐を持つ条件分岐ステップであり、条件判定が「Ｔｒｕｅ」の場合は＜ｓｅｎｄ＿ｔｒｕｅ＿ｔｏ＞識別子で指定されているステップに遷移し、「Ｆａｌｓｅ」の場合は＜ｓｅｎｄ＿ｆａｌｓｅ＿ｔｏ＞識別子で指定されているステップに遷移することを表す。
【００７１】
ステップＳ２２０では、ＥＴＬプログラム解析部１１１は、ステップ定義を構文解析し、ステップの情報（例えば、処理対象のステップのタイプ、遷移元（処理対象）のステップの名称、および遷移先のステップの名称）を取得する。
【００７２】
ステップＳ２３０では、ＥＴＬプログラム解析部１１１は、システムが保持しているデータ量変化点を示すステップの組合せを示す情報（予め定められた定義情報）に基づいて、データ量変化点のステップであるか否かを判定する。ＥＴＬプログラム解析部１１１は、データ量変化点のステップであると判定した場合、ステップＳ２４０に処理を移し、データ量変化点のステップでないと判定した場合、処理対象を次のステップ定義に変更してステップＳ２２０に処理を移す。
【００７３】
付言するならば、データ量変化点については、１つのステップ定義により識別されることも、複数のステップ定義（複数のステップの組合せ）により識別されることもある。
【００７４】
ステップＳ２４０では、ＥＴＬプログラム解析部１１１は、取得したステップの情報を解析結果管理テーブル１２１に格納し、処理対象を次のステップ定義に変更してステップＳ２２０に処理を移す。この際、ＥＴＬプログラム解析部１１１は、全てのステップ定義について処理を行ったと判定した場合、ＥＴＬプログラム解析処理を終了する。
【００７５】
図７は、データフローバランス解析処理に係るフローチャートの一例を示す図である。
【００７６】
まず、データフローバランス解析部１１２は、ＥＴＬプログラムを実行する（ステップＳ３１０）。より具体的には、データフローバランス解析部１１２は、入力ファイル登録画面２０で指定されたデータ（入力データ）、および／または、後述のステップＳ７００で生成されたテストデータを使用し、ＥＴＬプログラムを実行する。
【００７７】
続いて、データフローバランス解析部１１２は、データ量変化点ごとに、ステップＳ３２０〜ステップＳ３４０を繰り返す。
【００７８】
ステップＳ３２０では、データフローバランス解析部１１２は、データ量変化点のステップにおいて既存のＥＴＬツールにより測定された入出力データ量に基づいて、データフローバランスを算出する。例えば、図２に示すように、データ量変化点がステップ「Ａ」であり、遷移先のステップとしてステップ「Ｂ」，「Ｃ」，「Ｄ」がある場合、ステップ「Ａ」に入力されたデータ量が「１００」であり、ステップ「Ｂ」に流れたデータ量が「１０」であり、ステップ「Ｃ」に流れたデータ量が「１０」であり、ステップ「Ｄ」に流れたデータ量が「１０」であり、破棄されたデータ量が「７０」であったとする。このとき、データフローバランス解析部１１２は、ステップ「Ａ」について、「Ａ−Ｂ」間のデータフローバランスについては、「１０（＝（１０／１００）×１００）」を算出する。同様に、データフローバランス解析部１１２は、「Ａ−Ｃ」間のデータフローバランスとして「１０」、「Ａ−Ｄ」間のデータフローバランスとして「１０」、「Ａ」で終了のデータフローバランスとして「７０」を算出する。
【００７９】
ステップＳ３３０では、データフローバランス解析部１１２は、算出したデータフローバランスの情報を解析結果管理テーブル１２１に格納する。
【００８０】
続いて、データフローパス解析処理が行われ（ステップＳ３４０）、処理対象を次のデータ量変化点に変更し、ステップＳ３２０に処理を移す。ＥＴＬプログラム解析部１１１は、全てのデータ量変化点について処理を行ったと判定した場合、データフローバランス解析処理を終了する。なお、詳細については図８を用いて後述するが、データフローパス解析処理では、入力データの各レコードに対して、どのデータ量変化点を辿ったかを示すラベル（データフローパス）が紐付けられる。
【００８１】
図８は、データフローパス解析処理に係るフローチャートの一例を示す図である。データフローパス解析処理では、入力データのレコードごと、かつ、データ量変化点の遷移先のステップごとに、処理が行われる。
【００８２】
まず、データフローパス解析部１１３は、入力データごとに処理対象とするために、入力データのレコードからユニークキー（入力ファイル登録画面２０で指定された列名の情報）を取得する（ステップＳ３４１）。
【００８３】
続いて、データフローパス解析部１１３は、遷移先のステップごとに、ステップＳ３４２およびステップＳ３４３を繰り返す。
【００８４】
ステップＳ３４２では、データフローパス解析部１１３は、遷移先のステップへの出力データに、取得したユニークキーのレコードが含まれているか否かを判定する。なお、データフローパスの判定方法については、図１５および図１６を用いて説明する。
【００８５】
データフローパス解析部１１３は、含まれていると判定した場合、ステップＳ３４３に処理を移し、含まれていないと判定した場合、処理対処を次の遷移先のステップに変更し、ステップＳ３４２に処理を移す。
【００８６】
図１５は、データフローパスの判定方法（分岐パターンの判定方法）を説明するための図である。
【００８７】
例えば、ＥＴＬプログラム４０は、データ入力ステップ４１、データ量変化点Ａステップ４２、データ量変化点Ａステップ４２の遷移先のステップＢ４３、ステップＣ４４、ステップＤ４５で構成されているものとする。これは、データ量変化点Ａステップ４２が分岐ステップであることを意味する。
【００８８】
また、データ入力ステップ４１からの入力データ４２１には、ユニークキーとして「ｋｅｙ１」を持つデータＩＤ「１」のデータ、ユニークキーとして「ｋｅｙ２」を持つデータＩＤ「２」のデータ、ユニークキーとして「ｋｅｙ３」を持つデータＩＤ「３」のデータ、ユニークキーとして「ｋｅｙ４」を持つデータＩＤ「４」のデータが含まれているものとする。
【００８９】
ここで、実際に入力データ４２１を使用してＥＴＬプログラム４０を実行した場合、ステップＢ４３への出力データ４２２には、ユニークキーとして「ｋｅｙ１」を持つデータと「ｋｅｙ２」を持つデータとが含まれているとする。また、ステップＣ４４への出力データ４２３には、ユニークキーとして「ｋｅｙ３」を持つデータが含まれているとする。また、ステップＤ４５への出力データには、ユニークキーとして「ｋｅｙ１」を持つデータが含まれているとする。また、ユニークキーとして「ｋｅｙ４」を持つデータは、データ量変化点Ａステップ４２より先に遷移しなかったとする。
【００９０】
上述のケースにおいて、データＩＤ「１」のデータに紐付くデータフローパスは、「ＡＢ，ＡＤ」、データＩＤ「２」のデータに紐付くデータフローパスは、「ＡＢ」、データＩＤ「３」のデータに紐付くデータフローパスは、「ＡＣ」、データＩＤ「４」のデータに紐付くデータフローパスは、「Ａ／」として、データフローパス管理テーブル（カラム抜粋）４６（データフローパス管理テーブル１２２）に格納される。
【００９１】
なお、データＩＤ「１」のように、同時に複数の分岐に推移するデータである場合、複数のデータフローパスが紐付く。また、データＩＤ「４」のように、フィルターなどによりその先に推移しないデータである場合、「／（スラッシュ）」でパスの終わりを表現する。
【００９２】
また、データフローパスにおいては、複数のデータ量変化点を経由する場合、−（ハイフン）でパスを繋げて表現する。例えば、「ＡＢ−ＥＧ−ＳＴ」のように表現する。
【００９３】
図１６は、データフローパスの判定方法（結合パターンの判定方法）を説明するための図である。
【００９４】
ＥＴＬプログラム５０は、例えば、データ入力１ステップ５１、データ入力２ステップ５２、データ量変化点Ａステップ５３、データ量変化点Ａステップ５３の遷移先のステップＢ５４で構成されるものとする。これは、データ量変化点Ａステップ５３が結合ステップであることを意味する。
【００９５】
また、データ入力１ステップ５１からの入力データ５３１には、ユニークキーＡとして「ｋｅｙ１」を持つデータＩＤ「１」のデータ、ユニークキーＡとして「ｋｅｙ２」を持つデータＩＤ「２」のデータ、ユニークキーＡとして「ｋｅｙ３」を持つデータＩＤ「３」のデータが含まれているものとする。また、データ入力２ステップからの入力データ５３２には、ユニークキーＢとして「ｋｅｙ４」を持つデータＩＤ「４」のデータ、ユニークキーＢとして「ｋｅｙ５」を持つデータＩＤ「５」のデータが含まれているものとする。
【００９６】
ここで、実際に入力データ５３１を使用してＥＴＬプログラム５０を実行した場合、ステップＢ５４への出力データ５３３には、ユニークキーＡとして「ｋｅｙ１」、ユニークキーＢとして「ｋｅｙ４」を持つデータと、ユニークキーＡとして「ｋｅｙ２」、ユニークキーＢとして「ｋｅｙ５」を持つデータとが含まれているとする。また、ユニークキーＡとして「ｋｅｙ３」を持つデータは、データ量変化点Ａステップ５３より先に遷移しなかったとする。
【００９７】
上述のケースにおいて、データＩＤ「１」のデータに紐付くデータフローパスは、「ＡＢ」、データＩＤ「２」のデータに紐付くデータフローパスは、「ＡＢ」、データＩＤ「３」のデータに紐付くデータフローパスは、「Ａ／」、データＩＤ「４」のデータに紐付くデータフローパスは、「ＡＢ」、データＩＤ「５」のデータに紐付くデータフローパスは、「ＡＢ」として、データフローパス管理テーブル（カラム抜粋）５５（データフローパス管理テーブル１２２）に格納される。
【００９８】
ステップＳ３４３では、データフローパス解析部１１３は、遷移先のステップの情報をデータフローパスとしてデータフローパス管理テーブル１２２に格納し、処理対処を次の遷移先のステップに変更し、ステップＳ３４２に処理を移す。
【００９９】
なお、データフローパス解析部１１３は、処理対処を次の遷移先のステップに変更する際、全てのデータ量変化点の遷移先のステップについて処理を行ったと判定した場合、次のレコードに処理対象を変更し、ステップＳ３４１に処理を移す。また、このとき、データフローパス解析部１１３は、全てのレコードについて処理を行ったと判定した場合、データフローパス解析処理を終了する。
【０１００】
図９は、特徴抽出処理に係るフローチャートの一例を示す図である。特徴抽出処理では、データフローパスごと、かつ、レコードのカラムごとに、処理が行われる。
【０１０１】
まず、特徴抽出部１１４は、データフローパスごとに処理対象とするために、同じデータフローパスが紐付けられたレコードの集合を取得する（ステップＳ４１０）。
【０１０２】
続いて、特徴抽出部１１４は、レコードのカラムごとに、ステップＳ４２０およびステップＳ４３０を繰り返す。
【０１０３】
ステップＳ４２０では、特徴抽出部１１４は、カラムごとのデータの特徴を統計処理エンジンにより抽出する。統計処理エンジンとは、入力したデータの集合に対して統計処理（公知技術の組合せ）を行い、例えば、データの集合が持つデータの特徴を関数として出力するものである。統計処理エンジンとしては、Ｃ、Ｊａｖａ、Ｐｙｔｈｏｎ等の実行エンジン、ＤＢＭＳ、ＥＴＬツールなどがある。統計処理エンジンについては、図１７を用いて説明する。
【０１０４】
図１７は、統計処理エンジンを説明するための図である。
【０１０５】
統計処理エンジン６１は、適用する統計処理（統計処理Ａ，Ｂ，Ｃ，Ｄなど）を必要に応じて切り替えることが可能である。統計処理エンジン６１は、例えば、データ６２の型によって最適な統計処理を選択する機能を有する。統計処理エンジン６１は、データ６２が数値データである場合は、平均値と標準偏差とからデータの分布を取得する。統計処理エンジン６１は、データ６２が文字列データである場合は、取り得る文字のバリエーションと文字数の傾向とを取得する。統計処理エンジン６１は、データ６２が日付データである場合は、取り得る日時と時刻の範囲とオーダーとを取得する。統計処理エンジン６１は、取得した結果を特徴（関数）６３として出力する。特徴（関数）６３は、例えば、特徴の範囲でランダムに値を出力するものである。
【０１０６】
なお、外から統計処理を追加する仕組みを有していてもよい。
【０１０７】
ステップＳ４３０では、特徴抽出部１１４は、抽出したデータの特徴を特徴管理テーブル１２３に格納し、処理対処を次のカラムに変更し、ステップＳ４２０に処理を移す。
【０１０８】
なお、特徴抽出部１１４は、処理対処を次のカラムに変更する際、全てのカラムについて処理を行ったと判定した場合、次のデータフローパスに処理対象を変更し、ステップＳ４１０に処理を移す。また、このとき、特徴抽出部１１４は、全てのデータフローパスについて処理を行ったと判定した場合、特徴抽出処理を終了する。なお、特徴抽出処理が終了すると、入力データについての一連の解析処理が終了し、図１８に示すように解析結果表示画面７０が出力される。
【０１０９】
図１８は、解析結果表示画面７０の一例を示す図である。
【０１１０】
解析結果表示画面７０では、画面上部に、データフローバランスの解析結果を表示するためのデータフローバランス表示領域７１が設けられている。例えば、データフローバランス表示領域７１には、ＥＴＬプログラムの概略図（ステップ、パス等）７２が表示され、データ量変化点のステップには星マーク７３が付され、データフローバランスが算出されたパスは、太線で表示される。
【０１１１】
付言するならば、データ量変化点のステップは、星マーク７３の表示態様に限定されるものではなく、その他の表示態様により強調表示されてもよい。また、データフローバランスが算出されたパスは、太線で表示される表示態様に限られるものではなく、その他の表示態様により強調表示されてもよい。
【０１１２】
また、太線にマウスカーソル７４を当てると、ポップアップでデータフローバランスの情報７５が表示される。詳細ボタン７６をクリックすると、データフローバランス詳細画面７７（例えば、別画面）にデータフローバランスの詳細が表示される。データフローバランス詳細画面７７では、データフローごとのデータの割合がリストとして表示される。
【０１１３】
星マーク７３（データ量変化点）をクリックすると、データ量変化点詳細画面７８（例えば、別画面）にデータ量変化点の詳細が表示される。データ量変化点詳細画面７８では、各データ量変化点の入力データのレコード、各遷移先のステップへの出力データのレコード、各レコードに紐付くデータフローパスがリストとして表示される。
【０１１４】
また、解析結果表示画面７０では、画面下部に、データフローパスの解析結果を表示するためのデータフローパス表示領域７９が設けられている。例えば、データ入力ステップごとの入力データのレコードと、各レコードに紐付くデータフローパスとがリストとして表示される。
【０１１５】
このように、解析結果表示画面７０では、例えば、ＥＴＬプログラムのステップのうち、ＥＴＬプログラム解析部１１１で解析されたデータ量変化点とデータ量変化点における遷移先のステップとが識別可能に表示され、かつ、データフローパス解析部１１３で対応付けられたデータおよびデータフローパスが表示される。かかる表示によれば、ユーザは、データ量変化点および遷移先のステップとデータのデータフローパスとを容易に対応付けて視認することができるようになるので、ＥＴＬプログラムにおけるデータの流れを的確かつ迅速に把握できるようになる。
【０１１６】
図１０は、テストデータの生成に関する処理に係るフローチャートの一例を示す図である。
【０１１７】
まず、インタフェース部１１７は、テストデータの生成条件の入力を受け付ける（ステップＳ６００）。例えば、インタフェース部１１７は、出力装置１２に表示される生成条件設定画面８０を介して、テストデータの生成条件の入力を受け付ける。生成条件設定画面８０については、図１９を用いて説明する。
【０１１８】
図１９は、生成条件設定画面８０の一例を示す図である。
【０１１９】
生成条件設定画面８０では、画面上部に、データフローバランスの解析結果を表示するためのデータフローバランス表示領域８１が設けられる。ユーザは、テストデータの生成条件を入力する際、この解析結果を参考にすることができる。
【０１２０】
生成条件設定画面８０では、画面下部に、生成条件を入力するための生成条件入力領域８２が設けられる。生成条件入力領域８２には、データ入力ステップごとに、生成するテストデータのデータ量（サイズ、レコード数など）を入力するためのデータ量入力欄８３と、データフローパスごとに、データの割合を入力するためのデータ割合入力欄８４と、設定した生成条件でテストデータの作成を指示するためのテストデータ生成ボタン８５とが設けられている。
【０１２１】
例えば、ユーザは、データ量入力欄８３に生成を所望するデータ量を入力することができる。この際、ユーザは入力データステップごとに入力可能であり、デフォルトでは登録した実データのデータ量が入力されている。例えば、ユーザは、必要なテストデータのデータ量を、生成データ量として「１０ＧＢ」、「１００ＭＢ」のように入力することができる。
【０１２２】
また、例えば、ユーザは、データ割合入力欄８４に任意のデータフローパスのデータの割合を入力することができる。この際、入力データステップごとに入力可能であり、デフォルトではデータフローパス管理テーブル１２２から算出された各データフローパスのデータの割合が入力されている。例えば、ユーザは、必要なテストデータのデータフローバランスを、各データフローパスのデータの割合として「１０％」、「２０％」のように入力することができる。
【０１２３】
このように、生成条件設定画面８０では、データフローバランス解析部１１２で求められたデータフローバランスが生成条件のデータフローバランスの初期値として設定され、初期値を変更可能な画面が表示される。例えば、実データが顧客のシステム環境の縮小版のデータであるときは、データフローバランスを入力することなく、テストデータを生成できるようになる。また、データフローバランスの変更が可能であるので、所望のデータフローバランスとしてテストを行うことができるようになる。
【０１２４】
続いて、テストデータ生成処理が行われる（ステップＳ７００）。なお、詳細については図１１を用いて後述するが、テストデータ生成処理では、生成条件を満たすように、各データフローパスのデータの特徴に従ってテストデータが自動生成される。
【０１２５】
続いて、テストデータ検証処理が行われる（ステップＳ８００）。なお、詳細については図１２を用いて後述するが、テストデータ検証処理では、自動生成したテストデータをＥＴＬプログラムに処理させ、生成条件を満たすテストデータが得られたか否か、得られなかった場合、テストデータ生成処理で生成され、データフローパスが再設定されたデータ（教師データ）が一定量溜まっているか否かが判定される。
【０１２６】
生成条件を満たすテストデータが得られた場合、ステップＳ１０００に処理が移され、得られなかった場合、一定量の新しい教師データが溜まっているときは、ステップＳ９００に処理が移され、一定量の新しい教師データが溜まっていないときは、ステップＳ７００に処理が移される。付言するならば、一定量の新しい教師データが溜まっていないときは、前回と同じ特徴を用いてテストデータが再生成されるが、同じ特徴であっても特徴の範囲内でランダムにテストデータが生成されるので、基本的には、生成されるテストデータは、前回と異なるテストデータ（類似したテストデータ、近似したテストデータ）となる。
【０１２７】
ステップＳ９００では、蓄積された新しい教師データが用いられて特徴抽出処理が行われ、その後、ステップＳ７００に処理が移される。つまり、データフローパスごとのデータの特徴が再抽出され、再抽出した新しい特徴を用いてテストデータが再生成される。なお、特徴抽出処理については、図９に示すものと同じであるので、その説明については、省略する。
【０１２８】
ステップＳ１０００では、インタフェース部１１７は、生成されたテストデータをファイルとして出力または出力装置１２に出力し、テストデータの生成に関する処理を終了する。
【０１２９】
図１１は、テストデータ生成処理に係るフローチャートの一例を示す図である。テストデータ生成処理では、データフローパスごと、かつ、レコードのカラムごとに、ステップＳ７１０およびステップＳ７２０が行われる。
【０１３０】
ステップＳ７１０では、テストデータ生成部１１５は、カラムに対応する特徴（関数）を特徴管理テーブル１２３から取得する。
【０１３１】
ステップＳ７２０では、テストデータ生成部１１５は、生成条件を満たすように、特徴（関数）を用いてテストデータを生成する。
【０１３２】
なお、テストデータ生成部１１５は、処理対処を次のカラムに変更する際、全てのカラムについて処理を行ったと判定した場合、次のデータフローパスに処理対象を変更し、ステップＳ７１０に処理を移す。また、このとき、テストデータ生成部１１５は、全てのデータフローパスについて処理を行ったと判定した場合、ステップＳ７３０に処理を移す。
【０１３３】
付言するならば、例えば、生成条件が１０レコード分のデータ量（データの項目が３つからなるテストデータが１０レコード必要）である場合、テストデータ生成部１１５は、第１の項目についての特徴（関数）を用いてランダムにデータを１０個生成し、第２の項目についての特徴（関数）を用いてランダムにデータを１０個生成し、第３の項目についての特徴（関数）を用いてランダムにデータを１０個生成することで、生成条件に指定されたデータ量のテストデータを生成する。
【０１３４】
ステップＳ７３０では、テストデータ生成部１１５は、生成したテストデータを仮テストデータとして保存し、テストデータ生成処理を終了する。
【０１３５】
図１２は、テストデータ検証処理に係るフローチャートの一例を示す図である。
【０１３６】
まず、テストデータ検証部１１６は、データフローバランス解析部１１２にて、生成されたテストデータ（仮テストデータ）をＥＴＬプログラムに処理させ、各ステップの入出力データ量から各データ量変化点のデータフローバランスを算出する（ステップＳ８１０）。なお、データフローバランス解析部１１２の処理については、図７に示す処理と同じであるので、その説明については省略する。
【０１３７】
続いて、テストデータ検証部１１６は、データフローパス解析部１１３にて、生成されたテストデータの各レコードに対して、どのデータ量変化点を辿ったかを示すラベル（データフローパス）を紐付けさせ、教師データとする（ステップＳ８２０）。なお、データフローパス解析部１１３の処理については、図８に示す処理と同じであるので、その説明については省略する。
【０１３８】
続いて、テストデータ検証部１１６は、データフローバランスが生成条件を満たしているか否かを判定する（ステップＳ８３０）。テストデータ検証部１１６は、データフローバランスが生成条件を満たしていると判定した場合、ステップＳ７３０で格納した仮テストデータをテストデータとしてテストデータ検証処理を終了し、データフローバランスが生成条件を満たしていないと判定した場合、ステップＳ８４０に処理を移す。
【０１３９】
データフローバランスが生成条件を満たしているか否かについては、解析されたデータフローバランスと指定されたデータ量の割合とが完全に一致しているか否かにより判定されてもよいし、所定の範囲内（例えば、±１％の範囲内）で一致しているか否かにより判定されてもよい。なお、かかる一致条件については、システム管理者により設定されてもよいし、ユーザにより設定されてもよい。
【０１４０】
ステップＳ８４０では、テストデータ検証部１１６は、新しい教師データが一定量溜まっているか否かを判定する。テストデータ検証部１１６は、新しい教師データが一定量溜まっていると判定した場合、テストデータ検証処理を終了し、ステップＳ９００に処理を移し、新しい教師データが一定量溜まっていないと判定した場合、テストデータ検証処理を終了し、ステップＳ７００に処理を移す。なお、一定量については、任意に変更可能である。
【０１４１】
上述したように、任意のデータフローバランスのテストデータを容易に作成できるようにすることで、テストデータの作成工数が削減される。また、データフローバランスを満たす様々なバリエーションのテストデータを使って短期間でテストすることが可能となり、ＥＴＬプログラムの品質が向上する。
【０１４２】
上述した構成の主な特徴について、以下に説明する。
（第１の特徴）
データ管理システム１では、ＥＴＬプログラムのトップレベルのステップに着目し、入力データの各レコードがどのデータ量変化点を通過したかをデータフローパスとして定義する。データ量変化点とは、入出力でデータ量が変化するステップのことである。
【０１４３】
（第２の特徴）
データ管理システム１では、顧客から受領した実データをＥＴＬプログラムに処理させることで動的解析を行い、レコードとデータフローパスとを紐付けたデータを取得する。例えば、紐付けられた（対応付けられた）データおよびデータフローパスが出力されることで、ユーザは、ＥＴＬプログラムにおけるデータの流れを把握できるようなる。
【０１４４】
（第３の特徴）
データ管理システム１では、同じデータフローパスを持つデータごとに、データの特徴を統計解析などの公知技術を用いて抽出する。
【０１４５】
（第４の特徴）
データ管理システム１では、ユーザからテストデータの生成条件（生成データ量、任意のデータフローパスのデータの割合）を受け取ると、データフローパスをキーとして、データの特徴を持つ仮テストデータを生成条件を満たすように生成する。
【０１４６】
（第５の特徴）
データ管理システム１では、仮テストデータをＥＴＬプログラムに処理させることで動的解析を行い、生成条件を満たしているか検証する。また、ここで得られた検証データについては、教師データとして再利用される。
【０１４７】
（第６の特徴）
データ管理システム１では、生成条件を満たすデータが得られない場合、第３の特徴または第４の特徴を再試行する。仮テストデータの生成を何度も行うことで教師データが溜まるため、特徴抽出の精度が上がることが期待できる。また、一定量の教師データが溜まっていない場合は、特徴を抽出しても大きな改善は期待できないため、特徴抽出を行わずに仮テストデータを生成する。かかる処理によれば、処理時間を短縮し、かつ、特徴抽出の精度を向上することができる。
【０１４８】
（第７の特徴）
データ管理システム１では、生成条件を満たすデータが得られた場合、仮テストデータを正式なテストデータとして出力する。
【０１４９】
上述した構成によれば、例えば、入力データの各レコードおよびデータフローパスと、データフローパスおよびデータの特徴とを紐付けて管理することにより、任意のデータフローバランスのテストデータを自動生成することが可能になる。
【０１５０】
また、例えば、データの集合とその特徴とをデータフローパスというラベルとして表現することで、ユーザに簡易なユーザインタフェースを提供できるようになる。
【０１５１】
また、例えば、生成したテストデータの検証をデータフローパスを利用して実施し、検証時のデータは学習データとして再利用できるので、効率的にテストデータを生成することができる。
【０１５２】
本実施の形態によれば、ＥＴＬプログラムに係るデータを管理することができる。
【０１５３】
（２）他の実施の形態
なお上述の実施の形態においては、本発明をデータ管理システム１に適用するようにした場合について述べたが、本発明はこれに限らず、この他種々のデータ管理システム、データ管理装置、データ管理方法などに広く適用することができる。
【０１５４】
また上述の実施の形態においては、データフローバランス解析部１１２は、データ量変化点のステップにおいて既存のＥＴＬツールにより測定された入出力データ量に基づいて、データフローバランスを算出する場合について述べたが、本発明はこれに限らず、データフローバランス解析部１１２は、データ量変化点のステップにおいて、入出力データ量を測定し、データフローバランスを算出するようにしてもよい。
【０１５５】
また上述の実施の形態においては、特徴抽出部１１４は、カラムごとのデータの特徴を統計処理エンジンにより抽出する場合について述べたが、統計処理エンジンは、特徴抽出部１１４に含まれていてもよいし、含まれていなくてもよい。
【０１５６】
また上述の実施の形態においては、テストデータ生成部１１５で生成されたテストデータをファイルとして出力する場合について述べたが、本発明はこれに限らず、テストデータ生成部１１５で生成されたテストデータを他のコンピュータに送信するようにしてもよい。
【０１５７】
また上述の実施の形態においては、テストデータ検証部１１６は、データフローバランスが生成条件を満たしていると判定した場合、ステップＳ７３０で格納された仮テストデータをテストデータとする場合について述べたが、本発明はこれに限らず、テストデータ検証部１１６は、正しいデータフローパスが対応付けられた仮テストデータをテストデータとするようにしてもよい。
【０１５８】
また上述の実施の形態においては、説明の便宜上、ＸＸテーブルを用いて各種のデータを説明したが、データ構造は限定されるものではなく、ＸＸ情報などと表現してもよい。
【０１５９】
また、上記の説明において各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Solid State Drive）等の記憶装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【０１６０】
また上述した構成については、本発明の要旨を超えない範囲において、適宜に、変更したり、組み替えたり、組み合わせたり、省略したりしてもよい。
【符号の説明】
【０１６１】
１……データ管理システム、１０……データ管理装置、１１……入力装置、１２……出力装置、１００……ＣＰＵ、１１０……主記憶装置、１１１……ＥＴＬプログラム解析部、１１２……データフローバランス解析部、１１３……データフローパス解析部、１１４……特徴抽出部、１１５……テストデータ生成部、１１６……テストデータ検証部、１１７……インタフェース部、１２０……補助記憶装置、１２１……解析結果管理テーブル、１２２……データフローパス管理テーブル、１２３……特徴管理テーブル。
【図１】
2019207538.tif 000003
【図２】
2019207538.tif 000004
【図３】
2019207538.tif 000005
【図４】
2019207538.tif 000006
【図５】
2019207538.tif 000007
【図６】
2019207538.tif 000008
【図７】
2019207538.tif 000009
【図８】
2019207538.tif 000010
【図９】
2019207538.tif 000011
【図１０】
2019207538.tif 000012
【図１１】
2019207538.tif 000013
【図１２】
2019207538.tif 000014
【図１３】
2019207538.tif 000015
【図１４】
2019207538.tif 000016
【図１５】
2019207538.tif 000017
【図１６】
2019207538.tif 000018
【図１７】
2019207538.tif 000019
【図１８】
2019207538.tif 000020
【図１９】
2019207538.tif 000021