(57)【特許請求の範囲】
【請求項１】
出力データに影響する入力データのフィールドの値を階級分けした階級毎に、分類された該入力データの入力度数を設定する度数分布表と、該度数分布表の各階級にサンプリングした入力データの該入力度数を設定し、該サンプリングした入力データに対して所定処理を行うことで出力データの出力度数を得る度数分布写像を記憶する記憶部と、
前記記憶部に記憶された前記度数分布表の各階級に対して、前記所定処理の対象入力データの前記入力度数を設定する設定部と、
前記度数分布写像の値を係数とした一次式によって、該対象入力データに対する前記所定処理後の出力データの前記出力度数を該階級毎に取得し、取得した該階級毎の該出力度数を合計することで、前記対象入力データに対する前記出力度数を推定する出力度数推定部と
を有する推定装置。
【請求項２】
前記記憶部は、前記入力データの度数分布表の階級毎の１入力データ当たりの前記所定処理による実行時間を示す実行時間写像を記憶し、
前記実行時間写像の値を係数とした一次式によって、該対象入力データに対する前記所定処理後の前記実行時間を該階級毎に取得し、取得した該階級毎の該実行時間を合計することで、前記対象入力データに対する前記実行時間を推定する実行時間推定部と
を有する請求項１記載の推定装置。
【請求項３】
前記記憶部は、前記入力データの度数分布表の階級毎の１入力データ当たりの前記所定処理による実行時間を示す実行時間写像を記憶し、
前記出力度数推定部によって得られた前記階級毎の前記出力度数を該階級毎の前記対象入力データとして用いて、前記記憶部に記憶される前記実行時間写像の値を係数とした一次式によって、該対象入力データに対する前記所定処理後の前記実行時間を該階級毎に取得し、取得した該階級毎の該実行時間を合計することで、前記対象入力データに対する該実行時間を推定する実行時間推定部
を有する請求項１記載の推定装置。
【請求項４】
記憶部に記憶された出力データに影響する入力データのフィールドの値を階級分けした階級毎に、分類された該入力データの入力度数を設定する度数分布表を入力とする、該記憶部に記憶された該度数分布表の各階級にサンプリングした入力データの該入力度数を設定し、該サンプリングした入力データに対して所定処理を行うことで出力データの出力度数を得る度数分布写像を計算して記憶部に記憶し、
前記記憶部に記憶された前記度数分布表の各階級に対して、前記所定処理の対象入力データの前記入力度数を設定し、
前記度数分布写像の値を係数とした一次式によって、該対象入力データに対する該所定処理後の出力データの前記出力度数を該階級毎に取得し、
取得した前記階級毎の前記出力度数を合計することで、前記対象入力データに対する前記出力度数を推定する
処理をコンピュータに実行させるプログラム。
【請求項５】
コンピュータによって実行される実行時間推定方法であって、
記憶部に記憶された出力データに影響する入力データのフィールドの値を階級分けした階級毎に、分類された該入力データの入力度数を設定する度数分布表を入力とする、該記憶部に記憶された該度数分布表の各階級にサンプリングした入力データの該入力度数を設定し、該サンプリングした入力データに対して所定処理を行うことで出力データの出力度数を得る度数分布写像を計算して記憶部に記憶し、
前記記憶部に記憶された前記度数分布表の各階級に対して、前記所定処理の対象入力データの前記入力度数を設定し、
前記度数分布写像の値を係数とした一次式によって、該対象入力データに対する該所定処理後の出力データの前記出力度数を該階級毎に取得し、
取得した前記階級毎の前記出力度数を合計することで、前記対象入力データに対する前記出力度数を推定する推定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バッチジョブの実行時間を精度良く推定することに関する。
【背景技術】
【０００２】
バッチジョブがネットワークに繋がっているバッチジョブネットワークにおいて、全てのバッチジョブを予定終了時刻に完了させるために、入力データに対するバッチジョブの実行時間を予測して、適切な開始時刻を設定することが求められている。
【０００３】
例えば、入力データ量から実行時間を推定するモデルを用いることが提案されている。過去の各バッチジョブの入力データ量から出力データ量と実行時間を推定するモデルを作成し、作成したモデルを用いて今回の入力データ量から出力データ量と実行時間を推定して、出力データ量を後続のバッチジョブの実行時間の推定の際に入力データ量として用いること、バッチジョブの統計量を求めるためのモデルを複数用意し、複数のモデルの中から最適なモデルとそのパラメータを小規模データを用いた測定結果から決定して、決定したパラメータを用いて大規模データの処理時の統計量を推定すること等が提案されている。
【０００４】
また、入力データ項目を格納するファイルやデータベースを読み込むプログラムを抽出し、各プログラムに対して、各対象項目に対応する入力レコード中の変数を起点として影響検索を行うことによって、入力データ項目の値域の変更がアプリケーションの保守に与える影響を分析する等が知られている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−２９５７３１号公報
【特許文献２】特開２０１０−０６１４１７号公報
【特許文献３】再表２００９−０１１０５７号公報
【非特許文献】
【０００６】
【非特許文献１】Sturges, H.A., "The choice of a class interval", J. American Statistical Association, pp.65-66
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述従来技術では、入力データ量のみで出力データ量と実行時間とを推定していた。このような実行時間の推定では、複数のフィールドで構成される入力データのレコードを１件ずつ処理するバッチジョブの場合、入力データの値の分布によって出力データ量と実行時間とが大きく変化するため、推定誤差が大きくなってしまうと言った問題があった。
【０００８】
開示の実行時間推定装置は、出力データに影響する入力データのフィールドの値を階級分けした階級毎に、分類された該入力データの入力度数を設定する度数分布表と、該度数分布表の各階級にサンプリングした入力データの該入力度数を設定し、該サンプリングした入力データに対して所定処理を行うことで出力データの出力度数を得る度数分布写像を記憶する記憶部と、前記記憶部に記憶された前記度数分布表の各階級に対して、前記所定処理の対象入力データの前記入力度数を設定する設定部と、前記度数分布写像の値を係数とした一次式によって、該対象入力データに対する前記所定処理後の出力データの前記出力度数を該階級毎に取得し、取得した該階級毎の該出力度数を合計することで、前記対象入力データに対する前記出力度数を推定する出力度数推定部とを有する。
【０００９】
よって、本発明の目的は、バッチジョブにおける出力データ量や実行時間をより良い精度で推定できるようにすることである。
【課題を解決するための手段】
【００１０】
開示の実行時間推定装置は、階級毎に入力データの度数の分布を示す度数分布表と、該度数分布表に基づく入力データから所定処理による結果情報への写像を記憶する記憶部と、前記記憶部に記憶された前記度数分布表を入力とする該記憶部に記憶された前記結果情報への写像を用いた計算結果に基づいて、前記入力データに対する前記所定処理の実行時間を推定する実行時間推定部とを有する。
【００１１】
また、上記課題を解決するための手段として、コンピュータに上記実行時間推定装置として機能させるためのプログラム、実行時間推定方法、及びそのプログラムを記録した記録媒体とすることもできる。
【発明の効果】
【００１２】
開示の技術では、バッチジョブのソース情報が不明であっても、バッチジョブの実行時間を精度良く推測することができる。
【図面の簡単な説明】
【００１３】
【図１】本実施の形態に係るバッチジョブの実行時間推定方法を説明するための図である。
【図２】度数分布写像生成方法を説明するための図（その１）である。
【図３】度数分布写像生成方法を説明するための図（その２）である。
【図４】実行時間写像生成方法を説明するための図（その１）である。
【図５】実行時間写像生成方法を説明するための図（その２）である。
【図６】出力データ度数分布推定方法を説明するための図である。
【図７】実行時間推定方法を説明するための図である。
【図８】変量フィールド決定方法を説明するための図である。
【図９】影響度算出方法を説明するための図である。
【図１０】本実施の形態に係るシステムの機能構成例を示す図である。
【図１１】コンピュータ装置のハードウェア構成を示す図である。
【図１２】度数分布写像作成処理を説明するための図である。
【図１３】実時間写像作成処理を説明するための図である。
【図１４】出力データ度数分布推定処理を説明するための図である。
【図１５】実行時間推定処理を説明するための図である。
【図１６】変量フィールド決定処理を説明するための図である。
【図１７】出力データの影響度算出処理を説明するための図である。
【図１８】温度センサデータのバッチ処理の一例を説明するための図である。
【図１９】各データのスキーマと件数見積値の例を示す図である。
【図２０】第１実施例における変量フィールドの決定例を説明するための図（その１）である。
【図２１】第１実施例における変量フィールドの決定例を説明するための図（その２）である。
【図２２】第１実施例における３次元度数分布の例を示す図である。
【図２３】第１実施例における度数分布写像の作成例を説明するための図（その１）である。
【図２４】第１実施例における度数分布写像の作成例を説明するための図（その２）である。
【図２５】第１実施例における出力データの度数分布推定例を説明するための図である。
【図２６】第２実施例における実行時間写像の作成例を説明するための図（その１）である。
【図２７】第２実施例における実行時間写像の作成例を説明するための図（その２）である。
【図２８】第２実施例における他の実行時間の推定例を説明するための図である。
【図２９】推定誤差を説明するための図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態を図面に基づいて説明する。本実施の形態では、複数のフィールドで構成される入力データのレコードを１件ずつ処理するようなバッチジョブについて、入力データの度数分布から度数分布写像と実行時間写像を用いて出力データの度数分布と実行時間とを推定する。本実施の形態によって、バッチジョブのソース情報が不明であっても出力データ量と実行時間とを高精度に推定することを可能とする。
【００１５】
図１は、本実施の形態に係るバッチジョブの実行時間推定方法を説明するための図である。図１において、バッチジョブの実行時間推定方法では、入力データの度数分布３及び出力データの度数分布４の各々で変量として用いるフィールド（以下、変量フィールドと言う）を決定し、入力データの度数分布３及び出力データの度数分布４の各々の度数分布表を作成する（変量フィールド決定方法）。変量フィールド決定方法については、後述される。
【００１６】
以下を生成し、出力データの度数分布４と実行時間５とを推定する。
【００１７】
・入力データの度数分布３を生成する
入力データの度数分布３は、実際は、複数の変量からなる多次元度数分布３−２であり、バッチジョブの実行時間推定方法は、このような多次元度数分布３−２を扱う。
【００１８】
・度数分布写像ｆを生成する。
【００１９】
度数分布写像ｆは、入力データの度数分布３の各階級に属するレコードが出力データの度数分布４のどの階級に出力されるかを表す。
【００２０】
・実行時間写像ｇは、入力データの度数分布３の階級毎のレコード１件当たりのバッチジョブ平均実行時間を表す。
【００２１】
次に、度数分布写像ｆを生成する度数分布写像生成方法を説明する。図２及び図３は、度数分布写像生成方法を説明するための図である。図２において、フィールドの名前、型、値域などの情報を含む既知の入出力データのスキーマ６の入出力データのレコード件数を見積もって、バッチジョブ２で方法を行う（ステップＳ１１）。レコード件数の見積値は、例えば、１０００件である。
【００２２】
入出力データのスキーマ６は、既知であり、各項目のデータタイプを定義した情報である。各データは、フィールド、型、値域等で定義される。フィールドには、「センサＩＤ」、「日時」、「温度」等の項目名が示される。「センサＩＤ」のデータ型は「ｉｎｔ」であり値域［０，９９９９］、「日時」のデータ型は「ｄａｔｅ」であり値域［０：００，２３：５９］、「温度」のデータ型は「ｆｌｏａｔ」であり値域［０，１００］等である。
【００２３】
バッチジョブ２では、出力データへの影響度が一定以上のフィールドを変量フィールド７に決定する（ステップＳ１２）。温度フィールドが決定された入力データの変量フィールド７として決定されたとする。
【００２４】
入出力データの値域とレコード件数の見積値とに基づいて、夫々の度数分布の階級数と階級幅とを決定し、度数分布表３ｆを作成する（ステップＳ１３）。例えば、変量フィールド７に決定された温度フィールドに対して、階級（１）に対して階級幅は０℃〜５℃、階級（２）に対して階級幅は５℃〜１０℃、階級（３）に対して階級幅は１０℃〜１５℃、階級（４）に対して階級幅は１５℃〜２０℃、階級（５）に対して階級幅は２０℃〜２５℃、・・・のように階級数と階級幅とが決定される。
【００２５】
そして、入力データについて度数分布表３ｆの階級毎にランダムなデータを所定件数（例えば、１００個）ずつ生成する（ステップＳ１４）。度数分布表３ｆの度数には生成されたランダムなデータの個数が示される。
【００２６】
図３において、ステップＳ１４で度数分布表３ｆの階級毎に生成したランダムな入力データをバッチジョブ２に投入する（ステップＳ１５）。各階級について、バッチジョブ２でレコードを１件ずつ処理し、各階級の所定件数（１００個）の入力データが出力データの度数分布４のどの階級に何件出力されたかをカウントする（ステップＳ１６）。カウントされた値は、入出力対応表２ａに記録される。
【００２７】
全ての入力データを処理した後、入出力対応表２ａの値を階級毎の件数（１００個）で割って、度数分布写像ｆを得る（ステップＳ１７）。
【００２８】
次に、度数分布写像ｇを生成する実行時間写像生成方法を説明する。図４及び図５は、実行時間写像生成方法を説明するための図である。図４において、フィールドの名前、型、値域などの情報を含む既知の入出力データのスキーマ６の入出力データのレコード件数を見積もって、バッチジョブ２で処理を行う（ステップＳ２１）。レコード件数の見積値は、例えば、１０００件である。入出力データのスキーマ６は、図２に示すスキーマと同様である。
【００２９】
バッチジョブ２では、出力データへの影響度が一定以上のフィールドを変量フィールド７に決定する（ステップＳ２２）。温度フィールドが決定された入力データの変量フィールド７として決定されたとする。
【００３０】
入出力データの値域とレコード件数の見積値とに基づいて、夫々の度数分布の階級数と階級幅とを決定し、度数分布表３ｆを作成する（ステップＳ２３）。例えば、変量フィールド７に決定された温度フィールドに対して、階級（１）に対して階級幅は０℃〜５℃、階級（２）に対して階級幅は５℃〜１０℃、階級（３）に対して階級幅は１０℃〜１５℃、階級（４）に対して階級幅は１５℃〜２０℃、階級（５）に対して階級幅は２０℃〜２５℃、・・・のように階級数と階級幅とが決定される。
【００３１】
そして、入力データについて度数分布表３ｆの階級毎にランダムなデータを所定件数（例えば、１００個）ずつ生成する（ステップＳ２４）。度数分布表３ｆの度数には生成されたランダムなデータの個数が示される。
【００３２】
図５において、ステップＳ２４で度数分布表３ｆの階級毎に生成したランダムな入力データをバッチジョブ２に投入する（ステップＳ２５）。各階級について、バッチジョブ２でレコードを１件ずつ処理し、そのときの実行時間を測定し、各階級の所定件数（１００個）の入力データの総実行時間がどれだけかかったかを実行時間対応表２ｂに記録する（ステップＳ２６）。
【００３３】
全ての入力データを処理した後、実行時間対応表２ｂの値を階級毎の件数（１００個）で割って、実行時間写像ｇを得る（ステップＳ２７）。
【００３４】
次に、出力データの度数分布を推定する出力データ度数分布推定方法を説明する。図６は、出力データ度数分布推定方法を説明するための図である。図６に示す出力データ度数分布推定方法において、実際の入力データ２ｄの度数分布表３ｆ−２を作成する（ステップＳ３１）。度数分布表３ｆ−２は、実際の入力データ２ｄに基づいて度数分布表３ｆの度数に件数が設定された表である。階級（１）は「５０」度数、階級（２）は「９２」度数、階級（３）は「８１」度数、階級（４）は「７３」度数、及び階級（５）は「４２」度数が設定され、実際の入力データ２ｄの合計件数は「３３８」件となる度数分布表３ｆ−２が作成されたとする。
【００３５】
そして、度数分布写像ｆの各値を係数とした一次式で、度数分布表３ｆの階級毎の度数に対する、出力データの各階級の度数を計算する（ステップＳ３２）。実際の入力データ２ｄの度数分布表３ｆ−２に対して推定された出力データの度数分布推定値４ｆが出力される。度数分布表３ｆに対して、階級（１）は「０」度数、階級（２）は「０」度数、階級（３）は「８１」度数、階級（４）は「７３」度数、及び階級（５）は「４２」度数を示す度数分布推定値４ｆを得る。実際の入力データ２ｄに対して予測される出力データ量は、合計件数「１９６」件となる。
【００３６】
次に、実行時間を推定する実行時間推定方法を説明する。図７は、実行時間推定方法を説明するための図である。図７に示す実行時間推定方法において、実際の入力データ２ｄの度数分布表３ｆ−２を作成する（ステップＳ４１）。度数分布表３ｆ−２の作成は、図６のステップＳ３１と同様である。
【００３７】
そして、実行時間写像ｇの各値を同じ階級の度数分布表３ｆ−２の度数に対する係数とした一次式で実行時間を計算する（ステップＳ４２）。図７に示す度数分布表３ｆ−２と実行時間写像ｇとから、
実行時間推定値  ＝  ０．１＊５０＋０．１＊９２＋０．２＊８１
＋０．２＊７３＋０．２＊４２
を計算して、実際の入力データ２ｄの度数分布表３ｆ−２に基づいて実行時間推定値５（５３．４ｍｓｅｃ）を得る。
【００３８】
次に、変量フィールド決定方法について説明する。図８は、変量フィールド決定方法を説明するための図である。図８に示す変量フィールド決定方法では、どのフィールドも流用可能なデータセットＡと、あるフィールドａについて入力データのデータセットＢ１及びＢ２の２種類作成する。
【００３９】
データセットＡは、各フィールドの値を平均又は標準偏差を持った正規乱数を用いて設定したレコードを見積もり件数分作成したデータセットである。２種類のデータセットＢ１及びＢ２は、各レコードについてフィールドａ以外はデータセットＡの同一番目のものと同じ値とし、フィールドａだけデータセットＡのときとは異なる又は標準偏差を持った正規乱数を用いて変更した、レコード件数見積値分が作成されたデータセットである。
【００４０】
データセットＡとデータセットＢ１及びＢ２とをバッチジョブ２で夫々処理し、バッチジョブ２に基づく出力データ２ｅを比較して、それらがどれだけ異なるか出力データ２ｅへの影響度として数値化し、影響度が所定値以上を示すフィールドが変量フィールドに決定される。出力データ２ｅへの影響度は、件数、値の異なるフィールド数等に基づいて算出される。
【００４１】
図８では、出力データ２ｅのうち、データセットＡに対するバッチジョブ２の処理後の結果はデータセットＡ−２で示され、データセットＢ１に対するバッチジョブ２の処理後の結果はデータセットＢ１−２で示され、データセットＢ２に対するバッチジョブ２の処理後の結果はデータセットＢ２−２で示される。
【００４２】
データセットＡのバッチジョブ２の処理後の出力データＡ−２が基準となる。データセットＢ１は、「センサＩＤ」フィールドを変更したデータセットであり、バッチジョブ２の処理後の出力データＢ１−２は、「センサＩＤ」フィールド以外の値に変化が無かった例を示している。また、データセットＢ２は、「温度」フィールドを変更したデータセットであり、バッチジョブ２の処理後の出力データＢ２−２は、データセットＡのデータ量から変化（増減）した例を示している。データ量とは、レコード件数等で示される。
【００４３】
次に、出力データへの影響度αを算出する影響度算出方法について説明する。図９は、影響度算出方法を説明するための図である。図９のように、影響度算出方法では、まず、出力データのレコード件数を比較する（比較Ｉ）。比較Ｉの判断によって、レコード件数が、基準となる出力データＡ−２と異なる場合、出力データへの影響度αに「１」が設定される。
【００４４】
データセットＡの出力データＡ−２のレコード件数が３００件であったのに対して、「温度」フィールドを変更したデータセットＢ２の出力データＢ２−２のレコード件数は２００件であった場合、「温度」フィールドの変更は、出力データへの影響度α＝１であると判断される。出力データＢ２−２のレコード件数が、基準となる出力データＡ−２のレコード件数より少なくてもまた多くても、一致しない場合は、影響度αは「１」となる。
【００４５】
比較（Ｉ）の判断によって、出力データのレコード件数が等しい場合、出力データの全レコードのうち、変更された対象フィールド以外のフィールドを比較する（比較ＩＩ）。比較（Ｉ）によって、出力データのレコード件数が基準の出力データＡ−２のレコード件数と等しいと判断された場合、出力データの全レコードのうち、対象フィールド以外のフィールドが比較される。
【００４６】
影響度αは、下記の式により算出される。
【００４７】
α  ＝  （値が異なるフィールド数）／（全レコードのフィールド数）
「センサＩＤ」フィールドを変更したデータセットＢ１の出力データＢ１−２において、全レコードのフィールド数は、レコード件数「３００」件に、「センサＩＤ」を除いた項目数「４」を乗算することによって得られる。全レコードのフィールド数は、３００＊４＝１２００となる。出力データＢ１−２では、変更した「センサＩＤ」フィールド以外では、基準となる出力データＡ−２とに変化がないため、値が異なるフィールド数は「０」となる。従って、影響度α＝０／１２００＝０を得る。
【００４８】
また、４８０箇所のフィールドが異なった別の出力データＣの場合、全レコードのフィールド数は、３００＊４＝１２００となる。値が異なるフィールド数は「４８０」であるため、影響度α＝４８０／１２００＝０．４を得る。
【００４９】
出力データＢ１−２と、出力データＣとは、どちらもレコード件数は「３００」件であるが、影響度αは異なっている。
【００５０】
以下に、バッチジョブの実行時間推定方法を実行するシステム１０００について説明する。図１０は、本実施の形態に係るシステムの機能構成例を示す図である。図１０において、システム１０００は、主に、度数分布生成部４０と、実行時間推定部５０とを有する。度数分布生成部４０と、実行時間推定部５０とは、個別のコンピュータ装置に実装され、夫々を度数分布生成装置と、実行時間推定としても良い。又は、度数分布生成部４０と、実行時間推定部５０とが、同一のコンピュータ装置に実装されても良い。度数分布生成部４０と、実行時間推定部５０とは、後述されるＣＰＵ１１が対応するプログラムを実行することによって実現される。
【００５１】
度数分布生成部４０は、入力データのバッチジョブ２への処理によって出力データに影響する変量フィールド７に関して度数分布表３ｆを生成し、度数分布表３ｆに基づいて出力データ量又は／及び実行時間を推定する度数分布写像ｆ又は／及び実行時間写像ｇを作成する処理部であり、変量フィールド決定部４１と、度数分布表生成部４２と、度数分布写像作成部４３と、実行時間写像作成部４４とを有する。
【００５２】
変量フィールド決定部４１は、バッチジョブ後の出力データへの影響度αに基づいて、変量フィールドを決定する処理部である。変量フィールド決定部４１は、入出力データのスキーマ６に基づいて入力データを生成する際に、あるフィールドを変更したデータセットを作成し、バッチジョブ後の出力データへの影響度αを算出する。変量フィールド決定部４１は、算出した影響度αに基づいて、変量フィールドを決定する。
【００５３】
度数分布表生成部４２は、入出力データのスキーマ６を参照することによって、変量フィールド決定部４１によって決定された変量フィールド７の値域とレコード件数の見積値とに基づいて、夫々の度数分布の階級と階級幅を決定して度数分布表３ｆを作成する処理部である。
【００５４】
度数分布写像作成部４３は、度数分布表３ｆに基づくランダムな入力データ２ｄに対してバッチジョブ２を行うことによって、度数分布写像ｆを作成する処理部である。実行時間写像作成部４４は、度数分布表３ｆに基づくランダムな入力データ２ｄに対してバッチジョブ２を行うことによって、実行時間写像ｇを作成する処理部である。
【００５５】
実行時間推定部５０は、実際の入力データの度数分布表３ｆ−２と、度数分布写像ｆ又は／及び実行時間写像ｇとを用いて実行時間を推定する処理部であり、入力データ度数分布作成部５１と、実行時間推定部５２と、出力データ度数分布推定部５３とを有する。
【００５６】
入力データ度数分布作成部５１は、実際の入力データの件数で度数分布表３ｆに度数を設定することにより、度数分布表３ｆ−２を作成する処理部である。
【００５７】
実行時間推定部５２は、入力データ度数分布作成部５１によって度数分布表３ｆに度数を設定することによって作成された度数分布表３ｆ−２に基づいて、実行時間を推定する処理部である。実行時間推定部５２は、実行時間推定値５を、度数分布表３ｆ−２の度数の総和に基づいて計算する。又は、実行時間推定部５２は、実行時間推定値５を、実行時間写像ｇの各値を係数とした一次式で計算する。
【００５８】
出力データ度数分布推定部５３は、入力データ度数分布作成部５１によって度数分布表３ｆを用いて作成された度数分布表３ｆ−２に基づいて、度数分布写像ｆの各値を係数とした一次式で出力データの各段階の度数を計算することによって、出力データの度数分布推定値４ｆを作成する処理部である。
【００５９】
度数分布生成部４０と、実行時間推定部５０とを実現するコンピュータ装置１０のハードウェア構成について説明する。図１１は、コンピュータ装置のハードウェア構成を示す図である。図１１において、コンピュータ装置１０は、コンピュータによって制御される端末であって、ＣＰＵ（Central Processing Unit）１１と、主記憶装置１２と、補助記憶装置１３と、入力装置１４と、表示装置１５と、出力装置１６と、通信Ｉ／Ｆ（インターフェース）１７と、ドライブ１８とを有し、バスＢに接続される。
【００６０】
ＣＰＵ１１は、主記憶装置１２に格納されたプログラムに従ってコンピュータ装置１０を制御する。主記憶装置１２には、ＲＡＭ（Random Access Memory）及びＲＯＭ（Read-Only Memory）等が用いられ、ＣＰＵ１１にて実行されるプログラム、ＣＰＵ１１での処理に必要なデータ、ＣＰＵ１１での処理にて得られたデータ等を格納する。また、主記憶装置１２の一部の領域が、ＣＰＵ１１での処理に利用されるワークエリアとして割り付けられている。
【００６１】
補助記憶装置１３には、ハードディスクドライブが用いられ、各種処理を実行するためのプログラム等のデータを格納する。補助記憶装置１３に格納されているプログラムの一部が主記憶装置１２にロードされ、ＣＰＵ１１に実行されることによって、各種処理が実現される。記憶部１３０は、主記憶装置１２及び／又は補助記憶装置１３を有する。
【００６２】
入力装置１４は、マウス、キーボード等を有し、ユーザがコンピュータ装置１０による処理に必要な各種情報を入力するために用いられる。表示装置１５は、ＣＰＵ１１の制御のもとに必要な各種情報を表示する。出力装置１６は、プリンタ等を有し、ユーザからの指示に応じて各種情報を出力するために用いられる。通信Ｉ／Ｆ１７は、例えばインターネット、ＬＡＮ（Local Area Network）等に接続し、外部装置との間の通信制御をするための装置である。
【００６３】
コンピュータ装置１０によって行われる処理を実現するプログラムは、例えば、ＣＤ−ＲＯＭ（Compact Disc Read-Only Memory）等の記憶媒体１９によってコンピュータ装置１０に提供される。即ち、プログラムが保存された記憶媒体１９がドライブ１８にセットされると、ドライブ１８が記憶媒体１９からプログラムを読み出し、その読み出されたプログラムがバスＢを介して補助記憶装置１３にインストールされる。そして、プログラムが起動されると、補助記憶装置１３にインストールされたプログラムに従ってＣＰＵ１１がその処理を開始する。尚、プログラムを格納する媒体としてＣＤ−ＲＯＭに限定するものではなく、コンピュータが読み取り可能な媒体であればよい。コンピュータ読取可能な記憶媒体として、ＣＤ−ＲＯＭの他に、ＤＶＤディスク、ＵＳＢメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリであっても良い。
【００６４】
また、コンピュータ装置１０によって行われる処理を実現するプログラムが、通信Ｉ／Ｆ１７を介して外部装置から提供されてもよい。或いは、外部装置へ該プログラムを提供し、後述される各処理は外部装置で実現されるように構成してもよい。通信Ｉ／Ｆ１７による通信は無線又は有線に限定されるものではない。
【００６５】
コンピュータ装置１０が、度数分布生成部４０を実装する装置である場合、記憶部１３０に入出力データのスキーマ６等が格納される。コンピュータ装置１０が、実行時間推定部５０を実装する装置である場合、記憶部１３０に入力データ２ｄ、度数分布写像ｆ、度数分布表３ｆ及び度数分布推定値４ｆを含む度数分布データ３４ｆ、実行時間写像ｇ等が格納される。
【００６６】
また、度数分布生成部４０と、実行時間推定部５０とを一つのコンピュータ装置１０で実現する場合には、コンピュータ装置１０がシステム１０００全体に相当する。
【００６７】
度数分布写像作成部４３による度数分布写像作成処理について説明する。図１２は、度数分布写像作成処理を説明するための図である。図１２に示す度数分布写像作成処理において、ＣＰＵ１１は、入出力データのスキーマ６から入力データのスキーマを取得する（ステップＳ１０１）。入出力データのスキーマ６から、ユーザによって選択された入力データのスキーマを読み込む。
【００６８】
ＣＰＵ１１は、入力データの変量フィールドを決定する変量フィールド決定処理を実行する（ステップＳ１０２）。その後、ＣＰＵ１１は、入力データの度数分布表３ｆを作成する度数分布表生成処理を実行する（ステップＳ１０３）。度数分布表生成処理により、階級数、及び階級幅が決定される。
【００６９】
ＣＰＵ１１は、入力データの度数分布３の階級毎にランダムな入力データを生成して（ステップＳ１０４）、バッチジョブ２で１件ずつ処理して、出力データの度数分布４のどの階級に出力されたかをカウントする（ステップＳ１０５）。
【００７０】
生成した入力データ全てに対してバッチジョブ２での処理を終了した後、ＣＰＵ１１は、階級毎のカウントされた値を入力データの総数（階級毎の度数）で割って、度数分布写像ｇを作成する（ステップＳ１０６）。そして、ＣＰＵ１１は、この度数分布写像作成処理を終了する。
【００７１】
実時間写像作成部４３による実時間写像作成処理について図１３で説明する。図１３は、実時間写像作成処理を説明するための図である。図１３に示す実時間写像作成処理において、ＣＰＵ１１は、入出力データのスキーマ６から入力データのスキーマを取得する（ステップＳ１１１）。入出力データのスキーマ６から、ユーザによって選択された入力データのスキーマを読み込む。
【００７２】
ＣＰＵ１１は、入力データの変量フィールドを決定する変量フィールド決定処理を実行する（ステップＳ１１２）。また、変量フィールドの決定後、ＣＰＵ１１は、入力データの度数分布表３ｆを生成する度数分布表生成処理を実行する（ステップＳ１１３）。度数分布表生成処理により、階級数、及び階級幅が決定される。
【００７３】
ＣＰＵ１１は、入力データの度数分布３の階級毎にランダムな入力データを生成して（ステップＳ１１４）、バッチジョブで１件ずつ処理して、１件ごとの実行時間を測定する（ステップＳ１１５）。
【００７４】
そして、ＣＰＵ１１は、階級毎の実行時間の平均から実行時間写像ｇを作成する（ステップＳ１１６）。
【００７５】
出力データ度数分布推定部５３による出力データ度数分布推定処理について図１４で説明する。図１４は、出力データ度数分布推定処理を説明するための図である。バッチジョブ２が単体の場合と、バッチジョブ２が多段の場合とで、出力データ度数分布推定部５３による出力データ度数分布推定処理が異なる。
【００７６】
図１４（Ａ）では、バッチジョブ２が単体の場合の当該バッチジョブの出力データ度数分布推定処理を説明する。図１４（Ａ）において、ＣＰＵ１１は、実際の入力データ２ｄの度数分布表３ｆ−２と、当該バッチジョブ２の度数分布写像ｆとを記憶部１３０から読み込んで（ステップＳ１３１）、度数分布写像ｆの各値を係数とした一次式で出力データの各階級の度数を計算する（ステップＳ１３２）。
【００７７】
そして、ＣＰＵ１１は、計算した各階級の度数を出力データの度数分布推定値４ｆを生成し（ステップＳ１３３）、このバッチジョブ２が単体の場合の処理を終了する。
【００７８】
図１４（Ｂ）では、バッチジョブ２が多段の場合の処理を説明する。図１４（Ｂ）において、ＣＰＵ１１は、入力データの度数分布表３ｆを生成する（ステップＳ１４１）。
【００７９】
ＣＰＵ１１は、当該バッチジョブの出力データ度数分布推定処理を実行する（ステップＳ１４２）。当該バッチジョブの出力データ度数分布推定処理にて出力データの度数分布推定値４ｆを生成した後、ＣＰＵ１１は、後段バッチジョブが存在するか否かを判断する（ステップＳ１４３）。
【００８０】
後段バッチジョブが存在すると判断した場合、ＣＰＵ１１は、当該バッチジョブの出力データの度数分布推定値４ｆを入力データの度数分布表３ｆに設定して（ステップＳ１４４）、ステップＳ１４２へと戻り、上述同様の処理を繰り返す。一方、後段バッチジョブが存在しないと判断した場合、ＣＰＵ１１は、この処理を終了する。
【００８１】
実行時間推定部５２による実行時間推定処理について図１５で説明する。図１５は、実行時間推定処理を説明するための図である。バッチジョブ２が単体の場合と、バッチジョブ２が多段の場合とで、実行時間推定部５２による実行時間推定処理が異なる。
【００８２】
図１５（Ａ）では、バッチジョブ２が単体の場合の当該バッチジョブの実行時間推定処理を説明する。図１５（Ａ）において、ＣＰＵ１１は、実際の入力データ２ｄの度数分布表３ｆ−２と、当該バッチジョブ２の度数分布写像ｆとを記憶部１３０から読み込んで（ステップＳ１５１）、実行時間写像ｇの各値を係数とした一次式で実行時間を計算する（ステップＳ１５２）。そして、ＣＰＵ１１は、この処理を終了する。
【００８３】
図１５（Ｂ）では、バッチジョブ２が多段の場合の処理を説明する。図１５（Ｂ）において、ＣＰＵ１１は、入力データの度数分布表３ｆを生成する（ステップＳ１６１）。
【００８４】
ＣＰＵ１１は、当該バッチジョブの実行時間推定処理を実行する（ステップＳ１６２）。当該バッチジョブの実行時間推定処理にて実行時間を計算した後、ＣＰＵ１１は、後段バッチジョブが存在するか否かを判断する（ステップＳ１６３）。
【００８５】
後段バッチジョブが存在すると判断した場合、ＣＰＵ１１は、バッチジョブネットワークの総実行時間に当該バッチジョブの実行時間を加算して（ステップＳ１６４）、ステップＳ１６２へと戻り、上述同様の処理を繰り返す。一方、後段バッチジョブが存在しないと判断した場合、ＣＰＵ１１は、この処理を終了する。
【００８６】
図１２のステップＳ１０２及び図１３のステップＳ１１２での変量フィールド決定処理について図１６で説明する。図１６は、変量フィールド決定処理を説明するための図である。図１６に示す変量フィールド決定処理において、ＣＰＵ１１は、終端データではないかを判断する（ステップＳ１７１）。終端データであると判断した場合、ＣＰＵ１１は、この処理を終了する。一方、終端データではないと判断した場合、入力データ２ｄの各フィールドを平均又は標準偏差を持った正規乱数を用いてデータセットＡを生成する（ステップＳ１７２）。
【００８７】
そして、ＣＰＵ１１は、各レコードについてフィールドａ以外はデータセットＡの同一番目のフィールドと同じ値とし、フィールドａだけデータセットＡの時とは異なる平均又は標準偏差を持った正規乱数を用いて変更したデータセットＢを生成する（ステップＳ１７３）。
【００８８】
ＣＰＵ１１は、データセットＡ及びＢをバッチジョブ２で処理し、出力としてデータセットＣ及びＤを得る（ステップＳ１７４）。ＣＰＵ１１は、データセットＣ及びＤを用いて、出力データの影響を算出する（ステップＳ１７５）。
【００８９】
ＣＰＵ１１は、出力データの影響度αが一定以上か否かを判断する（ステップＳ１７６）。一定以上でない場合、ＣＰＵ１１は、ステップＳ１７８へと進む。一方、一定以上の場合、ＣＰＵ１１は、フィールドａを変量フィールドに決定し（ステップＳ１７７）、前段バッチジョブについてフィールドａを入力データ２ｄの変量フィールドに変更する（ステップＳ１７８）。その後、ＣＰＵ１１は、この処理を終了する。
【００９０】
図１６のステップＳ１７５での出力データの影響度算出処理について図１７で説明する。図１７は、出力データの影響度算出処理を説明するための図である。図１７に示す出力データの影響度算出処理において、ＣＰＵ１１は、データセットＣ及びＤを比較して（ステップＳ１８１）、データセットＣとデータセットＤのレコード数が異なるか否かを判断する（ステップＳ１８２）。この比較処理が、図９の比較Ｉに相当する。
【００９１】
レコード数が一致する場合、ＣＰＵ１１は、出力データの影響度αに「１」を設定して（ステップＳ１８３）、この処理を終了する。
【００９２】
一方、レコード数が異なる場合、ＣＰＵ１１は、更に、値を変更したフィールドａ以外で値が異なるフィールドが存在するか否かを判断する（ステップＳ１８４）。値が異なるフィールドが存在しない場合、ＣＰＵ１１は、データセットＣとＤ間で値が異なるフィールド数を全レコードのフィールド数で割ることによって、出力データの影響度αを計算し（ステップＳ１８５）、この処理を終了する。一方、値が異なるフィールドが存在する場合、ＣＰＵ１１は、この処理を終了する。
【００９３】
以下に、本実施の形態を温度センサデータのバッチ処理に適用した場合について図１８で説明する。図１８は、温度センサデータのバッチ処理の一例を説明するための図である。図１８に示す温度センサデータのバッチ処理の例では、建屋に多数配置された温度センサ８のデータ（以下、温度センサデータと言う）に基づいて、部屋Ａの平均温度を求める。建屋全体を２５×２５（ｍ２）とする。温度センサデータは０．１℃変化する毎に送信され、送信間隔は不定期である。
【００９４】
温度センサデータは一箇所に収集され建屋全体の温度センサデータＤ１に格納される。温度センサデータＤ１のフィールドの項目は、「センサＩＤ」、「日時」、「温度」、「ｘ」、「ｙ」等である。
【００９５】
バッチジョブＪ１は、部屋Ａの温度センサデータＤ２を抽出する。部屋Ａの位置情報が、例えば、図１８に示すｘ及びｙ方向によって、部屋Ａの対角線上の頂点となる座標（８、８）と座標（１８、１６）とで表される場合、センサＩＤで識別される各センサのうち、部屋Ａの領域内を示すレコードが抽出される。温度センサデータＤ２のフィールドの項目は、温度センサデータＤ１のフィールドの項目と同様である。
【００９６】
バッチジョブＪ２は、バッチジョブＪ１によって抽出された部屋Ａの温度センサデータＤ２に基づいて、位置毎の平均温度を計算する。ｘｙで示される各位置の平均温度データＤ３が出力される。平均温度データＤ３のフィールドの項目は、「ｘ」、「ｙ」、「平均温度」等である。
【００９７】
図１９は、各データのスキーマと件数見積値の例を示す図である。図１９において、温度センサデータＤ１のスキーマ６−１は、フィールド、型、値域等で各データを定義している。「センサＩＤ」、「日時」、「温度」、「ｘ」、及び「ｙ」フィールドの各々に対して、型、値域等が定義されている。
【００９８】
温度センサデータＤ２のスキーマ６−２は、フィールド、型、値域等で各データを定義している。「センサＩＤ」、「日時」、「温度」、「ｘ」、及び「ｙ」フィールドの各々に対して、型、値域等が定義されている。
【００９９】
平均温度データＤ３のスキーマ６−３は、フィールド、型、値域等で各データを定義している。「ｘ」、「ｙ」、及び「平均温度」フィールドの各々に対して、型、値域等が定義されている。
【０１００】
各データＤ１、Ｄ２、及びＤ３の件数見積値は、ともに１０００件とする。
【０１０１】
以下に、このようなスキーマ６−１から６−３と各件数見積値とに基づいて、度数分布写像ｆのみを使用して、実行時間を推定する第１実施例について説明する。
【０１０２】
第１実施例における手順は下記の通りである。
（１）入力データ（温度差センサデータＤ１）の度数分布表３ｆ−２から度数分布写像ｆを用いて出力データ（温度差センサデータＤ２）の度数分布推定値４ｆを計算し、度数分布推定値４ｆからバッチジョブＪ１の出力データ量（温度差センサデータＤ２のデータ量）を求める。
（２）出力データ量（温度差センサデータＤ２のデータ量）から特許文献１に開示される手法を用いて実行時間を推定して、実行時間推定値５を得る。出力データ量（温度差センサデータＤ２のデータ量）は度数分布推定値４ｆの度数の総和で容易に得られる。
（３）出力データ（温度差センサデータＤ２）の度数分布推定値４ｆは、後続のバッチジョブＪ２の入力データの度数分布表３ｆとして用いる。後続バッチジョブＪ２の実行時間の推定は、上述同様に、出力データ量（各位置の平均温度データＤ３の出力データ量）から特許文献１に開示される手法を用いて行う。
【０１０３】
第１実施例における変量フィールドの決定例について図２０で説明する。図２０及び図２１は、第１実施例における変量フィールドの決定例を説明するための図である。図２０にて、温度センサデータＤ１において、基準となる温度センサデータＤ１−０と、温度センサデータＤ１−０に対して「センサＩＤ」のみを変更した温度センサデータＤ１−１と、温度センサデータＤ１−０に対して「ｘ」のみを変更した温度センサデータＤ１−２とが、夫々１０００件ずつ用意される。
【０１０４】
「センサＩＤ」のみを変更した温度センサデータＤ１−１と、温度センサデータＤ１−０に対して「ｘ」のみを変更した温度センサデータＤ１−２とを例として以下に説明するが、「センサＩＤ」及び「ｘ」以外のフィールドの各々のみを変更した温度センサデータＤ１が用意される。
【０１０５】
基準となる温度センサデータＤ１−０をバッチジョブＪ１で処理することによって、温度センサデータＤ１−０からは部屋Ａの温度センサデータＤ２−０が抽出され、抽出後の基準データとして使用される。
【０１０６】
「センサＩＤ」のみを変更した温度センサデータＤ１−１をバッチジョブＪ１で処理することによって、温度センサデータＤ１−１からは部屋Ａの温度センサデータＤ２−１が抽出され、「センサＩＤ」以外の値について温度センサデータＤ２−０と比較される。この例では、「センサＩＤ」以外の値が全て同じであったため、影響度α（センサＩＤ）に「０」が設定される。
【０１０７】
「ｘ」のみを変更した温度センサデータＤ１−２をバッチジョブＪ１で処理することによって、温度センサデータＤ１−２からは部屋Ａの温度センサデータＤ２−２が抽出され、「ｘ」以外の値について温度センサデータＤ２−０と比較される。この例では、「ｘ」以外の値が全て同じであったため、影響度α（ｘ）に「０」が設定される。
【０１０８】
上述したように、「センサＩＤ」及び「ｘ」以外のフィールドの各々のみを変更した温度センサデータＤ１についても影響度αを計算する。
【０１０９】
更に、図２１において、影響度αが一定値（例えば、０．３）以上となるフィールドａを変量フィールドとする。バッチジョブＪ１に基づく影響度αから、温度センサデータＤ１の変量フィールドに「ｘ」及び「ｙ」が変量フィールドに設定される。
【０１１０】
また、後段のバッチジョブＪ２に基づく影響度αから、温度センサデータＤ２の変量フィールドに「温度」、「ｘ」、及び「ｙ」が変量フィールドに設定される。ここで、温度センサデータＤ１と温度センサデータＤ２は、フィールドの項目が一致するデータセットであるため、Ｄ１の変量フィールドがＤ２の変量フィールドを含むことが条件となる。従って、Ｄ１の変量フィールドに、Ｄ２の変量フィールドとの差分となる「温度」を追加する。
【０１１１】
そして、終端データである平均温度データＤ３の変量フィールドには、「ｘ」、「ｙ」、及び「平均温度」を設定する。
【０１１２】
次に、入力データＤ１の度数分布表３ｆの作成例について説明する。先ず、Sturgesの公式（非特許文献１）を用いて階級数及び階級幅を決定する。件数見積値を１０００件とすることにより、数１の計算によって、温度センサデータＤ１の変量フィールド「温度」の階級数ｋ＝１１を得る。
【０１１３】
【数１】
0005842704.tif 000002
【０１１４】
また、数２の計算によって、変量フィールド「温度」の階級幅ｈとして、凡そ９．０９を得る。
【０１１５】
【数２】
0005842704.tif 000003
【０１１６】
他の変量フィールド「ｘ」及び「ｙ」の各々について、上述したように階級数ｋ及び階級幅ｈを計算する。
【０１１７】
温度センサデータＤ１の度数分布３ｆは、図２２に示されるような、３次元度数分布３８で表される。図２２は、３次元度数分布の例を示す図である。図２２にて、３次元度数分布３８は、「温度」の階級３８ａ、「ｘ」の階級３８ｂ、「ｙ」の階級３８ｃの次元で表される。
【０１１８】
変量フィールド「温度」の各階級は、階級幅ｈ＝９．０９で区切られて、「温度」の階級３８ａのようなデータ例を示す。「ｘ」の各階級は、階級幅ｈ＝４．５４で区切られて、「ｘ」の階級３８ｂのようなデータ例を示す。「ｙ」の各階級は、階級幅ｈ＝４．５４で区切られて、「ｙ」の階級３８ｃのようなデータ例を示す。
【０１１９】
次に、第１実施例における度数分布写像ｆの作成例について説明する。図２３及び図２４は、第１実施例における度数分布写像の作成例を説明するための図である。図２３（Ａ）では、図２２の３次元度数分布３８に基づく度数分布表３ｆを示している。度数分布表３ｆでは、変量フィールド「温度」、「ｘ」、及び「ｙ」の組み合せ毎に度数「１００」が設定されている。
【０１２０】
組み合せ毎に示される度数分（１００個）のサンプルデータ３９を生成する。例えば、「温度」の「０〜９．０９」階級、「ｘ」の「０〜４．５４」階級、及び「ｙ」の「０〜４．５４」階級の組み合せに対する（１００２、１２：２０、２．１、３、２）等を含む１００個のデータが生成される。
【０１２１】
そして、サンプルデータ３９をバッチジョブＪ１で１件ずつ処理し、出力データの度数分推定値４ｆのどの階級に出力されたのかを入出力対応表２ａでカウントした値を記録する。
【０１２２】
図２３（Ｂ）に例示するように、便宜上、階級の組み合せの一部にＡ、Ｂ、Ｃ、Ｄ、及びＥの階級名を付ける。図２３（Ｃ）にて、バッチジョブＪ１の場合の、図２３（Ｂ）の階級名を用いた入出力対応表２ａの例を示す。
【０１２３】
バッチジョブＪ１への入力データである温度センサデータＤ１と、バッチジョブＪ１後の温度センサデータＤ２との対応付けを示す、階級名Ａ〜Ｅのマトリクスを含む入力対応表２ａにおいて、入力（Ｄ１）の階級Ｂから出力（Ｄ２）の階級Ｂへと３８回出力され、入力（Ｄ１）の階級Ｃから出力（Ｄ２）の階級Ｃへと１００回出力され、入力（Ｄ１）の階級Ｂから出力（Ｄ２）の階級Ｂへと６４回出力される。
【０１２４】
図２３（Ｃ）に示される入力対応表２ａから図２４に示されるような度数分布写像ｆを得る。図２４は、第１実施例における度数分布写像の例を示す図である。図２４において、図２３（Ｃ）に示される入力対応表２ａの各値を階級毎の度数（１００件）で割ることによって、バッチジョブＪ１の度数分布写像ｆを取得する。
【０１２５】
次に、第１実施例における出力データの度数分布推定例について説明する。図２５は、第１実施例における出力データの度数分布推定例を説明するための図である。図２５（Ａ）では、実際の入力データＤ１の度数分布表３ｆ−２を作成する。作成された度数分布表３ｆ−２は、例えば、階級Ａの度数は「５０」、階級Ｂの度数は「９２」、階級Ｃの度数は「８１」、階級Ｄの度数は「７３」、階級Ｅの度数は「４２」等を示す。
【０１２６】
そして、度数分布写像ｆの各値を係数とした一次式で出力データの度数分布の各階級の度数を推定する。図２５（Ｂ）では、図２４に示す度数分布写像ｆを用いて、出力されるデータＤ２の度数分布推定値４ｆの作成例を示す。
【０１２７】
データＤ２の階級Ｂの度数を、Ｄ２［Ｂ］と表記し、
Ｄ２［Ｂ］  ＝  ・・・＋０＊Ｄ１［Ａ］＋０．３８＊Ｄ１［Ｂ］＋０＊Ｄ１［Ｃ］
＋０＊Ｄ１［Ｄ］＋０＊Ｄ１［Ｄ］＋・・・
で求められる。
【０１２８】
他階級についても同様の計算を行うことによって、度数分布推定値４ｆを得ることができる。
【０１２９】
そして、得られた度数分布推定値４ｆを用いて出力データ量を算出する。
【０１３０】
出力データ量  ＝  ・・・＋Ｄ２［Ａ］＋Ｄ２［Ｂ］＋Ｄ２［Ｃ］＋Ｄ２［Ｄ］
＋Ｄ２［Ｅ］＋・・・
のようにして得られる。得られた温度差センサデータＤ２の出力データ量に基づいて、特許文献１の手法を用いてバッチジョブＪ１の実行時間推定値５を算出する。
【０１３１】
また、度数分布推定値４ｆを後続バッチジョブＪ２の入力データの度数分布表３ｆ−２に設定し、上述した同様の処理を行うことによって、各位置の平均温度データＤ３の出力データ量から後続バッチジョブＪ２の実行時間推定値５を算出することができる。
【０１３２】
以下に、度数分布写像ｆと実行時間写像ｇとを使用して、実行時間を推定する第２実施例について説明する。
【０１３３】
第２実施例における手順は下記の通りである。
（１）入力データ（温度差センサデータＤ１）の度数分布表３ｆ−２から度数分布写像ｆを用いて出力データ（温度差センサデータＤ２）の度数分布推定値４ｆを計算する。
（２）入力データ（温度差センサデータＤ１）の度数分布表３ｆ−２から実行時間写像ｇを用いて実行時間を推定して、実行時間推定値５を得る。
（３）出力データ（温度差センサデータＤ２のデータ量）の度数分布推定値４ｆは、後続のバッチジョブＪ２の入力データの度数分布表３ｆとして用いる。後続バッチジョブＪ２の実行時間の推定は、上述同様に、実行時間写像ｇを用いて行う。
【０１３４】
第２実施例における変量フィールドの決定は、第１実施例で説明した通りであるので、その詳細な説明を省略する。
【０１３５】
第２実施例における実行時間写像ｇの作成例について説明する。図２６及び図２７は、第２実施例における実行時間写像の作成例を説明するための図である。図２６（Ａ）では、図２２の３次元度数分布３８に基づく度数分布表３ｆを示している。度数分布写像３ｆの作成時と同様の、図２２の３次元度数分布３８に基づく度数分布表ｆを用いる。度数分布表３ｆでは、変量フィールド「温度」、「ｘ」、及び「ｙ」の組み合せ毎に度数「１００」が設定されている。
【０１３６】
度数分布写像ｆの作成時と同様に、組み合せ毎に示される度数分（１００個）のサンプルデータ３９を生成する。例えば、「温度」の「０〜９．０９」階級、「ｘ」の「０〜４．５４」階級、及び「ｙ」の「０〜４．５４」階級の組み合せに対する（１００２、１２：２０、２．１、３、２）等を含む１００個のデータが生成される。
【０１３７】
そして、サンプルデータ３９をバッチジョブＪ１で１件ずつ処理し、実行時間５を実行時間対応表２ｂでカウントした値を記録する。
【０１３８】
図２６（Ｂ）に例示するように、便宜上、階級の組み合せの一部にＡ、Ｂ、Ｃ、Ｄ、及びＥの階級名を付ける。図２６（Ｃ）にて、バッチジョブＪ１の場合の、図２６（Ｂ）の階級名を用いた実行時間対応表２ｂの例を示す。実行時間対応表２ｂでは、階級毎の１００件の総実行時間が示される。
【０１３９】
図２６（Ｃ）に示される実行時間対応表２ａから図２７に示されるような実行時間写像ｇを得る。図２６（Ｄ）では、バッチジョブＪ１の実行時間写像ｇが例示される。図２６（Ｄ）において、図２６（Ｃ）に示される実行時間対応表２ｂの各値を階級毎の度数（１００件）で割ることによって、バッチジョブＪ１の実行時間写像ｇを取得する。
【０１４０】
図２７は、第２実施例における実行時間の推定例を説明するための図である。図２７（Ａ）では、実際の入力データＤ１の度数分布表３ｆ−２の作成例が示される。度数分布表３ｆ−２の一部である階級Ａ、Ｂ、Ｃ、Ｄ、Ｅの夫々に対して、度数「５０」、「９２」、「８１」、「７３」、及び「４２」を示す例である。
【０１４１】
そして、図２７（Ｂ）に例示される実行時間写像ｇを用いて実行時間推定値５を計算する。図２７（Ｂ）に示される実行時間写像ｇは、バッチジョブＪ１の実行時間写像ｇ（図２６（Ｄ））に相当する。実行時間写像ｇの各値を係数とした一次式で、実行時間推定値５が計算される。例えば、バッチジョブＪ１の実行時間ｔ［Ｊ１］は、以下のように計算される。
【０１４２】
ｔ［Ｊ１］  ＝  ・・・＋０．１＊Ｄ１［Ａ］＋０．３＊Ｄ１［Ｂ］
＋０．３＊Ｄ１［Ｃ］＋０．３＊Ｄ１［Ｄ］＋０．１＊Ｄ１［Ｅ］
＝  ０．１＊（１１２５−９２−８１−７３）
＋０．３＊（９２＋８１＋７３）
＝１６１．７
但し、温度センサデータＤ１の実際のレコード数は１１２５件とする。また、Ｂ、Ｃ、Ｄ以外の階級の平均実行時間は全て０．１ｍｓとする。
【０１４３】
入力データのレコード件数Ｎが同一であるが異なる度数分布により推定時間が異なる場合について図２８及び図２９で説明する。
【０１４４】
図２８は、第２実施例における他の実行時間の推定例を説明するための図である。図２８では、入力データＤ１とＤ１'のレコード件数Ｎがどちらも１１２５件であるとする。
【０１４５】
入力データＤ１の度数分布表３ｆ−２では、その一部分において、階級Ａでは「５０」度数を示し、階級Ｂでは「９２」度数を示し、階級Ｃでは「８１」度数を示し、階級Ｄでは「７３」度数を示し、階級Ｅでは「４２」度数を示す。
【０１４６】
入力データＤ１'の度数分布表３ｆ−２'では、その一部分において、階級Ａでは「２０」度数を示し、階級Ｂでは「１５」度数を示し、階級Ｃでは「２４」度数を示し、階級Ｄでは「３０」度数を示し、階級Ｅでは「２５」度数を示す。
【０１４７】
また、予め作成された実行時間写像ｇによって示される階級毎の実行時間は、一部分において、階級Ａでは「０．１」msecを示し、階級Ｂでは「０．３」msecを示し、階級Ｃでは「０．３」msecを示し、階級Ｄでは「０．３」msecを示し、階級Ｅでは「０．１」msecを示す。
【０１４８】
このような場合において、入力データの度数分布表３ｆ−２及び実行時間写像を用いない従来手法による実行時間を推定するための一次式がｔ［Ｊ１］＝０．１Ｎ＋５０である場合、
ｔ［Ｊ１］  ＝  ０．１＊１１２５  ＋  ５０  ＝  １６２．５
として求められる。
【０１４９】
一方、本実施の形態による入力データＤ１とＤ１'に対する実行時間推定値５は、
入力データＤ１の場合、
ｔ［Ｊ１］  ＝  ０．１＊（１１２５−９２−８１−７３）
＋  ０．３＊（９２＋８１＋７３）  ＝  １６１．７
となる。
【０１５０】
また、入力データＤ１'の場合、
ｔ［Ｊ１］  ＝  ０．１＊（１１２５−１５−２４−３０）
＋  ０．３＊（１５＋２４＋３０）  ＝  １２６．３
となる。
【０１５１】
このように、本実施の形態では、入力データＤ１と入力データＤ１'とでは、異なる実行時間推定値５が求まるのに対して、従来手法では、入力データ件数が同一である場合には、一つ実行時間推定値５しか得られない。つまり、従来手法では、推定された実行時間には誤差を含むことを意味しており、一方、本実施の形態では、推定誤差をより小さくし高精度に実行時間推定値５を求めることができる。
【０１５２】
図２８で例示した実行時間の推定値の違い（推定誤差）について図２９で説明する。図２９は、推定誤差を説明するための図である。図２９において、バッチジョブＪ１は、範囲［℃１、℃２］のデータを抽出し、所定処理を行うバッチジョブである。
【０１５３】
この例において、レコード件数に相当する入力データ量Ｎが１１２５件であったとする。同一の入力データ量Ｎであっても、温度の度数分布が異なる場合がある。入力データＤ１では度数分布２９ａ（図２８のＤ１の度数分布表３ｆ−２）を示し、入力データＤ１'では度数分布２９ｂ（図２８のＤ１'の度数分布表３ｆ−２'）を示す等がある。例えば、入力データＤ１は夏のデータであり、入力データＤ１'は冬のデータである場合等である。
【０１５４】
従来手法による実行時間推定値は、上述したように、入力データＤ１及び入力データＤ１'に対してｔ［Ｊ１］＝１６２．５で同じ結果となる。度数分布２９ａと度数分布２９ｂとの違いに関わらず同一の実行時間推定値が算出される。
【０１５５】
本実施の形態を適用した場合、入力データ量Ｎが同じ１１２５件であったとしても、度数分布２９ａを得た場合、度数分布２９ａ（図２８のＤ１の度数分布表３ｆ−２）に基づいてバッチジョブＪ１後の出力データ量に係る度数分布２９ｃが求まる。また、実行時間写像ｇを用いた一次式により、ｔ［Ｊ１］＝１６１．７を得る。
【０１５６】
また、度数分布２９ｂ（図２８のＤ１'の度数分布表３ｆ−２'）を得た場合、度数分布２９ｂに基づいてバッチジョブＪ１後の出力データ量に係る度数分布２９ｄが求まる。また、実行時間写像ｇを用いた一次式により、ｔ［Ｊ１］＝１２６．３を得る。
【０１５７】
この推定値ｔ［Ｊ１］＝１６１．７と推定値ｔ［Ｊ１］＝１２６．３との違いが、従来手法の場合における実行時間の推定誤差に相当する。
【０１５８】
更に、従来手法において、入力データ量から出力データ量を推測する場合、その出力データ量にも推定誤差が生じる。バッチジョブネットワークでは、出力データが後続バッチジョブの入力データとなるため、出力データ量の推定誤差が大きい場合、バッチジョブ毎に推定誤差が蓄積される。また、出力データ量の推定のみならず実行時間の推定にも影響を与えるため、適切な実行時間を推定することができない場合がある。
【０１５９】
一方、本実施の形態では、入力データ量Ｎが同じ件数であっても、度数分布２９ａ及び度数分布２９ｂの各々に基づいて、出力データ量及び実行時間を精度良く推定する。従って、バッチジョブネットワークにおいても、推定誤差による影響を少なくすることができ、出力データ量及び実行時間を精度良く推定できる。
【０１６０】
以下に、実行時間写像ｇのみを使用して、実行時間を推定する第３実施例について説明する。
【０１６１】
第３実施例では、バッチジョブが単一のバッチジョブのみで構成されている場合に、入力データの度数分布表３ｆ−２から度数分布写像ｆを用いて実行時間を推定して、実行時間推定値５を得る。
【０１６２】
第３実施例において、変量フィールドの決定は、第１実施例等と同様であるので、その詳細な説明を省略する。また、実行時間写像ｇの作成は、第２実施例等と同様であるので、その詳細な説明を省略する。
【０１６３】
以上より、本実施の形態では、入力データの値の分布によって出力データ量と実行時間とを推定するため、入力データ量のみで出力データ量と実行時間とを推定する従来手法に比べて、推定誤差を小さくすることができる。
【０１６４】
本実施の形態では、複数のフィールドで構成される入力データのレコードを１件ずつ処理するようなバッチジョブ２について、入力データの度数分布から度数分布写像又は／及び実行時間写像を用いて実行時間を推定することで、バッチジョブ２に関するソース情報、設定ファイル等が不明であっても、実行時間を精度良く推定できる。また、入力データの度数分布と度数分布写像とから出力データの度数分布を取得でき、出力データ量を高精度で推定することができる。
【０１６５】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【０１６６】
以上の第１から第３実施例を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
階級毎に入力データの度数の分布を示す度数分布表と、該度数分布表に基づく入力データから所定処理による結果情報への写像を記憶する記憶部と、
前記記憶部に記憶された前記度数分布表を入力とする該記憶部に記憶された前記結果情報への写像を用いた計算結果に基づいて、前記入力データに対する前記所定処理の実行時間を推定する実行時間推定部と
を有する実行時間推定装置。
（付記２）
前記記憶部に記憶される前記写像は、前記入力データの度数分布表から出力データの度数分布推定値への前記所定処理による度数分布写像であり、
前記入力データの度数分布表を入力とする、前記記憶部に記憶される前記度数分布写像を用いることによって、前記出力データの前記度数分布推定値を取得する出力データ度数分布推定部と、
推定された前記度数分布推定値で示される度数の総和による出力データ量に基づいて実行時間を推定する実行時間推定部と
を有する付記１記載の実行時間推定装置。
（付記３）
前記記憶部に記憶される前記写像は、前記入力データの度数分布表から前記所定処理による実行時間写像であり、
前記記憶部に記憶される実行時間写像の各値を前記入力データの度数分布表の同一階級の度数の係数とした一次式で、実行時間を推定する実行時間推定部
を有する付記１記載の実行時間推定装置。
（付記４）
前記記憶部は、前記入力データの度数分布表から出力データの度数分布推定値への前記所定処理による度数分布写像を更に記憶し、
前記記憶部に記憶される度数分布写像の各値を前記入力データの度数分布表の同一階級の度数の係数とした一次式で、前記出力データの度数分布推定値を取得する出力データ度数分布推定部
を有する付記３記載の実行時間推定装置。
（付記５）
前記出力データ度数分布推定部は、前記度数分布写像を用いた一次式で取得した前記出力データの度数分布推定値を、前記所定処理の後段の処理に対する入力データの度数分布表に設定する付記３記載の実行時間推定装置。
（付記６）
前記階級毎に入力データの度数を示す度数分布表を前記記憶部に作成する入力データ度数分布作成部を有する付記１乃至５のいずれか一項記載の実行時間推定装置。
（付記８）
記憶部に記憶された階級毎に入力データの度数の分布を示す度数分布表を入力とする、該記憶部に記憶された該度数分布表に基づく入力データから所定処理による結果情報への写像を計算し、
前記計算の結果に基づいて、前記入力データに対する前記所定処理の実行時間を推定する
処理をコンピュータに実行させるプログラム。
（付記９）
コンピュータによって実行される実行時間推定方法であって、
記憶部に記憶された階級毎に入力データの度数の分布を示す度数分布表を入力とする、該記憶部に記憶された該度数分布表に基づく入力データから所定処理による結果情報への写像を計算し、
前記計算の結果に基づいて、前記入力データに対する前記所定処理の実行時間を推定する実行時間推定方法。
（付記１０）
階級毎に入力データの度数の分布を示す度数分布表と、該度数分布表に基づく入力データから所定処理による結果情報への写像を記憶する記憶部と、
前記度数分布表と写像とを記憶する度数分布生成部と、
前記記憶部に記憶された前記度数分布表を入力とする該記憶部に記憶された前記実行情報への写像を用いた計算結果に基づいて、前記入力データに対する前記所定処理の実行時間を推定する実行時間推定部と
を有するシステム。
（付記１１）
前記度数分布生成部は、
入出力データのスキーマを取得して、該スキーマに基づく前記入力データのフィールドのうち、前記所定処理によって出力データに影響を与える変量フィールドを決定する変量フィールド決定部と、
前記変量フィールド決定部によって決定された前記変量フィールドの値域とレコードの見積もり件数とに基づいて階級数と階級幅とを決定して、前記入力データの度数分布表を前記記憶部に生成する度数分布表生成部と、
前記実行情報への前記写像を作成する写像作成部と
を有する付記１０記載のシステム。
（付記１２）
前記変量フィールド決定部は、
各フィールドの値を平均又は標準偏差を持った正規乱数を用いて設定したレコードを見積もり件数分含む基準入力データセットと、対象フィールド以外は該基準入力データセットの同一番目のフィールドと同じ値とし、該対象フィールドを該基準入力データセットとは異なる平均又は標準偏差を持った正規乱数を用いて変更した入力データセットを生成する生成部と、
前記基準入力データセットに対して前記所定処理を行って得た基準出力データセットと、前記入力データセットに対して該所定処理を行って得た出力データセットとを比較することによって、前記対象フィールドが該所定処理によって該出力データセットに与える影響度を算出する算出部と、
前記影響度が所定値以上である場合、前記対象フィールドを前記変量フィールドに決定する決定部と
を有する付記１１記載のシステム。
（付記１３）
前記変量フィールド決定部は、
前記基準出力データセットと前記出力データセットのレコード数が異なる場合、前記影響度に最大値を設定する第一設定部と、
前記出力データセットと前記基準出力データセットと比較において、対象フィールド以外で値が異なるフィールドがある場合、値が異なるフィールド数の全レコードのフィールド数に対する割合を前記影響度に設定する第二設定部と
を有する付記１２記載のシステム。
（付記１４）
前記写像作成部は、
前記入力フィールドの度数分布表の階級毎に度数分のランダムなデータを生成するデータ生成部と、
前記所定処理で１件ずつ処理して出力データが出力された階級をカウントし、カウント結果を該階級の度数で割ることによって、度数分布を示す前記写像を作成する写像作成部と、
を有する付記１１乃至１３のいずれか一項記載のシステム。
（付記１５）
前記写像作成部は、
前記入力フィールドの度数分布表の階級毎に度数分のランダムなデータを生成するデータ生成部と、
前記所定処理で１件ずつ処理して測定した実行時間を階級毎に平均することによって、各階級の実行時間を示す前記写像を作成する写像作成部と、
を有する付記１１乃至１３のいずれか一項記載のシステム。
【符号の説明】
【０１６７】
２            バッチジョブ
６            入出力データのスキーマ
１１          ＣＰＵ
１２          主記憶装置
１３          補助記憶装置
１４          入力装置
１５          表示装置
１６          出力装置
１７          通信Ｉ／Ｆ
１８          ドライブ
１９          記憶媒体
４０          度数分布生成部
４１          変量フィールド決定部
４２          度数分布表生成部
４３          度数分布写像作成部
４４          実行時間写像作成部
５０          実行時間推定部
５１          入力データ度数分布作成部
５２          実行時間推定部
５３          出力データ度数分布推定部
１３０        記憶部
１０００      システム
ｆ            度数分布写像
ｇ            実行時間写像
【図１】
0005842704.tif 000004
【図２】
0005842704.tif 000005
【図３】
0005842704.tif 000006
【図４】
0005842704.tif 000007
【図５】
0005842704.tif 000008
【図６】
0005842704.tif 000009
【図７】
0005842704.tif 000010
【図８】
0005842704.tif 000011
【図９】
0005842704.tif 000012
【図１０】
0005842704.tif 000013
【図１１】
0005842704.tif 000014
【図１２】
0005842704.tif 000015
【図１３】
0005842704.tif 000016
【図１４】
0005842704.tif 000017
【図１５】
0005842704.tif 000018
【図１６】
0005842704.tif 000019
【図１７】
0005842704.tif 000020
【図１８】
0005842704.tif 000021
【図１９】
0005842704.tif 000022
【図２０】
0005842704.tif 000023
【図２１】
0005842704.tif 000024
【図２２】
0005842704.tif 000025
【図２３】
0005842704.tif 000026
【図２４】
0005842704.tif 000027
【図２５】
0005842704.tif 000028
【図２６】
0005842704.tif 000029
【図２７】
0005842704.tif 000030
【図２８】
0005842704.tif 000031
【図２９】
0005842704.tif 000032