JP2019527441A - 分散コンピューティングフレームワーク及び分散コンピューティング方法(distributed computing framework and distributed computing method) - Google Patents

分散コンピューティングフレームワーク及び分散コンピューティング方法(distributed computing framework and distributed computing method) Download PDF

Info

Publication number
JP2019527441A
JP2019527441A JP2019505244A JP2019505244A JP2019527441A JP 2019527441 A JP2019527441 A JP 2019527441A JP 2019505244 A JP2019505244 A JP 2019505244A JP 2019505244 A JP2019505244 A JP 2019505244A JP 2019527441 A JP2019527441 A JP 2019527441A
Authority
JP
Japan
Prior art keywords
field
key
operator
data set
distributed computing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019505244A
Other languages
English (en)
Other versions
JP6781820B2 (ja
Inventor
建▲偉▼ ▲張▼
建▲偉▼ ▲張▼
云▲聡▼ ▲張▼
云▲聡▼ ▲張▼
▲聡▼ 王
▲聡▼ 王
▲瑶▼ 徐
▲瑶▼ 徐
春▲陽▼ 文
春▲陽▼ 文
▲シン▼ 黄
▲シン▼ 黄
展 宋
展 宋
冠胤 朱
冠胤 朱
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Publication of JP2019527441A publication Critical patent/JP2019527441A/ja
Application granted granted Critical
Publication of JP6781820B2 publication Critical patent/JP6781820B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24537Query rewriting; Transformation of operators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/243Natural language query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing

Abstract

本発明は分散コンピューティングフレームワーク及び分散コンピューティング方法に関する。該分散コンピューティングフレームワークの一実施形態は、分散コンピューティングタスクの表現式を解析して、演算子と該演算子に対応するフィールドとを決定するための解析ユニットと、演算子を提供するための演算子ユニットであって、前記演算子の入力パラメータは、フィールドとフィールド型分散データセットとを含む、解析ユニットとを含む。任意の演算子により受信され返信されたパラメータのタイプがいずれもフィールド型分散データセットであって、任意の演算子は、いずれも、フィールド型分散データセットの中にフィールドに対応するデータに対して操作することができる。これにより、任意の演算子は、いずれも一回の実現を行って演算子の再利用が可能になる。分散コンピューティングタスクをより簡単な表現式で明らかに表現することにより、ユーザが分散コンピューティングフレームワークを利用して分散コンピューティングプログラムを作成する複雑さを簡素化し、さらに、表現式によって分散コンピューティングに関連する演算子を決定することで、分散コンピューティングプロセスを最適化することができる。【選択図】図1

Description

本願は、2016年9月21日に提出した、出願番号が201610836654.7である中国特許出願に基づく優先権を主張し、当該出願のすべての内容を引用により本発明に組み込む。
本発明は、コンピュータの分野に関し、具体的に分散分野に関し、特に分散コンピューティングフレームワーク及び分散コンピューティング方法に関する。
分散コンピューティングプログラムの開発において、ユーザは、例えば、分散コンピューティングフレームワークHiveのSQL−likeインターフェース、分散コンピューティングフレームワークSparkのDataFrameインターフェースのような、分散コンピューティングフレームワークにより提供されるインターフェースを用いて、分散コンピューティングプログラムを作成することができる。
しかしながら、従来の分散フレームワークにより提供されるインターフェースは、一方で演算子の再利用を実現することができない。DataFrameインターフェースを例として、max/min/countなどのUDFを提供しなければならなく、これらのUDFは、いずれもスタンドアローンのデータセットを処理するものであり、従来のsum/countなどの操作を再利用することができない。フィールドで実行可能な操作は極めて限定的であり、ユーザによって実現された演算子は、あるフィールドで使用する必要がある場合、再利用することができない。他方で、一部の分散コンピューティングにおいてよく見られる分散コンピューティングタスクの説明に不都合がある。SQL−likeインターフェースを例として、SQL−likeインターフェースは、入れ子(ネスト)データセットのコンセプトが欠けるので、あるフィールドに基づいてデータをグループ化してそれぞれのグループからあるフィールドでの一番大きなn個の記録を抽出するような分散コンピューティングタスクを処理する際、表現式select field_1、field_2 from table_1 group by field1 order by field_2 desc limit 10を使用する場合、実際には、全局から10個の記録を抽出するのであり、それぞれのグループから10個の記録を抽出することではない。表現式select field_1、field_2 from table_1 group by field1 limit 10 order by field_2 descを使用する場合、これらの表現式は、SQL文法に符合していないため、分散コンピューティングタスクを説明することができなくなる。
本発明は、上記背景技術の部分に存在する技術的問題を解決するための分散コンピューティングフレームワーク及び分散コンピューティング方法を提供する。
第一の態様によれば、本発明は、分散コンピューティングフレームワークを提供する。上記分散コンピューティングフレームワークは、分散コンピューティングタスクの表現式を解析して、演算子と演算子に対応するフィールドとを決定するための解析ユニットであって、フィールドは、演算子により作用される分散データセットにおけるデータの属性を示すためのものである、解析ユニットと、演算子を提供するための演算子ユニットであって、演算子の入力パラメータは、フィールドとフィールド型分散データセットとを含み、フィールド型分散データセットは、少なくとも1つの要素を含み、要素は、複数のキー値ペアを含み、キー値ペアのキーはフィールドであり、キー値ペアの値は分散データセット中にフィールドに対応するデータである、演算子ユニットとを含む。
第二の態様によれば、本発明は、分散コンピューティング方法を提供する。上記方法は、分散コンピューティングタスクの表現式を解析して、演算子と演算子に対応するフィールドとを決定するステップであって、フィールドは、演算子により作用される分散データセットにおけるデータの属性を示すためのものである、ステップと、演算子の入力パラメータを生成するステップであって、演算子の入力パラメータは、フィールドとフィールド型分散データセットとを含み、フィールド型分散データセットは、少なくとも1つの要素を含み、要素は、複数のキー値ペアを含み、キー値ペアのキーはフィールドであり、キー値ペアの値は分散データセット中にフィールドに対応するデータである、ステップと、演算子により入力パラメータに基づいて分散コンピューティングするステップとを含む。
本発明に係る分散コンピューティングフレームワーク及び分散コンピューティング方法は、解析ユニットにより、分散コンピューティングタスクの表現式を解析して、演算子と演算子に対応するフィールドとを決定するようにし、演算子ユニットにより、演算子を提供するようにし、且つ、演算子の入力パラメータは、フィールドとフィールド型分散データセットとを含む。したがって、任意の演算子により受信され返信されたパラメータのタイプがいずれもフィールド型分散データセットであって、任意の演算子は、いずれも、フィールド型分散データセットの中にフィールドに対応するデータに対して操作することが実現できる。これにより、任意の演算子は、いずれも一回の実現を行って演算子の再利用が可能になる。分散コンピューティングタスクをより簡単な表現式で明らかに表現することにより、ユーザが分散コンピューティングフレームワークを利用して分散コンピューティングプログラムを作成する複雑さを簡素化し、さらに、表現式によって分散コンピューティングに関連する演算子を決定できることで、分散コンピューティングプロセスを最適化することができる。
以下の図面による非限定的な実施例についての詳細な説明を閲覧・参照することにより、本発明の他の特徴、目的及び利点がより明らかになる。
本発明の一実施例に係る分散コンピューティングフレームワークの構成の模式図である。 本発明の一実施例に係る分散コンピューティング方法のフローチャートである。 本発明の一実施例に係る分散コンピューティングフレームワークを実現するのに適するコンピュータシステムの構成の模式図である。
以下、図面と実施例を参照しながら、本発明を詳細に説明する。ここで記載される具体的な実施例は、関連の発明を解釈するのみに用いられ、当該発明に対する限定ではないことは理解される。なお、説明の便宜上、図面には、関連の発明に関わる部分のみを示す。
なお、特に断らない(他の説明と衝突しない)限り、本発明の実施例及び実施例における特徴は互いに組み合わせることができる。以下、図面を参照しながら、実施例を併せて本発明を詳しく説明する。
図1は、本発明の一実施形態に係る分散コンピューティングフレームワークの構成の模式図を示す。分散コンピューティングフレームワーク100は、解析ユニット101と演算子ユニット102を含む。解析ユニット101は、分散コンピューティングタスクの表現式を解析して、演算子と演算子に対応するフィールドとを決定するように構成され、フィールドは、演算子により作用される分散データセットにおけるデータの属性を示す。演算子ユニット102は、演算子を提供するように構成され、演算子の入力パラメータは、フィールドとフィールド型分散データセットとを含み、フィールド型分散データセットは、少なくとも1つの要素を含み、要素は複数のキー値ペアを含み、キー値ペアのキーはフィールドであり、キー値ペアの値は分散データセット中にフィールドに対応するデータである。
本実施例において、分散コンピューティングタスクは、表現式を利用して表現することができる。分散コンピューティングタスクの表現式は、それぞれの演算子に対応する演算子キーワードと、演算子により作用される分散データセットにおけるデータの属性を示すフィールドに対応するフィールドキーワードとを含むことができる。解析ユニットは、表現式中の演算子キーワードとフィールドキーワードとを解析して、演算子と演算子に対応するフィールドとを決定することができる。
分散コンピューティングタスクに必要なデータがウェブサイトのクリックレートデータである場合を例として、ウェブサイトのクリックレートデータは、ウェブサイトデータとクリックレートデータとの両方を含む。演算子は、ウェブサイトデータ及びクリックレートデータに作用することができる。分散コンピューティングタスクの表現式は、演算子キーワード及びフィールドキーワードを含むことができる。解析ユニットは、分散コンピューティングタスクの表現式中の演算子キーワード及びフィールドキーワードを解析して、演算子、及び演算子に対応するフィールドであるウェブサイトフィールド、クリックレートフィールドを決定することができる。
本実施例において、分散コンピューティングフレームワークは、フィールド型分散データセットSchemaPCollectionを提供することができる。データ構造PCollectionは、分散データセットを示すことができる。SchemaPCollectionデータ構造は、構造化された、フィールドを備えるPCollectionを示すことができる。SchemaPCollectionデータ構造は、各要素のそれぞれが1つの辞書であるPCollectionに相当することができる。演算子ユニットにより提供される各演算子の入力パラメータは、SchemaPCollection及びフィールドを含むことができ、戻り値のタイプはSchemaPCollectionであってもよい。
本実施例のいくつかの代替的な実施形態において、演算子ユニットは、フィールドに基づいて、分散コンピューティングタスクに必要なデータに対応する分散データセットを、フィールド型分散データセットに変換するように構成されているフィールド型分散データセット生成演算子を含み、フィールド型分散データセットにおける要素は、複数のキー値ペアを含み、各キー値ペアのキーは1つのフィールドであり、各キー値ペアの値は分散データセット中にフィールドに対応するデータである。
分散コンピューティングタスクに必要なデータがウェブサイトのクリックレートデータである場合を例として、各データは、複数のウェブサイトとクリックレートとの両方を含む。分散コンピューティングタスクに必要なデータは、PCollectionであってもよい。フィールド型分散データセット生成演算子は、ウェブサイトフィールドとクリックレートフィールドを含むフィールドのパラメータを受信して、分散コンピューティングタスクに必要なデータに対応するSchemaPCollectionを生成することができる。分散コンピューティングタスクに必要なデータに対応するSchemaPCollectionの中の各要素は、いずれも1つの辞書であってもよく、該辞書は複数のキー値ペアを含み、キーは、ウェブサイト集合やクリックレートであってもよい。キーとなるウェブサイト集合に対応する値は、複数のウェブサイトであり、キーとなるクリックレートに対応する値は、クリックレートデータである。
本実施例のいくつかの代替的な実施形態において、演算子ユニットは、フィールド型分散データセット中の各要素のうち、異なるキーを持つキー値ペアを組み合わせて、各要素にキーの異なるキー値ペアを含んでいるフィールド型分散データセットを取得するように構成されている連結演算子を含む。
本実施例のいくつかの代替的な実施形態において、演算子ユニットは、フィールド型分散データセットにおける要素中のグループ化フィールドの示すキーに対応する値に基づいて、フィールド型分散データセットにおける要素をグループ化して、複数のグループ化されたフィールド型分散データセットを取得するように構成されているグループ化演算子であって、各グループ化フィールドの示すキーに対応する値は、1つのグループ化されたフィールド型分散データセットに対応し、グループ化されたフィールド型分散データセットは、グループ化フィールドの示すキーに対応する値を含む少なくとも1つの要素を含む、グループ化演算子を含む。
本実施例のいくつかの代替的な実施形態において、演算子ユニットは、トラバーサルフィールドに基づいて、フィールド型分散データセットにおける全ての要素の中にトラバーサルフィールドの示すキーに対応する値に対して操作するように構成されているトラバーサル演算子を含む。
本実施例のいくつかの代替的な実施形態において、集約演算子(Aggregation Operator)は、フィールド型分散データセットにおける全ての要素の中にトラバーサルフィールドの示すキーに対応する値に対して操作して得られた結果を集約するように構成されている。
本実施例において、演算子ユニットは、連結演算子であるselect演算子と集約演算子であるagg演算子とを含むことができる。分散コンピューティングフレームワークは、select演算子及びagg演算子に対応するselectインターフェース及びaggインターフェースをユーザへ提供することができる。selectインターフェース及びaggインターフェースに基づいて、例えばjoinインターフェース、distinctインターフェースやsort_byインターフェースのような補助インターフェースをパッケージ化することができる。
本実施例において、selectインターフェース及びaggインターフェースを介してSchemaPCollectionに対して処理することができる。これにより、分散コンピューティングフレームワークでPCollectionに作用する従来の様々なインターフェースを再利用することができ、selectインターフェース及びaggインターフェースは、PCollectionに作用する任意の従来の様々なインターフェースと組み合わせて、様々な分散コンピューティングタスクを達成可能な操作を構成して、完全な機能を実現することができる。
以下、コードに組み合わせて、本発明の分散コンピューティングフレームワークにより提供される演算子の作用を説明する。
分散コンピューティングタスクに必要なデータは、(‘alibaba.com, baidu.com, tencent.com’, 1), (‘baidu.com, tencent.com’, 2), (‘alibaba.com, tencent.com’, 3), (‘alibaba.com, baidu.com’, 2), (‘alibaba.com, jd.com’, 1)のようなウェブサイトのクリックレートデータである。分散コンピューティングタスクは、ウェブサイトに基づいてグループ化を実行し、それぞれのウェブサイトのクリックレートの合計、クリックレートの最大値、及びクリックレートの平均値を算出する。
上記分散コンピューティングタスクの実行に使用可能ないくつかのコードは、次の通りである。
p = base.Pipeline.create(‘local’)
analytics = p.parallelize([(‘alibaba.com, baidu.com, tencent.com’, 1), (‘baidu.com, tencent.com’, 2), (‘alibaba.com, tencent.com’, 3), (‘alibaba.com, baidu.com’, 2), (‘alibaba.com, jd.com’, 1)])\
.apply(schema.from_tuple, [‘websites’, ‘clicknum’])
.apply(schema.select, lambda cols: {
‘website’: cols[‘websites’].flat_map(lambda line: line.split(‘, ’)),
‘clicknum’: cols[‘clicknum’]
})
.apply(schema.group_by, [‘website’])\
.apply_values(schema.agg, lambda cols: {
‘max_click_num’: cols[‘clicknum’].max(),
‘sum_click_num’: cols[‘clicknum’].flat_map(lambda x: x[‘x’]),
‘avg_click_num’: cols[‘clicknum’].sum() / cols[‘clicknum’].count()
})
本実施例において、一行毎のコードは、1つの表現式に相当し、ユーザは、表現式の形式によって分散コンピューティングタスクのコードを作成することができる。分散コンピューティングフレームワークは、1つのapply糖衣構文(Syntactic sugar)を提供することができ、apply糖衣構文の意味は、次の通りである。
.apply(f、* args)は、f(pcollection、* args)に等価する。
分散コンピューティングタスクに必要なデータである(‘alibaba.com、baidu.com、tencent.com’、1)、(‘baidu.com、tencent.com’、2)、(‘alibaba.com、tencent.com’、3)、(‘alibaba.com、baidu.com’、2)と(‘alibaba.com、jd.com’、1)は、1つの分散データセットPCollectionである。
上記コード中の.apply(schema.from_tuple、[ ‘websites’、 ‘clicknum’])に対して、解析ユニットは、演算子キーワードfrom_tupleに基づいてフィールド型分散データセット生成演算子を決定することができる。フィールドwebsites及びclicknumは、フィールドキーワードwebsites及びclicknumによって決定することができる。フィールド型分散データセット生成演算子は、フィールドwebsites及びフィールドclicknumに基づいて、分散コンピューティングタスクに必要なデータに対応するPCollectionを、フィールドwebsites及びclicknumにしたがってフィールド型分散データセットSchemaPCollectionに変換することができる。SchemaPCollectionは複数の要素を含み、各要素のそれぞれは複数のキー値ペアを含み、各キー値ペアのキーは1つのフィールドであり、値はPCollection中にフィールドに対応するデータである。変換されて得られたSchemaPCollectionは5つの要素を含み、各要素のそれぞれは辞書であってもよい。辞書には、キーwebsites及びwebsitesに対応する値により構成されたキー値ペアと、キーclicknum及びclicknumに対応する値により構成されたキー値ペアが含まれる。
1番目の要素には、キー値ペアwebsites−alibaba.com、baidu.com、tencent.com、及びキー値ペアclicknum−1を含む。
2番目の要素には、キー値ペアwebsites−baidu.com、tencent.com、及びキー値ペアclicknum−2を含む。
3番目の要素には、キー値ペアwebsites−alibaba.com、tencent.com、及びキー値ペアclicknum−3を含む。
4番目の要素には、キー値ペアwebsites−alibaba.com、baidu.com、及びキー値ペアclicknum−2を含む。
5番目の要素には、キー値ペアwebsites−alibaba.com、jd.com、及びキー値ペアclicknum−1を含む。
上記コード中の.apply(schema.select、lambda cols:{ ‘website’:cols [‘ websites ’] .flat_map(lambda line:line.split(‘、 ’))、‘clicknum’:cols [ ‘clicknum’] })に対して、解析ユニットは、演算子キーワードselectに基づいて連結演算子を決定することができる。フィールドwebsiteとclicknumは、フィールドキーワードに基づいて決定することができる。
SchemaPCollection中のそれぞれの要素のキーwebsitesに対して、flat_map演算子を呼び出して、キーwebsitesに対応する値をコンマに応じて分割して、キーwebsite及びキーwebsiteに対応する値により構成されたキー値ペアを取得する。
キーwebsitesに対応する値をコンマに応じて分割した後、SchemaPCollection中の要素は、キーwebsite及びキーwebsiteに対応する値により構成されたキー値ペアと、キーclicknum及びキーclicknumに対応する値により構成されたキー値ペアとを含む。
1番目の要素は、キー値ペアwebsite−alibaba.com、キー値ペアwebsite−baidu.com、キー値ペアwebsite−tencent.com、キー値ペアclicknum−1である。
2番目の要素は、キー値ペアwebsite−baidu.com、キー値ペアwebsite−tencent.com、キー値ペアclicknum−2である。
3番目の要素は、キー値ペアwebsite−alibaba.com、キー値ペアwebsite−tencent.com、キー値ペアclicknum−3である。
4番目の要素は、キー値ペアwebsite−alibaba.com、キー値ペアwebsite−baidu.com、キー値ペアclicknum−2である。
5番目の要素は、キー値ペアwebsite−alibaba.com、キー値ペアwebsite−jd.com、キー値ペアclicknum−1である。
本実施例において、連結演算子は、フィールド型分散データセット中の各要素のうち、異なるキーを持つキー値ペアを組み合わせて、各要素にキーの異なるキー値ペアを含んでいるフィールド型分散データセットを取得する。
連結演算子は、各要素中のキーwebsiteに対応するキー値ペアとキーclicknumに対応するキー値ペアとを組み合わせて、各要素のそれぞれに1つのwebsiteに対応するキー値ペアと1つのキーclicknumに対応するキー値ペアとを含んでいるSchemaPCollectionを取得することができる。
各要素中のキーwebsiteに対応するキー値ペアとキーclicknumに対応するキー値ペアとを組み合わせた後、SchemaPCollectionにおいて、1番目の要素は、キー値ペアwebsite−alibaba.com及びキー値ペアclicknum−1である。
2番目の要素は、キー値ペアwebsite−baidu.com及びキー値ペアclicknum−1である。
3番目の要素は、キー値ペアwebsite−tencent.com及びキー値ペアclicknum−1である。
4番目の要素は、キー値ペアwebsite−baidu.com及びキー値ペアclicknum−2である。
5番目の要素は、キー値ペアwebsite−tencent.com、及びキー値ペアclicknum−2である。
6番目の要素は、キー値ペアwebsite−alibaba.com及びキー値ペアclicknum−3である。
7番目の要素は、キー値ペアwebsite−tencent.com及びキー値ペアclicknum−3である。
8番目の要素は、キー値ペアwebsite−alibaba.com、及びキー値ペアclicknum−2である。
9番目の要素は、キー値ペアwebsite−baidu.com及びキー値ペアclicknum−2である。
10番目の要素は、キー値ペアwebsite−alibaba.com及びキー値ペアclicknum−1である。
11番目の要素は、キー値ペアwebsite−jd.com及びキー値ペアclicknum−1である。
上記コード中の.apply(schema.group_by、[ ‘website’])に対して、解析ユニットは、グループ化演算子キーワードgroup_byに基づいてグループ化演算子を決定することができ、フィールドキーワードwebsiteに基づいてフィールドwebsite決定することができる。
本実施例において、グループ化演算子は、グループ化フィールドwebsiteの示すキーwebsiteに対応する値に基づいて、SchemaPCollection中の要素をグループ化して、複数のグループ化されたSchemaPCollectionを取得することができる。それぞれのグループ化フィールドの示すキーwebsiteに対応する値は、1つのグループ化されたSchemaPCollectionに対応し、グループ化されたSchemaPCollectionは、グループ化フィールドの示すキーwebsiteに対応する値を含む少なくとも1つの要素を含む。
グループ化演算子は、キーwebsiteに対応する値が同じである要素を集約して、キーwebsiteに対応する値が同じである複数のキー値ペアを含むグループ化SchemaPCollectionを取得することができる。
第一のグループ化SchemaPCollectionには、キー値ペアwebsite−baidu.com及びキー値ペアclicknum−1、キー値ペアwebsite−baidu.com及びキー値ペアclicknum−2、キー値ペアwebsite−baidu.com及びキー値ペアclicknum−2を含む。
第二のグループ化SchemaPCollectionには、キー値ペアwebsite−tencent.com及びキー値ペアclicknum−1、キー値ペアwebsite−tencent.com及びキー値ペアclicknum−2、キー値ペアwebsite−tencent.com及びキー値ペアclicknum−3を含む。
第三のグループ化SchemaPCollectionには、キー値ペアwebsite−alibaba.com及びキー値ペアclicknum−1、キー値ペアwebsite−alibaba.com及びキー値ペアclicknum−3、キー値ペアwebsite−alibaba.com及びキー値ペアclicknum−2、キー値ペアwebsite−alibaba.com及びキー値ペアclicknum−1を含む。
第四のグループ化SchemaPCollectionには、キー値ペアwebsite−jd.com及びキー値ペアclicknum−1を含む。
上記コード中の.apply_values(schema.agg、lambda cols:{ ‘max_click_num’:cols [‘ clicknum ’]。max()、‘sum_click_num’:cols [ ‘clicknum’]。flat_map(lambda x:x [ ‘x’ ])、‘avg_click_num ’:cols [‘ clicknum ’]。sum()/ cols [‘ clicknum ’]。count()})に対して、解析ユニットは、トラバーサル演算子キーワードapply_valuesに基づいてトラバーサル演算子を決定することができる。フィールドclicknumは、フィールドキーワードclicknumに基づいて決定することができる。トラバーサル演算子は、トラバーサルフィールドclicknumに基づいて、それぞれのグループ化SchemaPCollectionにおける全ての要素の中にキーclicknumに対応する値に対して、max、sum及びcountの操作をそれぞれ実行することができる。これにより、baidu.com、tencent.com、alibaba.com、jd.comのクリックレートの最大値、クリックレートの合計、及びクリックレートの平均値をそれぞれ算出することができる。
解析ユニットは、集約演算子キーワードaggに基づいて集約演算子を決定することができる。集約演算子は、それぞれのグループ化されたフィールド型分散データセットにおける全ての要素の中にトラバーサルフィールドの示すキーに対応する値に対して操作して得られた結果を集約することができる。集約演算子は、それぞれのグループ化SchemaPCollectionにおける全ての要素の中にキーclicknumに対応する値に対してmax、sum、countの操作を実行して得られたbaidu.com、tencent.com、alibaba.com、jd.comのクリックレートの最大値、クリックレートの合計、及びクリックレートの平均値を集約することができる。
本発明において、任意の演算子により受信され返信されたパラメータのタイプは、いずれもフィールド型分散データセットであってもよく、任意の演算子は、いずれも、フィールド型分散データセットの中にフィールドに対応するデータに対して操作することができる。これにより、任意の演算子は、いずれも一回の実現を行って演算子の再利用が可能になる。分散コンピューティングタスクをより簡単な表現式で明らかに表現することにより、ユーザが分散コンピューティングフレームワークを利用して分散コンピューティングプログラムを作成する複雑さを簡素化し、さらに、表現式によって分散コンピューティングに関連する演算子を決定することで、分散コンピューティングプロセスを最適化することができる。
図2を参照して説明する。図2は本発明の一実施例に係る分散コンピューティング方法のフロー200を示す。本方法は、次のようなステップを含む。
ステップ201において、分散コンピューティングタスクの表現式を解析して、演算子と演算子に対応するフィールドとを決定する。
本実施例において、フィールドは、演算子により作用される分散データセットにおけるデータの属性を示す。分散コンピューティングタスクは、表現式で表現することができる。分散コンピューティングタスクに必要なデータがウェブサイトのクリックレートデータである場合を例として、ウェブサイトのクリックレートデータは、ウェブサイトデータとクリックレートデータとの両方を含む。演算子は、ウェブサイトデータ及びクリックレートデータに作用することができる。分散コンピューティングタスクの表現式は、演算子キーワード及びフィールドキーワードを含むことができる。解析ユニットは、分散コンピューティングタスクの表現式中の演算子キーワード及びフィールドキーワードを解析して、演算子、及び演算子に対応するフィールドであるウェブサイトフィールド、クリックレートフィールドを決定することができる。
ステップ202において、演算子の入力パラメータを生成する。
本実施例において、演算子の入力パラメータは、フィールドとフィールド型分散データセットとを含み、フィールド型分散データセットは、少なくとも1つの要素を含み、要素は複数のキー値ペアを含み、キー値ペアのキーはフィールドであり、キー値ペアの値は分散データセット中にフィールドに対応するデータである。
本実施例において、分散コンピューティングフレームワークは、フィールド型分散データセットSchemaPCollectionを提供することができる。データ構造PCollectionは、分散データセットを示すことができる。SchemaPCollectionデータ構造は、構造化された、フィールドを備えるPCollectionを示すことができる。SchemaPCollectionデータ構造は、各要素のそれぞれが1つの辞書であるPCollectionに相当することができる。各演算子の入力パラメータは、SchemaPCollection及びフィールドを含むことができ、戻り値のタイプはSchemaPCollectionであってもよい。
本実施例のいくつかの代替的な実施形態において、フィールドに基づいて、分散コンピューティングタスクに必要なデータに対応する分散データセットを、フィールド型分散データセットに変換するステップであって、フィールド型分散データセットにおける要素は、複数のキー値ペアを含み、各キー値ペアのキーは1つのフィールドであり、各キー値ペアの値は分散データセット中にフィールドに対応するデータである、ステップをさらに含む。
分散コンピューティングタスクに必要なデータがウェブサイトのクリックレートデータである場合を例として、各データは、複数のウェブサイトとクリックレートとの両方を含む。分散コンピューティングタスクに必要なデータは、PCollectionであってもよい。ウェブサイトフィールドとクリックレートフィールドとに基づいて、分散コンピューティングタスクに必要なデータに対応するSchemaPCollectionを生成することができる。分散コンピューティングタスクに必要なデータに対応するSchemaPCollection中の各要素は、いずれも1つの辞書であってもよく、該辞書は複数のキー値ペアを含み、キーは、ウェブサイト集合やクリックレートであってもよい。キーとなるウェブサイト集合に対応する値は、複数のウェブサイトであり、キーとなるクリックレートに対応する値は、クリックレートデータである。
例えば、分散コンピューティングタスクに必要なデータは、(‘alibaba.com、baidu.com、tencent.com’、1)、(‘baidu.com、tencent.com’、2)、(‘alibaba.com、tencent.com’、3)、(‘alibaba.com、baidu.com’、2)、(‘alibaba.com、jd.com’、1)のようなウェブサイトのクリックレートデータである。分散コンピューティングタスクに必要なデータは、1つの分散データセットPCollectionである。
本実施例において、フィールドwebsites及びフィールドclicknumに基づいて、分散コンピューティングタスクに必要なデータに対応するPCollectionを、フィールドwebsites及びclicknumにしたがってフィールド型分散データセットSchemaPCollectionに変換することができる。SchemaPCollectionは複数の要素を含み、各要素のそれぞれは複数のキー値ペアを含み、各キー値ペアのキーは1つのフィールドであり、各キー値ペアの値は、PCollection中にフィールドに対応するデータである。
SchemaPCollectionは、5つの要素を含み、各要素のそれぞれは辞書であってもよい。辞書には、キーwebsites及びwebsitesに対応する値により構成されたキー値ペアと、キーclicknum及びclicknumに対応する値により構成されたキー値ペアとを含む。
1番目の要素には、キー値ペアwebsites−alibaba.com、baidu.com、tencent.com、及びキー値ペアclicknum−1を含む。
2番目の要素には、キー値ペアwebsites−baidu.com、tencent.com、及びキー値ペアclicknum−2を含む。
3番目の要素には、キー値ペアwebsites−alibaba.com、tencent.com、及びキー値ペアclicknum−3を含む。
4番目の要素には、キー値ペアwebsites−alibaba.com、baidu.com、及びキー値ペアclicknum−2を含む。
5番目の要素には、キー値ペアwebsites−alibaba.com、jd.com、及びキー値ペアclicknum−1を含む。
ステップ203において、演算子により入力パラメータに基づいて分散コンピューティングする。
本実施例において、ステップ202を介して演算子の入力パラメータを作成した後、演算子により入力パラメータSchemaPCollection及びフィールドに基づいて分散コンピューティングすることができる。
本実施例において、1つのapply糖衣構文を提供することができ、apply糖衣構文の意味は、次の通りである。
.apply(f、* args)は、f(pcollection、* args)に等価する。
本実施例のいくつかの代替的な実施形態において、フィールド型分散データセット中の各要素のうち、異なるキーを持つキー値ペアを組み合わせて、各要素にキーの異なるキー値ペアを含んでいるフィールド型分散データセットを取得するステップをさらに含む。
本実施例において、フィールド型分散データセット中の各要素のうち、異なるキーを持つキー値ペアを組み合わせて、各要素にキーの異なるキー値ペアを含んでいるフィールド型分散データセットを取得する。
分散コンピューティングタスクに必要なデータがウェブサイトのクリックレートデータである場合を例として、各データは、複数のウェブサイトとクリックレートとの両方を含む。分散コンピューティングタスクに必要なデータは、PCollectionであってもよい。ウェブサイトフィールドとクリックレートフィールドに基づいて、分散コンピューティングタスクに必要なデータに対応するSchemaPCollectionを生成することができる。分散コンピューティングタスクに必要なデータに対応するSchemaPCollection中の各要素は、いずれも1つの辞書であってもよく、該辞書は複数のキー値ペアを含み、キーは、ウェブサイト集合やクリックレートであってもよい。キーとなるウェブサイト集合に対応する値は、複数のウェブサイトであり、キーとなるクリックレートに対応する値は、クリックレートデータである。
例えば、SchemaPCollection中の要素は、キーwebsite及びキーwebsiteに対応する値により構成されたキー値ペアと、キーclicknum及びキーclicknumに対応する値により構成されたキー値ペアとを含む。
1番目の要素は、キー値ペアwebsite−alibaba.com、キー値ペアwebsite−baidu.com、キー値ペアwebsite−tencent.com、キー値ペアclicknum−1である。
2番目の要素は、キー値ペアwebsite−baidu.com、キー値ペアwebsite−tencent.com、キー値ペアclicknum−2である。
3番目の要素は、キー値ペアwebsite−alibaba.com、キー値ペアwebsite−tencent.com、キー値ペアclicknum−3である。
4番目の要素は、キー値ペアwebsite−alibaba.com、キー値ペアwebsite−baidu.com、キー値ペアclicknum−2である。
5番目の要素は、キー値ペアwebsite−alibaba.com、キー値ペアwebsite−jd.com、キー値ペアclicknum−1である。
各要素のそれぞれにおけるキーwebsiteに対応するキー値ペアとキーclicknumに対応するキー値ペアとを組み合わせて、各要素のそれぞれに1つのwebsiteに対応するキー値ペアと1つのキーclicknumに対応するキー値ペアとを含んでいるSchemaPCollectionを取得することができる。
各要素のそれぞれにおけるキーwebsiteに対応するキー値ペアとキーclicknumに対応するキー値ペアとを組み合わせた後、SchemaPCollectionにおいて、1番目の要素は、キー値ペアwebsite−alibaba.com及びキー値ペアclicknum−1である。
2番目の要素は、キー値ペアwebsite−baidu.com及びキー値ペアclicknum−1である。
3番目の要素は、キー値ペアwebsite−tencent.com及びキー値ペアclicknum−1である。
4番目の要素は、キー値ペアwebsite−baidu.com及びキー値ペアclicknum−2である。
5番目の要素は、キー値ペアwebsite−tencent.com、及びキー値ペアclicknum−2である。
6番目の要素は、キー値ペアwebsite−alibaba.com及びキー値ペアclicknum−3である。
7番目の要素は、キー値ペアwebsite−tencent.com及びキー値ペアclicknum−3である。
8番目の要素は、キー値ペアwebsite−alibaba.com、及びキー値ペアclicknum−2である。
9番目の要素は、キー値ペアwebsite−baidu.com及びキー値ペアclicknum−2である。
10番目の要素は、キー値ペアwebsite−alibaba.com及びキー値ペアclicknum−1である。
11番目の要素は、キー値ペアwebsite−jd.com及びキー値ペアclicknum−1である。
本実施例のいくつかの代替的な実施形態において、フィールド型分散データセットにおける要素中のグループ化フィールドの示すキーに対応する値に基づいて、フィールド型分散データセットにおける要素をグループ化し、複数のグループ化されたフィールド型分散データセットを取得するステップであって、各グループ化フィールドの示すキーに対応する値は、1つのグループ化されたフィールド型分散データセットに対応し、グループ化されたフィールド型分散データセットは、グループ化フィールドの示すキーに対応する値を含む少なくとも1つの要素を含む、ステップをさらに含む。
例えば、SchemaPCollectionにおいて、1番目の要素は、キー値ペアwebsite−alibaba.com及びキー値ペアclicknum−1である。
2番目の要素は、キー値ペアwebsite−baidu.com及びキー値ペアclicknum−1である。
3番目の要素は、キー値ペアwebsite−tencent.com及びキー値ペアclicknum−1である。
4番目の要素は、キー値ペアwebsite−baidu.com及びキー値ペアclicknum−2である。
5番目の要素は、キー値ペアwebsite−tencent.com、及びキー値ペアclicknum−2である。
6番目の要素は、キー値ペアwebsite−alibaba.com及びキー値ペアclicknum−3である。
7番目の要素は、キー値ペアwebsite−tencent.com及びキー値ペアclicknum−3である。
8番目の要素は、キー値ペアwebsite−alibaba.com、及びキー値ペアclicknum−2である。
9番目の要素は、キー値ペアwebsite−baidu.com及びキー値ペアclicknum−2である。
10番目の要素は、キー値ペアwebsite−alibaba.com及びキー値ペアclicknum−1である。
11番目の要素は、キー値ペアwebsite−jd.com及びキー値ペアclicknum−1である。
グループ化フィールドwebsiteに基づいて、要素の中にwebsiteの示すキーwebsiteに対応する値にしたがって、SchemaPCollection中の要素をグループ化し、複数のグループ化されたSchemaPCollectionを取得することができる。各グループ化フィールドの示すキーwebsiteに対応する値は、1つのグループ化SchemaPCollectionに対応し、グループ化されたSchemaPCollectionは、グループ化フィールドの示すキーwebsiteに対応する値を含む少なくとも1つの要素を含む。
SchemaPCollectionにおけるキーwebsiteに対応する値が同じである要素を集約して、キーwebsiteに対応する値が同じである複数のキー値ペアを含むグループ化SchemaPCollectionを取得することができる。
第一のグループ化SchemaPCollectionには、キー値ペアwebsite−baidu.com及びキー値ペアclicknum−1、キー値ペアwebsite−baidu.com及びキー値ペアclicknum−2、キー値ペアwebsite−baidu.com及びキー値ペアclicknum−2を含む。
第二のグループ化SchemaPCollectionには、キー値ペアwebsite−tencent.com及びキー値ペアclicknum−1、キー値ペアwebsite−tencent.com及びキー値ペアclicknum−2、キー値ペアwebsite−tencent.com及びキー値ペアclicknum−3を含む。
第三のグループ化SchemaPCollectionには、キー値ペアwebsite−alibaba.com及びキー値ペアclicknum−1、キー値ペアwebsite−alibaba.com及びキー値ペアclicknum−3、キー値ペアwebsite−alibaba.com及びキー値ペアclicknum−2、キー値ペアwebsite−alibaba.com及びキー値ペアclicknum−1を含む。
第四のグループ化SchemaPCollectionには、キー値ペアwebsite−jd.com及びキー値ペアclicknum−1を含む。
本実施例のいくつかの代替的な実施形態において、トラバーサルフィールドに基づいて、フィールド型分散データセットにおける全ての要素の中にトラバーサルフィールドの示すキーに対応する値に対して操作するステップをさらに含む。
グループ化フィールドwebsiteに基づいて、要素の中にwebsiteの示すキーwebsiteに対応する値にしたがってSchemaPCollection中の要素をグループ化して、複数のグループ化されたSchemaPCollectionを取得する場合を例として、第一のグループ化SchemaPCollectionには、キー値ペアwebsite−baidu.com及びキー値ペアclicknum−1、キー値ペアwebsite−baidu.com及びキー値ペアclicknum−2、キー値ペアwebsite−baidu.com及びキー値ペアclicknum−2を含む。
第二のグループ化SchemaPCollectionには、キー値ペアwebsite−tencent.com及びキー値ペアclicknum−1、キー値ペアwebsite−tencent.com及びキー値ペアclicknum−2、キー値ペアwebsite−tencent.com及びキー値ペアclicknum−3を含む。
第三のグループ化SchemaPCollectionには、キー値ペアwebsite−alibaba.com及びキー値ペアclicknum−1、キー値ペアwebsite−alibaba.com及びキー値ペアclicknum−3、キー値ペアwebsite−alibaba.com及びキー値ペアclicknum−2、キー値ペアwebsite−alibaba.com及びキー値ペアclicknum−1を含む。
第四のグループ化SchemaPCollectionには、キー値ペアwebsite−jd.com及びキー値ペアclicknum−1を含む。
トラバーサルフィールドclicknumに基づいて、各グループ化SchemaPCollectionにおける全ての要素の中にキーclicknumに対応する値に対してmax、sum、countの操作をそれぞれ実行することにより、baidu.com、tencent.com、alibaba.com、jd.comのクリックレートの最大値、クリックレートの合計、及びクリックレートの平均値をそれぞれ算出することができる。
本実施例のいくつかの代替的な実施形態において、フィールド型分散データセットにおける全ての要素の中にトラバーサルフィールドの示すキーに対応する値に対して操作して得られた結果を集約するステップをさらに含む。
グループ化されたSchemaPCollectionを例として、それぞれのグループ化されたSchemaPCollectionにおける全ての要素の中にキーclicknumに対応する値に対してmax、sum、countの操作を実行して得られたbaidu.com、tencent.com、alibaba.com、jd.comのクリックレートの最大値、クリックレートの合計、及びクリックレートの平均値を集約することができる。出力結果は、次のような形で表現することができる。
[{ ‘sum_click_num’:7、‘website’: ‘alibaba.com’、 ‘avg_click_num’:1、‘ max_click_num ’:3}、
{ ‘sum_click_num’:6、‘website’: ‘tencent.com’、 ‘avg_click_num’:2、‘max_click_num’:3}、
{ ‘sum_click_num’:5、‘website’: ‘baidu.com’、 ‘avg_click_num’:1、‘ max_click_num ’:2}、
{ ‘sum_click_num’:1、‘ website ’:‘ jd.com ’、‘ avg_click_num’:1、 ‘max_click_num’:1}]。
本発明において、任意の演算子により受信され返信されたパラメータのタイプは、いずれもフィールド型分散データセットであって、任意の演算子は、いずれも、フィールド型分散データセットの中にフィールドに対応するデータに対して操作することができる。これにより、任意の演算子は、いずれも一回の実現を行って演算子の再利用が可能になる。分散コンピューティングタスクをより簡単な表現式で明らかに表現することにより、ユーザが分散コンピューティングフレームワークを利用して分散コンピューティングプログラムを作成する複雑さを簡素化し、さらに、表現式によって分散コンピューティングに関連する演算子を決定することで、分散コンピューティングプロセスを最適化することができる。
以下、図3を参照して説明する。図3は、本発明の実施例に係る分散コンピューティングフレームワークを実現するのに適するコンピュータシステム300の構成の模式図を示す。
図3に示すように、コンピュータシステム300は、読み出し専用メモリ(ROM)302に格納されたプログラム、又は記憶部308からランダムアクセスメモリ(RAM)303に取り込まれたプログラムにより各種適宜な動作及び処理を実行することができる中央処理装置(CPU)301を具備する。RAM303において、システム300の動作に必要な各種のプログラム及びデータが格納されている。CPU301と、ROM302と、RAM303とは、バス304を介して互いに接続されている。入力/出力(I/O)インターフェース305もバス304に接続されている。
キーボード、マウスなどを含む入力部306と、陰極線管(CRT)、液晶表示装置(LCD)などとスピーカーなどを含む出力部307と、ハードドライブなどを含む記憶部308と、LANカード、モデムなどのネットワークインターフェースカードを含む通信部309のような部品は、I/Oインターフェース305に接続されている。通信部309は、インターネットなどのネットワークを介して通信処理する。ドライブ310も必要に応じて、I/Oインターフェース305に接続される。磁気ディスク、光ディスク、磁気光ディスク、半導体メモリなどのようなリムーバブルメディア311は、必要に応じて、読み取得したコンピュータプログラムを必要に応じて記憶部308にインストールできるように、ドライブ310に取り付けられる。
特に、本発明に係る実施例によれば、以上のフローチャートを参照しながら記載したプロセスは、コンピュータソフトウェアプログラムとして実現することができる。例えば、本発明の実施例は、コンピュータ可読媒体に有形に具現化されるコンピュータプログラムを含むコンピュータプログラムを含み、当該コンピュータプログラムは、フローチャートに示された方法を実行するためのプログラムコードを含む。このような実施例において、当該コンピュータプログラムは、通信部309を介してネットワークからダウンロードされてインストールされてもよく、及び/又はリムーバブルメディア311からインストールされてもよい。
図面におけるフローチャート及びブロック図は、本発明の各種実施例によるシステム、方法及びコンピュータプログラムが実現可能なシステムアーキテクチャー、機能及び操作を図示する。この点から、フローチャート又はブロック図におけるそれぞれのブロックは、1つのモジュール、プログラムブロック、又はコードの一部を示すことができ、当該モジュール、プログラムブロック、又はコードの一部は、1つ又は複数の所定のロジカル機能を実現するための実行可能な命令を含む。なお、複数の代わりになる実現において、ブロックに表示された機能は、図面に表示された順番と異なる順番で発生させることができる。例えば、2つの直列的に接続されると示されたブロックは、実際には、基本的に並行して実行することができ、機能によっては、逆の順番で実行することも可能である。なお、ブロック図及び/又はフローチャートにおけるそれぞれのブロックと、ブロック図及び/又はフローチャートにおけるブロックの組み合わせは、所定の機能又は操作するための専用のハードウェアに基づくシステムによって実現することができ、あるいは、専用ハードウェアとコンピュータ命令の組み合わせによって実現することができる。
他の態様として、本発明は、不揮発性コンピュータ記憶媒体をさらに提供し、該不揮発性コンピュータ記憶媒体は、上記実施例に記載された機器に含まれる不揮発性コンピュータ記憶媒体であってもよく、独立で存在して端末に組み立てられていない不揮発性コンピュータ記憶媒体であってもよい。上記不揮発性コンピュータ記憶媒体は、1つ又は複数のプログラムが記憶されている。上記1つ又は複数のプログラムが1つの機器によって実行される場合、上記機器は、分散コンピューティングタスクの表現式を解析して、演算子と上記演算子に対応するフィールドとを決定するステップであって、上記フィールドは、演算子により作用される分散データセットにおけるデータの属性を示す、ステップと、上記演算子の入力パラメータを生成するステップであって、演算子の入力パラメータは、フィールドとフィールド型分散データセットとを含み、上記フィールド型分散データセットは、少なくとも1つの要素を含み、上記要素は複数のキー値ペアを含み、キー値ペアのキーは、フィールドであり、値は、分散データセット中に上記フィールドに対応するデータである、ステップと、上記演算子により上記入力パラメータに基づいて分散コンピューティングするステップと、を実行するようになっている。
以上の記載は、本発明の好ましい実施例、及び使われている技術的原理の説明に過ぎない。当業者は、本発明に係る保護範囲が、上記の技術的特徴による特定の組合せからなる技術案に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、上記技術的特徴又は均等の特徴の任意の組合せからなる他の技術案も含まれることを理解している。例えば、上記特徴と、本発明に開示された類似の機能を持っている技術的特徴(これらに限定されていない)とを互いに置き換えてなる技術案も含まれる。

Claims (14)

  1. 分散コンピューティングフレームワークであって、
    分散コンピューティングタスクの表現式を解析して、演算子と、前記演算子に対応するフィールドとを決定するための解析ユニットであって、前記フィールドは、演算子により作用される分散データセットにおけるデータの属性を示すためのものである、解析ユニットと、
    演算子を提供するための演算子ユニットであって、前記演算子の入力パラメータは、フィールドとフィールド型分散データセットとを含み、前記フィールド型分散データセットは、少なくとも1つの要素を含み、前記要素は、複数のキー値ペアを含み、前記キー値ペアのキーはフィールドであり、前記キー値ペアの値は分散データセット中に前記フィールドに対応するデータである、演算子ユニットと、を含むことを特徴とする分散コンピューティングフレームワーク。
  2. 請求項1に記載の分散コンピューティングフレームワークであって、
    前記演算子ユニットは、
    フィールドに基づいて、分散コンピューティングタスクに必要なデータに対応する分散データセットを、フィールド型分散データセットに変換するためのフィールド型分散データセット生成演算子であって、前記フィールド型分散データセットにおける要素は複数のキー値ペアを含み、各キー値ペアのキーは1つのフィールドであり、各キー値ペアの値は分散データセット中に前記フィールドに対応するデータである、フィールド型分散データセット生成演算子を含むことを特徴とする分散コンピューティングフレームワーク。
  3. 請求項2に記載の分散コンピューティングフレームワークであって、
    前記演算子ユニットは、
    フィールド型分散データセット中の各要素のうち、異なるキーを持つキー値ペアを組み合わせて、各要素にキーの異なるキー値ペアを含んでいるフィールド型分散データセットを取得するための連結演算子を含むことを特徴とする分散コンピューティングフレームワーク。
  4. 請求項3に記載の分散コンピューティングフレームワークであって、
    前記演算子ユニットは、
    フィールド型分散データセットにおける要素中のグループ化フィールドの示すキーに対応する値に基づいて、フィールド型分散データセットにおける要素をグループ化して、複数のグループ化されたフィールド型分散データセットを取得するためのグループ化演算子であって、
    各グループ化フィールドの示すキーに対応する値は、1つのグループ化されたフィールド型分散データセットに対応し、グループ化されたフィールド型分散データセットは、グループ化フィールドの示すキーに対応する値を含む少なくとも1つの要素を含む、グループ化演算子を含むことを特徴とする分散コンピューティングフレームワーク。
  5. 請求項4に記載の分散コンピューティングフレームワークであって、
    前記演算子ユニットは、
    トラバーサルフィールドに基づいて、フィールド型分散データセットにおける全ての要素の中にトラバーサルフィールドの示すキーに対応する値に対して操作するためのトラバーサル演算子を含むことを特徴とする分散コンピューティングフレームワーク。
  6. 請求項5に記載の分散コンピューティングフレームワークであって、
    前記演算子ユニットは、
    フィールド型分散データセットにおける全ての要素の中にトラバーサルフィールドの示すキーに対応する値に対して操作して得られた結果を集約するための集約演算子を含むことを特徴とする分散コンピューティングフレームワーク。
  7. 分散コンピューティング方法であって、
    分散コンピューティングタスクの表現式を解析して、演算子と、前記演算子に対応するフィールドとを決定するステップであって、前記フィールドは、演算子により作用される分散データセットにおけるデータの属性を示すためのものである、ステップと、
    前記演算子の入力パラメータを生成するステップであって、前記演算子の入力パラメータは、フィールドとフィールド型分散データセットとを含み、前記フィールド型分散データセットは、少なくとも1つの要素を含み、前記要素は、複数のキー値ペアを含み、キー値ペアのキーはフィールドであり、キー値ペアの値は分散データセット中に前記フィールドに対応するデータである、ステップと、
    前記演算子により前記入力パラメータに基づいて分散コンピューティングするステップとを含むことを特徴とする分散コンピューティング方法。
  8. 請求項7に記載の分散コンピューティング方法であって、
    フィールドに基づいて、分散コンピューティングタスクに必要なデータに対応する分散データセットを、フィールド型分散データセットに変換するステップであって、前記フィールド型分散データセットにおける要素は複数のキー値ペアを含み、各キー値ペアのキーは1つのフィールドであり、各キー値ペアの値は分散データセット中に前記フィールドに対応するデータである、ステップをさらに含むことを特徴とする分散コンピューティング方法。
  9. 請求項8に記載の分散コンピューティング方法であって、
    フィールド型分散データセット中の各要素のうち、異なるキーを持つキー値ペアを組み合わせて、各要素にキーの異なるキー値ペアを含んでいるフィールド型分散データセットを取得するステップをさらに含むことを特徴とする分散コンピューティング方法。
  10. 請求項9に記載の分散コンピューティング方法であって、
    フィールド型分散データセットにおける要素中のグループ化フィールドの示すキーに対応する値に基づいて、フィールド型分散データセットにおける要素をグループ化して、複数のグループ化されたフィールド型分散データセットを取得するステップであって、各グループ化フィールドの示すキーに対応する値は、1つのグループ化されたフィールド型分散データセットに対応し、グループ化されたフィールド型分散データセットは、グループ化フィールドの示すキーに対応する値を含む少なくとも1つの要素を含む、ステップをさらに含むことを特徴とする分散コンピューティング方法。
  11. 請求項10に記載の分散コンピューティング方法であって、
    トラバーサルフィールドに基づいて、フィールド型分散データセットにおける全ての要素の中にトラバーサルフィールドの示すキーに対応する値に対して操作するステップをさらに含むことを特徴とする分散コンピューティング方法。
  12. 請求項11に記載の分散コンピューティング方法であって、
    フィールド型分散データセットにおける全ての要素の中にトラバーサルフィールドの示すキーに対応する値に対して操作して得られた結果を集約するステップをさらに含むことを特徴とする分散コンピューティング方法。
  13. プロセッサと、メモリを備える機器であって、
    前記プロセッサによって実行可能なコンピュータ可読命令が前記メモリに記憶され、前記コンピュータ可読命令が実行される場合、前記プロセッサは分散コンピューティング方法を実行し、前記方法は、
    分散コンピューティングタスクの表現式を解析して、演算子と、前記演算子に対応するフィールドとを決定するステップであって、前記フィールドは、演算子により作用される分散データセットにおけるデータの属性を示すためのものである、ステップと、
    前記演算子の入力パラメータを生成するステップであって、前記演算子の入力パラメータは、フィールドとフィールド型分散データセットとを含み、前記フィールド型分散データセットは、少なくとも1つの要素を含み、前記要素は、複数のキー値ペアを含み、キー値ペアのキーはフィールドであり、キー値ペアの値は分散データセット中に前記フィールドに対応するデータである、ステップと、
    前記演算子により前記入力パラメータに基づいて分散コンピューティングするステップとを含む、機器。
  14. プロセッサによって実行可能なコンピュータ可読命令が記憶されている不揮発性コンピュータ記憶媒体であって、
    前記コンピュータ可読命令が前記プロセッサによって実行される場合、前記プロセッサは分散コンピューティング方法を実行し、前記方法は、
    分散コンピューティングタスクの表現式を解析して、演算子と、前記演算子に対応するフィールドとを決定するステップであって、前記フィールドは、演算子により作用される分散データセットにおけるデータの属性を示すためのものである、ステップと、
    前記演算子の入力パラメータを生成するステップであって、前記演算子の入力パラメータは、フィールドとフィールド型分散データセットとを含み、前記フィールド型分散データセットは、少なくとも1つの要素を含み、前記要素は、複数のキー値ペアを含み、キー値ペアのキーはフィールドであり、キー値ペアの値は分散データセット中に前記フィールドに対応するデータである、ステップと、
    前記演算子により前記入力パラメータに基づいて分散コンピューティングするステップとを含む、不揮発性コンピュータ記憶媒体。
JP2019505244A 2016-09-21 2016-10-14 分散コンピューティングフレームワーク及び分散コンピューティング方法(distributed computing framework and distributed computing method) Active JP6781820B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201610836654.7A CN106406985B (zh) 2016-09-21 2016-09-21 分布式计算框架和分布式计算方法
CN201610836654.7 2016-09-21
PCT/CN2016/102122 WO2018053889A1 (zh) 2016-09-21 2016-10-14 分布式计算框架和分布式计算方法

Publications (2)

Publication Number Publication Date
JP2019527441A true JP2019527441A (ja) 2019-09-26
JP6781820B2 JP6781820B2 (ja) 2020-11-04

Family

ID=57997066

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019505244A Active JP6781820B2 (ja) 2016-09-21 2016-10-14 分散コンピューティングフレームワーク及び分散コンピューティング方法(distributed computing framework and distributed computing method)

Country Status (6)

Country Link
US (1) US11132363B2 (ja)
EP (1) EP3480693A4 (ja)
JP (1) JP6781820B2 (ja)
KR (1) KR102172138B1 (ja)
CN (1) CN106406985B (ja)
WO (1) WO2018053889A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106445645B (zh) 2016-09-06 2019-11-26 北京百度网讯科技有限公司 用于执行分布式计算任务的方法和装置
CN109726822B (zh) * 2018-12-14 2020-10-09 中科寒武纪科技股份有限公司 运算方法、装置及相关产品
CN112783924A (zh) * 2019-11-07 2021-05-11 北京沃东天骏信息技术有限公司 一种脏数据识别方法、装置和系统
CN115906983B (zh) * 2022-11-23 2024-01-02 北京百度网讯科技有限公司 分布式模型训练方法、装置、设备、存储介质及程序产品

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102799622A (zh) * 2012-06-19 2012-11-28 北京大学 基于MapReduce扩展框架的分布式SQL查询方法
US20140172898A1 (en) * 2012-12-13 2014-06-19 Microsoft Corporation Distributed sql query processing using key-value storage system
JP2014194769A (ja) * 2013-03-13 2014-10-09 Cloudera Inc Apachehadoop用の低レイテンシクエリエンジン
JP2015072688A (ja) * 2013-10-01 2015-04-16 クラウデラ インコーポレイテッド Hadoopにおける強化されたSQLライクなクエリのためのバックグラウンドフォーマット最適化

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7418715B2 (en) * 2005-04-08 2008-08-26 Microsoft Corporation System and method for producing and communicating requested data among networked application programs
CN102915229B (zh) * 2011-08-02 2016-05-04 深圳市世纪光速信息技术有限公司 一种分布式计算方法及系统
EP2786276A1 (en) * 2011-11-30 2014-10-08 DeCarta Inc. Systems and methods for performing geo-search and retrieval of electronic point-of-interest records using a big index
CN103502940B (zh) * 2011-12-21 2017-12-12 华为技术有限公司 一种分布式系统中处理事务的方法、相关设备及系统
US9910894B2 (en) * 2012-07-16 2018-03-06 Microsoft Technology Licensing, Llc Data scope origination within aggregation operations
CN103593721B (zh) * 2012-08-13 2016-10-05 中国商用飞机有限责任公司 基于复杂事件处理的业务流程监控方法
US9229979B2 (en) 2012-12-11 2016-01-05 Microsoft Technology Licensing, Llc Optimizing parallel queries using interesting distributions
CN103902592B (zh) * 2012-12-27 2018-02-27 深圳市腾讯计算机系统有限公司 基于MapReduce实现分析函数的方法及系统
CN103399887A (zh) * 2013-07-19 2013-11-20 蓝盾信息安全技术股份有限公司 一种海量日志的查询与统计分析系统
CN103399927B (zh) * 2013-08-05 2016-11-02 百度在线网络技术(北京)有限公司 分布式计算方法和装置
CN103425779A (zh) * 2013-08-19 2013-12-04 曙光信息产业股份有限公司 数据的处理方法和装置
CN104239532A (zh) * 2014-09-19 2014-12-24 浪潮(北京)电子信息产业有限公司 Hive中自制用户提取信息工具的方法和装置
CN105786808B (zh) * 2014-12-15 2019-06-18 阿里巴巴集团控股有限公司 一种用于分布式执行关系型计算指令的方法与设备
US20160371355A1 (en) * 2015-06-19 2016-12-22 Nuodb, Inc. Techniques for resource description framework modeling within distributed database systems
US10108547B2 (en) * 2016-01-06 2018-10-23 Netapp, Inc. High performance and memory efficient metadata caching

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102799622A (zh) * 2012-06-19 2012-11-28 北京大学 基于MapReduce扩展框架的分布式SQL查询方法
US20140172898A1 (en) * 2012-12-13 2014-06-19 Microsoft Corporation Distributed sql query processing using key-value storage system
JP2014194769A (ja) * 2013-03-13 2014-10-09 Cloudera Inc Apachehadoop用の低レイテンシクエリエンジン
JP2015072688A (ja) * 2013-10-01 2015-04-16 クラウデラ インコーポレイテッド Hadoopにおける強化されたSQLライクなクエリのためのバックグラウンドフォーマット最適化

Also Published As

Publication number Publication date
WO2018053889A1 (zh) 2018-03-29
JP6781820B2 (ja) 2020-11-04
KR102172138B1 (ko) 2020-10-30
EP3480693A4 (en) 2019-07-10
US11132363B2 (en) 2021-09-28
CN106406985A (zh) 2017-02-15
EP3480693A1 (en) 2019-05-08
CN106406985B (zh) 2019-10-11
US20190213188A1 (en) 2019-07-11
KR20190020801A (ko) 2019-03-04

Similar Documents

Publication Publication Date Title
US8898145B2 (en) Query optimization techniques for business intelligence systems
US7711704B2 (en) System and method of providing date, arithmetic and other relational functions for OLAP sources
JP2021527878A (ja) 正規表現コード上で最長共通サブシーケンスアルゴリズムを用いた正規表現生成
US20150227839A1 (en) Systems and methods for semantic inference and reasoning
US20110218978A1 (en) Operating on time sequences of data
US11132363B2 (en) Distributed computing framework and distributed computing method
US20150331918A1 (en) Business Intelligence Document
US8417690B2 (en) Automatically avoiding unconstrained cartesian product joins
US20060294069A1 (en) Sorting and filtering in an interactive report
CN112765282B (zh) 一种数据联机分析处理方法、装置、设备及存储介质
US11379499B2 (en) Method and apparatus for executing distributed computing task
US9910894B2 (en) Data scope origination within aggregation operations
CN111198898A (zh) 大数据查询方法及大数据查询装置
WO2023097521A1 (zh) 数据模型生成的方法和装置
US20140379691A1 (en) Database query processing with reduce function configuration
US10990612B2 (en) Metric-centric transformations of multidimensional database data
WO2023185377A1 (zh) 一种多粒度数据模式挖掘方法及相关设备
CN114090627B (zh) 一种数据查询方法及装置
CN114237712B (zh) 指令执行方法、装置、电子设备及计算机存储介质
Liu et al. PolySem: Efficient Polyglot Analytics on Semantic Data
CN116028519A (zh) 一种数据筛选方法、装置、电子设备及可读存储介质
CN114996276A (zh) Olap预计算模型建模方法、数据查询方法、装置及存储介质
KR20200048301A (ko) 테이블 처리 방법 및 장치
Trakhtenbrot Equivalent transformations for invariant parallel functions
CA2545108A1 (en) System and method of providing date, arithmetic and other relational functions for olap sources

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190131

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190131

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200212

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201001

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201016

R150 Certificate of patent or registration of utility model

Ref document number: 6781820

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250