データ処理装置、データ処理方法、および、データ処理プログラム
【課題】MapReduce処理システムにおける性能を向上し、通信コストを下げること。
【解決手段】データ処理システム1の統合計画部14は、キー抽出部10を構成するための計算機環境に応じて定義されるキー統合処理の実行粒度についての構成要素ごとにキー統合処理を行うか否かという組み合わせにより実行計画の候補を作成し、作成した各候補を評価して高評価の候補を実行計画として採用し、計画指示部15は、統合計画部14が採用した実行計画について、その実行計画の実行粒度が小さい順に統合処理部13へと適用する。キー統合処理の実行粒度は、例えば、結果出力部12ごと、抽出プロセス41ごと、抽出マシン42ごとである。
【解決手段】データ処理システム1の統合計画部14は、キー抽出部10を構成するための計算機環境に応じて定義されるキー統合処理の実行粒度についての構成要素ごとにキー統合処理を行うか否かという組み合わせにより実行計画の候補を作成し、作成した各候補を評価して高評価の候補を実行計画として採用し、計画指示部15は、統合計画部14が採用した実行計画について、その実行計画の実行粒度が小さい順に統合処理部13へと適用する。キー統合処理の実行粒度は、例えば、結果出力部12ごと、抽出プロセス41ごと、抽出マシン42ごとである。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理装置、データ処理方法、および、データ処理プログラムに関する。
【背景技術】
【0002】
非特許文献1のMapReduce処理システムは、大量の情報である入力データから、1つ以上のキーを抽出して(Map関数)、抽出された複数のキーを統合して(Reduce関数)、出力データとして出力する。1つのキーは、1つのキー名(key)と、1つのキー値(value)との組(key/value pair)として表現される。例えば、入力データをテキストの文書とすると、キー名は、文書内に出現する単語であり、キー値は、例えば、単語の出現回数である。出力されるキーは、例えば、機械学習処理や統計情報処理などの分析系の処理に応用される。
【0003】
非特許文献1のMapReduceでは処理の高速化の機能としてCombine手段を有している。Combine手段では、Mapプロセス内で実行された全Map関数内で呼び出されるEmit関数の結果を入力としてReduce関数を実行することで、Combine手段を用いない標準的なMap処理手段と比較して、Reduce関数の実行によりEmit関数の結果データ量を削減する。その結果、MapReduce全体の性能向上を実現する。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Jeffrey Dean and Sanjay Ghemawat,“MapReduce: Simplified Data Processing on Large Clusters”,OSDI'04: Sixth Symposium on Operating System Design and Implementation,San Francisco, CA, December, 2004.
【発明の概要】
【発明が解決しようとする課題】
【0005】
前記の非特許文献1のMapReduce処理システムにおけるCombine手段では、以下の2つの問題を解決していない。
【0006】
1つ目の問題は、Combine手段を実行する前あるいはCombineを利用しない場合でも、Mapプロセス内においてEmit関数の結果をキー値でソートする必要があることから、Emit関数の呼び出し回数の多い処理では性能が劣化する傾向があることである。
例えば、webページなどのデータに対して単語の頻度計算の処理をする場合には、1ページ毎にMap関数が呼び出され、Map関数内では該当ページ内の単語毎にEmit関数が呼び出される実装が非特許文献1に記載されているが、この例では特にページサイズの大きいwebページを処理する場合に、Map関数あたりに呼び出されるEmit関数が非常に多くなり性能が劣化する傾向がある。
【0007】
2つ目の問題は、シャッフル処理によってMapプロセスからReduceプロセスへとデータを配信する際の通信コストが大きいという問題である。
【0008】
そこで、本発明は、前記した問題を解決し、MapReduce処理システムにおける性能を向上し、通信コストを下げることを、主な目的とする。
【課題を解決するための手段】
【0009】
前記課題を解決するために、本発明は、記憶手段から読み出した入力データに対してキー抽出処理を実行することで、キー名およびキー値の組であるキーを1つ以上抽出し、その結果を中間データとして前記記憶手段に書き込むキー抽出部と、前記記憶手段から読み出した前記中間データに対してキー統合処理を実行し、その結果を出力データとして前記記憶手段に書き込むキー統合部と、を有するデータ処理装置であって、前記キー抽出部が、データ解析部と、結果出力部と、統合処理部と、統合計画部と、計画指示部とを有し、前記データ解析部が、前記入力データを解析し、その中からキーを発見する度に、その発見したキーを呼び出しパラメータとして、前記結果出力部を呼び出し、前記結果出力部が、前記データ解析部から通知されたキーを、前記統合処理部へと出力し、前記統合処理部が、前記キー統合処理を実行するための実行計画に従って、前記結果出力部が出力する1つ以上のキーに対して前記キー統合処理を実行して、その結果を前記中間データとして前記記憶手段に書き込み、前記統合計画部が、前記キー抽出部を構成するための計算機環境に応じて定義される前記キー統合処理の実行粒度についての構成要素ごとに前記キー統合処理を行うか否かという組み合わせにより前記実行計画の候補を作成し、その作成した各候補に対して前記入力データの少なくとも一部を前記データ解析部に入力して動作させ、その実行時間が短いほど高評価とする評価方法により評価して、高評価の候補を前記実行計画として採用し、前記計画指示部が、前記統合計画部が採用した前記実行計画について、その前記実行計画の実行粒度が小さい順に前記統合処理部へと適用することを特徴とする。
さらに、本発明は、前記データ処理装置が前記各処理を実行するデータ処理方法である。
さらに、本発明は、前記データ処理方法を前記データ処理装置に実行させるためのためのデータ処理プログラムである。
【0010】
これにより、実行粒度が規定されている実行計画に従ってキー統合処理を実行するので、MapReduce処理システムにおける性能を向上し、通信コストを下げることができる。
さらに、データ解析対象の実データを実際に試行して性能測定することにより、高精度の実行計画を作成することができる。
【0011】
本発明は、前記統合計画部が、計算機環境に応じて定義される前記キー統合処理の実行粒度について、前記統合処理部が実行する実行関数ごとに前記キー統合処理を行うか否かという小粒度、1つ以上の前記結果出力部が属する抽出プロセスごとに前記キー統合処理を行うか否かという中粒度、および、1つ以上の前記抽出プロセスが属する抽出マシンごとに前記キー統合処理を行うか否かという大粒度という3段階の実行粒度をもとにした前記実行計画を作成することを特徴とする。
【0012】
これにより、3段階の実行粒度を規定することにより、抽出プロセスというソフトウェア面での計算機環境と、抽出マシンというハードウェア面での計算機環境とが併せて考慮され、計算機環境に適した実行計画を作成することができる。
【0013】
本発明は、前記統合処理部が、1つ以上のキーに対して前記キー統合処理を実行するときに、統合対象である複数のキーのうちの同じキー名をもつキーのキー値に対して、統合演算を行うことで、1つのキーを出力するとともに、統合対象である複数のキーのうちの異なるキー名をもつキーのキー値に対して、キー名をもとにソートすることで、キーの統合結果を作成することを特徴とする。
【0014】
これにより、キー統合処理において、多くのキーを1つのキーへと統合することができ、中間データのデータ量を削減することができるとともに、キー統合部へ通知するキーの通信効率を向上させることができる。
【発明の効果】
【0015】
本発明によれば、MapReduce処理システムにおける性能を向上し、通信コストを下げることができる。
【図面の簡単な説明】
【0016】
【図1】本発明の一実施形態に関するデータ処理システムを示す構成図である。
【図2】本発明の一実施形態に関するデータ処理システムにおけるキー抽出部およびキー統合部の詳細を示す構成図である。
【図3】本発明の一実施形態に関する統合計画部による実行計画の小粒度および中粒度を示す説明図である。
【図4】本発明の一実施形態に関する統合計画部による実行計画の大粒度を示す説明図である。
【図5】本発明の一実施形態に関する計画指示部による実行計画の実行指示を示す第1例の説明図である。
【図6】本発明の一実施形態に関する計画指示部による実行計画の実行指示を示す第2例の説明図である。
【図7】本発明の一実施形態に関する各粒度での統合処理の具体例を示す説明図である。
【図8】本発明の一実施形態に関するデータ解析部への入力データごとに決まる値を用いた、キー統合処理を示す説明図である。
【発明を実施するための形態】
【0017】
以下、本発明の一実施形態を、図面を参照して詳細に説明する。
【0018】
図1は、データ処理システム1(データ処理装置)を示す構成図である。データ処理システム1は、キー抽出部10と、キー統合部20と、処理起動部90と、入力データ31と、中間データ32と、出力データ33とを含めて構成される。なお、データ処理システム1は、様々なハードウェア構成およびソフトウェア構成として実現することができる。これらの構成の詳細は、図3以降で説明する。
【0019】
処理起動部90は、ユーザの操作を受け、キー抽出部10およびキー統合部20を起動する。さらに、処理起動部90は、入力データ31が入力されると、記憶手段に書き込む。
キー抽出部10は、記憶手段から入力データ31を読みだして、キー抽出処理を実行し、その結果を中間データ32として記憶手段に書き込む。
キー統合部20は、記憶手段から中間データ32を読みだして(この読み出し処理を、シャッフル処理とも呼ぶ)、キー統合処理を実行し、その結果を出力データ33として記憶手段に書き込む。
【0020】
図2は、データ処理システム1におけるキー抽出部10およびキー統合部20の詳細を示す構成図である。
【0021】
キー抽出部10は、データ解析部11と、結果出力部12と、統合処理部13と、統合計画部14と、計画指示部15とを含めて構成される。
データ解析部11は、非特許文献1の「Map関数」に該当し、入力データ31を解析し、その中からキーを発見する度に、その発見したキーを呼び出しパラメータとして、結果出力部12を呼び出す。
結果出力部12は、非特許文献1の「emit関数」に該当し、データ解析部11から通知されたキーを、統合処理部13または中間データ32へと出力する。どちらに出力するかは、実行計画に従う。
統合処理部13は、非特許文献1の「combine関数」に該当し、結果出力部12の出力結果(または、結果出力部12の出力結果に対して1回以上のキー統合処理が行われた結果)である複数のキーを、1つに統合してから中間データ32に出力する。
【0022】
キー統合部20の統合処理部21は、非特許文献1の「Reduce関数」に該当し、キー抽出部10が入力データ31から中間データ32を作成した後に、その中間データ32に対してキー統合処理を実行し、出力データ33として出力する。なお、キー統合処理の処理内容は、統合処理部21と統合処理部13とで同じである。
【0023】
【表1】
【0024】
表1は、統合処理部13、統合処理部21によるキー統合処理の入力を示す。この表1の入力は、統合処理部13がキー統合処理を行うときには、入力データ31から結果出力部12を介して出力される1つ以上のキーのリストであり、統合処理部21がキー統合処理を行うときには、中間データ32である。
表1では、1つの行が1つのキーである。例えば、1行目は、キー名が「A」でキー値が「1」のキーを示す。以下、本実施形態では、キーを(キー名,キー値)と表現する。例えば、1行目のキーは、(A,1)である。そして、本実施形態では、キーの説明の一例として、非特許文献1で記載されていた例と同じように、入力データ31をテキストの文書(webページでもよい)とし、キー名を文書内に出現する単語とし、キー値を単語の出現回数として説明する。
なお、非特許文献1にあるように、統合処理部21のReduce関数は可換および分配可能な演算を指定することが可能であり、本実施形態ではReduce関数として同一キー名のキー値の和を演算する例を示している。
【0025】
キー統合処理は、例えば、以下の各処理である。
まず、同じキー名の統合処理では、統合対象である複数のキーのうちの同じキー名をもつキーのキー値に対して、統合演算を行うことで、1つのキー(統合対象となる同じキー名、統合演算結果のキー値)を出力する。例えば、表1では、(A,1)のキーが3つ存在するので、統合演算としてキー値の加算処理を行うことにより、(A,3)という1つのキーへと統合している。
次に、異なるキー名のソート処理では、統合対象である複数のキーについて、キー名をもとに、昇順または降順でソートする。例えば、表1では、キー名が「A,B,C,D」の4種類あるので、この順にならぶようにソートする。なお、非特許文献1では、キー統合処理は、同じキー名の統合処理として記載されているので、この異なるキー名のソート処理は省略してもよい。
さらに、統合結果の圧縮処理は、同じキー名の統合処理および異なるキー名のソート処理の処理結果であるキーのリストに対して、データ圧縮する処理である。
【0026】
【表2】
【0027】
表2は、統合処理部13、統合処理部21によるキー統合処理の結果を示す。表1では8つ存在するキーが、表2では4つへと統合されている。これにより、キーの数を減らすことができるので、キーを送信するための通信効率を向上させることができる。
【0028】
統合計画部14は、データ解析部11、および、統合処理部13の各処理内容の特性から実行計画を作成して出力する。実行計画とは、結果出力部12の出力結果であるキーに対して行われるキー統合処理の粒度を指定するデータである。キー統合処理の粒度には、例えば、以下に示す3種類の粒度がある。
【0029】
以下、データ処理システム1の構成(抽出プロセス41、抽出マシン42)に着目して、図3〜図4で各粒度の詳細を説明する。なお、抽出マシン42とは、1台のコンピュータである。このコンピュータは、CPUとメモリとハードディスク(記憶手段)とネットワークインタフェースを有する。CPUは、メモリ上に読み込んだプログラムを実行することにより、1つ以上の抽出プロセス41を動作させる。1つの抽出プロセス41上では、1つ以上の統合処理部13が構成される。1つの統合処理部13は、1つの実行関数を実行する。
【0030】
図3(a)に示す小粒度(実行関数ごとの統合処理)とは、同じキー抽出部10の結果出力部12が出力する結果ごとに、統合処理部13が結果をまとめる粒度である。なお、データ解析部11は、1つの入力データ31から、単語を発見するたびに結果出力部12を呼び出すので、1つの結果出力部12からは複数回のキーが出力される。よって、結果出力部12ごとの粒度であっても、複数のキーを統合する処理が可能である。
【0031】
図3(b)に示す中粒度(抽出プロセス41ごとの統合処理)とは、同じ抽出プロセス41に属する1つ以上のキー抽出部10の結果出力部12が出力する結果ごとに、統合処理部13が結果をまとめる粒度である。まず、左側の抽出プロセス41aには2つの結果出力部12が存在するので、この2つの結果出力部12から統合処理部13により1回のキー統合処理が実行される。次に、右側の抽出プロセス41bには1つの結果出力部12が存在するので、この1つの結果出力部12から統合処理部13により1回のキー統合処理が実行される。
【0032】
図4(a)に示す大粒度(抽出マシン42ごとの統合処理)とは、同じ抽出マシン42に属する1つ以上のキー抽出部10の結果出力部12が出力する結果ごとに、統合処理部13が結果をまとめる粒度である。抽出マシン42には3つの結果出力部12が存在するので、この3つの結果出力部12から統合処理部13により1回のキー統合処理が実行される。
一方、図4(b)のように、抽出マシン42が異なる結果出力部12どうしは、それぞれ異なる統合処理部13によりキー統合処理が実行される。
【0033】
以上図3および図4を参照して説明した複数種類の粒度をもとに、統合計画部14は、各粒度(例えば、抽出プロセスという中粒度)についての構成要素(例えば、抽出プロセスP1)ごとにキー統合処理を行うか否かという組み合わせにより、実行計画の候補を作成する。例えば、以下が実行計画の候補の一例である。
抽出マシンM1:統合処理を行う。
抽出プロセスP1:統合処理を行う。
抽出プロセスP2:統合処理を行わない。
実行関数F1:統合処理を行わない。
実行関数F2:統合処理を行う。
実行関数F3:統合処理を行わない。
実行関数F4:統合処理を行う。
【0034】
ここで、統合計画部14は、実行計画を作成する際に、入力データ31の少なくとも一部を利用してもよい。例えば、統合計画部14は、データ解析部11が解析対象として入力する入力データ31の処理単位(例えば、単語抽出処理における処理対象の文書ごとに)を参照して、キー統合処理の粒度を決定してもよい。例えば、1つの文書が1つの抽出プロセス41に割り当てられているときには、その抽出プロセス41を粒度とするキー統合処理を有効に設定する。
【0035】
そして、統合計画部14は、実行計画の各候補を評価し、もっとも高評価の候補を実行計画として採用する。各候補の評価方法は、例えば、入力データ31の少なくとも一部を対象として、実際にキー統合処理を実行させて、その性能(例えば、計算時間)を測定する(いわゆるベンチマーク)方法が挙げられる。
【0036】
計画指示部15は、以下の実行手順(1)〜(3)を順に実行することにより、統合計画部14が作成した実行計画の実行を、各統合処理部13に指示する。
図7は、各粒度での統合処理の具体例を示す説明図である。
図7(a)は、統合前のキーのリストであり、各キーを処理するために統合処理部13が実行する実行関数と、その統合処理部13が属する抽出プロセス41と、その統合処理部13が属する抽出マシン42とが対応づけられている。
ただし、実行関数の記載について、例えばF1というのは、Fという関数を1番目に実行した結果として、(A,1),(A,1),(B,1)というキー(キー名とキー値との組)を3つ出力したということを意味する。
【0037】
図7(b)で示すように、計画指示部15の実行手順(1)では、小粒度のキー統合処理を実行する。具体的には、データ処理システム1のキー抽出部10内の各結果出力部12を1つずつ選択し、その選択した結果出力部12に対してキー統合処理を行う旨が実行計画で指定されているときには、その選択した結果出力部12の出力結果に対して、統合処理部13によるキー統合処理を行う。例えば、図7(b)の1行目の実行関数F1のキーリストは、図7(a)の実行関数F1のキーである、2つの(A,1)を1つに統合した結果である。このように、実行関数ごとにキー値を統合するため、データ量が削減できる。
【0038】
図7(c)で示すように、計画指示部15の実行手順(2)では、中粒度のキー統合処理を実行する。具体的には、データ処理システム1の抽出プロセス41を1つずつ選択し、その選択した抽出プロセス41に対してキー統合処理を行う旨が実行計画で指定されているときには、その選択した抽出プロセス41に含まれる結果出力部12の出力結果(手順(1)でキー統合された統合処理部13の出力結果も含む)に対して、統合処理部13によるキー統合処理を行う。例えば、図7(c)の1行目の抽出プロセスP1のキーリストは、図7(b)の抽出プロセスP1のキーである、(A,2)と(B,1)と(B,1)とを、(A,2)と(B,2)とに統合した結果である。
【0039】
計画指示部15の実行手順(3)では、大粒度のキー統合処理を実行する。具体的には、データ処理システム1の抽出マシン42を1つずつ選択し、その選択した抽出マシン42に対してキー統合処理を行う旨が実行計画で指定されているときには、その選択した抽出マシン42に含まれる結果出力部12の出力結果(手順(1)または手順(2)でキー統合された統合処理部13の出力結果も含む)に対して、統合処理部13によるキー統合処理を行う。
【0040】
図8は、データ解析部11への入力データごと(例えば、文書ごと)に決まる値(例えば、抽出関数の実行番号)を用いた、キー統合処理を示す。
図8(a)では、キー名は、抽出関数の実行番号を示す。または、キー名は、抽出関数に対して入力されるレコード番号としてもよい。この場合は、抽出関数ごとに既に統合されている状態になり、かつ、レコード数が、図7(b)と比較して削減されるため、通信量の削減やキーによるソート対象の削減を行うことができる。
図8(b)では、レコード数が図7(c)と比較して削減されるため、通信量の削減やキーによるソート対象の削減を行うことができる。
ただし、図8(a)の形式だとキー値のデータ構造が大きくなるため、図8(b)で示すように抽出プロセス単位で統合した後、図8(c)のようにキー値をばらすか、あるいは抽出マシン単位で統合した後にキー値をばらす必要がある。そして、図8(c)のようにキー値をばらした後は、図7に書かれたキー統合処理となる。
【0041】
図5は、計画指示部15による実行計画の実行指示を示す第1例の説明図である。ここでの実行計画では、3段階での粒度のすべての構成要素において、キー統合処理を行うこととする。
計画指示部15の実行手順(1)では、3つの結果出力部12それぞれについて、統合処理部13がキー統合処理を実行する。
計画指示部15の実行手順(2)では、2つの抽出プロセス41それぞれについて、統合処理部13がキー統合処理を実行する。なお、抽出プロセス41bでのキー統合処理は、抽出プロセス41bに属する結果出力部12が1つだけであり、その結果出力部12でのキー統合処理をすでに実行手順(1)で実行しているので、省略してもよい。
計画指示部15の実行手順(3)では、1つの抽出マシン42について、統合処理部13が実行手順(1)(2)での結果を入力とするキー統合処理を実行する。
【0042】
図6は、計画指示部15による実行計画の実行指示を示す第2例の説明図である。ここでの実行計画では、2段階での粒度(小粒度、大粒度)において、キー統合処理を行うこととする。図5との違いは、計画指示部15の実行手順(2)が省略されている点である。このように、中間データ32として同じ出力結果を出力する図5,図6の2つの統合処理でも、その実行計画が異なることによって、出力結果を生成するための処理内容が異なる。
【0043】
以上説明した本実施形態では、統合処理部13が実行するキー統合処理について、データ処理システム1のハードウェア構成やソフトウェア構成をもとにした「粒度」という概念を新たに定義し、その「粒度」を用いて、結果出力部12の出力結果のうちのどの部分にどの程度のキー統合処理を適用するという統合計画を作成して、その統合計画を実行させることを特徴とする。
さらに、本実施形態では、統合計画を作成するときには、複数の粒度を構成する各粒度についてのキー統合処理を、複数段階で適用することも可能な実行計画の候補を列挙し、最も性能のよい実行計画を選択する。
【符号の説明】
【0044】
1 データ処理システム
10 キー抽出部
11 データ解析部
12 結果出力部
13 統合処理部
20 キー統合部
21 統合処理部
31 入力データ
32 中間データ
33 出力データ
41 抽出プロセス
42 抽出マシン
90 処理起動部
【技術分野】
【0001】
本発明は、データ処理装置、データ処理方法、および、データ処理プログラムに関する。
【背景技術】
【0002】
非特許文献1のMapReduce処理システムは、大量の情報である入力データから、1つ以上のキーを抽出して(Map関数)、抽出された複数のキーを統合して(Reduce関数)、出力データとして出力する。1つのキーは、1つのキー名(key)と、1つのキー値(value)との組(key/value pair)として表現される。例えば、入力データをテキストの文書とすると、キー名は、文書内に出現する単語であり、キー値は、例えば、単語の出現回数である。出力されるキーは、例えば、機械学習処理や統計情報処理などの分析系の処理に応用される。
【0003】
非特許文献1のMapReduceでは処理の高速化の機能としてCombine手段を有している。Combine手段では、Mapプロセス内で実行された全Map関数内で呼び出されるEmit関数の結果を入力としてReduce関数を実行することで、Combine手段を用いない標準的なMap処理手段と比較して、Reduce関数の実行によりEmit関数の結果データ量を削減する。その結果、MapReduce全体の性能向上を実現する。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Jeffrey Dean and Sanjay Ghemawat,“MapReduce: Simplified Data Processing on Large Clusters”,OSDI'04: Sixth Symposium on Operating System Design and Implementation,San Francisco, CA, December, 2004.
【発明の概要】
【発明が解決しようとする課題】
【0005】
前記の非特許文献1のMapReduce処理システムにおけるCombine手段では、以下の2つの問題を解決していない。
【0006】
1つ目の問題は、Combine手段を実行する前あるいはCombineを利用しない場合でも、Mapプロセス内においてEmit関数の結果をキー値でソートする必要があることから、Emit関数の呼び出し回数の多い処理では性能が劣化する傾向があることである。
例えば、webページなどのデータに対して単語の頻度計算の処理をする場合には、1ページ毎にMap関数が呼び出され、Map関数内では該当ページ内の単語毎にEmit関数が呼び出される実装が非特許文献1に記載されているが、この例では特にページサイズの大きいwebページを処理する場合に、Map関数あたりに呼び出されるEmit関数が非常に多くなり性能が劣化する傾向がある。
【0007】
2つ目の問題は、シャッフル処理によってMapプロセスからReduceプロセスへとデータを配信する際の通信コストが大きいという問題である。
【0008】
そこで、本発明は、前記した問題を解決し、MapReduce処理システムにおける性能を向上し、通信コストを下げることを、主な目的とする。
【課題を解決するための手段】
【0009】
前記課題を解決するために、本発明は、記憶手段から読み出した入力データに対してキー抽出処理を実行することで、キー名およびキー値の組であるキーを1つ以上抽出し、その結果を中間データとして前記記憶手段に書き込むキー抽出部と、前記記憶手段から読み出した前記中間データに対してキー統合処理を実行し、その結果を出力データとして前記記憶手段に書き込むキー統合部と、を有するデータ処理装置であって、前記キー抽出部が、データ解析部と、結果出力部と、統合処理部と、統合計画部と、計画指示部とを有し、前記データ解析部が、前記入力データを解析し、その中からキーを発見する度に、その発見したキーを呼び出しパラメータとして、前記結果出力部を呼び出し、前記結果出力部が、前記データ解析部から通知されたキーを、前記統合処理部へと出力し、前記統合処理部が、前記キー統合処理を実行するための実行計画に従って、前記結果出力部が出力する1つ以上のキーに対して前記キー統合処理を実行して、その結果を前記中間データとして前記記憶手段に書き込み、前記統合計画部が、前記キー抽出部を構成するための計算機環境に応じて定義される前記キー統合処理の実行粒度についての構成要素ごとに前記キー統合処理を行うか否かという組み合わせにより前記実行計画の候補を作成し、その作成した各候補に対して前記入力データの少なくとも一部を前記データ解析部に入力して動作させ、その実行時間が短いほど高評価とする評価方法により評価して、高評価の候補を前記実行計画として採用し、前記計画指示部が、前記統合計画部が採用した前記実行計画について、その前記実行計画の実行粒度が小さい順に前記統合処理部へと適用することを特徴とする。
さらに、本発明は、前記データ処理装置が前記各処理を実行するデータ処理方法である。
さらに、本発明は、前記データ処理方法を前記データ処理装置に実行させるためのためのデータ処理プログラムである。
【0010】
これにより、実行粒度が規定されている実行計画に従ってキー統合処理を実行するので、MapReduce処理システムにおける性能を向上し、通信コストを下げることができる。
さらに、データ解析対象の実データを実際に試行して性能測定することにより、高精度の実行計画を作成することができる。
【0011】
本発明は、前記統合計画部が、計算機環境に応じて定義される前記キー統合処理の実行粒度について、前記統合処理部が実行する実行関数ごとに前記キー統合処理を行うか否かという小粒度、1つ以上の前記結果出力部が属する抽出プロセスごとに前記キー統合処理を行うか否かという中粒度、および、1つ以上の前記抽出プロセスが属する抽出マシンごとに前記キー統合処理を行うか否かという大粒度という3段階の実行粒度をもとにした前記実行計画を作成することを特徴とする。
【0012】
これにより、3段階の実行粒度を規定することにより、抽出プロセスというソフトウェア面での計算機環境と、抽出マシンというハードウェア面での計算機環境とが併せて考慮され、計算機環境に適した実行計画を作成することができる。
【0013】
本発明は、前記統合処理部が、1つ以上のキーに対して前記キー統合処理を実行するときに、統合対象である複数のキーのうちの同じキー名をもつキーのキー値に対して、統合演算を行うことで、1つのキーを出力するとともに、統合対象である複数のキーのうちの異なるキー名をもつキーのキー値に対して、キー名をもとにソートすることで、キーの統合結果を作成することを特徴とする。
【0014】
これにより、キー統合処理において、多くのキーを1つのキーへと統合することができ、中間データのデータ量を削減することができるとともに、キー統合部へ通知するキーの通信効率を向上させることができる。
【発明の効果】
【0015】
本発明によれば、MapReduce処理システムにおける性能を向上し、通信コストを下げることができる。
【図面の簡単な説明】
【0016】
【図1】本発明の一実施形態に関するデータ処理システムを示す構成図である。
【図2】本発明の一実施形態に関するデータ処理システムにおけるキー抽出部およびキー統合部の詳細を示す構成図である。
【図3】本発明の一実施形態に関する統合計画部による実行計画の小粒度および中粒度を示す説明図である。
【図4】本発明の一実施形態に関する統合計画部による実行計画の大粒度を示す説明図である。
【図5】本発明の一実施形態に関する計画指示部による実行計画の実行指示を示す第1例の説明図である。
【図6】本発明の一実施形態に関する計画指示部による実行計画の実行指示を示す第2例の説明図である。
【図7】本発明の一実施形態に関する各粒度での統合処理の具体例を示す説明図である。
【図8】本発明の一実施形態に関するデータ解析部への入力データごとに決まる値を用いた、キー統合処理を示す説明図である。
【発明を実施するための形態】
【0017】
以下、本発明の一実施形態を、図面を参照して詳細に説明する。
【0018】
図1は、データ処理システム1(データ処理装置)を示す構成図である。データ処理システム1は、キー抽出部10と、キー統合部20と、処理起動部90と、入力データ31と、中間データ32と、出力データ33とを含めて構成される。なお、データ処理システム1は、様々なハードウェア構成およびソフトウェア構成として実現することができる。これらの構成の詳細は、図3以降で説明する。
【0019】
処理起動部90は、ユーザの操作を受け、キー抽出部10およびキー統合部20を起動する。さらに、処理起動部90は、入力データ31が入力されると、記憶手段に書き込む。
キー抽出部10は、記憶手段から入力データ31を読みだして、キー抽出処理を実行し、その結果を中間データ32として記憶手段に書き込む。
キー統合部20は、記憶手段から中間データ32を読みだして(この読み出し処理を、シャッフル処理とも呼ぶ)、キー統合処理を実行し、その結果を出力データ33として記憶手段に書き込む。
【0020】
図2は、データ処理システム1におけるキー抽出部10およびキー統合部20の詳細を示す構成図である。
【0021】
キー抽出部10は、データ解析部11と、結果出力部12と、統合処理部13と、統合計画部14と、計画指示部15とを含めて構成される。
データ解析部11は、非特許文献1の「Map関数」に該当し、入力データ31を解析し、その中からキーを発見する度に、その発見したキーを呼び出しパラメータとして、結果出力部12を呼び出す。
結果出力部12は、非特許文献1の「emit関数」に該当し、データ解析部11から通知されたキーを、統合処理部13または中間データ32へと出力する。どちらに出力するかは、実行計画に従う。
統合処理部13は、非特許文献1の「combine関数」に該当し、結果出力部12の出力結果(または、結果出力部12の出力結果に対して1回以上のキー統合処理が行われた結果)である複数のキーを、1つに統合してから中間データ32に出力する。
【0022】
キー統合部20の統合処理部21は、非特許文献1の「Reduce関数」に該当し、キー抽出部10が入力データ31から中間データ32を作成した後に、その中間データ32に対してキー統合処理を実行し、出力データ33として出力する。なお、キー統合処理の処理内容は、統合処理部21と統合処理部13とで同じである。
【0023】
【表1】
【0024】
表1は、統合処理部13、統合処理部21によるキー統合処理の入力を示す。この表1の入力は、統合処理部13がキー統合処理を行うときには、入力データ31から結果出力部12を介して出力される1つ以上のキーのリストであり、統合処理部21がキー統合処理を行うときには、中間データ32である。
表1では、1つの行が1つのキーである。例えば、1行目は、キー名が「A」でキー値が「1」のキーを示す。以下、本実施形態では、キーを(キー名,キー値)と表現する。例えば、1行目のキーは、(A,1)である。そして、本実施形態では、キーの説明の一例として、非特許文献1で記載されていた例と同じように、入力データ31をテキストの文書(webページでもよい)とし、キー名を文書内に出現する単語とし、キー値を単語の出現回数として説明する。
なお、非特許文献1にあるように、統合処理部21のReduce関数は可換および分配可能な演算を指定することが可能であり、本実施形態ではReduce関数として同一キー名のキー値の和を演算する例を示している。
【0025】
キー統合処理は、例えば、以下の各処理である。
まず、同じキー名の統合処理では、統合対象である複数のキーのうちの同じキー名をもつキーのキー値に対して、統合演算を行うことで、1つのキー(統合対象となる同じキー名、統合演算結果のキー値)を出力する。例えば、表1では、(A,1)のキーが3つ存在するので、統合演算としてキー値の加算処理を行うことにより、(A,3)という1つのキーへと統合している。
次に、異なるキー名のソート処理では、統合対象である複数のキーについて、キー名をもとに、昇順または降順でソートする。例えば、表1では、キー名が「A,B,C,D」の4種類あるので、この順にならぶようにソートする。なお、非特許文献1では、キー統合処理は、同じキー名の統合処理として記載されているので、この異なるキー名のソート処理は省略してもよい。
さらに、統合結果の圧縮処理は、同じキー名の統合処理および異なるキー名のソート処理の処理結果であるキーのリストに対して、データ圧縮する処理である。
【0026】
【表2】
【0027】
表2は、統合処理部13、統合処理部21によるキー統合処理の結果を示す。表1では8つ存在するキーが、表2では4つへと統合されている。これにより、キーの数を減らすことができるので、キーを送信するための通信効率を向上させることができる。
【0028】
統合計画部14は、データ解析部11、および、統合処理部13の各処理内容の特性から実行計画を作成して出力する。実行計画とは、結果出力部12の出力結果であるキーに対して行われるキー統合処理の粒度を指定するデータである。キー統合処理の粒度には、例えば、以下に示す3種類の粒度がある。
【0029】
以下、データ処理システム1の構成(抽出プロセス41、抽出マシン42)に着目して、図3〜図4で各粒度の詳細を説明する。なお、抽出マシン42とは、1台のコンピュータである。このコンピュータは、CPUとメモリとハードディスク(記憶手段)とネットワークインタフェースを有する。CPUは、メモリ上に読み込んだプログラムを実行することにより、1つ以上の抽出プロセス41を動作させる。1つの抽出プロセス41上では、1つ以上の統合処理部13が構成される。1つの統合処理部13は、1つの実行関数を実行する。
【0030】
図3(a)に示す小粒度(実行関数ごとの統合処理)とは、同じキー抽出部10の結果出力部12が出力する結果ごとに、統合処理部13が結果をまとめる粒度である。なお、データ解析部11は、1つの入力データ31から、単語を発見するたびに結果出力部12を呼び出すので、1つの結果出力部12からは複数回のキーが出力される。よって、結果出力部12ごとの粒度であっても、複数のキーを統合する処理が可能である。
【0031】
図3(b)に示す中粒度(抽出プロセス41ごとの統合処理)とは、同じ抽出プロセス41に属する1つ以上のキー抽出部10の結果出力部12が出力する結果ごとに、統合処理部13が結果をまとめる粒度である。まず、左側の抽出プロセス41aには2つの結果出力部12が存在するので、この2つの結果出力部12から統合処理部13により1回のキー統合処理が実行される。次に、右側の抽出プロセス41bには1つの結果出力部12が存在するので、この1つの結果出力部12から統合処理部13により1回のキー統合処理が実行される。
【0032】
図4(a)に示す大粒度(抽出マシン42ごとの統合処理)とは、同じ抽出マシン42に属する1つ以上のキー抽出部10の結果出力部12が出力する結果ごとに、統合処理部13が結果をまとめる粒度である。抽出マシン42には3つの結果出力部12が存在するので、この3つの結果出力部12から統合処理部13により1回のキー統合処理が実行される。
一方、図4(b)のように、抽出マシン42が異なる結果出力部12どうしは、それぞれ異なる統合処理部13によりキー統合処理が実行される。
【0033】
以上図3および図4を参照して説明した複数種類の粒度をもとに、統合計画部14は、各粒度(例えば、抽出プロセスという中粒度)についての構成要素(例えば、抽出プロセスP1)ごとにキー統合処理を行うか否かという組み合わせにより、実行計画の候補を作成する。例えば、以下が実行計画の候補の一例である。
抽出マシンM1:統合処理を行う。
抽出プロセスP1:統合処理を行う。
抽出プロセスP2:統合処理を行わない。
実行関数F1:統合処理を行わない。
実行関数F2:統合処理を行う。
実行関数F3:統合処理を行わない。
実行関数F4:統合処理を行う。
【0034】
ここで、統合計画部14は、実行計画を作成する際に、入力データ31の少なくとも一部を利用してもよい。例えば、統合計画部14は、データ解析部11が解析対象として入力する入力データ31の処理単位(例えば、単語抽出処理における処理対象の文書ごとに)を参照して、キー統合処理の粒度を決定してもよい。例えば、1つの文書が1つの抽出プロセス41に割り当てられているときには、その抽出プロセス41を粒度とするキー統合処理を有効に設定する。
【0035】
そして、統合計画部14は、実行計画の各候補を評価し、もっとも高評価の候補を実行計画として採用する。各候補の評価方法は、例えば、入力データ31の少なくとも一部を対象として、実際にキー統合処理を実行させて、その性能(例えば、計算時間)を測定する(いわゆるベンチマーク)方法が挙げられる。
【0036】
計画指示部15は、以下の実行手順(1)〜(3)を順に実行することにより、統合計画部14が作成した実行計画の実行を、各統合処理部13に指示する。
図7は、各粒度での統合処理の具体例を示す説明図である。
図7(a)は、統合前のキーのリストであり、各キーを処理するために統合処理部13が実行する実行関数と、その統合処理部13が属する抽出プロセス41と、その統合処理部13が属する抽出マシン42とが対応づけられている。
ただし、実行関数の記載について、例えばF1というのは、Fという関数を1番目に実行した結果として、(A,1),(A,1),(B,1)というキー(キー名とキー値との組)を3つ出力したということを意味する。
【0037】
図7(b)で示すように、計画指示部15の実行手順(1)では、小粒度のキー統合処理を実行する。具体的には、データ処理システム1のキー抽出部10内の各結果出力部12を1つずつ選択し、その選択した結果出力部12に対してキー統合処理を行う旨が実行計画で指定されているときには、その選択した結果出力部12の出力結果に対して、統合処理部13によるキー統合処理を行う。例えば、図7(b)の1行目の実行関数F1のキーリストは、図7(a)の実行関数F1のキーである、2つの(A,1)を1つに統合した結果である。このように、実行関数ごとにキー値を統合するため、データ量が削減できる。
【0038】
図7(c)で示すように、計画指示部15の実行手順(2)では、中粒度のキー統合処理を実行する。具体的には、データ処理システム1の抽出プロセス41を1つずつ選択し、その選択した抽出プロセス41に対してキー統合処理を行う旨が実行計画で指定されているときには、その選択した抽出プロセス41に含まれる結果出力部12の出力結果(手順(1)でキー統合された統合処理部13の出力結果も含む)に対して、統合処理部13によるキー統合処理を行う。例えば、図7(c)の1行目の抽出プロセスP1のキーリストは、図7(b)の抽出プロセスP1のキーである、(A,2)と(B,1)と(B,1)とを、(A,2)と(B,2)とに統合した結果である。
【0039】
計画指示部15の実行手順(3)では、大粒度のキー統合処理を実行する。具体的には、データ処理システム1の抽出マシン42を1つずつ選択し、その選択した抽出マシン42に対してキー統合処理を行う旨が実行計画で指定されているときには、その選択した抽出マシン42に含まれる結果出力部12の出力結果(手順(1)または手順(2)でキー統合された統合処理部13の出力結果も含む)に対して、統合処理部13によるキー統合処理を行う。
【0040】
図8は、データ解析部11への入力データごと(例えば、文書ごと)に決まる値(例えば、抽出関数の実行番号)を用いた、キー統合処理を示す。
図8(a)では、キー名は、抽出関数の実行番号を示す。または、キー名は、抽出関数に対して入力されるレコード番号としてもよい。この場合は、抽出関数ごとに既に統合されている状態になり、かつ、レコード数が、図7(b)と比較して削減されるため、通信量の削減やキーによるソート対象の削減を行うことができる。
図8(b)では、レコード数が図7(c)と比較して削減されるため、通信量の削減やキーによるソート対象の削減を行うことができる。
ただし、図8(a)の形式だとキー値のデータ構造が大きくなるため、図8(b)で示すように抽出プロセス単位で統合した後、図8(c)のようにキー値をばらすか、あるいは抽出マシン単位で統合した後にキー値をばらす必要がある。そして、図8(c)のようにキー値をばらした後は、図7に書かれたキー統合処理となる。
【0041】
図5は、計画指示部15による実行計画の実行指示を示す第1例の説明図である。ここでの実行計画では、3段階での粒度のすべての構成要素において、キー統合処理を行うこととする。
計画指示部15の実行手順(1)では、3つの結果出力部12それぞれについて、統合処理部13がキー統合処理を実行する。
計画指示部15の実行手順(2)では、2つの抽出プロセス41それぞれについて、統合処理部13がキー統合処理を実行する。なお、抽出プロセス41bでのキー統合処理は、抽出プロセス41bに属する結果出力部12が1つだけであり、その結果出力部12でのキー統合処理をすでに実行手順(1)で実行しているので、省略してもよい。
計画指示部15の実行手順(3)では、1つの抽出マシン42について、統合処理部13が実行手順(1)(2)での結果を入力とするキー統合処理を実行する。
【0042】
図6は、計画指示部15による実行計画の実行指示を示す第2例の説明図である。ここでの実行計画では、2段階での粒度(小粒度、大粒度)において、キー統合処理を行うこととする。図5との違いは、計画指示部15の実行手順(2)が省略されている点である。このように、中間データ32として同じ出力結果を出力する図5,図6の2つの統合処理でも、その実行計画が異なることによって、出力結果を生成するための処理内容が異なる。
【0043】
以上説明した本実施形態では、統合処理部13が実行するキー統合処理について、データ処理システム1のハードウェア構成やソフトウェア構成をもとにした「粒度」という概念を新たに定義し、その「粒度」を用いて、結果出力部12の出力結果のうちのどの部分にどの程度のキー統合処理を適用するという統合計画を作成して、その統合計画を実行させることを特徴とする。
さらに、本実施形態では、統合計画を作成するときには、複数の粒度を構成する各粒度についてのキー統合処理を、複数段階で適用することも可能な実行計画の候補を列挙し、最も性能のよい実行計画を選択する。
【符号の説明】
【0044】
1 データ処理システム
10 キー抽出部
11 データ解析部
12 結果出力部
13 統合処理部
20 キー統合部
21 統合処理部
31 入力データ
32 中間データ
33 出力データ
41 抽出プロセス
42 抽出マシン
90 処理起動部
【特許請求の範囲】
【請求項1】
記憶手段から読み出した入力データに対してキー抽出処理を実行することで、キー名およびキー値の組であるキーを1つ以上抽出し、その結果を中間データとして前記記憶手段に書き込むキー抽出部と、
前記記憶手段から読み出した前記中間データに対してキー統合処理を実行し、その結果を出力データとして前記記憶手段に書き込むキー統合部と、を有するデータ処理装置であって、
前記キー抽出部は、データ解析部と、結果出力部と、統合処理部と、統合計画部と、計画指示部とを有し、
前記データ解析部は、前記入力データを解析し、その中からキーを発見する度に、その発見したキーを呼び出しパラメータとして、前記結果出力部を呼び出し、
前記結果出力部は、前記データ解析部から通知されたキーを、前記統合処理部へと出力し、
前記統合処理部は、前記キー統合処理を実行するための実行計画に従って、前記結果出力部が出力する1つ以上のキーに対して前記キー統合処理を実行して、その結果を前記中間データとして前記記憶手段に書き込み、
前記統合計画部は、前記キー抽出部を構成するための計算機環境に応じて定義される前記キー統合処理の実行粒度についての構成要素ごとに前記キー統合処理を行うか否かという組み合わせにより前記実行計画の候補を作成し、その作成した各候補に対して前記入力データの少なくとも一部を前記データ解析部に入力して動作させ、その実行時間が短いほど高評価とする評価方法により評価して、高評価の候補を前記実行計画として採用し、
前記計画指示部は、前記統合計画部が採用した前記実行計画について、その前記実行計画の実行粒度が小さい順に前記統合処理部へと適用することを特徴とする
データ処理装置。
【請求項2】
前記統合計画部は、計算機環境に応じて定義される前記キー統合処理の実行粒度について、
前記統合処理部が実行する実行関数ごとに前記キー統合処理を行うか否かという小粒度、
1つ以上の前記結果出力部が属する抽出プロセスごとに前記キー統合処理を行うか否かという中粒度、および、
1つ以上の前記抽出プロセスが属する抽出マシンごとに前記キー統合処理を行うか否かという大粒度という3段階の実行粒度をもとにした前記実行計画を作成することを特徴とする
請求項1に記載のデータ処理装置。
【請求項3】
前記統合処理部は、1つ以上のキーに対して前記キー統合処理を実行するときに、統合対象である複数のキーのうちの同じキー名をもつキーのキー値に対して、統合演算を行うことで、1つのキーを出力するとともに、統合対象である複数のキーのうちの異なるキー名をもつキーのキー値に対して、キー名をもとにソートすることで、キーの統合結果を作成することを特徴とする
請求項1または請求項2に記載のデータ処理装置。
【請求項4】
前記統合処理部は、前記結果出力部の複数の結果をまとめる際には、前記結果出力部のパラメータであるキー名およびキー値の組の組におけるキー名を用いて、同一のキー名と組をなすキー値を特定することで複数のキー値をまとめるか、あるいは、前記データ解析部に対する入力データごとに決まる値を用いて前記結果出力部のパラメータであるキー名およびキー値の組を共にまとめることを特徴とする
請求項1または請求項2に記載のデータ処理装置。
【請求項5】
記憶手段から読み出した入力データに対してキー抽出処理を実行することで、キー名およびキー値の組であるキーを1つ以上抽出し、その結果を中間データとして前記記憶手段に書き込むキー抽出部と、
前記記憶手段から読み出した前記中間データに対してキー統合処理を実行し、その結果を出力データとして前記記憶手段に書き込むキー統合部と、を有するデータ処理装置によるデータ処理方法であって、
前記キー抽出部は、データ解析部と、結果出力部と、統合処理部と、統合計画部と、計画指示部とを有し、
前記データ解析部は、前記入力データを解析し、その中からキーを発見する度に、その発見したキーを呼び出しパラメータとして、前記結果出力部を呼び出し、
前記結果出力部は、前記データ解析部から通知されたキーを、前記統合処理部へと出力し、
前記統合処理部は、前記キー統合処理を実行するための実行計画に従って、前記結果出力部が出力する1つ以上のキーに対して前記キー統合処理を実行して、その結果を前記中間データとして前記記憶手段に書き込み、
前記統合計画部は、前記キー抽出部を構成するための計算機環境に応じて定義される前記キー統合処理の実行粒度についての構成要素ごとに前記キー統合処理を行うか否かという組み合わせにより前記実行計画の候補を作成し、その作成した各候補に対して前記入力データの少なくとも一部を前記データ解析部に入力して動作させ、その実行時間が短いほど高評価とする評価方法により評価して、高評価の候補を前記実行計画として採用し、
前記計画指示部は、前記統合計画部が採用した前記実行計画について、その前記実行計画の実行粒度が小さい順に前記統合処理部へと適用することを特徴とする
データ処理方法。
【請求項6】
前記統合計画部は、計算機環境に応じて定義される前記キー統合処理の実行粒度について、
前記統合処理部が実行する実行関数ごとに前記キー統合処理を行うか否かという小粒度、
1つ以上の前記結果出力部が属する抽出プロセスごとに前記キー統合処理を行うか否かという中粒度、および、
1つ以上の前記抽出プロセスが属する抽出マシンごとに前記キー統合処理を行うか否かという大粒度という3段階の実行粒度をもとにした前記実行計画を作成することを特徴とする
請求項5に記載のデータ処理方法。
【請求項7】
前記統合処理部は、1つ以上のキーに対して前記キー統合処理を実行するときに、統合対象である複数のキーのうちの同じキー名をもつキーのキー値に対して、統合演算を行うことで、1つのキーを出力するとともに、統合対象である複数のキーのうちの異なるキー名をもつキーのキー値に対して、キー名をもとにソートすることで、キーの統合結果を作成することを特徴とする
請求項5または請求項6に記載のデータ処理方法。
【請求項8】
前記統合処理部は、前記結果出力部の複数の結果をまとめる際には、前記結果出力部のパラメータであるキー名およびキー値の組の組におけるキー名を用いて、同一のキー名と組をなすキー値を特定することで複数のキー値をまとめるか、あるいは、前記データ解析部に対する入力データごとに決まる値を用いて前記結果出力部のパラメータであるキー名およびキー値の組を共にまとめることを特徴とする
請求項5または請求項6に記載のデータ処理方法。
【請求項9】
請求項5ないし請求項8のいずれか1項に記載のデータ処理方法を、コンピュータである前記データ処理装置に実行させるためのデータ処理プログラム。
【請求項1】
記憶手段から読み出した入力データに対してキー抽出処理を実行することで、キー名およびキー値の組であるキーを1つ以上抽出し、その結果を中間データとして前記記憶手段に書き込むキー抽出部と、
前記記憶手段から読み出した前記中間データに対してキー統合処理を実行し、その結果を出力データとして前記記憶手段に書き込むキー統合部と、を有するデータ処理装置であって、
前記キー抽出部は、データ解析部と、結果出力部と、統合処理部と、統合計画部と、計画指示部とを有し、
前記データ解析部は、前記入力データを解析し、その中からキーを発見する度に、その発見したキーを呼び出しパラメータとして、前記結果出力部を呼び出し、
前記結果出力部は、前記データ解析部から通知されたキーを、前記統合処理部へと出力し、
前記統合処理部は、前記キー統合処理を実行するための実行計画に従って、前記結果出力部が出力する1つ以上のキーに対して前記キー統合処理を実行して、その結果を前記中間データとして前記記憶手段に書き込み、
前記統合計画部は、前記キー抽出部を構成するための計算機環境に応じて定義される前記キー統合処理の実行粒度についての構成要素ごとに前記キー統合処理を行うか否かという組み合わせにより前記実行計画の候補を作成し、その作成した各候補に対して前記入力データの少なくとも一部を前記データ解析部に入力して動作させ、その実行時間が短いほど高評価とする評価方法により評価して、高評価の候補を前記実行計画として採用し、
前記計画指示部は、前記統合計画部が採用した前記実行計画について、その前記実行計画の実行粒度が小さい順に前記統合処理部へと適用することを特徴とする
データ処理装置。
【請求項2】
前記統合計画部は、計算機環境に応じて定義される前記キー統合処理の実行粒度について、
前記統合処理部が実行する実行関数ごとに前記キー統合処理を行うか否かという小粒度、
1つ以上の前記結果出力部が属する抽出プロセスごとに前記キー統合処理を行うか否かという中粒度、および、
1つ以上の前記抽出プロセスが属する抽出マシンごとに前記キー統合処理を行うか否かという大粒度という3段階の実行粒度をもとにした前記実行計画を作成することを特徴とする
請求項1に記載のデータ処理装置。
【請求項3】
前記統合処理部は、1つ以上のキーに対して前記キー統合処理を実行するときに、統合対象である複数のキーのうちの同じキー名をもつキーのキー値に対して、統合演算を行うことで、1つのキーを出力するとともに、統合対象である複数のキーのうちの異なるキー名をもつキーのキー値に対して、キー名をもとにソートすることで、キーの統合結果を作成することを特徴とする
請求項1または請求項2に記載のデータ処理装置。
【請求項4】
前記統合処理部は、前記結果出力部の複数の結果をまとめる際には、前記結果出力部のパラメータであるキー名およびキー値の組の組におけるキー名を用いて、同一のキー名と組をなすキー値を特定することで複数のキー値をまとめるか、あるいは、前記データ解析部に対する入力データごとに決まる値を用いて前記結果出力部のパラメータであるキー名およびキー値の組を共にまとめることを特徴とする
請求項1または請求項2に記載のデータ処理装置。
【請求項5】
記憶手段から読み出した入力データに対してキー抽出処理を実行することで、キー名およびキー値の組であるキーを1つ以上抽出し、その結果を中間データとして前記記憶手段に書き込むキー抽出部と、
前記記憶手段から読み出した前記中間データに対してキー統合処理を実行し、その結果を出力データとして前記記憶手段に書き込むキー統合部と、を有するデータ処理装置によるデータ処理方法であって、
前記キー抽出部は、データ解析部と、結果出力部と、統合処理部と、統合計画部と、計画指示部とを有し、
前記データ解析部は、前記入力データを解析し、その中からキーを発見する度に、その発見したキーを呼び出しパラメータとして、前記結果出力部を呼び出し、
前記結果出力部は、前記データ解析部から通知されたキーを、前記統合処理部へと出力し、
前記統合処理部は、前記キー統合処理を実行するための実行計画に従って、前記結果出力部が出力する1つ以上のキーに対して前記キー統合処理を実行して、その結果を前記中間データとして前記記憶手段に書き込み、
前記統合計画部は、前記キー抽出部を構成するための計算機環境に応じて定義される前記キー統合処理の実行粒度についての構成要素ごとに前記キー統合処理を行うか否かという組み合わせにより前記実行計画の候補を作成し、その作成した各候補に対して前記入力データの少なくとも一部を前記データ解析部に入力して動作させ、その実行時間が短いほど高評価とする評価方法により評価して、高評価の候補を前記実行計画として採用し、
前記計画指示部は、前記統合計画部が採用した前記実行計画について、その前記実行計画の実行粒度が小さい順に前記統合処理部へと適用することを特徴とする
データ処理方法。
【請求項6】
前記統合計画部は、計算機環境に応じて定義される前記キー統合処理の実行粒度について、
前記統合処理部が実行する実行関数ごとに前記キー統合処理を行うか否かという小粒度、
1つ以上の前記結果出力部が属する抽出プロセスごとに前記キー統合処理を行うか否かという中粒度、および、
1つ以上の前記抽出プロセスが属する抽出マシンごとに前記キー統合処理を行うか否かという大粒度という3段階の実行粒度をもとにした前記実行計画を作成することを特徴とする
請求項5に記載のデータ処理方法。
【請求項7】
前記統合処理部は、1つ以上のキーに対して前記キー統合処理を実行するときに、統合対象である複数のキーのうちの同じキー名をもつキーのキー値に対して、統合演算を行うことで、1つのキーを出力するとともに、統合対象である複数のキーのうちの異なるキー名をもつキーのキー値に対して、キー名をもとにソートすることで、キーの統合結果を作成することを特徴とする
請求項5または請求項6に記載のデータ処理方法。
【請求項8】
前記統合処理部は、前記結果出力部の複数の結果をまとめる際には、前記結果出力部のパラメータであるキー名およびキー値の組の組におけるキー名を用いて、同一のキー名と組をなすキー値を特定することで複数のキー値をまとめるか、あるいは、前記データ解析部に対する入力データごとに決まる値を用いて前記結果出力部のパラメータであるキー名およびキー値の組を共にまとめることを特徴とする
請求項5または請求項6に記載のデータ処理方法。
【請求項9】
請求項5ないし請求項8のいずれか1項に記載のデータ処理方法を、コンピュータである前記データ処理装置に実行させるためのデータ処理プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【公開番号】特開2011−113486(P2011−113486A)
【公開日】平成23年6月9日(2011.6.9)
【国際特許分類】
【出願番号】特願2009−271736(P2009−271736)
【出願日】平成21年11月30日(2009.11.30)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
【公開日】平成23年6月9日(2011.6.9)
【国際特許分類】
【出願日】平成21年11月30日(2009.11.30)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
[ Back to top ]