(57)【要約】本発明は分散コンピューティングフレームワーク及び分散コンピューティング方法に関する。該分散コンピューティングフレームワークの一実施形態は、分散コンピューティングタスクの表現式を解析して、演算子と該演算子に対応するフィールドとを決定するための解析ユニットと、演算子を提供するための演算子ユニットであって、前記演算子の入力パラメータは、フィールドとフィールド型分散データセットとを含む、解析ユニットとを含む。任意の演算子により受信され返信されたパラメータのタイプがいずれもフィールド型分散データセットであって、任意の演算子は、いずれも、フィールド型分散データセットの中にフィールドに対応するデータに対して操作することができる。これにより、任意の演算子は、いずれも一回の実現を行って演算子の再利用が可能になる。分散コンピューティングタスクをより簡単な表現式で明らかに表現することにより、ユーザが分散コンピューティングフレームワークを利用して分散コンピューティングプログラムを作成する複雑さを簡素化し、さらに、表現式によって分散コンピューティングに関連する演算子を決定することで、分散コンピューティングプロセスを最適化することができる。【選択図】図１
2019527441.tif 000002
【特許請求の範囲】
【請求項１】
分散コンピューティングフレームワークであって、
分散コンピューティングタスクの表現式を解析して、演算子と、前記演算子に対応するフィールドとを決定するための解析ユニットであって、前記フィールドは、演算子により作用される分散データセットにおけるデータの属性を示すためのものである、解析ユニットと、
演算子を提供するための演算子ユニットであって、前記演算子の入力パラメータは、フィールドとフィールド型分散データセットとを含み、前記フィールド型分散データセットは、少なくとも１つの要素を含み、前記要素は、複数のキー値ペアを含み、前記キー値ペアのキーはフィールドであり、前記キー値ペアの値は分散データセット中に前記フィールドに対応するデータである、演算子ユニットと、を含むことを特徴とする分散コンピューティングフレームワーク。
【請求項２】
請求項１に記載の分散コンピューティングフレームワークであって、
前記演算子ユニットは、
フィールドに基づいて、分散コンピューティングタスクに必要なデータに対応する分散データセットを、フィールド型分散データセットに変換するためのフィールド型分散データセット生成演算子であって、前記フィールド型分散データセットにおける要素は複数のキー値ペアを含み、各キー値ペアのキーは１つのフィールドであり、各キー値ペアの値は分散データセット中に前記フィールドに対応するデータである、フィールド型分散データセット生成演算子を含むことを特徴とする分散コンピューティングフレームワーク。
【請求項３】
請求項２に記載の分散コンピューティングフレームワークであって、
前記演算子ユニットは、
フィールド型分散データセット中の各要素のうち、異なるキーを持つキー値ペアを組み合わせて、各要素にキーの異なるキー値ペアを含んでいるフィールド型分散データセットを取得するための連結演算子を含むことを特徴とする分散コンピューティングフレームワーク。
【請求項４】
請求項３に記載の分散コンピューティングフレームワークであって、
前記演算子ユニットは、
フィールド型分散データセットにおける要素中のグループ化フィールドの示すキーに対応する値に基づいて、フィールド型分散データセットにおける要素をグループ化して、複数のグループ化されたフィールド型分散データセットを取得するためのグループ化演算子であって、
各グループ化フィールドの示すキーに対応する値は、１つのグループ化されたフィールド型分散データセットに対応し、グループ化されたフィールド型分散データセットは、グループ化フィールドの示すキーに対応する値を含む少なくとも１つの要素を含む、グループ化演算子を含むことを特徴とする分散コンピューティングフレームワーク。
【請求項５】
請求項４に記載の分散コンピューティングフレームワークであって、
前記演算子ユニットは、
トラバーサルフィールドに基づいて、フィールド型分散データセットにおける全ての要素の中にトラバーサルフィールドの示すキーに対応する値に対して操作するためのトラバーサル演算子を含むことを特徴とする分散コンピューティングフレームワーク。
【請求項６】
請求項５に記載の分散コンピューティングフレームワークであって、
前記演算子ユニットは、
フィールド型分散データセットにおける全ての要素の中にトラバーサルフィールドの示すキーに対応する値に対して操作して得られた結果を集約するための集約演算子を含むことを特徴とする分散コンピューティングフレームワーク。
【請求項７】
分散コンピューティング方法であって、
分散コンピューティングタスクの表現式を解析して、演算子と、前記演算子に対応するフィールドとを決定するステップであって、前記フィールドは、演算子により作用される分散データセットにおけるデータの属性を示すためのものである、ステップと、
前記演算子の入力パラメータを生成するステップであって、前記演算子の入力パラメータは、フィールドとフィールド型分散データセットとを含み、前記フィールド型分散データセットは、少なくとも１つの要素を含み、前記要素は、複数のキー値ペアを含み、キー値ペアのキーはフィールドであり、キー値ペアの値は分散データセット中に前記フィールドに対応するデータである、ステップと、
前記演算子により前記入力パラメータに基づいて分散コンピューティングするステップとを含むことを特徴とする分散コンピューティング方法。
【請求項８】
請求項７に記載の分散コンピューティング方法であって、
フィールドに基づいて、分散コンピューティングタスクに必要なデータに対応する分散データセットを、フィールド型分散データセットに変換するステップであって、前記フィールド型分散データセットにおける要素は複数のキー値ペアを含み、各キー値ペアのキーは１つのフィールドであり、各キー値ペアの値は分散データセット中に前記フィールドに対応するデータである、ステップをさらに含むことを特徴とする分散コンピューティング方法。
【請求項９】
請求項８に記載の分散コンピューティング方法であって、
フィールド型分散データセット中の各要素のうち、異なるキーを持つキー値ペアを組み合わせて、各要素にキーの異なるキー値ペアを含んでいるフィールド型分散データセットを取得するステップをさらに含むことを特徴とする分散コンピューティング方法。
【請求項１０】
請求項９に記載の分散コンピューティング方法であって、
フィールド型分散データセットにおける要素中のグループ化フィールドの示すキーに対応する値に基づいて、フィールド型分散データセットにおける要素をグループ化して、複数のグループ化されたフィールド型分散データセットを取得するステップであって、各グループ化フィールドの示すキーに対応する値は、１つのグループ化されたフィールド型分散データセットに対応し、グループ化されたフィールド型分散データセットは、グループ化フィールドの示すキーに対応する値を含む少なくとも１つの要素を含む、ステップをさらに含むことを特徴とする分散コンピューティング方法。
【請求項１１】
請求項１０に記載の分散コンピューティング方法であって、
トラバーサルフィールドに基づいて、フィールド型分散データセットにおける全ての要素の中にトラバーサルフィールドの示すキーに対応する値に対して操作するステップをさらに含むことを特徴とする分散コンピューティング方法。
【請求項１２】
請求項１１に記載の分散コンピューティング方法であって、
フィールド型分散データセットにおける全ての要素の中にトラバーサルフィールドの示すキーに対応する値に対して操作して得られた結果を集約するステップをさらに含むことを特徴とする分散コンピューティング方法。
【請求項１３】
プロセッサと、メモリを備える機器であって、
前記プロセッサによって実行可能なコンピュータ可読命令が前記メモリに記憶され、前記コンピュータ可読命令が実行される場合、前記プロセッサは分散コンピューティング方法を実行し、前記方法は、
分散コンピューティングタスクの表現式を解析して、演算子と、前記演算子に対応するフィールドとを決定するステップであって、前記フィールドは、演算子により作用される分散データセットにおけるデータの属性を示すためのものである、ステップと、
前記演算子の入力パラメータを生成するステップであって、前記演算子の入力パラメータは、フィールドとフィールド型分散データセットとを含み、前記フィールド型分散データセットは、少なくとも１つの要素を含み、前記要素は、複数のキー値ペアを含み、キー値ペアのキーはフィールドであり、キー値ペアの値は分散データセット中に前記フィールドに対応するデータである、ステップと、
前記演算子により前記入力パラメータに基づいて分散コンピューティングするステップとを含む、機器。
【請求項１４】
プロセッサによって実行可能なコンピュータ可読命令が記憶されている不揮発性コンピュータ記憶媒体であって、
前記コンピュータ可読命令が前記プロセッサによって実行される場合、前記プロセッサは分散コンピューティング方法を実行し、前記方法は、
分散コンピューティングタスクの表現式を解析して、演算子と、前記演算子に対応するフィールドとを決定するステップであって、前記フィールドは、演算子により作用される分散データセットにおけるデータの属性を示すためのものである、ステップと、
前記演算子の入力パラメータを生成するステップであって、前記演算子の入力パラメータは、フィールドとフィールド型分散データセットとを含み、前記フィールド型分散データセットは、少なくとも１つの要素を含み、前記要素は、複数のキー値ペアを含み、キー値ペアのキーはフィールドであり、キー値ペアの値は分散データセット中に前記フィールドに対応するデータである、ステップと、
前記演算子により前記入力パラメータに基づいて分散コンピューティングするステップとを含む、不揮発性コンピュータ記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、２０１６年９月２１日に提出した、出願番号が２０１６１０８３６６５４．７である中国特許出願に基づく優先権を主張し、当該出願のすべての内容を引用により本発明に組み込む。
【０００２】
本発明は、コンピュータの分野に関し、具体的に分散分野に関し、特に分散コンピューティングフレームワーク及び分散コンピューティング方法に関する。
【背景技術】
【０００３】
分散コンピューティングプログラムの開発において、ユーザは、例えば、分散コンピューティングフレームワークＨｉｖｅのＳＱＬ−ｌｉｋｅインターフェース、分散コンピューティングフレームワークＳｐａｒｋのＤａｔａＦｒａｍｅインターフェースのような、分散コンピューティングフレームワークにより提供されるインターフェースを用いて、分散コンピューティングプログラムを作成することができる。
【０００４】
しかしながら、従来の分散フレームワークにより提供されるインターフェースは、一方で演算子の再利用を実現することができない。ＤａｔａＦｒａｍｅインターフェースを例として、ｍａｘ／ｍｉｎ／ｃｏｕｎｔなどのＵＤＦを提供しなければならなく、これらのＵＤＦは、いずれもスタンドアローンのデータセットを処理するものであり、従来のｓｕｍ／ｃｏｕｎｔなどの操作を再利用することができない。フィールドで実行可能な操作は極めて限定的であり、ユーザによって実現された演算子は、あるフィールドで使用する必要がある場合、再利用することができない。他方で、一部の分散コンピューティングにおいてよく見られる分散コンピューティングタスクの説明に不都合がある。ＳＱＬ−ｌｉｋｅインターフェースを例として、ＳＱＬ−ｌｉｋｅインターフェースは、入れ子(ネスト)データセットのコンセプトが欠けるので、あるフィールドに基づいてデータをグループ化してそれぞれのグループからあるフィールドでの一番大きなｎ個の記録を抽出するような分散コンピューティングタスクを処理する際、表現式ｓｅｌｅｃｔ  ｆｉｅｌｄ＿１、ｆｉｅｌｄ＿２  ｆｒｏｍ  ｔａｂｌｅ＿１  ｇｒｏｕｐ  ｂｙ  ｆｉｅｌｄ１  ｏｒｄｅｒ  ｂｙ  ｆｉｅｌｄ＿２  ｄｅｓｃ  ｌｉｍｉｔ  １０を使用する場合、実際には、全局から１０個の記録を抽出するのであり、それぞれのグループから１０個の記録を抽出することではない。表現式ｓｅｌｅｃｔ  ｆｉｅｌｄ＿１、ｆｉｅｌｄ＿２  ｆｒｏｍ  ｔａｂｌｅ＿１  ｇｒｏｕｐ  ｂｙ  ｆｉｅｌｄ１  ｌｉｍｉｔ  １０  ｏｒｄｅｒ  ｂｙ  ｆｉｅｌｄ＿２  ｄｅｓｃを使用する場合、これらの表現式は、ＳＱＬ文法に符合していないため、分散コンピューティングタスクを説明することができなくなる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、上記背景技術の部分に存在する技術的問題を解決するための分散コンピューティングフレームワーク及び分散コンピューティング方法を提供する。
【０００６】
第一の態様によれば、本発明は、分散コンピューティングフレームワークを提供する。上記分散コンピューティングフレームワークは、分散コンピューティングタスクの表現式を解析して、演算子と演算子に対応するフィールドとを決定するための解析ユニットであって、フィールドは、演算子により作用される分散データセットにおけるデータの属性を示すためのものである、解析ユニットと、演算子を提供するための演算子ユニットであって、演算子の入力パラメータは、フィールドとフィールド型分散データセットとを含み、フィールド型分散データセットは、少なくとも１つの要素を含み、要素は、複数のキー値ペアを含み、キー値ペアのキーはフィールドであり、キー値ペアの値は分散データセット中にフィールドに対応するデータである、演算子ユニットとを含む。
【０００７】
第二の態様によれば、本発明は、分散コンピューティング方法を提供する。上記方法は、分散コンピューティングタスクの表現式を解析して、演算子と演算子に対応するフィールドとを決定するステップであって、フィールドは、演算子により作用される分散データセットにおけるデータの属性を示すためのものである、ステップと、演算子の入力パラメータを生成するステップであって、演算子の入力パラメータは、フィールドとフィールド型分散データセットとを含み、フィールド型分散データセットは、少なくとも１つの要素を含み、要素は、複数のキー値ペアを含み、キー値ペアのキーはフィールドであり、キー値ペアの値は分散データセット中にフィールドに対応するデータである、ステップと、演算子により入力パラメータに基づいて分散コンピューティングするステップとを含む。
【０００８】
本発明に係る分散コンピューティングフレームワーク及び分散コンピューティング方法は、解析ユニットにより、分散コンピューティングタスクの表現式を解析して、演算子と演算子に対応するフィールドとを決定するようにし、演算子ユニットにより、演算子を提供するようにし、且つ、演算子の入力パラメータは、フィールドとフィールド型分散データセットとを含む。したがって、任意の演算子により受信され返信されたパラメータのタイプがいずれもフィールド型分散データセットであって、任意の演算子は、いずれも、フィールド型分散データセットの中にフィールドに対応するデータに対して操作することが実現できる。これにより、任意の演算子は、いずれも一回の実現を行って演算子の再利用が可能になる。分散コンピューティングタスクをより簡単な表現式で明らかに表現することにより、ユーザが分散コンピューティングフレームワークを利用して分散コンピューティングプログラムを作成する複雑さを簡素化し、さらに、表現式によって分散コンピューティングに関連する演算子を決定できることで、分散コンピューティングプロセスを最適化することができる。
【図面の簡単な説明】
【０００９】
以下の図面による非限定的な実施例についての詳細な説明を閲覧・参照することにより、本発明の他の特徴、目的及び利点がより明らかになる。
【図１】本発明の一実施例に係る分散コンピューティングフレームワークの構成の模式図である。
【図２】本発明の一実施例に係る分散コンピューティング方法のフローチャートである。
【図３】本発明の一実施例に係る分散コンピューティングフレームワークを実現するのに適するコンピュータシステムの構成の模式図である。
【発明を実施するための形態】
【００１０】
以下、図面と実施例を参照しながら、本発明を詳細に説明する。ここで記載される具体的な実施例は、関連の発明を解釈するのみに用いられ、当該発明に対する限定ではないことは理解される。なお、説明の便宜上、図面には、関連の発明に関わる部分のみを示す。
【００１１】
なお、特に断らない（他の説明と衝突しない）限り、本発明の実施例及び実施例における特徴は互いに組み合わせることができる。以下、図面を参照しながら、実施例を併せて本発明を詳しく説明する。
【００１２】
図１は、本発明の一実施形態に係る分散コンピューティングフレームワークの構成の模式図を示す。分散コンピューティングフレームワーク１００は、解析ユニット１０１と演算子ユニット１０２を含む。解析ユニット１０１は、分散コンピューティングタスクの表現式を解析して、演算子と演算子に対応するフィールドとを決定するように構成され、フィールドは、演算子により作用される分散データセットにおけるデータの属性を示す。演算子ユニット１０２は、演算子を提供するように構成され、演算子の入力パラメータは、フィールドとフィールド型分散データセットとを含み、フィールド型分散データセットは、少なくとも１つの要素を含み、要素は複数のキー値ペアを含み、キー値ペアのキーはフィールドであり、キー値ペアの値は分散データセット中にフィールドに対応するデータである。
【００１３】
本実施例において、分散コンピューティングタスクは、表現式を利用して表現することができる。分散コンピューティングタスクの表現式は、それぞれの演算子に対応する演算子キーワードと、演算子により作用される分散データセットにおけるデータの属性を示すフィールドに対応するフィールドキーワードとを含むことができる。解析ユニットは、表現式中の演算子キーワードとフィールドキーワードとを解析して、演算子と演算子に対応するフィールドとを決定することができる。
【００１４】
分散コンピューティングタスクに必要なデータがウェブサイトのクリックレートデータである場合を例として、ウェブサイトのクリックレートデータは、ウェブサイトデータとクリックレートデータとの両方を含む。演算子は、ウェブサイトデータ及びクリックレートデータに作用することができる。分散コンピューティングタスクの表現式は、演算子キーワード及びフィールドキーワードを含むことができる。解析ユニットは、分散コンピューティングタスクの表現式中の演算子キーワード及びフィールドキーワードを解析して、演算子、及び演算子に対応するフィールドであるウェブサイトフィールド、クリックレートフィールドを決定することができる。
【００１５】
本実施例において、分散コンピューティングフレームワークは、フィールド型分散データセットＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎを提供することができる。データ構造ＰＣｏｌｌｅｃｔｉｏｎは、分散データセットを示すことができる。ＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎデータ構造は、構造化された、フィールドを備えるＰＣｏｌｌｅｃｔｉｏｎを示すことができる。ＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎデータ構造は、各要素のそれぞれが１つの辞書であるＰＣｏｌｌｅｃｔｉｏｎに相当することができる。演算子ユニットにより提供される各演算子の入力パラメータは、ＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎ及びフィールドを含むことができ、戻り値のタイプはＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎであってもよい。
【００１６】
本実施例のいくつかの代替的な実施形態において、演算子ユニットは、フィールドに基づいて、分散コンピューティングタスクに必要なデータに対応する分散データセットを、フィールド型分散データセットに変換するように構成されているフィールド型分散データセット生成演算子を含み、フィールド型分散データセットにおける要素は、複数のキー値ペアを含み、各キー値ペアのキーは１つのフィールドであり、各キー値ペアの値は分散データセット中にフィールドに対応するデータである。
【００１７】
分散コンピューティングタスクに必要なデータがウェブサイトのクリックレートデータである場合を例として、各データは、複数のウェブサイトとクリックレートとの両方を含む。分散コンピューティングタスクに必要なデータは、ＰＣｏｌｌｅｃｔｉｏｎであってもよい。フィールド型分散データセット生成演算子は、ウェブサイトフィールドとクリックレートフィールドを含むフィールドのパラメータを受信して、分散コンピューティングタスクに必要なデータに対応するＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎを生成することができる。分散コンピューティングタスクに必要なデータに対応するＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎの中の各要素は、いずれも１つの辞書であってもよく、該辞書は複数のキー値ペアを含み、キーは、ウェブサイト集合やクリックレートであってもよい。キーとなるウェブサイト集合に対応する値は、複数のウェブサイトであり、キーとなるクリックレートに対応する値は、クリックレートデータである。
【００１８】
本実施例のいくつかの代替的な実施形態において、演算子ユニットは、フィールド型分散データセット中の各要素のうち、異なるキーを持つキー値ペアを組み合わせて、各要素にキーの異なるキー値ペアを含んでいるフィールド型分散データセットを取得するように構成されている連結演算子を含む。
【００１９】
本実施例のいくつかの代替的な実施形態において、演算子ユニットは、フィールド型分散データセットにおける要素中のグループ化フィールドの示すキーに対応する値に基づいて、フィールド型分散データセットにおける要素をグループ化して、複数のグループ化されたフィールド型分散データセットを取得するように構成されているグループ化演算子であって、各グループ化フィールドの示すキーに対応する値は、１つのグループ化されたフィールド型分散データセットに対応し、グループ化されたフィールド型分散データセットは、グループ化フィールドの示すキーに対応する値を含む少なくとも１つの要素を含む、グループ化演算子を含む。
【００２０】
本実施例のいくつかの代替的な実施形態において、演算子ユニットは、トラバーサルフィールドに基づいて、フィールド型分散データセットにおける全ての要素の中にトラバーサルフィールドの示すキーに対応する値に対して操作するように構成されているトラバーサル演算子を含む。
【００２１】
本実施例のいくつかの代替的な実施形態において、集約演算子（Ａｇｇｒｅｇａｔｉｏｎ  Ｏｐｅｒａｔｏｒ）は、フィールド型分散データセットにおける全ての要素の中にトラバーサルフィールドの示すキーに対応する値に対して操作して得られた結果を集約するように構成されている。
【００２２】
本実施例において、演算子ユニットは、連結演算子であるｓｅｌｅｃｔ演算子と集約演算子であるａｇｇ演算子とを含むことができる。分散コンピューティングフレームワークは、ｓｅｌｅｃｔ演算子及びａｇｇ演算子に対応するｓｅｌｅｃｔインターフェース及びａｇｇインターフェースをユーザへ提供することができる。ｓｅｌｅｃｔインターフェース及びａｇｇインターフェースに基づいて、例えばｊｏｉｎインターフェース、ｄｉｓｔｉｎｃｔインターフェースやｓｏｒｔ＿ｂｙインターフェースのような補助インターフェースをパッケージ化することができる。
【００２３】
本実施例において、ｓｅｌｅｃｔインターフェース及びａｇｇインターフェースを介してＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎに対して処理することができる。これにより、分散コンピューティングフレームワークでＰＣｏｌｌｅｃｔｉｏｎに作用する従来の様々なインターフェースを再利用することができ、ｓｅｌｅｃｔインターフェース及びａｇｇインターフェースは、ＰＣｏｌｌｅｃｔｉｏｎに作用する任意の従来の様々なインターフェースと組み合わせて、様々な分散コンピューティングタスクを達成可能な操作を構成して、完全な機能を実現することができる。
【００２４】
以下、コードに組み合わせて、本発明の分散コンピューティングフレームワークにより提供される演算子の作用を説明する。
【００２５】
分散コンピューティングタスクに必要なデータは、（‘ａｌｉｂａｂａ．ｃｏｍ，  ｂａｉｄｕ．ｃｏｍ，  ｔｅｎｃｅｎｔ．ｃｏｍ’，  １），  （‘ｂａｉｄｕ．ｃｏｍ，  ｔｅｎｃｅｎｔ．ｃｏｍ’，  ２），  （‘ａｌｉｂａｂａ．ｃｏｍ，  ｔｅｎｃｅｎｔ．ｃｏｍ’，  ３），  （‘ａｌｉｂａｂａ．ｃｏｍ，  ｂａｉｄｕ．ｃｏｍ’，  ２），  （‘ａｌｉｂａｂａ．ｃｏｍ，  ｊｄ．ｃｏｍ’，  １）のようなウェブサイトのクリックレートデータである。分散コンピューティングタスクは、ウェブサイトに基づいてグループ化を実行し、それぞれのウェブサイトのクリックレートの合計、クリックレートの最大値、及びクリックレートの平均値を算出する。
【００２６】
上記分散コンピューティングタスクの実行に使用可能ないくつかのコードは、次の通りである。
【００２７】
ｐ  ＝  ｂａｓｅ．Ｐｉｐｅｌｉｎｅ．ｃｒｅａｔｅ（‘ｌｏｃａｌ’）
ａｎａｌｙｔｉｃｓ  ＝  ｐ．ｐａｒａｌｌｅｌｉｚｅ（［（‘ａｌｉｂａｂａ．ｃｏｍ，  ｂａｉｄｕ．ｃｏｍ，  ｔｅｎｃｅｎｔ．ｃｏｍ’，  １），  （‘ｂａｉｄｕ．ｃｏｍ，  ｔｅｎｃｅｎｔ．ｃｏｍ’，  ２），  （‘ａｌｉｂａｂａ．ｃｏｍ，  ｔｅｎｃｅｎｔ．ｃｏｍ’，  ３），  （‘ａｌｉｂａｂａ．ｃｏｍ，  ｂａｉｄｕ．ｃｏｍ’，  ２），  （‘ａｌｉｂａｂａ．ｃｏｍ，  ｊｄ．ｃｏｍ’，  １）］）＼
．ａｐｐｌｙ（ｓｃｈｅｍａ．ｆｒｏｍ＿ｔｕｐｌｅ，  ［‘ｗｅｂｓｉｔｅｓ’，  ‘ｃｌｉｃｋｎｕｍ’］）
．ａｐｐｌｙ（ｓｃｈｅｍａ．ｓｅｌｅｃｔ，  ｌａｍｂｄａ  ｃｏｌｓ：  ｛
‘ｗｅｂｓｉｔｅ’：  ｃｏｌｓ［‘ｗｅｂｓｉｔｅｓ’］．ｆｌａｔ＿ｍａｐ（ｌａｍｂｄａ  ｌｉｎｅ：  ｌｉｎｅ．ｓｐｌｉｔ（‘，  ’）），  
‘ｃｌｉｃｋｎｕｍ’：  ｃｏｌｓ［‘ｃｌｉｃｋｎｕｍ’］
｝）
．ａｐｐｌｙ（ｓｃｈｅｍａ．ｇｒｏｕｐ＿ｂｙ，  ［‘ｗｅｂｓｉｔｅ’］）＼
．ａｐｐｌｙ＿ｖａｌｕｅｓ（ｓｃｈｅｍａ．ａｇｇ，  ｌａｍｂｄａ  ｃｏｌｓ：  ｛
‘ｍａｘ＿ｃｌｉｃｋ＿ｎｕｍ’：  ｃｏｌｓ［‘ｃｌｉｃｋｎｕｍ’］．ｍａｘ（），  
‘ｓｕｍ＿ｃｌｉｃｋ＿ｎｕｍ’：  ｃｏｌｓ［‘ｃｌｉｃｋｎｕｍ’］．ｆｌａｔ＿ｍａｐ（ｌａｍｂｄａ  ｘ：  ｘ［‘ｘ’］），  
‘ａｖｇ＿ｃｌｉｃｋ＿ｎｕｍ’：  ｃｏｌｓ［‘ｃｌｉｃｋｎｕｍ’］．ｓｕｍ（）  ／  ｃｏｌｓ［‘ｃｌｉｃｋｎｕｍ’］．ｃｏｕｎｔ（）
｝）
本実施例において、一行毎のコードは、１つの表現式に相当し、ユーザは、表現式の形式によって分散コンピューティングタスクのコードを作成することができる。分散コンピューティングフレームワークは、１つのａｐｐｌｙ糖衣構文（Ｓｙｎｔａｃｔｉｃ  ｓｕｇａｒ）を提供することができ、ａｐｐｌｙ糖衣構文の意味は、次の通りである。
【００２８】
．ａｐｐｌｙ（ｆ、＊  ａｒｇｓ）は、ｆ（ｐｃｏｌｌｅｃｔｉｏｎ、＊  ａｒｇｓ）に等価する。
【００２９】
分散コンピューティングタスクに必要なデータである（‘ａｌｉｂａｂａ．ｃｏｍ、ｂａｉｄｕ．ｃｏｍ、ｔｅｎｃｅｎｔ．ｃｏｍ’、１）、（‘ｂａｉｄｕ．ｃｏｍ、ｔｅｎｃｅｎｔ．ｃｏｍ’、２）、（‘ａｌｉｂａｂａ．ｃｏｍ、ｔｅｎｃｅｎｔ．ｃｏｍ’、３）、（‘ａｌｉｂａｂａ．ｃｏｍ、ｂａｉｄｕ．ｃｏｍ’、２）と（‘ａｌｉｂａｂａ．ｃｏｍ、ｊｄ．ｃｏｍ’、１）は、１つの分散データセットＰＣｏｌｌｅｃｔｉｏｎである。
【００３０】
上記コード中の．ａｐｐｌｙ（ｓｃｈｅｍａ．ｆｒｏｍ＿ｔｕｐｌｅ、［  ‘ｗｅｂｓｉｔｅｓ’、  ‘ｃｌｉｃｋｎｕｍ’］）に対して、解析ユニットは、演算子キーワードｆｒｏｍ＿ｔｕｐｌｅに基づいてフィールド型分散データセット生成演算子を決定することができる。フィールドｗｅｂｓｉｔｅｓ及びｃｌｉｃｋｎｕｍは、フィールドキーワードｗｅｂｓｉｔｅｓ及びｃｌｉｃｋｎｕｍによって決定することができる。フィールド型分散データセット生成演算子は、フィールドｗｅｂｓｉｔｅｓ及びフィールドｃｌｉｃｋｎｕｍに基づいて、分散コンピューティングタスクに必要なデータに対応するＰＣｏｌｌｅｃｔｉｏｎを、フィールドｗｅｂｓｉｔｅｓ及びｃｌｉｃｋｎｕｍにしたがってフィールド型分散データセットＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎに変換することができる。ＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎは複数の要素を含み、各要素のそれぞれは複数のキー値ペアを含み、各キー値ペアのキーは１つのフィールドであり、値はＰＣｏｌｌｅｃｔｉｏｎ中にフィールドに対応するデータである。変換されて得られたＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎは５つの要素を含み、各要素のそれぞれは辞書であってもよい。辞書には、キーｗｅｂｓｉｔｅｓ及びｗｅｂｓｉｔｅｓに対応する値により構成されたキー値ペアと、キーｃｌｉｃｋｎｕｍ及びｃｌｉｃｋｎｕｍに対応する値により構成されたキー値ペアが含まれる。
【００３１】
１番目の要素には、キー値ペアｗｅｂｓｉｔｅｓ−ａｌｉｂａｂａ．ｃｏｍ、ｂａｉｄｕ．ｃｏｍ、ｔｅｎｃｅｎｔ．ｃｏｍ、及びキー値ペアｃｌｉｃｋｎｕｍ−１を含む。
２番目の要素には、キー値ペアｗｅｂｓｉｔｅｓ−ｂａｉｄｕ．ｃｏｍ、ｔｅｎｃｅｎｔ．ｃｏｍ、及びキー値ペアｃｌｉｃｋｎｕｍ−２を含む。
３番目の要素には、キー値ペアｗｅｂｓｉｔｅｓ−ａｌｉｂａｂａ．ｃｏｍ、ｔｅｎｃｅｎｔ．ｃｏｍ、及びキー値ペアｃｌｉｃｋｎｕｍ−３を含む。
４番目の要素には、キー値ペアｗｅｂｓｉｔｅｓ−ａｌｉｂａｂａ．ｃｏｍ、ｂａｉｄｕ．ｃｏｍ、及びキー値ペアｃｌｉｃｋｎｕｍ−２を含む。
５番目の要素には、キー値ペアｗｅｂｓｉｔｅｓ−ａｌｉｂａｂａ．ｃｏｍ、ｊｄ．ｃｏｍ、及びキー値ペアｃｌｉｃｋｎｕｍ−１を含む。
【００３２】
上記コード中の．ａｐｐｌｙ（ｓｃｈｅｍａ．ｓｅｌｅｃｔ、ｌａｍｂｄａ  ｃｏｌｓ：｛  ‘ｗｅｂｓｉｔｅ’：ｃｏｌｓ  ［‘  ｗｅｂｓｉｔｅｓ  ’］  ．ｆｌａｔ＿ｍａｐ（ｌａｍｂｄａ  ｌｉｎｅ：ｌｉｎｅ．ｓｐｌｉｔ（‘、  ’））、‘ｃｌｉｃｋｎｕｍ’：ｃｏｌｓ  ［  ‘ｃｌｉｃｋｎｕｍ’］  ｝）に対して、解析ユニットは、演算子キーワードｓｅｌｅｃｔに基づいて連結演算子を決定することができる。フィールドｗｅｂｓｉｔｅとｃｌｉｃｋｎｕｍは、フィールドキーワードに基づいて決定することができる。
【００３３】
ＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎ中のそれぞれの要素のキーｗｅｂｓｉｔｅｓに対して、ｆｌａｔ＿ｍａｐ演算子を呼び出して、キーｗｅｂｓｉｔｅｓに対応する値をコンマに応じて分割して、キーｗｅｂｓｉｔｅ及びキーｗｅｂｓｉｔｅに対応する値により構成されたキー値ペアを取得する。
【００３４】
キーｗｅｂｓｉｔｅｓに対応する値をコンマに応じて分割した後、ＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎ中の要素は、キーｗｅｂｓｉｔｅ及びキーｗｅｂｓｉｔｅに対応する値により構成されたキー値ペアと、キーｃｌｉｃｋｎｕｍ及びキーｃｌｉｃｋｎｕｍに対応する値により構成されたキー値ペアとを含む。
【００３５】
１番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ａｌｉｂａｂａ．ｃｏｍ、キー値ペアｗｅｂｓｉｔｅ−ｂａｉｄｕ．ｃｏｍ、キー値ペアｗｅｂｓｉｔｅ−ｔｅｎｃｅｎｔ．ｃｏｍ、キー値ペアｃｌｉｃｋｎｕｍ−１である。
２番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ｂａｉｄｕ．ｃｏｍ、キー値ペアｗｅｂｓｉｔｅ−ｔｅｎｃｅｎｔ．ｃｏｍ、キー値ペアｃｌｉｃｋｎｕｍ−２である。
３番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ａｌｉｂａｂａ．ｃｏｍ、キー値ペアｗｅｂｓｉｔｅ−ｔｅｎｃｅｎｔ．ｃｏｍ、キー値ペアｃｌｉｃｋｎｕｍ−３である。
４番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ａｌｉｂａｂａ．ｃｏｍ、キー値ペアｗｅｂｓｉｔｅ−ｂａｉｄｕ．ｃｏｍ、キー値ペアｃｌｉｃｋｎｕｍ−２である。
５番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ａｌｉｂａｂａ．ｃｏｍ、キー値ペアｗｅｂｓｉｔｅ−ｊｄ．ｃｏｍ、キー値ペアｃｌｉｃｋｎｕｍ−１である。
【００３６】
本実施例において、連結演算子は、フィールド型分散データセット中の各要素のうち、異なるキーを持つキー値ペアを組み合わせて、各要素にキーの異なるキー値ペアを含んでいるフィールド型分散データセットを取得する。
【００３７】
連結演算子は、各要素中のキーｗｅｂｓｉｔｅに対応するキー値ペアとキーｃｌｉｃｋｎｕｍに対応するキー値ペアとを組み合わせて、各要素のそれぞれに１つのｗｅｂｓｉｔｅに対応するキー値ペアと１つのキーｃｌｉｃｋｎｕｍに対応するキー値ペアとを含んでいるＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎを取得することができる。
【００３８】
各要素中のキーｗｅｂｓｉｔｅに対応するキー値ペアとキーｃｌｉｃｋｎｕｍに対応するキー値ペアとを組み合わせた後、ＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎにおいて、１番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ａｌｉｂａｂａ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−１である。
２番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ｂａｉｄｕ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−１である。
３番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ｔｅｎｃｅｎｔ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−１である。
４番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ｂａｉｄｕ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−２である。
５番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ｔｅｎｃｅｎｔ．ｃｏｍ、及びキー値ペアｃｌｉｃｋｎｕｍ−２である。
６番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ａｌｉｂａｂａ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−３である。
７番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ｔｅｎｃｅｎｔ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−３である。
８番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ａｌｉｂａｂａ．ｃｏｍ、及びキー値ペアｃｌｉｃｋｎｕｍ−２である。
９番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ｂａｉｄｕ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−２である。
１０番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ａｌｉｂａｂａ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−１である。
１１番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ｊｄ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−１である。
【００３９】
上記コード中の．ａｐｐｌｙ（ｓｃｈｅｍａ．ｇｒｏｕｐ＿ｂｙ、［  ‘ｗｅｂｓｉｔｅ’］）に対して、解析ユニットは、グループ化演算子キーワードｇｒｏｕｐ＿ｂｙに基づいてグループ化演算子を決定することができ、フィールドキーワードｗｅｂｓｉｔｅに基づいてフィールドｗｅｂｓｉｔｅ決定することができる。
【００４０】
本実施例において、グループ化演算子は、グループ化フィールドｗｅｂｓｉｔｅの示すキーｗｅｂｓｉｔｅに対応する値に基づいて、ＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎ中の要素をグループ化して、複数のグループ化されたＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎを取得することができる。それぞれのグループ化フィールドの示すキーｗｅｂｓｉｔｅに対応する値は、１つのグループ化されたＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎに対応し、グループ化されたＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎは、グループ化フィールドの示すキーｗｅｂｓｉｔｅに対応する値を含む少なくとも１つの要素を含む。
【００４１】
グループ化演算子は、キーｗｅｂｓｉｔｅに対応する値が同じである要素を集約して、キーｗｅｂｓｉｔｅに対応する値が同じである複数のキー値ペアを含むグループ化ＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎを取得することができる。
【００４２】
第一のグループ化ＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎには、キー値ペアｗｅｂｓｉｔｅ−ｂａｉｄｕ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−１、キー値ペアｗｅｂｓｉｔｅ−ｂａｉｄｕ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−２、キー値ペアｗｅｂｓｉｔｅ−ｂａｉｄｕ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−２を含む。
【００４３】
第二のグループ化ＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎには、キー値ペアｗｅｂｓｉｔｅ−ｔｅｎｃｅｎｔ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−１、キー値ペアｗｅｂｓｉｔｅ−ｔｅｎｃｅｎｔ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−２、キー値ペアｗｅｂｓｉｔｅ−ｔｅｎｃｅｎｔ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−３を含む。
【００４４】
第三のグループ化ＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎには、キー値ペアｗｅｂｓｉｔｅ−ａｌｉｂａｂａ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−１、キー値ペアｗｅｂｓｉｔｅ−ａｌｉｂａｂａ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−３、キー値ペアｗｅｂｓｉｔｅ−ａｌｉｂａｂａ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−２、キー値ペアｗｅｂｓｉｔｅ−ａｌｉｂａｂａ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−１を含む。
【００４５】
第四のグループ化ＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎには、キー値ペアｗｅｂｓｉｔｅ−ｊｄ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−１を含む。
【００４６】
上記コード中の．ａｐｐｌｙ＿ｖａｌｕｅｓ（ｓｃｈｅｍａ．ａｇｇ、ｌａｍｂｄａ  ｃｏｌｓ：｛  ‘ｍａｘ＿ｃｌｉｃｋ＿ｎｕｍ’：ｃｏｌｓ  ［‘  ｃｌｉｃｋｎｕｍ  ’］。ｍａｘ（）、‘ｓｕｍ＿ｃｌｉｃｋ＿ｎｕｍ’：ｃｏｌｓ  ［  ‘ｃｌｉｃｋｎｕｍ’］。ｆｌａｔ＿ｍａｐ（ｌａｍｂｄａ  ｘ：ｘ  ［  ‘ｘ’  ］）、‘ａｖｇ＿ｃｌｉｃｋ＿ｎｕｍ  ’：ｃｏｌｓ  ［‘  ｃｌｉｃｋｎｕｍ  ’］。ｓｕｍ（）／  ｃｏｌｓ  ［‘  ｃｌｉｃｋｎｕｍ  ’］。ｃｏｕｎｔ（）｝）に対して、解析ユニットは、トラバーサル演算子キーワードａｐｐｌｙ＿ｖａｌｕｅｓに基づいてトラバーサル演算子を決定することができる。フィールドｃｌｉｃｋｎｕｍは、フィールドキーワードｃｌｉｃｋｎｕｍに基づいて決定することができる。トラバーサル演算子は、トラバーサルフィールドｃｌｉｃｋｎｕｍに基づいて、それぞれのグループ化ＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎにおける全ての要素の中にキーｃｌｉｃｋｎｕｍに対応する値に対して、ｍａｘ、ｓｕｍ及びｃｏｕｎｔの操作をそれぞれ実行することができる。これにより、ｂａｉｄｕ．ｃｏｍ、ｔｅｎｃｅｎｔ．ｃｏｍ、ａｌｉｂａｂａ．ｃｏｍ、ｊｄ．ｃｏｍのクリックレートの最大値、クリックレートの合計、及びクリックレートの平均値をそれぞれ算出することができる。
【００４７】
解析ユニットは、集約演算子キーワードａｇｇに基づいて集約演算子を決定することができる。集約演算子は、それぞれのグループ化されたフィールド型分散データセットにおける全ての要素の中にトラバーサルフィールドの示すキーに対応する値に対して操作して得られた結果を集約することができる。集約演算子は、それぞれのグループ化ＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎにおける全ての要素の中にキーｃｌｉｃｋｎｕｍに対応する値に対してｍａｘ、ｓｕｍ、ｃｏｕｎｔの操作を実行して得られたｂａｉｄｕ．ｃｏｍ、ｔｅｎｃｅｎｔ．ｃｏｍ、ａｌｉｂａｂａ．ｃｏｍ、ｊｄ．ｃｏｍのクリックレートの最大値、クリックレートの合計、及びクリックレートの平均値を集約することができる。
【００４８】
本発明において、任意の演算子により受信され返信されたパラメータのタイプは、いずれもフィールド型分散データセットであってもよく、任意の演算子は、いずれも、フィールド型分散データセットの中にフィールドに対応するデータに対して操作することができる。これにより、任意の演算子は、いずれも一回の実現を行って演算子の再利用が可能になる。分散コンピューティングタスクをより簡単な表現式で明らかに表現することにより、ユーザが分散コンピューティングフレームワークを利用して分散コンピューティングプログラムを作成する複雑さを簡素化し、さらに、表現式によって分散コンピューティングに関連する演算子を決定することで、分散コンピューティングプロセスを最適化することができる。
【００４９】
図２を参照して説明する。図２は本発明の一実施例に係る分散コンピューティング方法のフロー２００を示す。本方法は、次のようなステップを含む。
【００５０】
ステップ２０１において、分散コンピューティングタスクの表現式を解析して、演算子と演算子に対応するフィールドとを決定する。
本実施例において、フィールドは、演算子により作用される分散データセットにおけるデータの属性を示す。分散コンピューティングタスクは、表現式で表現することができる。分散コンピューティングタスクに必要なデータがウェブサイトのクリックレートデータである場合を例として、ウェブサイトのクリックレートデータは、ウェブサイトデータとクリックレートデータとの両方を含む。演算子は、ウェブサイトデータ及びクリックレートデータに作用することができる。分散コンピューティングタスクの表現式は、演算子キーワード及びフィールドキーワードを含むことができる。解析ユニットは、分散コンピューティングタスクの表現式中の演算子キーワード及びフィールドキーワードを解析して、演算子、及び演算子に対応するフィールドであるウェブサイトフィールド、クリックレートフィールドを決定することができる。
【００５１】
ステップ２０２において、演算子の入力パラメータを生成する。
本実施例において、演算子の入力パラメータは、フィールドとフィールド型分散データセットとを含み、フィールド型分散データセットは、少なくとも１つの要素を含み、要素は複数のキー値ペアを含み、キー値ペアのキーはフィールドであり、キー値ペアの値は分散データセット中にフィールドに対応するデータである。
【００５２】
本実施例において、分散コンピューティングフレームワークは、フィールド型分散データセットＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎを提供することができる。データ構造ＰＣｏｌｌｅｃｔｉｏｎは、分散データセットを示すことができる。ＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎデータ構造は、構造化された、フィールドを備えるＰＣｏｌｌｅｃｔｉｏｎを示すことができる。ＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎデータ構造は、各要素のそれぞれが１つの辞書であるＰＣｏｌｌｅｃｔｉｏｎに相当することができる。各演算子の入力パラメータは、ＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎ及びフィールドを含むことができ、戻り値のタイプはＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎであってもよい。
【００５３】
本実施例のいくつかの代替的な実施形態において、フィールドに基づいて、分散コンピューティングタスクに必要なデータに対応する分散データセットを、フィールド型分散データセットに変換するステップであって、フィールド型分散データセットにおける要素は、複数のキー値ペアを含み、各キー値ペアのキーは１つのフィールドであり、各キー値ペアの値は分散データセット中にフィールドに対応するデータである、ステップをさらに含む。
【００５４】
分散コンピューティングタスクに必要なデータがウェブサイトのクリックレートデータである場合を例として、各データは、複数のウェブサイトとクリックレートとの両方を含む。分散コンピューティングタスクに必要なデータは、ＰＣｏｌｌｅｃｔｉｏｎであってもよい。ウェブサイトフィールドとクリックレートフィールドとに基づいて、分散コンピューティングタスクに必要なデータに対応するＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎを生成することができる。分散コンピューティングタスクに必要なデータに対応するＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎ中の各要素は、いずれも１つの辞書であってもよく、該辞書は複数のキー値ペアを含み、キーは、ウェブサイト集合やクリックレートであってもよい。キーとなるウェブサイト集合に対応する値は、複数のウェブサイトであり、キーとなるクリックレートに対応する値は、クリックレートデータである。
【００５５】
例えば、分散コンピューティングタスクに必要なデータは、（‘ａｌｉｂａｂａ．ｃｏｍ、ｂａｉｄｕ．ｃｏｍ、ｔｅｎｃｅｎｔ．ｃｏｍ’、１）、（‘ｂａｉｄｕ．ｃｏｍ、ｔｅｎｃｅｎｔ．ｃｏｍ’、２）、（‘ａｌｉｂａｂａ．ｃｏｍ、ｔｅｎｃｅｎｔ．ｃｏｍ’、３）、（‘ａｌｉｂａｂａ．ｃｏｍ、ｂａｉｄｕ．ｃｏｍ’、２）、（‘ａｌｉｂａｂａ．ｃｏｍ、ｊｄ．ｃｏｍ’、１）のようなウェブサイトのクリックレートデータである。分散コンピューティングタスクに必要なデータは、１つの分散データセットＰＣｏｌｌｅｃｔｉｏｎである。
【００５６】
本実施例において、フィールドｗｅｂｓｉｔｅｓ及びフィールドｃｌｉｃｋｎｕｍに基づいて、分散コンピューティングタスクに必要なデータに対応するＰＣｏｌｌｅｃｔｉｏｎを、フィールドｗｅｂｓｉｔｅｓ及びｃｌｉｃｋｎｕｍにしたがってフィールド型分散データセットＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎに変換することができる。ＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎは複数の要素を含み、各要素のそれぞれは複数のキー値ペアを含み、各キー値ペアのキーは１つのフィールドであり、各キー値ペアの値は、ＰＣｏｌｌｅｃｔｉｏｎ中にフィールドに対応するデータである。
【００５７】
ＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎは、５つの要素を含み、各要素のそれぞれは辞書であってもよい。辞書には、キーｗｅｂｓｉｔｅｓ及びｗｅｂｓｉｔｅｓに対応する値により構成されたキー値ペアと、キーｃｌｉｃｋｎｕｍ及びｃｌｉｃｋｎｕｍに対応する値により構成されたキー値ペアとを含む。
【００５８】
１番目の要素には、キー値ペアｗｅｂｓｉｔｅｓ−ａｌｉｂａｂａ．ｃｏｍ、ｂａｉｄｕ．ｃｏｍ、ｔｅｎｃｅｎｔ．ｃｏｍ、及びキー値ペアｃｌｉｃｋｎｕｍ−１を含む。
２番目の要素には、キー値ペアｗｅｂｓｉｔｅｓ−ｂａｉｄｕ．ｃｏｍ、ｔｅｎｃｅｎｔ．ｃｏｍ、及びキー値ペアｃｌｉｃｋｎｕｍ−２を含む。
３番目の要素には、キー値ペアｗｅｂｓｉｔｅｓ−ａｌｉｂａｂａ．ｃｏｍ、ｔｅｎｃｅｎｔ．ｃｏｍ、及びキー値ペアｃｌｉｃｋｎｕｍ−３を含む。
４番目の要素には、キー値ペアｗｅｂｓｉｔｅｓ−ａｌｉｂａｂａ．ｃｏｍ、ｂａｉｄｕ．ｃｏｍ、及びキー値ペアｃｌｉｃｋｎｕｍ−２を含む。
５番目の要素には、キー値ペアｗｅｂｓｉｔｅｓ−ａｌｉｂａｂａ．ｃｏｍ、ｊｄ．ｃｏｍ、及びキー値ペアｃｌｉｃｋｎｕｍ−１を含む。
【００５９】
ステップ２０３において、演算子により入力パラメータに基づいて分散コンピューティングする。
本実施例において、ステップ２０２を介して演算子の入力パラメータを作成した後、演算子により入力パラメータＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎ及びフィールドに基づいて分散コンピューティングすることができる。
本実施例において、１つのａｐｐｌｙ糖衣構文を提供することができ、ａｐｐｌｙ糖衣構文の意味は、次の通りである。
．ａｐｐｌｙ（ｆ、＊  ａｒｇｓ）は、ｆ（ｐｃｏｌｌｅｃｔｉｏｎ、＊  ａｒｇｓ）に等価する。
【００６０】
本実施例のいくつかの代替的な実施形態において、フィールド型分散データセット中の各要素のうち、異なるキーを持つキー値ペアを組み合わせて、各要素にキーの異なるキー値ペアを含んでいるフィールド型分散データセットを取得するステップをさらに含む。
【００６１】
本実施例において、フィールド型分散データセット中の各要素のうち、異なるキーを持つキー値ペアを組み合わせて、各要素にキーの異なるキー値ペアを含んでいるフィールド型分散データセットを取得する。
【００６２】
分散コンピューティングタスクに必要なデータがウェブサイトのクリックレートデータである場合を例として、各データは、複数のウェブサイトとクリックレートとの両方を含む。分散コンピューティングタスクに必要なデータは、ＰＣｏｌｌｅｃｔｉｏｎであってもよい。ウェブサイトフィールドとクリックレートフィールドに基づいて、分散コンピューティングタスクに必要なデータに対応するＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎを生成することができる。分散コンピューティングタスクに必要なデータに対応するＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎ中の各要素は、いずれも１つの辞書であってもよく、該辞書は複数のキー値ペアを含み、キーは、ウェブサイト集合やクリックレートであってもよい。キーとなるウェブサイト集合に対応する値は、複数のウェブサイトであり、キーとなるクリックレートに対応する値は、クリックレートデータである。
【００６３】
例えば、ＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎ中の要素は、キーｗｅｂｓｉｔｅ及びキーｗｅｂｓｉｔｅに対応する値により構成されたキー値ペアと、キーｃｌｉｃｋｎｕｍ及びキーｃｌｉｃｋｎｕｍに対応する値により構成されたキー値ペアとを含む。
【００６４】
１番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ａｌｉｂａｂａ．ｃｏｍ、キー値ペアｗｅｂｓｉｔｅ−ｂａｉｄｕ．ｃｏｍ、キー値ペアｗｅｂｓｉｔｅ−ｔｅｎｃｅｎｔ．ｃｏｍ、キー値ペアｃｌｉｃｋｎｕｍ−１である。
２番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ｂａｉｄｕ．ｃｏｍ、キー値ペアｗｅｂｓｉｔｅ−ｔｅｎｃｅｎｔ．ｃｏｍ、キー値ペアｃｌｉｃｋｎｕｍ−２である。
３番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ａｌｉｂａｂａ．ｃｏｍ、キー値ペアｗｅｂｓｉｔｅ−ｔｅｎｃｅｎｔ．ｃｏｍ、キー値ペアｃｌｉｃｋｎｕｍ−３である。
４番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ａｌｉｂａｂａ．ｃｏｍ、キー値ペアｗｅｂｓｉｔｅ−ｂａｉｄｕ．ｃｏｍ、キー値ペアｃｌｉｃｋｎｕｍ−２である。
５番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ａｌｉｂａｂａ．ｃｏｍ、キー値ペアｗｅｂｓｉｔｅ−ｊｄ．ｃｏｍ、キー値ペアｃｌｉｃｋｎｕｍ−１である。
【００６５】
各要素のそれぞれにおけるキーｗｅｂｓｉｔｅに対応するキー値ペアとキーｃｌｉｃｋｎｕｍに対応するキー値ペアとを組み合わせて、各要素のそれぞれに１つのｗｅｂｓｉｔｅに対応するキー値ペアと１つのキーｃｌｉｃｋｎｕｍに対応するキー値ペアとを含んでいるＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎを取得することができる。
【００６６】
各要素のそれぞれにおけるキーｗｅｂｓｉｔｅに対応するキー値ペアとキーｃｌｉｃｋｎｕｍに対応するキー値ペアとを組み合わせた後、ＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎにおいて、１番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ａｌｉｂａｂａ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−１である。
２番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ｂａｉｄｕ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−１である。
３番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ｔｅｎｃｅｎｔ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−１である。
４番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ｂａｉｄｕ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−２である。
５番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ｔｅｎｃｅｎｔ．ｃｏｍ、及びキー値ペアｃｌｉｃｋｎｕｍ−２である。
６番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ａｌｉｂａｂａ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−３である。
７番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ｔｅｎｃｅｎｔ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−３である。
８番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ａｌｉｂａｂａ．ｃｏｍ、及びキー値ペアｃｌｉｃｋｎｕｍ−２である。
９番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ｂａｉｄｕ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−２である。
１０番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ａｌｉｂａｂａ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−１である。
１１番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ｊｄ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−１である。
【００６７】
本実施例のいくつかの代替的な実施形態において、フィールド型分散データセットにおける要素中のグループ化フィールドの示すキーに対応する値に基づいて、フィールド型分散データセットにおける要素をグループ化し、複数のグループ化されたフィールド型分散データセットを取得するステップであって、各グループ化フィールドの示すキーに対応する値は、１つのグループ化されたフィールド型分散データセットに対応し、グループ化されたフィールド型分散データセットは、グループ化フィールドの示すキーに対応する値を含む少なくとも１つの要素を含む、ステップをさらに含む。
【００６８】
例えば、ＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎにおいて、１番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ａｌｉｂａｂａ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−１である。
２番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ｂａｉｄｕ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−１である。
３番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ｔｅｎｃｅｎｔ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−１である。
４番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ｂａｉｄｕ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−２である。
５番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ｔｅｎｃｅｎｔ．ｃｏｍ、及びキー値ペアｃｌｉｃｋｎｕｍ−２である。
６番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ａｌｉｂａｂａ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−３である。
７番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ｔｅｎｃｅｎｔ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−３である。
８番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ａｌｉｂａｂａ．ｃｏｍ、及びキー値ペアｃｌｉｃｋｎｕｍ−２である。
９番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ｂａｉｄｕ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−２である。
１０番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ａｌｉｂａｂａ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−１である。
１１番目の要素は、キー値ペアｗｅｂｓｉｔｅ−ｊｄ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−１である。
【００６９】
グループ化フィールドｗｅｂｓｉｔｅに基づいて、要素の中にｗｅｂｓｉｔｅの示すキーｗｅｂｓｉｔｅに対応する値にしたがって、ＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎ中の要素をグループ化し、複数のグループ化されたＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎを取得することができる。各グループ化フィールドの示すキーｗｅｂｓｉｔｅに対応する値は、１つのグループ化ＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎに対応し、グループ化されたＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎは、グループ化フィールドの示すキーｗｅｂｓｉｔｅに対応する値を含む少なくとも１つの要素を含む。
【００７０】
ＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎにおけるキーｗｅｂｓｉｔｅに対応する値が同じである要素を集約して、キーｗｅｂｓｉｔｅに対応する値が同じである複数のキー値ペアを含むグループ化ＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎを取得することができる。
【００７１】
第一のグループ化ＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎには、キー値ペアｗｅｂｓｉｔｅ−ｂａｉｄｕ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−１、キー値ペアｗｅｂｓｉｔｅ−ｂａｉｄｕ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−２、キー値ペアｗｅｂｓｉｔｅ−ｂａｉｄｕ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−２を含む。
【００７２】
第二のグループ化ＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎには、キー値ペアｗｅｂｓｉｔｅ−ｔｅｎｃｅｎｔ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−１、キー値ペアｗｅｂｓｉｔｅ−ｔｅｎｃｅｎｔ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−２、キー値ペアｗｅｂｓｉｔｅ−ｔｅｎｃｅｎｔ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−３を含む。
【００７３】
第三のグループ化ＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎには、キー値ペアｗｅｂｓｉｔｅ−ａｌｉｂａｂａ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−１、キー値ペアｗｅｂｓｉｔｅ−ａｌｉｂａｂａ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−３、キー値ペアｗｅｂｓｉｔｅ−ａｌｉｂａｂａ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−２、キー値ペアｗｅｂｓｉｔｅ−ａｌｉｂａｂａ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−１を含む。
【００７４】
第四のグループ化ＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎには、キー値ペアｗｅｂｓｉｔｅ−ｊｄ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−１を含む。
【００７５】
本実施例のいくつかの代替的な実施形態において、トラバーサルフィールドに基づいて、フィールド型分散データセットにおける全ての要素の中にトラバーサルフィールドの示すキーに対応する値に対して操作するステップをさらに含む。
【００７６】
グループ化フィールドｗｅｂｓｉｔｅに基づいて、要素の中にｗｅｂｓｉｔｅの示すキーｗｅｂｓｉｔｅに対応する値にしたがってＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎ中の要素をグループ化して、複数のグループ化されたＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎを取得する場合を例として、第一のグループ化ＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎには、キー値ペアｗｅｂｓｉｔｅ−ｂａｉｄｕ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−１、キー値ペアｗｅｂｓｉｔｅ−ｂａｉｄｕ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−２、キー値ペアｗｅｂｓｉｔｅ−ｂａｉｄｕ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−２を含む。
【００７７】
第二のグループ化ＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎには、キー値ペアｗｅｂｓｉｔｅ−ｔｅｎｃｅｎｔ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−１、キー値ペアｗｅｂｓｉｔｅ−ｔｅｎｃｅｎｔ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−２、キー値ペアｗｅｂｓｉｔｅ−ｔｅｎｃｅｎｔ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−３を含む。
【００７８】
第三のグループ化ＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎには、キー値ペアｗｅｂｓｉｔｅ−ａｌｉｂａｂａ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−１、キー値ペアｗｅｂｓｉｔｅ−ａｌｉｂａｂａ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−３、キー値ペアｗｅｂｓｉｔｅ−ａｌｉｂａｂａ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−２、キー値ペアｗｅｂｓｉｔｅ−ａｌｉｂａｂａ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−１を含む。
【００７９】
第四のグループ化ＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎには、キー値ペアｗｅｂｓｉｔｅ−ｊｄ．ｃｏｍ及びキー値ペアｃｌｉｃｋｎｕｍ−１を含む。
【００８０】
トラバーサルフィールドｃｌｉｃｋｎｕｍに基づいて、各グループ化ＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎにおける全ての要素の中にキーｃｌｉｃｋｎｕｍに対応する値に対してｍａｘ、ｓｕｍ、ｃｏｕｎｔの操作をそれぞれ実行することにより、ｂａｉｄｕ．ｃｏｍ、ｔｅｎｃｅｎｔ．ｃｏｍ、ａｌｉｂａｂａ．ｃｏｍ、ｊｄ．ｃｏｍのクリックレートの最大値、クリックレートの合計、及びクリックレートの平均値をそれぞれ算出することができる。
【００８１】
本実施例のいくつかの代替的な実施形態において、フィールド型分散データセットにおける全ての要素の中にトラバーサルフィールドの示すキーに対応する値に対して操作して得られた結果を集約するステップをさらに含む。
【００８２】
グループ化されたＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎを例として、それぞれのグループ化されたＳｃｈｅｍａＰＣｏｌｌｅｃｔｉｏｎにおける全ての要素の中にキーｃｌｉｃｋｎｕｍに対応する値に対してｍａｘ、ｓｕｍ、ｃｏｕｎｔの操作を実行して得られたｂａｉｄｕ．ｃｏｍ、ｔｅｎｃｅｎｔ．ｃｏｍ、ａｌｉｂａｂａ．ｃｏｍ、ｊｄ．ｃｏｍのクリックレートの最大値、クリックレートの合計、及びクリックレートの平均値を集約することができる。出力結果は、次のような形で表現することができる。
【００８３】
［｛  ‘ｓｕｍ＿ｃｌｉｃｋ＿ｎｕｍ’：７、‘ｗｅｂｓｉｔｅ’：  ‘ａｌｉｂａｂａ．ｃｏｍ’、  ‘ａｖｇ＿ｃｌｉｃｋ＿ｎｕｍ’：１、‘  ｍａｘ＿ｃｌｉｃｋ＿ｎｕｍ  ’：３｝、
｛  ‘ｓｕｍ＿ｃｌｉｃｋ＿ｎｕｍ’：６、‘ｗｅｂｓｉｔｅ’：  ‘ｔｅｎｃｅｎｔ．ｃｏｍ’、  ‘ａｖｇ＿ｃｌｉｃｋ＿ｎｕｍ’：２、‘ｍａｘ＿ｃｌｉｃｋ＿ｎｕｍ’：３｝、
｛  ‘ｓｕｍ＿ｃｌｉｃｋ＿ｎｕｍ’：５、‘ｗｅｂｓｉｔｅ’：  ‘ｂａｉｄｕ．ｃｏｍ’、  ‘ａｖｇ＿ｃｌｉｃｋ＿ｎｕｍ’：１、‘  ｍａｘ＿ｃｌｉｃｋ＿ｎｕｍ  ’：２｝、
｛  ‘ｓｕｍ＿ｃｌｉｃｋ＿ｎｕｍ’：１、‘  ｗｅｂｓｉｔｅ  ’：‘  ｊｄ．ｃｏｍ  ’、‘  ａｖｇ＿ｃｌｉｃｋ＿ｎｕｍ’：１、  ‘ｍａｘ＿ｃｌｉｃｋ＿ｎｕｍ’：１｝］。
【００８４】
本発明において、任意の演算子により受信され返信されたパラメータのタイプは、いずれもフィールド型分散データセットであって、任意の演算子は、いずれも、フィールド型分散データセットの中にフィールドに対応するデータに対して操作することができる。これにより、任意の演算子は、いずれも一回の実現を行って演算子の再利用が可能になる。分散コンピューティングタスクをより簡単な表現式で明らかに表現することにより、ユーザが分散コンピューティングフレームワークを利用して分散コンピューティングプログラムを作成する複雑さを簡素化し、さらに、表現式によって分散コンピューティングに関連する演算子を決定することで、分散コンピューティングプロセスを最適化することができる。
【００８５】
以下、図３を参照して説明する。図３は、本発明の実施例に係る分散コンピューティングフレームワークを実現するのに適するコンピュータシステム３００の構成の模式図を示す。
【００８６】
図３に示すように、コンピュータシステム３００は、読み出し専用メモリ（ＲＯＭ）３０２に格納されたプログラム、又は記憶部３０８からランダムアクセスメモリ（ＲＡＭ）３０３に取り込まれたプログラムにより各種適宜な動作及び処理を実行することができる中央処理装置（ＣＰＵ）３０１を具備する。ＲＡＭ３０３において、システム３００の動作に必要な各種のプログラム及びデータが格納されている。ＣＰＵ３０１と、ＲＯＭ３０２と、ＲＡＭ３０３とは、バス３０４を介して互いに接続されている。入力／出力（Ｉ／Ｏ）インターフェース３０５もバス３０４に接続されている。
【００８７】
キーボード、マウスなどを含む入力部３０６と、陰極線管（ＣＲＴ）、液晶表示装置（ＬＣＤ）などとスピーカーなどを含む出力部３０７と、ハードドライブなどを含む記憶部３０８と、ＬＡＮカード、モデムなどのネットワークインターフェースカードを含む通信部３０９のような部品は、Ｉ／Ｏインターフェース３０５に接続されている。通信部３０９は、インターネットなどのネットワークを介して通信処理する。ドライブ３１０も必要に応じて、Ｉ／Ｏインターフェース３０５に接続される。磁気ディスク、光ディスク、磁気光ディスク、半導体メモリなどのようなリムーバブルメディア３１１は、必要に応じて、読み取得したコンピュータプログラムを必要に応じて記憶部３０８にインストールできるように、ドライブ３１０に取り付けられる。
【００８８】
特に、本発明に係る実施例によれば、以上のフローチャートを参照しながら記載したプロセスは、コンピュータソフトウェアプログラムとして実現することができる。例えば、本発明の実施例は、コンピュータ可読媒体に有形に具現化されるコンピュータプログラムを含むコンピュータプログラムを含み、当該コンピュータプログラムは、フローチャートに示された方法を実行するためのプログラムコードを含む。このような実施例において、当該コンピュータプログラムは、通信部３０９を介してネットワークからダウンロードされてインストールされてもよく、及び／又はリムーバブルメディア３１１からインストールされてもよい。
【００８９】
図面におけるフローチャート及びブロック図は、本発明の各種実施例によるシステム、方法及びコンピュータプログラムが実現可能なシステムアーキテクチャー、機能及び操作を図示する。この点から、フローチャート又はブロック図におけるそれぞれのブロックは、１つのモジュール、プログラムブロック、又はコードの一部を示すことができ、当該モジュール、プログラムブロック、又はコードの一部は、１つ又は複数の所定のロジカル機能を実現するための実行可能な命令を含む。なお、複数の代わりになる実現において、ブロックに表示された機能は、図面に表示された順番と異なる順番で発生させることができる。例えば、２つの直列的に接続されると示されたブロックは、実際には、基本的に並行して実行することができ、機能によっては、逆の順番で実行することも可能である。なお、ブロック図及び／又はフローチャートにおけるそれぞれのブロックと、ブロック図及び／又はフローチャートにおけるブロックの組み合わせは、所定の機能又は操作するための専用のハードウェアに基づくシステムによって実現することができ、あるいは、専用ハードウェアとコンピュータ命令の組み合わせによって実現することができる。
【００９０】
他の態様として、本発明は、不揮発性コンピュータ記憶媒体をさらに提供し、該不揮発性コンピュータ記憶媒体は、上記実施例に記載された機器に含まれる不揮発性コンピュータ記憶媒体であってもよく、独立で存在して端末に組み立てられていない不揮発性コンピュータ記憶媒体であってもよい。上記不揮発性コンピュータ記憶媒体は、１つ又は複数のプログラムが記憶されている。上記１つ又は複数のプログラムが１つの機器によって実行される場合、上記機器は、分散コンピューティングタスクの表現式を解析して、演算子と上記演算子に対応するフィールドとを決定するステップであって、上記フィールドは、演算子により作用される分散データセットにおけるデータの属性を示す、ステップと、上記演算子の入力パラメータを生成するステップであって、演算子の入力パラメータは、フィールドとフィールド型分散データセットとを含み、上記フィールド型分散データセットは、少なくとも１つの要素を含み、上記要素は複数のキー値ペアを含み、キー値ペアのキーは、フィールドであり、値は、分散データセット中に上記フィールドに対応するデータである、ステップと、上記演算子により上記入力パラメータに基づいて分散コンピューティングするステップと、を実行するようになっている。
【００９１】
以上の記載は、本発明の好ましい実施例、及び使われている技術的原理の説明に過ぎない。当業者は、本発明に係る保護範囲が、上記の技術的特徴による特定の組合せからなる技術案に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、上記技術的特徴又は均等の特徴の任意の組合せからなる他の技術案も含まれることを理解している。例えば、上記特徴と、本発明に開示された類似の機能を持っている技術的特徴（これらに限定されていない）とを互いに置き換えてなる技術案も含まれる。
【図１】
2019527441.tif 000003
【図２】
2019527441.tif 000004
【図３】
2019527441.tif 000005
【手続補正書】
【提出日】平成31年1月31日(2019.1.31)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
分散コンピューティングフレームワークであって、
分散コンピューティングタスクの表現式を解析して、演算子と、前記演算子に対応するフィールドとを決定するための解析ユニットであって、前記フィールドは、演算子により作用される分散データセットにおけるデータの属性を示すためのものである、解析ユニットと、
演算子を提供するための演算子ユニットであって、前記演算子の入力パラメータは、フィールドとフィールド型分散データセットとを含み、前記フィールド型分散データセットは、少なくとも１つの要素を含み、前記要素は、複数のキー値ペアを含み、前記キー値ペアのキーはフィールドであり、前記キー値ペアの値は分散データセット中に前記フィールドに対応するデータである、演算子ユニットと、を含むことを特徴とする分散コンピューティングフレームワーク。
【請求項２】
請求項１に記載の分散コンピューティングフレームワークであって、
前記演算子ユニットは、
フィールドに基づいて、分散コンピューティングタスクに必要なデータに対応する分散データセットを、フィールド型分散データセットに変換するためのフィールド型分散データセット生成演算子であって、前記フィールド型分散データセットにおける要素は複数のキー値ペアを含み、各キー値ペアのキーは１つのフィールドであり、各キー値ペアの値は分散データセット中に前記フィールドに対応するデータである、フィールド型分散データセット生成演算子を含むことを特徴とする分散コンピューティングフレームワーク。
【請求項３】
請求項２に記載の分散コンピューティングフレームワークであって、
前記演算子ユニットは、
フィールド型分散データセット中の各要素のうち、異なるキーを持つキー値ペアを組み合わせて、各要素にキーの異なるキー値ペアを含んでいるフィールド型分散データセットを取得するための連結演算子を含むことを特徴とする分散コンピューティングフレームワーク。
【請求項４】
請求項３に記載の分散コンピューティングフレームワークであって、
前記演算子ユニットは、
フィールド型分散データセットにおける要素中のグループ化フィールドの示すキーに対応する値に基づいて、フィールド型分散データセットにおける要素をグループ化して、複数のグループ化されたフィールド型分散データセットを取得するためのグループ化演算子であって、
各グループ化フィールドの示すキーに対応する値は、１つのグループ化されたフィールド型分散データセットに対応し、グループ化されたフィールド型分散データセットは、グループ化フィールドの示すキーに対応する値を含む少なくとも１つの要素を含む、グループ化演算子を含むことを特徴とする分散コンピューティングフレームワーク。
【請求項５】
請求項４に記載の分散コンピューティングフレームワークであって、
前記演算子ユニットは、
トラバーサルフィールドに基づいて、フィールド型分散データセットにおける全ての要素の中にトラバーサルフィールドの示すキーに対応する値に対して操作するためのトラバーサル演算子を含むことを特徴とする分散コンピューティングフレームワーク。
【請求項６】
請求項５に記載の分散コンピューティングフレームワークであって、
前記演算子ユニットは、
フィールド型分散データセットにおける全ての要素の中にトラバーサルフィールドの示すキーに対応する値に対して操作して得られた結果を集約するための集約演算子を含むことを特徴とする分散コンピューティングフレームワーク。
【請求項７】
分散コンピューティング方法であって、
分散コンピューティングタスクの表現式を解析して、演算子と、前記演算子に対応するフィールドとを決定するステップであって、前記フィールドは、演算子により作用される分散データセットにおけるデータの属性を示すためのものである、ステップと、
前記演算子の入力パラメータを生成するステップであって、前記演算子の入力パラメータは、フィールドとフィールド型分散データセットとを含み、前記フィールド型分散データセットは、少なくとも１つの要素を含み、前記要素は、複数のキー値ペアを含み、キー値ペアのキーはフィールドであり、キー値ペアの値は分散データセット中に前記フィールドに対応するデータである、ステップと、
前記演算子により前記入力パラメータに基づいて分散コンピューティングするステップとを含むことを特徴とする分散コンピューティング方法。
【請求項８】
請求項７に記載の分散コンピューティング方法であって、
フィールドに基づいて、分散コンピューティングタスクに必要なデータに対応する分散データセットを、フィールド型分散データセットに変換するステップであって、前記フィールド型分散データセットにおける要素は複数のキー値ペアを含み、各キー値ペアのキーは１つのフィールドであり、各キー値ペアの値は分散データセット中に前記フィールドに対応するデータである、ステップをさらに含むことを特徴とする分散コンピューティング方法。
【請求項９】
請求項８に記載の分散コンピューティング方法であって、
フィールド型分散データセット中の各要素のうち、異なるキーを持つキー値ペアを組み合わせて、各要素にキーの異なるキー値ペアを含んでいるフィールド型分散データセットを取得するステップをさらに含むことを特徴とする分散コンピューティング方法。
【請求項１０】
請求項９に記載の分散コンピューティング方法であって、
フィールド型分散データセットにおける要素中のグループ化フィールドの示すキーに対応する値に基づいて、フィールド型分散データセットにおける要素をグループ化して、複数のグループ化されたフィールド型分散データセットを取得するステップであって、各グループ化フィールドの示すキーに対応する値は、１つのグループ化されたフィールド型分散データセットに対応し、グループ化されたフィールド型分散データセットは、グループ化フィールドの示すキーに対応する値を含む少なくとも１つの要素を含む、ステップをさらに含むことを特徴とする分散コンピューティング方法。
【請求項１１】
請求項１０に記載の分散コンピューティング方法であって、
トラバーサルフィールドに基づいて、フィールド型分散データセットにおける全ての要素の中にトラバーサルフィールドの示すキーに対応する値に対して操作するステップをさらに含むことを特徴とする分散コンピューティング方法。
【請求項１２】
請求項１１に記載の分散コンピューティング方法であって、
フィールド型分散データセットにおける全ての要素の中にトラバーサルフィールドの示すキーに対応する値に対して操作して得られた結果を集約するステップをさらに含むことを特徴とする分散コンピューティング方法。
【請求項１３】
プロセッサと、メモリを備える機器であって、
前記プロセッサによって実行可能なコンピュータ可読命令が前記メモリに記憶され、前記コンピュータ可読命令が実行される場合、前記プロセッサは分散コンピューティング方法を実行し、前記方法は、
分散コンピューティングタスクの表現式を解析して、演算子と、前記演算子に対応するフィールドとを決定するステップであって、前記フィールドは、演算子により作用される分散データセットにおけるデータの属性を示すためのものである、ステップと、
前記演算子の入力パラメータを生成するステップであって、前記演算子の入力パラメータは、フィールドとフィールド型分散データセットとを含み、前記フィールド型分散データセットは、少なくとも１つの要素を含み、前記要素は、複数のキー値ペアを含み、キー値ペアのキーはフィールドであり、キー値ペアの値は分散データセット中に前記フィールドに対応するデータである、ステップと、
前記演算子により前記入力パラメータに基づいて分散コンピューティングするステップとを含む、機器。
【請求項１４】
プロセッサによって実行可能なコンピュータ可読命令が記憶されている不揮発性コンピュータ記憶媒体であって、
前記コンピュータ可読命令が前記プロセッサによって実行される場合、前記プロセッサは分散コンピューティング方法を実行し、前記方法は、
分散コンピューティングタスクの表現式を解析して、演算子と、前記演算子に対応するフィールドとを決定するステップであって、前記フィールドは、演算子により作用される分散データセットにおけるデータの属性を示すためのものである、ステップと、
前記演算子の入力パラメータを生成するステップであって、前記演算子の入力パラメータは、フィールドとフィールド型分散データセットとを含み、前記フィールド型分散データセットは、少なくとも１つの要素を含み、前記要素は、複数のキー値ペアを含み、キー値ペアのキーはフィールドであり、キー値ペアの値は分散データセット中に前記フィールドに対応するデータである、ステップと、
前記演算子により前記入力パラメータに基づいて分散コンピューティングするステップとを含む、不揮発性コンピュータ記憶媒体。
【請求項１５】
コンピュータプログラムであって、
前記コンピュータプログラムがプロセッサにより実行されると、請求項７ないし請求項１２のいずれか一項に記載の方法を実現するコンピュータプログラム。
【国際調査報告】
2019527441.tif 000006
2019527441.tif 000007
2019527441.tif 000008
2019527441.tif 000009