(57)【要約】【課題】データ処理速度の高速化を図ることができるデータ処理システム、データ処理方法及びプログラムを提供する。【解決手段】データ処理システム１００の分析部２１は、処理対象データを含む１以上の入力ファイルと、処理に使用可能な計算資源を示す１以上の環境条件と、を入力し、入力ファイル及び環境条件を網羅的に組み合わせて前記処理を試行し、試行結果を分析結果記憶部３１に記憶させる。ソート部２２は、入力ファイルを入力し、分析結果記憶部３１を参照して、入力ファイルに係る処理時間が最も短くなる環境条件を特定し、特定した環境条件を使用して、処理を実行する。【選択図】図１
2015102887.tif 000002
【特許請求の範囲】
【請求項１】
分析部とソート部とを含むデータ処理部と、
分析結果記憶部を含む記憶部と、を有し、
前記分析部は、
処理対象データを含む１以上の入力ファイルと、前記処理に使用可能な計算資源を示す１以上の環境条件と、を入力し、
前記入力ファイル及び前記環境条件を網羅的に組み合わせて前記処理を試行し、
前記試行結果を前記分析結果記憶部に記憶させ、
前記ソート部は、
前記入力ファイルを入力し、
前記分析結果記憶部を参照して、前記入力ファイルに係る前記処理時間が最も短くなる前記環境条件を特定し、
特定した前記環境条件を使用して、前記処理を実行する
データ処理システム。
【請求項２】
前記分析部は、
前記環境条件として、選択可能な値の範囲が入力された場合、前記範囲内において１以上の値を生成し、前記環境条件として使用する
請求項１記載のデータ処理システム。
【請求項３】
前記分析部は、
前記入力ファイルに代えて、前記入力ファイルの属性を示す入力ファイル条件を入力し、前記入力ファイル条件に従って、前記入力ファイルを生成する
請求項１又は２記載のデータ処理システム。
【請求項４】
前記分析部は、
前記環境条件として、選択可能な値の範囲が入力され、前記範囲内において２以上の値が使用される場合であって、前記値の一方を他方に変更することによって、前記処理時間に任意のしきい値以下の影響しか生じない場合、いずれかの前記値を使用した前記試行を行わない
請求項１乃至３いずれか１以降記載のデータ処理システム。
【請求項５】
前記分析部は、
前記分析結果記憶部を参照して、選択可能な値の範囲を有する前記環境条件であって、前記範囲内において２以上の値が使用された場合、前記値の一方を他方に変更することによって、前記処理時間に任意のしきい値以下の影響しか生じない前記環境条件をあらかじめ特定し、
前記試行において、いずれかの前記値を使用した前記試行を行わない
請求項１乃至４いずれか１以降記載のデータ処理システム。
【請求項６】
処理対象データを含む１以上の入力ファイルと、前記処理に使用可能な計算資源を示す１以上の環境条件と、を入力し、
前記入力ファイル及び前記環境条件を網羅的に組み合わせて前記処理を試行し、
前記試行結果を分析結果記憶部に記憶させる、分析ステップと、
前記入力ファイルを入力し、
前記分析結果記憶部を参照して、前記入力ファイルに係る前記処理時間が最も短くなる前記環境条件を特定し、
特定した前記環境条件を使用して、前記処理を実行する、ソートステップと、を含む
データ処理方法。
【請求項７】
前記分析ステップは、
前記環境条件として、選択可能な値の範囲が入力された場合、前記範囲内において１以上の値を生成し、前記環境条件として使用する
請求項６記載のデータ処理方法。
【請求項８】
前記分析ステップは、
前記入力ファイルに代えて、前記入力ファイルの属性を示す入力ファイル条件を入力し、前記入力ファイル条件に従って、前記入力ファイルを生成する
請求項６又は７記載のデータ処理方法。
【請求項９】
前記分析ステップは、
前記環境条件として、選択可能な値の範囲が入力され、前記範囲内において２以上の値が使用される場合であって、前記値の一方を他方に変更することによって、前記処理時間に任意のしきい値以下の影響しか生じない場合、いずれかの前記値を使用した前記試行を行わない
請求項６乃至８いずれか１以降記載のデータ処理方法。
【請求項１０】
コンピュータに、請求項６乃至９いずれか１項記載の方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理システム、データ処理方法及びプログラムに関し、具体的には、データ処理速度の高速化を図ることができるデータ処理技術に関する。
【背景技術】
【０００２】
従来より、データ処理、代表的にはソート処理を高速化するための、様々な方策が提案されている。
【０００３】
例えば、特許文献１には、データ処理の動作時間を記録し、その記録を、データ処理アルゴリズム及びハードウェアが所期の性能を達成できているかどうかの分析に供することが記載されている。
【０００４】
また、特許文献２には、複数のデータ処理アルゴリズムを並行して実行させ、あるアルゴリズムが最も早く処理結果を導出したときにその処理結果を採用し、他のアルゴリズムによる処理を停止することが記載されている。
【０００５】
特許文献３には、ソート対象データの内容に応じて、複数のソート処理アルゴリズムを使い分けることが記載されている。
【０００６】
さらに、一般的な方策として、メモリを大量に使用し、さらに、ＩＯ（Ｉｎｐｕｔ−Ｏｕｔｐｕｔ）速度が高い補助記憶装置を使用するなどの方策が知られている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平０５−３２４４１２号公報
【特許文献２】特開平０６−１３１３１２号公報
【特許文献３】特開２００２−１１６９０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１乃至３記載の技術では、特定の入力データを処理するための最適な計算資源（使用可能なメモリ、二次記憶装置、ＣＰＵ、計算アルゴリズムなど）、すなわちデータ処理速度が最速となるような入力データと計算資源との組合せを、データ処理実行前に知ることはできない。
【０００９】
したがって、ユーザは依然として、入力データや計算資源に関する諸条件、例えば使用メモリサイズ、入力ファイルや作業ファイルの保存場所やサイズ、データのレコード長の最大又は平均値、レコード件数などのパラメータを、試行錯誤しつつ調整することで、ソート速度の向上を図る必要があった。これには、ユーザに多大な手間と負担を強いるものであった。
【００１０】
また、ユーザが使用可能な環境（使用可能なメモリ、二次記憶装置、ＣＰＵ、計算アルゴリズムなどの計算資源の組合せ）は常に同一であるとは限らず、ある環境では最適であった計算資源の組合せが、別の環境においても常に最適であるとは限らない。したがって、ユーザは環境ごとに、上述の煩わしい調整作業を行う必要があった。
【００１１】
さらに、上述のような、メモリを大量に使用し、さらに、ＩＯ（Ｉｎｐｕｔ−Ｏｕｔｐｕｔ）速度が高い補助記憶装置を使用するといった一般的な方策は、必ずしも有効に作用するばかりでなく、かえって動作を遅くする、すなわちデータ処理の完了までに要する時間を長びかせる場合もあった。例えば、処理対象のデータを記録した入力ファイルのサイズ、及びデータ処理中の一時的なデータ保存場所として用いる作業ファイルのサイズなどを超える、比較的大きなサイズのメモリを確保することで、かえって動作が遅くなる事例が観察されている。
【００１２】
また、たとえＩＯ速度の高い補助記憶装置を使用したとしても、かえってデータ処理時間が長くなる場合がある。例えば、ファイルＩＯとメモリキャッシュとのバランスが最適でなく、必要以上にキャッシュサイズが大きいと、かえって動作が遅くなる事例が観察されている。
【００１３】
本発明は、このような問題点を解決するためになされたものであり、データ処理速度の高速化を図ることができるデータ処理システム、データ処理方法及びプログラムを提供することを目的とする。
【００１４】
その他の課題と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１５】
本発明に係るデータ処理システムは、分析部とソート部とを含むデータ処理部と、分析結果記憶部を含む記憶部と、を有し、前記分析部は、処理対象データを含む１以上の入力ファイルと、前記処理に使用可能な計算資源を示す１以上の環境条件と、を入力し、前記入力ファイル及び前記環境条件を網羅的に組み合わせて前記処理を試行し、前記試行結果を前記分析結果記憶部に記憶させ、前記ソート部は、前記入力ファイルを入力し、前記分析結果記憶部を参照して、前記入力ファイルに係る前記処理時間が最も短くなる前記環境条件を特定し、特定した前記環境条件を使用して、前記処理を実行するものである。
【００１６】
本発明に係るデータ処理方法は、処理対象データを含む１以上の入力ファイルと、前記処理に使用可能な計算資源を示す１以上の環境条件と、を入力し、前記入力ファイル及び前記環境条件を網羅的に組み合わせて前記処理を試行し、前記試行結果を分析結果記憶部に記憶させる、分析ステップと、前記入力ファイルを入力し、前記分析結果記憶部を参照して、前記入力ファイルに係る前記処理時間が最も短くなる前記環境条件を特定し、特定した前記環境条件を使用して、前記処理を実行する、ソートステップと、を含むものである。
【００１７】
本発明に係るプログラムは、コンピュータに、上記方法を実行させるためのプログラムである。
【発明の効果】
【００１８】
本発明により、データ処理速度の高速化を図ることができるデータ処理システム、データ処理方法及びプログラムを提供することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施の形態のデータ処理システム１００の構成を示す図である。
【図２】本発明の実施の形態１の処理を示す図である。
【図３】本発明の実施の形態１の構成を示す図である。
【図４】本発明の実施の形態２の処理を示す図である。
【発明を実施するための形態】
【００２０】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
＜実施の形態１＞
まず、図１を用いて、本発明の実施の形態１にかかるデータ処理システム１００の構成について説明する。データ処理システム１００は、処理対象データを記録した入力ファイルを入力し、当該データを対象とするソート処理を行うシステムである。
【００２１】
データ処理システム１００は、キーボード等の入力部１と、プログラム制御により動作するデータ処理部２と、情報を記憶する記憶部３と、ディスプレイ装置や印刷装置等の出力部４と、を備えている。
【００２２】
データ処理部２は、学習用の入力ファイルを入力し、様々な計算資源の組合せ（以下、環境条件という）を用いてソート処理時間を実測して、その結果を蓄積する分析部２１と、入力ファイルを入力し、最適な計算資源を用いてソート処理を実行するソート部２２と、を備える。
【００２３】
記憶部３は、入力ファイルの条件と、最適な環境条件と、を対応付けて記憶する分析結果記憶部３１を有する。
【００２４】
つづいて、図２及び図３のフローチャートを用いて、データ処理システム１００の動作について説明する。
【００２５】
データ処理システム１００は、図２に示す学習段階と、図３に示す実際の処理段階と、の２段階の動作を行う。図２のステップＡ１乃至Ａ３は、高速なソート処理を提供するための諸条件を学習する段階である。図３のステップＢ１乃至Ｂ３は、その学習結果を利用して、最適なソート処理サービスを提供する段階である。
【００２６】
はじめに、学習段階に係る処理について説明する。
【００２７】
Ａ１：入力部１は、入力ファイル条件を分析部２１に入力する。
【００２８】
ここで、入力ファイルとは、ソート対象のデータが記録されているファイルをいう。また、入力ファイル条件とは、このファイルの特徴を示す要件をいう。入力ファイル条件としては、例えば、入力ファイルの数、サイズ、分割数、ファイル形式、レコード数、最大レコード長、平均レコード長、キーの数、同値キーの有無・偏り、データの並び、などがある。また、ディスク上の入力ファイル配置、作業ファイル配置・分割数、出力ファイル配置、使用ディスク、メモリ使用量、ソートアルゴリズムなどであってもよい。入力ファイル条件は、１つの要件だけが指定されてもよく、複数同時に指定されてもよい。
【００２９】
Ａ２：入力部１は、環境条件を分析部２１に入力する。
ここで、環境条件とは、ソート処理を実行する１以上の計算資源の特性、及びそれらの組合せをいう。環境条件としては、例えば、入力ファイルディレクトリ、出力ファイルディレクトリ、作業ファイル格納ディレクトリ、メモリ使用量、ＣＰＵ使用個数、ＣＰＵ使用量などがある。また、環境条件として、最大メモリ使用量、最大ＣＰＵ使用個数、最大ＣＰＵ使用量のように、一定の範囲をもちうる指標を指定しても良い。環境条件は、１つであってもよく、複数同時に指定されてもよい。
【００３０】
Ａ３：分析部２１は、入力された入力ファイル条件及び環境条件にしたがってソート時間を実測する。
【００３１】
ここで、入力ファイル条件又は環境条件として、複数の要件が指定されている場合、分析部２１は、それら複数の要件それぞれを使用した場合について、それぞれ実際にソート処理を実行し、処理時間の計測を行う。
【００３２】
なお、環境条件として指標の範囲が特定されている場合、分析部２１は、その指定された範囲内から複数の値をピックアップし、それぞれの値ごとにソート時間を実測することができる。例えば、環境条件として「最大メモリ使用可能量＝３ＧＢ」が入力されたとき、分析部２１は、メモリ使用量を０、１ＧＢ、２ＧＢ及び３ＧＢとする、４回の実測を行うことができる。ここで、指定された範囲内から幾つの値をピックアップして実測するか、どのような値をピックアップするかは、計算資源の性質、計算に要する時間や計算量等に鑑みて、適宜決定することが可能である。一般に、この段階で、より多くの値を用いて実測を行っておくほど、後の工程において、より精度の高い結果を提供することが可能となる。
【００３３】
分析部２１は、実測した結果を、分析結果として分析結果記憶部３１に格納する。本実施の形態では、分析部２１は、ある入力ファイル条件を使用したとき、最速となった環境条件のみを、その入力ファイル条件と紐付けて分析結果記憶部３１に保存するものとする。これにより、分析結果記憶部３１のサイズを抑えることができる。
なお、必要に応じ、全ての実測結果を保存することとしても差し支えない。
【００３４】
つづいて、学習結果を利用した処理段階について説明する。
【００３５】
Ｂ１：入力部１は、入力ファイル条件をソート部２２に入力する。
【００３６】
Ｂ２：ソート部２２は、入力された入力ファイル条件を処理するために最適な環境条件、すなわちソート時間が最速となるであろう環境条件を、分析結果記憶部３１から取得する。つまり、ソート部２２は、入力された入力ファイル条件をキーとして、分析結果記憶部３１の記憶内容を検索し、その入力ファイル条件に対応付けられている環境条件を取得する。ここで、本実施の形態では、分析結果記憶部３１において、入力ファイル条件に対応付けられて記憶されているのは、最適な環境条件１件のみであるものとする。
【００３７】
なお、分析結果記憶部３１は、ある入力ファイル条件に紐付けて、最適の環境条件を含む、複数の環境条件を保存しておいても良い。この場合、ソート部２２は、それらの中から、最も実測時間の短い環境条件を選択して取得することとなる。
【００３８】
Ｂ３：ソート部２２は、ステップＢ２で取得した環境条件を使用して、ソート処理を実行する。すなわち、データ処理システム１００が使用する計算資源（例えばメモリ量、ＣＰＵ個数、ＣＰＵ使用量の上限など）を、取得した環境条件と同じにセットする。その後、ソート処理を行う。
【００３９】
具体例を用いて、本実施例の動作についてさらに説明する。
Ａ１：入力部１が分析部２１に、入力ファイル条件として、「入力ファイルサイズ＝１Ｇ、２Ｇ、３Ｇ」の３つのファイルを入力する。
【００４０】
Ａ２：入力部１が分析部２１に、環境条件として、「最大メモリ使用可能量＝３ＧＢ」を指定し入力する。
【００４１】
Ａ３：分析部２１は、３つ入力ファイル条件それぞれについて、指定された環境条件を利用したソート処理を行い、処理時間を実測する。ここで、環境条件の「最大メモリ使用可能量」とは、固定値でなく、値のとり得る一定の範囲を特定するものである。そこで、分析部２１は、この範囲内から１以上の値を指定し、ソート時間を実測する。この例では、メモリ使用量＝０、１ＧＢ、２ＧＢ、３ＧＢとした、計４パターンの環境条件を用いて実測を行うこととする。
【００４２】
すなわち、分析部２１は、入力ファイルサイズ＝１Ｇ、２Ｇ、３Ｇの３つのファイルそれぞれについて、メモリ使用量＝０、１ＧＢ、２ＧＢ、３ＧＢの４つの環境条件をそれぞれ使用した場合のソート速度を測定する。これにより、３つのファイルそれぞれについて４回分、計１２の実測値が得られることになる。
【００４３】
例えば、以下のような実測値のセットが得られたものとする。
入力ファイルサイズ  １ＧＢ、メモリ使用量  ０ＧＢ、ソート時間１０，０００ｍｓ
入力ファイルサイズ  １ＧＢ、メモリ使用量  １ＧＢ、ソート時間４，０００ｍｓ
入力ファイルサイズ  １ＧＢ、メモリ使用量  ２ＧＢ、ソート時間４，５００ｍｓ
入力ファイルサイズ  ２ＧＢ、メモリ使用量  ０ＧＢ、ソート時間２０，０００ｍｓ
入力ファイルサイズ  ２ＧＢ、メモリ使用量  １ＧＢ、ソート時間１５，０００ｍｓ
入力ファイルサイズ  ２ＧＢ、メモリ使用量  ２ＧＢ、ソート時間５，０００ｍｓ
入力ファイルサイズ  ３ＧＢ、メモリ使用量  ０ＧＢ、ソート時間３５，０００ｍｓ
入力ファイルサイズ  ３ＧＢ、メモリ使用量  １ＧＢ、ソート時間２０，０００ｍｓ
入力ファイルサイズ  ３ＧＢ、メモリ使用量  ２ＧＢ、ソート時間６，０００ｍｓ
【００４４】
この後、分析部２１は、各入力ファイル条件のそれぞれについて、最もソート速度が速かった環境条件を特定する。上記の例では、以下の組合せが特定される。
【００４５】
入力ファイルサイズ  １ＧＢ、メモリ使用量  １ＧＢ、ソート時間４，０００ｍｓ
入力ファイルサイズ  ２ＧＢ、メモリ使用量  １ＧＢ、ソート時間１５，０００ｍｓ
入力ファイルサイズ  ３ＧＢ、メモリ使用量  ２ＧＢ、ソート時間６，０００ｍｓ
【００４６】
分析部２１は、特定した入力ファイル条件と環境条件との組を、分析結果記憶部３１に保存する。
【００４７】
Ｂ１：入力部１がソート部２２に、入力ファイル条件として、「入力ファイルサイズ＝２ＧＢ」のファイルを入力する。
【００４８】
Ｂ２：ソート部２２は、分析結果記憶部３１を参照し、「入力ファイルサイズ＝２ＧＢ」に対応する環境条件「メモリ使用量＝１ＧＢ」を取得する。
【００４９】
Ｂ３：取得した環境条件にしたがって、計算資源を予約する。すなわち、１ＧＢのメモリを確保し、ソート処理を実行する。
【００５０】
本実施の形態によれば、分析部２１が、様々な入力ファイル条件、環境条件における処理時間の実測を行い、入力ファイル条件と環境条件との最適な組み合わせを学習する。また、ソート部２２が、入力ファイル条件が与えられたとき、学習結果を用いて、ソート時間が最短となるような環境条件を決定する。これにより、ソート部２２は、そのコンピュータシステムにおいて最適な計算資源の組合せを、自動的に求めることができる。
【００５１】
また、使用するコンピュータシステムが複数ある場合、それぞれのコンピュータシステムにおいて分析部２１を実行しておくことにより、それぞれのコンピュータシステムにおいて最適な計算資源の組合せを、自動的に求めることができる。
【００５２】
＜実施の形態２＞
実施の形態１では、学習段階において分析部２１に入力される入力ファイル条件が、実際の入力ファイル、すなわちデータを含む入力ファイルである場合について説明した。実施の形態２では、学習段階において分析部２１に入力される入力ファイル条件が、入力ファイルに関する条件のみである場合について説明する。すなわち、分析部２１には、実際のデータを含む入力ファイルではなく、入力ファイルの属性（例えばサイズなど）のみが入力される。分析部２１は、その条件に従って、自動的にダミーファイルを作成し、ダミーファイルを入力ファイルとしてソート処理を実行し、処理時間を実測する。
【００５３】
図４のフローチャートを用いて、実施の形態２にかかるデータ処理システム１００の動作について説明する。ステップＣ１乃至Ｃ４は、実施の形態２にかかるデータ処理システム１００の、学習段階の動作を示している。なお、実施の形態１と重複する処理については、特にことわりのない限り記載を省略する。また、この学習結果を用いた、実際のデータ処理に係る動作については、実施の形態１と同様である（図３、ステップＢ１乃至Ｂ３）ため、説明を省略する。
【００５４】
Ｃ１：入力部１が、分析部２１に入力ファイル条件を入力する。
入力ファイル条件としては、入力ファイルに係る種々の属性が入力されうる。例えば、入力ファイル条件として、入力ファイルの数、サイズ、レコード数等を指定できる。
【００５５】
Ｃ２：分析部２１が、入力ファイル条件に従ってダミー入力ファイルを作成する。
例えば、分析部２１は、入力ファイル条件として、特定の入力ファイルサイズが指定されたなら、そのサイズのダミーファイルを生成する。また、入力ファイル条件として、入力ファイルサイズの範囲が指定されたなら、その範囲内で１以上の様々なサイズのダミーファイルを作成する。
【００５６】
Ｃ３：入力部１が、分析部２１に環境条件を入力する。
【００５７】
Ｃ４：分析部２１は、入力された入力ファイル条件、環境条件を用いてソート処理を実行し、処理時間を実測し、実測結果を分析結果記憶部３１に記憶する。
ここで、分析部２１は、環境条件として、特定の値でなく、値の取り得る一定の範囲が指定された場合は、その範囲内で１以上の様々な値の環境条件を作成することができる。例えば、最大メモリ使用量が指定されたなら、その範囲内で、様々なサイズのメモリ使用量を使用する。
【００５８】
具体例を用いて、本実施例の動作についてさらに説明する。
Ｃ１：入力部１が分析部２１に、入力ファイル条件として、「入力ファイル数＝２」、「入力ファイルサイズ＝１ＧＢ〜３ＧＢ」、「レコード数＝１００万〜３００万件」を入力する。
【００５９】
Ｃ２：分析部２１は、入力ファイル条件に従ってダミー入力ファイルを生成する。
例えば、以下のような複数のダミーファイルが生成される。
ダミーファイル名（ファイル数、ファイルサイズ、レコード数）：
入力ファイル１（２、１Ｇ、１００万）
入力ファイル２（２、１Ｇ、２００万）
入力ファイル３（２、１Ｇ、３００万）
入力ファイル４（２、２Ｇ、１００万）
入力ファイル５（２、２Ｇ、２００万）
入力ファイル６（２、２Ｇ、３００万）
入力ファイル７（２、３Ｇ、１００万）
入力ファイル８（２、３Ｇ、２００万）
入力ファイル９（２、３Ｇ、３００万）
【００６０】
ここで、各ダミーファイルのファイルサイズ、レコード数の値は、入力ファイル条件として指定された範囲内で、分析部２１がランダムに決定したものである。
【００６１】
Ｃ３：入力部１が分析部２１に、環境情報として、「入力ファイルディレクトリ＝ＡまたはＢ」、「出力ファイルディレクトリ＝ＣまたはＤ」、「最大メモリ使用可能量＝３ＧＢ」を入力する。
【００６２】
Ｃ４：分析部２１は、入力ファイル条件と環境条件との組み合わせを網羅的に作成し、それぞれの組合せについてソート処理時間を実測する。
例えば、以下のような組合せについて、それぞれソート処理時間が実測される。
（入力ファイル数、ファイルサイズ、レコード数、入力ファイルディレクトリ、出力ファイルディレクトリ、メモリ使用量）：
（２、１ＧＢ、１００万、Ａ、Ｃ、０）
（２、１ＧＢ、１００万、Ａ、Ｃ、１Ｇ）
（２、１ＧＢ、１００万、Ａ、Ｃ、２Ｇ）
（２、１ＧＢ、１００万、Ａ、Ｃ、３Ｇ）
（２、１ＧＢ、１００万、Ａ、Ｄ、０）
（２、１ＧＢ、１００万、Ａ、Ｄ、１Ｇ）
・・・
（２、３ＧＢ、２００万、Ｂ、Ｄ、２Ｇ）
（２、３ＧＢ、２００万、Ｂ、Ｄ、３Ｇ）
【００６３】
ここで、各組合せに含まれる環境条件は、環境条件として指定された範囲内で、分析部２１がランダムに決定したものである。
【００６４】
分析部２１は、各入力ファイル条件のそれぞれについて、最もソート時間が短かった環境条件を特定する。そして、分析部２１は、その入力ファイル条件と特定された環境条件との組を、分析結果記憶部３１に保存する。
【００６５】
なお、入力データ条件、環境条件の数が多くなるほど、また範囲指定のある指標が使用されるほど、最速の組み合わせを特定するまで多くの時間を要するようになる。
【００６６】
その場合、入力データ条件、環境条件を構成する個々の条件に重み付けをすることができる。すなわち、データ処理時間に対する影響が比較的少ない条件については、その条件を省略する。これにより、学習時間の短縮を図ることができる。
【００６７】
例えば、実施の形態２において示した具体例において、ステップＣ４にかかる実測処理が進行するにつれ、例えば環境条件の１つである「出力ファイルディレクトリ」について、これをＣ又はＤのいずれに変更しても、処理時間が任意のしきい値（例えば５％）以上短縮されないことが分かった場合、それ以降の処理においては、「出力ファイルディレクトリ」指標はいずれか一方のみ、例えばＣのみを採用することとし、Ｄについては実測を省略してもよい。
【００６８】
あるいは、過去の実測結果の蓄積から、変更しても処理時間が一定以上短縮されない指標が判明していれば、学習段階においてはその指標を変動させず、任意の値に固定することとしてもよい。これを実施するためには、過去の実測結果のうち、入力データ条件−環境条件の組合せを、最速のものだけでなく、他のものについても破棄せず蓄積しておくことが好ましい。これにより、蓄積した実測結果を分析し、処理時間に対する影響の小さい入力ファイル条件、環境条件を特定することができる。
【００６９】
本実施の形態によれば、分析部２１が、入力ファイル条件に従って様々な入力ファイルを発生させるため、より多くのデータ構造、形式、サイズ等における実測パターンを、実施の形態１に比較して簡便に得ることができる。これにより、より高精度に、最短時間でのソート処理を提供することができる。
【００７０】
＜その他の実施の形態＞
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述の実施の形態では、主にソート処理を対象とした本発明を説明したが、本発明は単純なソート処理のみならず、ソート処理の必要なあらゆるバッチ処理等において採用可能である。
【００７１】
また、本発明は、ソート処理にとどまらず、入力されるデータの条件や計算資源の条件を調整することにより処理時間が左右される様々な情報処理、例えばマージ処理などにも適用することができる。
【００７２】
また、上述の実施の形態では、本発明を主にハードウェアの構成として説明したが、これに限定されるものではなく、任意の処理を、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００７３】
なお、本発明は以下のようにも表し得る。
（付記１）
分析部とソート部とを含むデータ処理部と、
分析結果記憶部を含む記憶部と、を有し、
前記分析部は、
処理対象データを含む１以上の入力ファイルと、前記処理に使用可能な計算資源を示す１以上の環境条件と、を入力し、
前記入力ファイル及び前記環境条件を網羅的に組み合わせて前記処理を試行し、
前記試行結果を前記分析結果記憶部に記憶させ、
前記ソート部は、
前記入力ファイルを入力し、
前記分析結果記憶部を参照して、前記入力ファイルに係る前記処理時間が最も短くなる前記環境条件を特定し、
特定した前記環境条件を使用して、前記処理を実行する
データ処理システム。
（付記２）
前記分析部は、
前記環境条件として、選択可能な値の範囲が入力された場合、前記範囲内において１以上の値を生成し、前記環境条件として使用する
付記１記載のデータ処理システム。
（付記３）
前記分析部は、
前記入力ファイルに代えて、前記入力ファイルの属性を示す入力ファイル条件を入力し、前記入力ファイル条件に従って、前記入力ファイルを生成する
付記１又は２記載のデータ処理システム。
（付記４）
前記分析部は、
前記環境条件として、選択可能な値の範囲が入力され、前記範囲内において２以上の値が使用される場合であって、前記値の一方を他方に変更することによって、前記処理時間に任意のしきい値以下の影響しか生じない場合、いずれかの前記値を使用した前記試行を行わない
付記１乃至３いずれか１以降記載のデータ処理システム。
（付記５）
前記分析部は、
前記分析結果記憶部を参照して、選択可能な値の範囲を有する前記環境条件であって、前記範囲内において２以上の値が使用された場合、前記値の一方を他方に変更することによって、前記処理時間に任意のしきい値以下の影響しか生じない前記環境条件をあらかじめ特定し、
前記試行において、いずれかの前記値を使用した前記試行を行わない
付記１乃至４いずれか１以降記載のデータ処理システム。
（付記６）
処理対象データを含む１以上の入力ファイルと、前記処理に使用可能な計算資源を示す１以上の環境条件と、を入力し、
前記入力ファイル及び前記環境条件を網羅的に組み合わせて前記処理を試行し、
前記試行結果を分析結果記憶部に記憶させる、分析ステップと、
前記入力ファイルを入力し、
前記分析結果記憶部を参照して、前記入力ファイルに係る前記処理時間が最も短くなる前記環境条件を特定し、
特定した前記環境条件を使用して、前記処理を実行する、ソートステップと、を含む
データ処理方法。
（付記７）
前記分析ステップは、
前記環境条件として、選択可能な値の範囲が入力された場合、前記範囲内において１以上の値を生成し、前記環境条件として使用する
付記６記載のデータ処理方法。
（付記８）
前記分析ステップは、
前記入力ファイルに代えて、前記入力ファイルの属性を示す入力ファイル条件を入力し、前記入力ファイル条件に従って、前記入力ファイルを生成する
付記６又は７記載のデータ処理方法。
（付記９）
前記分析ステップは、
前記環境条件として、選択可能な値の範囲が入力され、前記範囲内において２以上の値が使用される場合であって、前記値の一方を他方に変更することによって、前記処理時間に任意のしきい値以下の影響しか生じない場合、いずれかの前記値を使用した前記試行を行わない
付記６乃至８いずれか１以降記載のデータ処理方法。
（付記１０）
前記分析ステップは、
前記分析結果記憶部を参照して、選択可能な値の範囲を有する前記環境条件であって、前記範囲内において２以上の値が使用された場合、前記値の一方を他方に変更することによって、前記処理時間に任意のしきい値以下の影響しか生じない前記環境条件をあらかじめ特定し、
前記試行において、いずれかの前記値を使用した前記試行を行わない
付記６乃至９いずれか１以降記載のデータ処理方法。
（付記１１）
コンピュータに、付記６乃至１０いずれか１項記載の方法を実行させるためのプログラム。
【符号の説明】
【００７４】
１００  データ処理システム
１  入力部
２  データ処理部
２１  分析部
２２  ソート部
３  記憶部
３１  分析結果記憶部
４  出力部
【図１】
2015102887.tif 000003
【図２】
2015102887.tif 000004
【図３】
2015102887.tif 000005
【図４】
2015102887.tif 000006