(57)【要約】【課題】処理部品を組み合わせた処理フローにおいて、処理部品による処理後のデータの構成要素の情報を効率的に抽出できるようにする。【解決手段】コンピュータが、入力データの内容に応じた構成要素を有する出力データを生成する処理を行う対象処理部品に対する入力データを取得する。また、複数のサンプリング方法ごとに、入力データから複数の異なるサンプル数のデータをサンプリングして複数のテストデータを生成する。さらに、複数のサンプリング方法ごとに、テストデータのサンプル数を増加させながら、それぞれのテストデータを入力とする対象処理部品による処理を実行した出力データを取得する。そして、複数のサンプリング方法のうち、最も少ないサンプル数のテストデータを実行した段階で、テストデータのサンプル数の増加に応じた出力データの構成要素数の増加が所定閾値以下となるサンプリング方法を選択する。【選択図】  図１９
2015141455.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理部品を組み合わせた処理フローに含まれる１つの対象処理部品であって、入力データの内容に応じた構成要素を有する出力データを生成する処理を行う対象処理部品に対する前記入力データを取得し、
予め設定された複数のサンプリング方法にしたがって、当該複数のサンプリング方法ごとに、前記入力データから複数の異なるサンプル数のデータをサンプリングして複数のテストデータを生成し、
前記複数のサンプリング方法ごとに、前記テストデータのサンプル数を増加させながら、それぞれの前記テストデータを入力とする前記対象処理部品による処理を実行して、それぞれの処理結果の出力データにおける前記構成要素数を特定し、
前記複数のサンプリング方法のうち、最も少ないサンプル数の前記テストデータを実行した段階で、前記テストデータのサンプル数の増加に応じた前記出力データの前記構成要素数の増加が所定閾値以下となるサンプリング方法を選択する
処理をコンピュータに実行させる情報処理プログラム。
【請求項２】
前記サンプリング方法を選択する処理は、前記テストデータのサンプル数の増加に応じた前記出力データの前記構成要素数の増加が、複数回連続して前記所定閾値以下となる場合にのみ、前記サンプリング方法を選択する、請求項１記載の情報処理プログラム。
【請求項３】
前記入力データから選択した前記サンプリング方法にしたがってデータをサンプリングしてサンプルデータを生成し、
前記サンプルデータを入力とする前記対象処理部品による処理を実行し、処理結果の出力データから構成要素に関する情報を抽出して、当該構成要素に関する情報を含んだデータプロファイルを生成する
処理をさらにコンピュータに実行させる、請求項１又は２に記載の情報処理プログラム。
【請求項４】
前記対象処理部品の出力データの前記データプロファイルを参照し、前記対象処理部品の出力データを入力とする後続の処理部品による処理において用いるパラメータの設定画面に、前記対象処理部品の出力データの構成要素の選択肢を表示させる
処理をさらにコンピュータに実行させる、請求項３に記載の情報処理プログラム。
【請求項５】
前記入力データが表構造のデータであり、前記構成要素が表構造の列である、請求項１〜４のいずれか１項に記載の情報処理プログラム。
【請求項６】
前記複数のサンプリング方法は、ランダムサンプリング、最大値と最小値を含めるサンプリング及びより多くの異なりを含むサンプリングの方法の少なくともいずれか１つを含む、請求項１〜５のいずれか１項に記載の情報処理プログラム。
【請求項７】
複数の処理部品を組み合わせた処理フローに含まれる１つの対象処理部品であって、入力データの内容に応じた構成要素を有する出力データを生成する処理を行う対象処理部品に対する前記入力データを取得し、
予め設定された複数のサンプリング方法にしたがって、当該複数のサンプリング方法ごとに、前記入力データから複数の異なるサンプル数のデータをサンプリングして複数のテストデータを生成し、
前記複数のサンプリング方法ごとに、前記テストデータのサンプル数を増加させながら、それぞれの前記テストデータを入力とする前記対象処理部品による処理を実行して、それぞれの処理結果の出力データにおける前記構成要素数を特定し、
前記複数のサンプリング方法のうち、最も少ないサンプル数の前記テストデータを実行した段階で、前記テストデータのサンプル数の増加に応じた前記出力データの前記構成要素数の増加が所定閾値以下となるサンプリング方法を選択する
処理をコンピュータが実行する情報処理方法。
【請求項８】
複数の処理部品を組み合わせた処理フローに含まれる１つの対象処理部品であって、入力データの内容に応じた構成要素を有する出力データを生成する処理を行う対象処理部品に対する前記入力データを取得するデータ読込部と、
予め設定された複数のサンプリング方法にしたがって、当該複数のサンプリング方法ごとに、前記入力データから複数の異なるサンプル数のデータをサンプリングして複数のテストデータを生成するテストデータ生成部と、
前記複数のサンプリング方法ごとに、前記テストデータのサンプル数を増加させながら、それぞれの前記テストデータを入力とする前記対象処理部品による処理を実行して、それぞれの処理結果の出力データにおける前記構成要素数を特定するテストデータ処理部と、
前記複数のサンプリング方法のうち、最も少ないサンプル数の前記テストデータを実行した段階で、前記テストデータのサンプル数の増加に応じた前記出力データの前記構成要素数の増加が所定閾値以下となるサンプリング方法を選択するサンプリング方法選択部と
を備える情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータにおいて、処理部品を組み合わせた処理フローを用いてデータ処理を行う技術に関する。
【背景技術】
【０００２】
コンピュータを用いてデータ処理を行う際に、データの抽出や集計等の小さな単位のデータ処理を行う処理部品を組み合わせて、一連のデータ処理の流れを規定した処理フローを作成することが可能なツールが用いられている。ユーザはこのようなツールを用いることにより、データ処理を行うプログラムを一から作成する手間を軽減することができる。また、知識の豊富なユーザが作成した処理フローや個々の処理部品を、複数のユーザで共有することができる。
【０００３】
なお、データ処理に関連する従来技術の一例として、表計算ソフトやプレインファイルのデータを、ユーザが所望する形態に加工する技術が提案されている。当該技術では、データの入力や分解などの一連のデータ加工の手順が定義されたシナリオに対応して、入力データをデータ加工する。このデータ加工においては、入力データに付随するデータ項目名等のラベルデータを所定パターンで解析して項目名を抽出し、スキーマ情報として保存する。
【０００４】
また、処理部品を組み合わせる作業の支援を行う技術例として、ウェブ・アプリケーション内のコンポーネント同士を接続するための技術が提案されている。当該技術では、コンポーネントが、コンポーネントの性質を表すデータであるプロパティの型等を示す属性情報を有する。そして、ユーザが選択したコンポーネントと同じ属性情報を持つ他のコンポーネントを、接続先候補として提示する。
【０００５】
さらに、処理部品を組み合わせる際の支援を行う他の技術例として、次のような技術が提案されている。すなわち、当該技術では、アイコンに対して設定したコンポーネント定義情報に対応するコンポーネントプログラムと適合可能な機能の型に属する機能を有するコンポーネントプログラムのコンポーネント定義情報を検索する。そして検索の結果、ヒットしたコンポーネント定義情報の識別情報や、ヒットしたコンポーネント定義情報に対応するコンポーネントプログラムの識別情報を、セット情報としてアイコンとともに表示画面上に一覧表示する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１０−１７１６３６号公報
【特許文献２】特開２０１０−１７６１９５号公報
【特許文献３】特開２０１１−００８３５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ここで、処理部品を組み合わせて処理フローを生成する際に、処理部品の処理内容によっては、入力データの一部の構成要素（例えば表形式のデータであれば一部の列や、特定の条件を満たす行など）を、処理部品のパラメータとして設定することがある。例えば、入力データの一部の構成要素のみを、処理部品による処理対象とする場合等である。この場合、パラメータとする構成要素をユーザが指定することがある。その際、構成要素をユーザが正しく指定できるようにするには、構成要素の名称等を手入力するのではなく、指定可能な候補から選択できるようにするのが望ましい。
【０００８】
しかし、例えば、処理部品によっては、出力データの構成要素がデータの内容に応じて動的に変わるケースがある。例えば、データの内容に応じて表構造を変換し、入力データに対して新たな列を追加するような処理を行うような場合等である。このような処理部品の出力データを入力とする後続の処理部品において、入力データの構成要素の候補を選択できるようにするためには、先行する処理部品による処理後のデータに応じた構成要素の情報を抽出しておく必要がある。
そこで、本発明の１つの側面では、処理部品を組み合わせた処理フローにおいて、処理部品による処理後のデータの構成要素の情報を効率的に抽出できるようにすることを目的とする。
【課題を解決するための手段】
【０００９】
本発明の１つの側面では、複数の処理部品を組み合わせた処理フローに含まれる１つの対象処理部品であって、入力データの内容に応じた構成要素を有する出力データを生成する処理を行う対象処理部品に対する入力データを取得する。また、予め設定された複数のサンプリング方法にしたがって、当該複数のサンプリング方法ごとに、入力データから複数の異なるサンプル数のデータをサンプリングして複数のテストデータを生成する。さらに、複数のサンプリング方法ごとに、テストデータのサンプル数を増加させながら、それぞれのテストデータを入力とする対象処理部品による処理を実行して、それぞれの処理結果の出力データを取得する。そして、複数のサンプリング方法のうち、最も少ないサンプル数のテストデータを実行した段階で、テストデータのサンプル数の増加に応じた出力データの構成要素数の増加が所定閾値以下となるサンプリング方法を選択する。
【発明の効果】
【００１０】
本発明の１つの側面によれば、処理部品を組み合わせた処理フローにおいて、処理部品による処理後のデータの構成要素の情報を効率的に抽出できる。
【図面の簡単な説明】
【００１１】
【図１】分析フローの一例を示す説明図である。
【図２】入力データテーブルの一例の説明図である。
【図３】データプロファイル及び処理部品設定画面の一例の説明図である。
【図４】入力データをアイテム行列化したデータの一例の説明図である。
【図５】入力データのサンプル数と出力データの列数との相関関係の一例の説明図である。
【図６】分析サーバの機能構成及びデータ構成の一例を示す説明図である。
【図７】分析フローテーブルの一例の説明図である。
【図８】部品データベースの一例の説明図である。
【図９】サンプリング方法テーブルの一例の説明図である。
【図１０】テストデータテーブルの一例の説明図である。
【図１１】データプロファイル一時保管ファイルの一例の説明図である。
【図１２】データプロファイル一時保管ファイルの一例の説明図である。
【図１３】データプロファイル一時保管ファイルの一例の説明図である。
【図１４】列数テーブルの一例の説明図である。
【図１５】サンプルデータテーブルの一例の説明図である。
【図１６】データプロファイルテーブルの一例の説明図である。
【図１７】分析サーバで実行される全体処理の一例を示すフローチャートである。
【図１８】分析サーバで実行されるデータプロファイル生成処理の一例を示すフローチャートである。
【図１９】分析サーバで実行されるサンプリング方法選択処理の一例を示すフローチャートである。
【図２０】本実施形態における分析サーバのハードウェア構成の一例である。
【発明を実施するための形態】
【００１２】
［本実施形態の背景及び概要］
本実施形態では、データの抽出や集計等の小さな単位のデータ処理を行う処理部品を組み合せて、一連の処理フローを作成するツールにおいて、処理部品の処理後のデータの構成要素の情報を効率的に抽出できるようにする技術について説明する。本実施形態では、このようなデータ処理ツールの一例であるデータ分析ツールを用いて説明を行う。データ分析ツールは、処理部品の組合せにしたがってデータ内容を分析して、分析結果を出力する。
【００１３】
図１は、データ分析ツールの一例において構築された分析フローの一例を示す。図１に示すように、分析フローは、例えば、入力データと、小さな単位のデータ処理を行う処理部品の組合せと、処理部品による処理結果の最終出力とを含む。１つ１つの処理部品は、先行する処理部品による出力データ（又は最初の入力データ）を処理し、処理結果の中間ファイルを後続の処理部品に渡す（又は最後に出力する）ように接続されている。そして、このような分析フローの一連の処理が実行されることにより、データの分析を行うことができる。
【００１４】
ユーザは、データ分析ツールを用いて、まずこのような分析フローを構築する。ユーザは、処理部品を自ら作成することができる。また、ユーザがデータ分析処理を一から記述する必要がないように、一度作成された処理部品を、複数のユーザが共有して使用することができる。ユーザは、入力データを決定し、入力データを順次処理する処理部品を組み合せて接続することで、分析フローを構築することができる。
【００１５】
ここで、処理部品の処理内容によっては、例えば、入力データの一部の構成要素のみをパラメータとして設定することがある。例えば、一部の構成要素のみを処理対象とする場合や、クラスタリング解析のパラメータとする場合等である。この場合、当該処理部品において処理対象とする構成要素をユーザが指定することがある。
例えば、図１に示す分析フローの入力データが図２に示すようなテーブル形式のデータであって、処理部品Ａの出力する中間ファイル１も、図２に示すデータと同様のデータ構造を有するとする。この入力データは、図２に示すように、構成要素の一例として、「日付」、「会計時間」、「売上」の列を含んでいる。ここで、処理部品Ｂにおいて、図２に示す入力データのうち、特定の列のみを処理対象としてユーザが選択するものとする。ここで、通常のデータベースのテーブル等を入力データとする場合、テーブルのデータプロファイルには、一般に、テーブルにどのような列が含まれているかを示す列情報が含まれている。このため、図３に示すように、処理部品における設定画面において、入力データのデータプロファイルの列情報に基づき、選択可能な列名の選択肢を表示させることができる。
【００１６】
しかし、例えば、処理部品Ｂに先行する処理部品Ａが、出力データの構成要素をデータの内容に応じて動的に変更する処理を行うとする。例えば、図４に示すように、図２に示した入力データの「会計時間」にデータが存在する時間の範囲内（最小値と最大値の範囲内）において、時間帯ごと（１時間ごと）に売上があったか否かを正負（Ｔ又はＦ）で示すように表構造を変換する（アイテム行列化する）場合である。なお、入力データをこのようなデータ構造に変換することにより、例えば、クラスタリング解析や機械学習等の処理に用いることが可能となる。このような場合、処理部品Ａの出力データを入力とする後続の処理部品Ｂにおいて列名の選択肢を表示させようとしても、前述の図３に示したデータプロファイルの列情報を用いることができない。
【００１７】
このため、本実施形態では、処理部品Ｂにおいて入力データの列情報を取得できるようにするために、先行する処理部品Ａによる処理後のデータのデータプロファイルを生成しておく。ここでデータプロファイルを生成する方法として最も確実なのは、全てのデータを処理部品Ａによって処理し、処理結果からデータプロファイルを生成する方法である。しかし、分析ツールでは、大量のデータが入力データとなることも想定される。このため、処理部品Ａの処理後のデータのデータプロファイルを生成するために全ての入力データを処理した場合、結果として、ユーザによる分析ツールの構築作業を長時間停止させてしまう可能性がある。
【００１８】
そこで、本実施形態では、処理部品Ａによる処理後のデータのデータプロファイルを生成するために、サンプルデータを用いる。サンプルデータは、処理部品Ａが処理する入力データ全体のうちの少なくとも一部のデータである。処理部品Ａがサンプルデータを処理した後の出力データの列は、処理部品Ａが入力データ全体を処理した後の出力データの列と同じであることが望ましい。
【００１９】
ここで、そのようなサンプルデータをどのように抽出するか（サンプリング方法をどうするか）が問題となる。処理部品の処理内容次第では、サンプリング方法によって、同じ列を生成するために必要となるサンプルデータの数が異なるからである。より少ないサンプル数で効率的に列を生成するためには、処理部品の処理内容に合ったサンプリング方法を選択することが望ましい。ここで、例えば、処理部品Ａが具体的にどのような処理をするかが把握できれば、ユーザが適切なサンプリング方法を選択することは比較的容易である。しかし、前述したように、データ分析ツールでは、他のユーザが作成した処理部品を使用することもある。このような場合、ユーザが処理部品内部の詳細な処理を把握できているとは限らないため、適切なサンプリング方法を選択することが困難である。
【００２０】
このため、本実施形態では、処理部品による処理後のデータのデータプロファイルを生成するためのサンプルデータの適切なサンプリング方法を、自動で選択する。ここでいう適切なサンプリング方法とは、より少ないサンプル数で、処理部品が入力データ全体を処理した後の出力データにより近い構成要素（ここでは列構造）の出力データとなるようなサンプルデータを抽出できる方法である。
【００２１】
具体的には、本実施形態では、複数の処理部品を組み合わせた処理フローに含まれる１つの対象処理部品であって、入力データの内容に応じた構成要素を有する出力データを生成する処理を行う対象処理部品に対する入力データを取得する。また、予め設定された複数のサンプリング方法にしたがって、サンプリング方法ごとに、入力データから複数の異なるサンプル数のデータをサンプリングして複数のテストデータを生成する。さらに、サンプリング方法ごとに、テストデータのサンプル数を増加させながら、それぞれのテストデータを入力とする対象処理部品による処理を実行して、それぞれの処理結果の出力データを取得する。そして、これらのサンプリング方法のうち、最も少ないサンプル数のテストデータを実行した段階で、テストデータのサンプル数の増加に応じた出力データの構成要素数の増加が収束する（具体的には所定閾値以下となる）サンプリング方法を選択する。
【００２２】
ここで、図５に、サンプリング方法ごとにおける、入力データのサンプル数と出力データの列数との相関関係の一例を示す。この例は、前述した分析フローの一例の処理部品Ａが、図２に示した入力データの「会計時間」にデータが存在する時間の範囲内において、時間帯ごとに売上があったか否かを正負で示すようにアイテム行列化する場合の例である。サンプリング方法は、例えば、「ランダムサンプリング」、「最大値と最小値を含めるサンプリング」、「より多くの異なりを含めるサンプリング」の３つとする。そして、サンプリングの基準とする列（最大値や最小値、異なり等を抽出する列）を、「会計時間」としている。
当該処理部品Ａの処理の例の場合、会計時間の最大値と最小値の範囲内で、１時間ごとに分割した列を追加する。このため、サンプリングされたデータの「会計時間」の値の範囲が大きいほど、生成される列数が多くなる。
【００２３】
このような処理の場合、図４に示すように、最大値と最小値を含めるサンプリングであれば、サンプル数が２件の時点で「会計時間」の最大値（２１：４８）及び最小値（１０：２３）を得られる。このため、処理結果の出力データにおける、会計時間の時間帯を示す列（アイテム列）の列数は、図２の全ての入力データを処理してアイテム行列化した図４の出力データと同じ列数である１２になる。この列数は最大値であり、その後サンプル数を増加させても列数は変わらず収束している。なお、本実施形態において「収束」とは、列数が、入力データ全体を処理部品により処理した結果の出力データにおける列数又は当該列数に近い数に達し、サンプル数の増加に対する列数の増加が所定閾値よりも少なくなる状態（飽和状態）を示す。
一方、ランダムサンプリングの場合には、サンプル数を増加させても、必ずしも値の範囲を広げるようなデータが抽出されるとは限らない。より多くの異なりを含めるサンプリングの場合も同様である。このため、これらのサンプリング方法では、入力データのサンプル数が増加していっても、効率的に列が生成されず、列数の増加が収束しない。
【００２４】
本実施形態では、このような入力データのサンプル数に応じた出力データの列数を特定し、サンプリング方法ごとに列数の増加の収束状況を特定し、より早く列数の増加が収束する効率的なサンプリング方法を選択する。このため、ユーザが適切なサンプリング方法を検討する必要がなく、作業負担が軽減される。そして、データプロファイルを生成する際に、入力データ全体ではなくサンプルデータのみを処理部品で処理すればよいため、データのプロファイルを比較的少ない処理量で生成することができる。したがって、後続の処理部品で選択対象となる入力データの列情報が効率的に抽出できるようになる。
以下、このような本実施形態の具体的態様について、詳細に説明する。
【００２５】
＜システムの機能構成及びデータ構成＞
図６は、本実施形態においてデータ分析ツールを備えるコンピュータの一例である分析サーバ１の機能構成及びデータ構成の一例を示す。なお、本実施形態で説明する機能構成は、分析フローにおける各処理部品がすでに作成され、使用可能な状態となっていることを前提としている。
【００２６】
分析サーバ１は、図６に示すように、プログラムが実行されることによってその機能が実現される、分析フロー読込部１１、分析フロー変更検出部１２、データプロファイル生成部１３（テストデータ生成部１４、テストデータ処理部１５、サンプリング方法選択部１６、サンプルデータ生成部１７、サンプルデータ処理部１８）、分析フロー更新部１９、列選択設定部２０及び分析フロー実行部２１を備える。また、分析サーバ１は、記憶手段において、分析フローテーブル３１、部品データベース３２、入力データテーブル３３、サンプリング方法テーブル３４、テストデータテーブル３５、データプロファイル一時保管ファイル３６、列数テーブル３７、サンプルデータテーブル３８及びデータプロファイルテーブル３９を備える。
【００２７】
分析フロー読込部１１は、分析フローテーブル３１から、分析フローに含まれる処理部品及び処理部品の接続に関連する情報を読み込む。また、分析フロー読込部１１は、部品データベース３２から、分析フローに含まれるそれぞれの処理部品の処理内容等に関する情報を読み込む。また、分析フロー読込部１１は、入力データテーブル３３から、分析フローの入力データを読み込む。
分析フロー変更検出部１２は、分析フロー読込部１１により読み込んだ各情報に基づき、分析フローにおいて、処理部品の追加又は変更や、入力データの変更等がなされたことを検出する。
【００２８】
データプロファイル生成部１３は、処理部品の処理後のデータのデータプロファイルを生成するものであり、テストデータ生成部１４、テストデータ処理部１５、サンプリング方法選択部１６、サンプルデータ生成部１７、サンプルデータ処理部１８を含む。
テストデータ生成部１４は、データプロファイルを生成する対象となる対象処理部品の入力データから、サンプリング方法テーブル３４に格納された複数のサンプリング方法ごとに複数の異なるサンプル数のデータをサンプリングして複数のテストデータを生成する。そして、生成したテストデータを、テストデータテーブル３５に格納する。
【００２９】
テストデータ処理部１５は、サンプリング方法ごとに、テストデータ生成部１４で生成したテストデータを入力とする対象処理部品による処理を実行する。このとき、テストデータ処理部１５は、各サンプリング方法についてそれぞれ同じサンプル数のテストデータを入力とする処理を実行し、それぞれの処理結果の出力データを取得する。そして、テストデータ処理部１５は、テストデータのサンプル数を増加させながら、同様の処理を実行する。
サンプリング方法選択部１６は、テストデータのサンプル数の増加に応じた出力データの列数の増加が最も早く収束するサンプリング方法を選択する。具体的には、サンプリング方法選択部１６は、最も少ないサンプル数のテストデータを実行した段階で、テストデータのサンプル数の増加に応じた出力データの列数の増加が所定閾値以下となるサンプリング方法を選択する。
【００３０】
サンプルデータ生成部１７は、対象処理部品の入力データから、選択したサンプリング方法でデータをサンプリングしてサンプルデータを生成し、サンプルデータテーブル３８に格納する。
サンプルデータ処理部１８は、サンプルデータテーブル３８のサンプルデータを入力データとして、対象処理部品による処理を実行し、処理結果の出力データを取得する。そして、処理結果の出力データから列情報を取得し、当該列情報を含んだデータプロファイルを生成する。さらに、生成したデータプロファイルを、データプロファイルテーブル３９に格納する。
【００３１】
分析フロー更新部１９は、分析フローにおける処理部品の追加又は変更等や、データプロファイルの変更等を、分析フローテーブル３１や部品データベース３２等に反映させる。
列選択設定部２０は、処理部品のパラメータの構成要素をユーザに設定させる処理を行う。具体例として、列選択設定部２０は、データプロファイルテーブル３９から、対象処理部品の列情報を抽出し、抽出した列情報により特定される列名を、処理対象とする列の選択肢として設定画面に表示する。そして、ユーザによる列名の選択入力を受け付け、選択内容を分析フローテーブル３１に格納する。
分析フロー実行部２１は、ユーザによる操作入力に基づき、実際の入力データ（サンプルデータではなく全件）を入力として分析フローを実行し、データ分析結果を出力する。
【００３２】
次に、分析サーバ１が備える各データの詳細につき、図２、図７〜図１６を参照しながら説明する。なお、分析フローテーブル３１及び部品データベース３２以外の各テーブル等については、本実施形態の具体例においてデータプロファイルを生成する対象となる対象処理部品に関連するデータのみを具体例として図示している。
【００３３】
分析フローテーブル３１は、分析フローの内容に関する情報が、分析フローごとに格納されるテーブルである。分析フローテーブル３１は、例えば図７に示すように、分析フローに含まれる処理部品に一意に割り当てられる部品ＩＤ、当該処理部品の部品名、当該処理部品の直前に接続された処理部品を識別するための接続元ＩＤ、当該処理部品の直後に接続された処理部品を識別するための接続先ＩＤ、当該処理部品において指定されたパラメータ、当該処理部品で処理する入力データ及び当該処理部品による処理結果の出力データ、当該処理部品による処理後のデータのデータプロファイルの列を含む。
【００３４】
部品データベース３２には、分析フローに用いることが可能な部品に関する情報が予め格納されている。部品データベース３２は、例えば図８に示すように、部品名（部品による処理の概要を示す）、当該部品において指定可能なパラメータを示すパラメータ、入力データの変数名、入力データのデータ型、出力データの変数名、出力データのデータ型等の列を含む。
入力データテーブル３３は、分析フローの個別の入力データが格納されるテーブルであり、その構造は入力データの内容に応じて異なる。本実施形態の具体例における入力データは、例えば前述の図２に示したように、日付、会計時間及び売上の列を含む。
【００３５】
サンプリング方法テーブル３４は、様々なサンプリング方法に関する情報が予め格納されたテーブルである。サンプリング方法テーブル３４は、例えば図９に示すように、サンプリング方法及び当該サンプリング方法の詳細内容の列を含む。
テストデータテーブル３５は、各サンプリング方法によって生成されたテストデータが格納されるテーブル（構造体配列）であり、例えば図１０に示すように、テストデータが、サンプリング方法ごと且つサンプル数ごとに格納されている。
【００３６】
データプロファイル一時保管ファイル３６は、テストデータを処理部品によって処理した結果生成したデータプロファイルテーブル３９が順次格納されるファイルである。データプロファイル一時保管ファイル３６は、例えば図１１〜図１３に示すように、サンプル数ごと且つサンプリング方法ごとに、入力データの列名と当該列のデータ型の列を含んだデータプロファイルテーブル３９が格納される。
列数テーブル３７は、テストデータのサンプリング方法ごとに、処理部品による各サンプル数のテストデータの処理結果として得られた列数（サンプル数に応じて数が変化する列の列数）が順次格納されるテーブルである。列数テーブル３７は、例えば図１４に示すように、サンプリング方法、及びサンプル数の列を含む。
【００３７】
サンプルデータテーブル３８は、サンプリング方法を選択した後に、選択されたサンプリング方法でサンプリングされたサンプルデータを格納するテーブルである。本実施形態の具体例におけるサンプルデータテーブル３８は、例えば図１５に示すように、日付、会計時間及び売上の列を含む。
データプロファイルテーブル３９は、サンプリング方法を選択した後に、サンプルデータを実際に処理部品によって処理した結果生成したデータプロファイルを格納するテーブルである。データプロファイルテーブル３９は、例えば図１６に示すように、入力データの列名及び当該列のデータ型の列を含む。
【００３８】
＜分析サーバにおいて実行される処理＞
次に、分析サーバ１において実行される処理につき、図１７〜図１９を参照しながら説明する。
まず、分析サーバ１で実行される全体処理について図１７を参照しながら説明する。
【００３９】
ステップＳ１で、分析フロー読込部１１は、ユーザによる分析フローの指定を受け付け、分析フローテーブル３１から、当該分析フローの内容に関する情報を読み込む。そして、部品テーブルから、分析フローテーブル３１から読み込んだ情報に含まれる部品名に対応する部品に関する情報を読み込む。これらの読み込み処理により、分析フロー全体で実行すべき処理の内容が特定される。
ステップＳ２で、分析フロー読込部１１は、分析フローテーブル３１から読み込んだ情報に基づき、分析フローの最初の処理部品の入力データを読み込む。
なお、例えば分析フローを新規に生成する場合等には、上記ステップＳ１及びステップＳ２の処理は不要である。
ステップＳ３で、分析フロー読込部１１は、ユーザによる操作入力を待機する。
ステップＳ４で、分析フロー読込部１１は、分析フローの実行を命令する操作入力があったか否かを判定し、入力がない場合にはステップＳ５に進む一方（Ｎｏ）、入力があった場合はステップＳ１６に進む（Ｙｅｓ）。
【００４０】
以下のステップＳ５〜ステップＳ１５が、分析フローの生成又は変更時に実行される処理である。
ステップＳ５で、分析フロー変更検出部１２は、分析フローに新しい処理部品が追加された場合に、当該追加を検出する。
ステップＳ６で、分析フロー変更検出部１２は、分析フローの処理部品に設定変更がなされたり入力データが変更されたりした場合等に、当該変更等を検出する。
ステップＳ７で、分析フロー変更検出部１２は、分析フローのいずれかの処理部品において、処理対象の列の列名設定画面が開かれたか否かを判定する。当該設定画面が開かれていない場合には、ステップＳ８に進み（Ｎｏ）、当該画面が開かれた場合には、ステップＳ１３に進む（Ｙｅｓ）。
【００４１】
ステップＳ８で、分析フロー変更検出部１２は、分析フローにおける処理部品の追加や変更等に伴い、いずれかの処理部品におけるデータプロファイルの生成（再生成を含む）が必要か否かを判定する。具体的には、例えば、処理部品が追加された場合には、当該処理部品のデータプロファイル（当該処理部品による処理後のデータのデータプロファイル）の生成が必要となる。また、例えば、入力データの内容が変更された場合や、それぞれの処理部品（又は先行する処理部品）の処理内容に変更が加えられた場合に、それぞれの処理部品のデータプロファイルの再生成が必要となる場合がある。データプロファイルの生成が必要な場合には、ステップＳ９に進み（Ｙｅｓ）、必要でない場合は、ステップＳ１２に進む（Ｎｏ）。
【００４２】
以下のステップＳ９〜ステップＳ１１が、分析フローの作成又は変更時において、データプロファイルを生成するときに実行される処理である。
ステップＳ９で、データプロファイル生成部１３は、データプロファイルの生成が必要な処理部品を特定する。
ステップＳ１０で、データプロファイル生成部１３は、データプロファイルの生成が必要な処理部品について、当該処理部品による処理後のデータのデータプロファイルを生成する。なお、当該データプロファイルの生成処理については、後で詳述する。
【００４３】
ステップＳ１１で、データプロファイル生成部１３は、生成したデータプロファイルを、データプロファイルテーブル３９に格納する。
ステップＳ１２で、分析フロー更新部１９は、検出された処理部品の追加や変更内容、データプロファイルの変更等を、必要に応じて分析フローテーブル３１のデータに反映させる。
【００４４】
以下のステップＳ１３〜ステップＳ１５が、分析フローの作成又は変更時において、処理部品の処理対象とする列名をユーザに設定させるときに実行される処理である。
ステップＳ１３で、列選択設定部２０は、処理対象の列の列名設定画面が開かれた処理部品を特定する。
ステップＳ１４で、列選択設定部２０は、特定した処理部品の入力対象となるデータのデータプロファイル、すなわち、当該処理部品の１つ前に接続されている処理部品の処理後のデータのデータプロファイルから、列情報を抽出する。そして、抽出した列情報により特定される列名を、処理対象とする列名の選択肢として、設定画面に表示する。
【００４５】
ステップＳ１５で、列選択設定部２０は、ユーザによる、処理対象とする列名の選択入力を受け付ける。そして、列選択設定部２０は、選択された列名を示す情報を、分析フローテーブル３１における該当する処理部品のデータのパラメータの項目に格納する。
以下のステップＳ１６〜ステップＳ１７が、分析フローを実行する処理である。
ステップＳ１６で、分析フロー実行部２１は、ユーザにより指定された分析フローを実行する。
ステップＳ１７で、分析フロー実行部２１は、分析フローの実行結果を出力する。
【００４６】
次に、分析サーバ１で実行されるデータプロファイル生成処理（上記ステップＳ１０の処理）について、図１８を参照しながら説明する。
【００４７】
ステップＳ２１で、テストデータ生成部１４は、分析フローテーブル３１を参照して、データプロファイルの生成が必要となる対象処理部品への入力データを特定し、入力データを取得する。なお、かりに当該対象処理部品が分析フローの最初の処理部品である場合には、入力データテーブル３３から入力データを取得できる。当該対象処理部品が分析フローの途中の処理部品である場合には、先行する処理部品による処理後の中間ファイル等が当該対象処理部品の入力データとなる。
ステップＳ２２で、サンプリング方法選択部１６は、入力データからのサンプルデータのサンプリング方法を選択する処理を行う。当該サンプリング方法の選択処理については後で詳述する。
【００４８】
ステップＳ２３で、サンプルデータ生成部１７は、対象処理部品の入力データから、ステップＳ２２で決定したサンプリング方法によりデータをサンプリングし、サンプルデータを生成する。このとき、サンプルデータ生成部１７は、列数テーブル３７を参照し、列数の増加が収束した最も早い段階のサンプル数（最も少ないサンプル数）のデータをサンプリングすればよい。具体的には、最後に列数が格納されたサンプル数から遡って、連続して列数の増加（サンプル数の増加に対応する列数の増加）が閾値以下となっているサンプル数のうち、最も少ないサンプル数のデータをサンプリングすればよい。そして、サンプルデータ生成部１７は、生成したサンプルデータを、サンプルデータテーブル３８に格納する。
【００４９】
ステップＳ２４で、サンプルデータ処理部１８は、対象処理部品に、サンプルデータテーブル３８に格納したサンプルデータを入力して、対象処理部品による処理を実行する。
ステップＳ２５で、サンプルデータ処理部１８は、ステップＳ２４による処理結果のデータから列を抽出し、各列のデータからデータ型を推定して、対象処理部品のデータプロファイルを生成する。そして、サンプルデータ処理部１８は、生成したデータプロファイルを、データプロファイルテーブル３９に格納する。
【００５０】
次に、分析サーバ１で実行されるサンプリング方法選択処理（上記ステップＳ２２の処理）について、図１９を参照しながら説明する。
【００５１】
ステップＳ３１で、サンプリング方法選択部１６は、異なるサンプル数を複数決定する。例えば、当該サンプル数は、最小数を２とする一方、入力データ全体の数を均等分割した数だけ順次加算した数を複数のサンプル数とすることができる。そして、サンプル数の配列（図示省略）を生成する。
ステップＳ３２で、サンプリング方法選択部１６は、サンプル数の配列のうち、小さい数から１つ取り出し、今回のサンプル数とする。
【００５２】
ステップＳ３３で、サンプリング方法選択部１６は、サンプリング方法テーブル３４を参照し、それぞれのサンプリング方法にしたがって、今回のサンプル数だけデータをサンプリングする。なお、サンプリングの基準とする列（最大値や最小値、異なり等を抽出する列）は、処理部品がそのデータ内容に基づいて新たな列を生成する列（上記具体例では「会計時間」の列）とする。本実施形態では、少なくとも当該列を特定可能な情報は、例えば分析フローテーブル３１や部品データベース３２等から取得できることを前提とする。そして、サンプリング方法選択部１６は、サンプリングしたデータを、テストデータテーブル３５に格納する。
【００５３】
ステップＳ３４で、サンプリング方法選択部１６は、サンプリング方法のそれぞれにつき、テストデータテーブル３５に格納した、今回のサンプル数のテストデータを入力とする対象処理部品による処理を実行し、それぞれの処理結果の出力データを取得する。
ステップＳ３５で、サンプリング方法選択部１６は、ステップＳ３４によるそれぞれのテストデータの処理結果の出力データから列を抽出し、各列のデータからデータ型を推定して、対象処理部品のデータプロファイルを生成する。そして、データプロファイル一時保管ファイル３６に格納する。
【００５４】
ステップＳ３６で、サンプリング方法選択部１６は、データプロファイル一時保管ファイル３６を参照し、今回のサンプル数で抽出した列のうち、列数が変動する会計時間の時間帯を示す列（すなわち、固定的な「日付」、「会計時間」、「売上」の列を除いたアイテム列）の列数を、サンプリング方法ごとに、列数テーブル３７に保存する。なお、ここではデータプロファイルに含まれる列全体の列数を保存してもよい。
ステップＳ３７で、サンプリング方法選択部１６は、列数テーブル３７を参照し、今回、前回、前々回のサンプル数で抽出した列数を、それぞれのサンプリング方法について読み出す。
【００５５】
ステップＳ３８で、サンプリング方法選択部１６は、次の要件を満たすサンプリング方法があるか否かを判定する。
（前回のサンプル数での列数−前々回のサンプル数での列数）が閾値以下であり、且つ、
（今回のサンプル数での列数−前回のサンプル数での列数）が閾値以下
【００５６】
なお、当該判定は、すなわち、サンプル数の増加に伴う処理結果の列数の増加が収束しているか否かを判定するものである。当該判定で用いる閾値は、入力データの数や内容に応じて、列数の増加が収束していることを判定するのに適切な値を予め設定しておけばよい。ここで、例えば「（今回のサンプル数での列数−前回のサンプル数での列数）が閾値以下」という基準だけでも当該判定は可能である。しかし、サンプリング方法や処理部品の処理内容によっては、処理結果の列数の増加に規則性がなく、たまたま処理結果の列数の増加が少ない場合もあり得る。このため、ステップＳ３８の判定では、上記のように「（前回のサンプル数での列数−前々回のサンプル数での列数）が閾値以下」という判定基準も加えるものとする。また、さらに過去数回分の出力データにおける列数の増加に基づいて当該判定を行ってもよい。
【００５７】
なお、当該閾値を「０」とすることにより、列数が最大値に達した状態で増加が完全に収束している状態を特定することが可能である。
また、当該判定においては、列数が少ない状態（少なくとも列数の増加が収束していない他のサンプリング方法における列数よりも少ない状態）のまま列数の増加が収束してしまうようなケースが原則として発生しないことを前提としている。後述のステップＳ４１についても同様である。
上記要件を満たすサンプリング方法がある場合には、ステップＳ３９に進み（Ｙｅｓ）、ない場合にはステップＳ４０に進む（Ｎｏ）。
【００５８】
なお、上記ステップＳ３７及びステップＳ３８は、３回目以降のサンプル数の処理においてのみ実行するものとする（初回から２回目までは、前回、前々回のサンプル数での列数を取得できないためである）。
【００５９】
ステップＳ３９で、サンプリング方法選択部１６は、ステップＳ３８で判定した要件を満たすサンプリング方法を選択する。この処理は、すなわち、より早く（最も少ないサンプル数のテストデータを実行した段階で）列数の増加が収束しているサンプリング方法を選択するものである。
ステップＳ４０で、サンプリング方法選択部１６は、全てのサンプル数のテストデータによるデータプロファイルの生成が終了したか否かを判定する。終了した場合はステップＳ４１に進み（Ｙｅｓ）、終了していない場合はステップＳ３２に戻って、次のサンプル数（今回よりも増加させたサンプル数）の処理に移行する（Ｎｏ）。
【００６０】
ステップＳ４１で、サンプリング方法選択部１６は、列数テーブル３７を参照し、サンプル数の増加に伴う処理結果の列数の増加がより収束しているサンプリング方法を選択する。具体的には、一例として、次式の計算結果の値が最も小さいサンプリング方法を選択する。
（前回のサンプル数での列数−前々回のサンプル数での列数）＋（今回のサンプル数での列数−前回のサンプル数での列数）
【００６１】
なお、上記ステップＳ３８と同様に、例えば「（今回のサンプル数での列数−前回のサンプル数での列数）」の値だけでも、列数の増加の収束状況を識別することは可能である。しかし、処理結果の列数の増加に規則性がないような場合を考慮し、上記のように「（前回のサンプル数での列数−前々回のサンプル数での列数）」の値を加算するものとする。
【００６２】
＜サンプリング方法選択処理の具体例＞
ここで、上記サンプリング方法選択処理につき、データの具体例を示して説明する。
例えば、上記サンプリング方法選択処理において、ある処理部品の入力データが図２に示した入力データである場合に、図９に示したサンプリング方法テーブル３４に格納されたサンプリング方法、すなわち、「ランダムサンプリング」、「最大値と最小値を含めるサンプリング」及び「より多くの異なりを含めるサンプリング」のいずれかを選択する場合の例について説明する。そして、サンプル数の配列を、２件、３件、４件としたものとする。また、ここでは、サンプリングの基準とする列（最大値や最小値、異なり等を抽出する列）を、入力データのうち、処理部品がそのデータ内容に基づいて新たな列を生成する「会計時間」とする。
【００６３】
この具体例において、テストデータ生成部１４が、サンプリング方法ごとに、当該サンプル数の配列のそれぞれのサンプル数で生成したテストデータが、図１０に示すテストデータテーブル３５のデータ内容である。そして、テストデータ処理部１５は、これらのテストデータを、サンプル数の少ないテストデータから順に処理部品により処理する。その処理結果の出力データから生成されるデータプロファイルが、図１１〜図１３に示すデータプロファイル一時保管ファイル３６の内容となる。さらに、このデータプロファイル一時保管ファイル３６のデータ内容につき、テストデータ処理部１５は、サンプリング方法ごとに、それぞれのサンプル数におけるデータプロファイルの列数（すなわち、処理結果の出力データの列数）のうち、会計時間の時間帯を示す列の列数を、図１４に示すように列数テーブル３７に格納する。
【００６４】
この図１４の列数テーブル３７を参照すると、「最大値と最小値を含めるサンプリング」は、サンプル数が２件のとき、３件のとき及び４件のときのいずれも、列数が１２で同じである。ここで、上記サンプリング方法選択処理のステップＳ３８の判定における閾値を「１」と設定したとする。この場合、サンプル数が４のときのステップＳ３８の判定において、（前回のサンプル数での列数−前々回のサンプル数での列数）は（１２−１２）＝０であり、（今回のサンプル数での列数−前回のサンプル数での列数）も（１２−１２）＝０である。このため、ステップＳ３８の判定における要件を満たしており、サンプル数の増加に伴う処理結果の列数の増加が収束していることがわかる。このため、当該「最大値と最小値を含めるサンプリング」が、最も適切なサンプリング方法として選択される。
【００６５】
そして、サンプルデータ生成部１７が、当該「最大値と最小値を含めるサンプリング」で、サンプルデータが収束した最初のサンプル数である２件のデータをサンプリングしてサンプルデータを生成したデータが、図１５に示したサンプルデータテーブル３８のサンプルデータとなる。さらに、サンプルデータ処理部１８が当該サンプルデータを入力として処理部品による処理を実行し、図１６に示したデータプロファイルを生成する。
【００６６】
上記具体例のような列数の増加状況となるのは、例えば、前述したように、対象処理部品において、図２に示した入力データの「会計時間」にデータが存在する時間の範囲内において、時間帯ごとに売上があったか否かを正負で示すように表構造を変換する場合である。当該具体例におけるテストデータのサンプル数と出力データの列数の相関関係は、図５に示した通りである。ここで、対象処理部品の処理内容がこのような内容であるということを予めユーザが把握できれば、「最大値と最小値を含めるサンプリング」が最も適切なサンプリング方法であることは予測可能である。しかし、前述したように、ユーザが処理部品の処理内容を把握しているとは限らない。本実施形態では、このような場合でも、前述したように列数の収束状況を特定することで、適切なサンプリング方法を選択することができる。そして、少ないサンプルデータによってデータプロファイルを生成することができる。
【００６７】
＜本実施形態による効果等＞
本実施形態によれば、処理部品により処理される入力データから、複数のサンプリング方法ごとに、それぞれ複数のサンプル数のテストデータが生成される。そして、テストデータが処理部品により実行され、サンプル数の増加に応じた、処理結果の列数の増加状況が、サンプリング方法ごとに特定される。そして、上記ステップＳ３８の処理により、より早い段階（すなわち少ないサンプル数）で列数の増加が収束しているサンプリング方法が適切なサンプリング方法として選択される。このため、効率的なサンプリング手法を選択することができ、処理部品による処理後のデータのデータプロファイルを少ない処理量で取得することができる。そして、データプロファイルから列情報を抽出できることで、当該処理部品による処理後のデータを入力とする後続の処理部品の設定画面において、処理対象の列名の選択肢をユーザに提示することが可能となる。その結果、ユーザが正しく列名を選択することが可能となる。
【００６８】
また、本実施形態によれば、上記ステップＳ３８の処理において、今回と前回のサンプル数の処理における列数の増加が閾値以下である要件のみならず、前回と前々回のサンプル数の処理における列数の増加が閾値以下である要件も考慮する。これにより、前述したように、サンプリング方法や処理部品の処理内容により、処理結果の列数の増加に規則性がない場合において、たまたま処理結果の列数の増加が少なくなったような状態を、列数の増加が収束している状態と判別してしまうリスクを低減させる。
【００６９】
また、本実施形態によれば、サンプリング方法の候補として、例えば、「ランダムサンプリング」、「最大値と最小値を含めるサンプリング」及び「より多くの異なりを含めるサンプリング」を含む。このような性質の異なる複数のサンプリング方法を候補としておくことで、多様な入力データ内容や処理部品の処理内容に対応することができる。
例えば、前述したような会計時間のデータ内容に応じて列を生成する場合でも、該当するデータのない時間帯の列を生成しないような処理を行う処理部品の場合には、「最大値と最小値を含めるサンプリング」よりも、「より多くの異なりを含めるサンプリング」のほうが効率的に列情報を取得することができる。なお、「ランダムサンプリング」の場合には、同一の時間のデータを複数抽出する可能性があるため、「より多くの異なりを含めるサンプリング」よりも列数の増加の収束が遅くなる。
【００７０】
また、他の例として、入力データに重要度を示す列が含まれており、その列のデータに、例えば「Ａ＋、Ａ−、Ｂ＋、Ｂ−、Ｃ＋、Ｃ−」といった値が含まれているとする。そして、この列のデータに含まれる値を先頭の文字ごとにグループ化した列（このデータ例では「Ａ、Ｂ、Ｃ」）を当該入力データに追加する処理部品を想定する。このような入力データ及び処理部品において、例えば全ての列情報を得るためには、例えば「ランダムサンプリング」の場合、全ての先頭文字が含まれるまでサンプル数を増やす必要がある。「最大値と最小値を含めるサンプリング」についても同様である。一方、「より多くの異なりを含めるサンプリング」によれば、効率的に列情報を得ることが可能となる。
【００７１】
さらに、他の例として、入力データが所定のテキストデータに含まれる単語の集合であり、当該単語の集合をクラスタリング解析するために、単語の出現頻度順に所定数の単語の列を作るような処理部品を想定する。このような入力データ及び処理部品では、例えば「より多くの異なりを含めるサンプリング」を選択した場合、単語の出現頻度が全て「１」になってしまい、列数が増加するのみであって収束しない。一方、例えば「ランダムサンプリング」によれば、テキストデータ全体における本来の単語の出現頻度に近いデータになり、列数の増加が適切に収束する。
【００７２】
なお、上記説明では、表構造の入力データを処理対象とし、列数の増加の収束状況に基づいて処理を行なったが、本実施形態で説明した技術が対象とするデータは、このような構造のデータに限定されるものではない。また、データプロファイルの構造も一例に過ぎず、入力データの内容に応じて変動する構成要素の数が特定可能な情報であれば、いかなる構造のデータでもよい。
【００７３】
［ハードウェア構成等］
前述した分析サーバ１として機能するコンピュータのハードウェア構成の一例を図２０に示す。本コンピュータは、プロセッサ１０１、メモリ１０２、ストレージ１０３、可搬記憶媒体駆動装置１０４、入出力装置１０５及び通信インタフェース１０６を備える。
プロセッサ１０１は、制御ユニット、演算ユニット及び命令デコーダ等を含み、実行ユニットが、命令デコーダで解読されたプログラムの命令に従い、制御ユニットより出力される制御信号に応じ、演算ユニットを用いて算術・論理演算を実行する。かかるプロセッサ１０１は、制御に用いる各種情報が格納される制御レジスタ、既にアクセスしたメモリ２等の内容を一時的に格納可能なキャッシュ、及び、仮想記憶のページテーブルのキャッシュとしての機能を果たすＴＬＢを備える。なお、プロセッサ１０１は、ＣＰＵ（Central Processing Unit）コアが複数設けられている構成でもよい。
【００７４】
メモリ１０２は、例えばＲＡＭ（Random Access Memory）等の記憶装置であり、プロセッサ１０１で実行されるプログラムがロードされるとともに、プロセッサ１０１の処理に用いるデータが格納されるメインメモリである。また、ストレージ１０３は、例えばＨＤＤ（Hard Disk Drive）やフラッシュメモリ等の記憶装置であり、プログラムや各種データが格納される。可搬記憶媒体駆動装置１０４は、可搬記憶媒体１０７に記憶されたデータやプログラムを読み出す装置である。可搬記憶媒体１０７は、例えば磁気ディスク、光ディスク、光磁気ディスク又はフラッシュメモリ等である。プロセッサ１０１は、メモリ１０２やストレージ１０３と協働しつつ、ストレージ１０３や可搬記憶媒体１０７に格納されたプログラムを実行する。なお、プロセッサ１０１が実行するプログラムや、アクセス対象となるデータは、当該コンピュータと通信可能な他の装置に格納されていてもよい。なお、本実施形態で記載した分析サーバ１の記憶手段とは、メモリ１０２、ストレージ１０３及び可搬記憶媒体１０７若しくは当該コンピュータと通信可能な他の装置の少なくともいずれかを示す。
【００７５】
入出力装置１０５は例えばキーボードやタッチパネル、ディスプレイ等であり、ユーザ操作等による動作命令を受け付ける一方、コンピュータによる処理結果を出力する。
通信インタフェース１０６は、例えば、例えばＬＡＮ（Local Area Network）カード等の他、無線周波受信機および送信機、ならびに光受信機および送信機を含むことができる。前述の受信機および送信機は、Ｗｉ−Ｆｉネットワーク、ブルートゥース・ネットワーク、ロング・ターム・エボリューションなどの１つまたは複数の通信ネットワークにより動作するように実現することができる。
これらのコンピュータの各構成要素は、バス１０８で接続されている。
【００７６】
［その他］
なお、本明細書で説明したコンピュータの機能的構成及び物理的構成は、上述の態様に限るものではなく、例えば、各機能や物理資源を統合して実装したり、逆に、さらに分散して実装したりすることも可能である。
また、本明細書において、閾値等との比較において「〜以上」や「〜以下」とした記載箇所は、特記した場合を除き当該記載に限定されるものではなく、「〜より大きい（〜を上回る）」や「〜より小さい（〜を下回る）」に適宜置き換えることが可能である。逆も同様である。
【００７７】
以上の実施形態に関し、更に以下の付記を開示する。
（付記１）
複数の処理部品を組み合わせた処理フローに含まれる１つの対象処理部品であって、入力データの内容に応じた構成要素を有する出力データを生成する処理を行う対象処理部品に対する前記入力データを取得し、
予め設定された複数のサンプリング方法にしたがって、当該複数のサンプリング方法ごとに、前記入力データから複数の異なるサンプル数のデータをサンプリングして複数のテストデータを生成し、
前記複数のサンプリング方法ごとに、前記テストデータのサンプル数を増加させながら、それぞれの前記テストデータを入力とする前記対象処理部品による処理を実行して、それぞれの処理結果の出力データにおける前記構成要素数を特定し、
前記複数のサンプリング方法のうち、最も少ないサンプル数の前記テストデータを実行した段階で、前記テストデータのサンプル数の増加に応じた前記出力データの前記構成要素数の増加が所定閾値以下となるサンプリング方法を選択する
処理をコンピュータに実行させる情報処理プログラム。
【００７８】
（付記２）
前記サンプリング方法を選択する処理は、前記テストデータのサンプル数の増加に応じた前記出力データの前記構成要素数の増加が、複数回連続して前記所定閾値以下となる場合にのみ、前記サンプリング方法を選択する、付記１記載の情報処理プログラム。
【００７９】
（付記３）
前記入力データから選択した前記サンプリング方法にしたがってデータをサンプリングしてサンプルデータを生成し、
前記サンプルデータを入力とする前記対象処理部品による処理を実行し、処理結果の出力データから構成要素に関する情報を抽出して、当該構成要素に関する情報を含んだデータプロファイルを生成する
処理をさらにコンピュータに実行させる、付記１又は２に記載の情報処理プログラム。
【００８０】
（付記４）
前記対象処理部品の出力データの前記データプロファイルを参照し、前記対象処理部品の出力データを入力とする後続の処理部品による処理において用いるパラメータの設定画面に、前記対象処理部品の出力データの構成要素の選択肢を表示させる
処理をさらにコンピュータに実行させる、付記３に記載の情報処理プログラム。
【００８１】
（付記５）
前記入力データが表構造のデータであり、前記構成要素が表構造の列である、付記１〜４のいずれか１項に記載の情報処理プログラム。
【００８２】
（付記６）
前記複数のサンプリング方法は、ランダムサンプリング、最大値と最小値を含めるサンプリング及びより多くの異なりを含むサンプリングの方法の少なくともいずれか１つを含む、付記１〜５のいずれか１項に記載の情報処理プログラム。
【００８３】
（付記７）
複数の処理部品を組み合わせた処理フローに含まれる１つの対象処理部品であって、入力データの内容に応じた構成要素を有する出力データを生成する処理を行う対象処理部品に対する前記入力データを取得し、
予め設定された複数のサンプリング方法にしたがって、当該複数のサンプリング方法ごとに、前記入力データから複数の異なるサンプル数のデータをサンプリングして複数のテストデータを生成し、
前記複数のサンプリング方法ごとに、前記テストデータのサンプル数を増加させながら、それぞれの前記テストデータを入力とする前記対象処理部品による処理を実行して、それぞれの処理結果の前記構成要素数を特定し、
前記複数のサンプリング方法のうち、最も少ないサンプル数の前記テストデータを実行した段階で、前記テストデータのサンプル数の増加に応じた前記出力データの前記構成要素数の増加が所定閾値以下となるサンプリング方法を選択する
処理をコンピュータが実行する情報処理方法。
【００８４】
（付記８）
複数の処理部品を組み合わせた処理フローに含まれる１つの対象処理部品であって、入力データの内容に応じた構成要素を有する出力データを生成する処理を行う対象処理部品に対する前記入力データを取得するデータ読込部と、
予め設定された複数のサンプリング方法にしたがって、当該複数のサンプリング方法ごとに、前記入力データから複数の異なるサンプル数のデータをサンプリングして複数のテストデータを生成するテストデータ生成部と、
前記複数のサンプリング方法ごとに、前記テストデータのサンプル数を増加させながら、それぞれの前記テストデータを入力とする前記対象処理部品による処理を実行して、それぞれの処理結果の前記構成要素数を特定するテストデータ処理部と、
前記複数のサンプリング方法のうち、最も少ないサンプル数の前記テストデータを実行した段階で、前記テストデータのサンプル数の増加に応じた前記出力データの前記構成要素数の増加が所定閾値以下となるサンプリング方法を選択するサンプリング方法選択部と
を備える情報処理装置。
【符号の説明】
【００８５】
１…分析サーバ、１１…分析フロー読込部、１２…分析フロー変更検出部、１３…データプロファイル生成部、１４…テストデータ生成部、１５…テストデータ処理部、１６…サンプリング方法選択部、１７…サンプルデータ生成部、１８…サンプルデータ処理部、１９…分析フロー更新部、２０…列選択設定部、２１…分析フロー実行部、３１…分析フローテーブル、３２…部品データベース、３３…入力データテーブル、３４…サンプリング方法テーブル、３５…テストデータテーブル、３６…データプロファイル一時保管ファイル、３７…列数テーブル、３８…サンプルデータテーブル、３９…データプロファイルテーブル
【図１】
2015141455.tif 000003
【図２】
2015141455.tif 000004
【図３】
2015141455.tif 000005
【図４】
2015141455.tif 000006
【図５】
2015141455.tif 000007
【図６】
2015141455.tif 000008
【図７】
2015141455.tif 000009
【図８】
2015141455.tif 000010
【図９】
2015141455.tif 000011
【図１０】
2015141455.tif 000012
【図１１】
2015141455.tif 000013
【図１２】
2015141455.tif 000014
【図１３】
2015141455.tif 000015
【図１４】
2015141455.tif 000016
【図１５】
2015141455.tif 000017
【図１６】
2015141455.tif 000018
【図１７】
2015141455.tif 000019
【図１８】
2015141455.tif 000020
【図１９】
2015141455.tif 000021
【図２０】
2015141455.tif 000022