JP6516110B2 - SQL−on−Hadoopシステムにおける複数クエリ最適化 - Google Patents
SQL−on−Hadoopシステムにおける複数クエリ最適化 Download PDFInfo
- Publication number
- JP6516110B2 JP6516110B2 JP2017527675A JP2017527675A JP6516110B2 JP 6516110 B2 JP6516110 B2 JP 6516110B2 JP 2017527675 A JP2017527675 A JP 2017527675A JP 2017527675 A JP2017527675 A JP 2017527675A JP 6516110 B2 JP6516110 B2 JP 6516110B2
- Authority
- JP
- Japan
- Prior art keywords
- map
- query
- jobs
- query plan
- reduce
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24542—Plan optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Operations Research (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
A.マップリデュースフレームワークにおける機会共有
複数のマップリデュースジョブの中には、冗長な計算を回避することができる多くの機会共有が存在する。本明細書において開示した方法は、次の3種類の共有、すなわち、スキャン共有、マップ出力共有及びマップ関数共有を特定する。そのような機会共有は、他の研究においても利用されている。次に、これらの機会共有を手短に紹介する。
上述したように、SQL−on−Hadoopシステムは、クエリを、マップリデュースジョブのDAGとして表されたクエリプランに変換し、各マップ関数は、実際には、関係演算子のシーケンスからなるクエリプランの一部分である。マップ関数は通常、複雑で重いので、複数のMRジョブの間でそれらのマップ関数を共有することが必要である。幾つかのMRジョブが単一のジョブにマージされた場合、マージされたマップ関数の統合クエリプランが生成される。本発明者らの知る限り、SQL−on−Hadoopシステムのマップ関数におけるフィルター演算子、グループ化(group-by)演算子及び場合によってはマップ結合(map-join)演算子等のほとんどの演算子は通常、最終結果を変更することなく互いに交換することができる。この特徴によって、多数の統合クエリプランを生成することができる。このため、最も多くの利益を取得するための最良のものをどのように選ぶのかが問題となる。
A.問題定義
SQL−on−Hadoopにおいて複数のMRジョブを最適化する問題は、一般のマップリデュースフレームワークにおける問題と異なる。1つの主な理由は、SQL−on−Hadoopにおけるマップ関数が、関係演算子のシーケンスからなるクエリの全体のクエリプランの一部分であり、それらの順序のうちの幾つかは交換することができるからである。このため、複数のクエリプランを統合することによって新たなクエリプランの多くの候補が存在する。この特性を考慮に入れると、上記問題は以下のように定義される。
各マップ関数が、関係演算子のDAG{D1、D2,...,Dn}であるクエリプランの一部分であるマップリデュースジョブの集合{J1,J2,...,Jn}が与えられた場合に、それらのジョブを、全てのジョブの全体の計算時間を最小にする最適な実行プラン{D’1、D’2,...,D’S}を有するS個のグループ
この問題を解くには、どのジョブのグループが、ジョブを個別に処理するよりも全体の計算時間に最も多くの利益をもたらすことができるのかを知っている必要がある。このため、入力データ及び中間データの双方を読み出し/書き込むI/Oコストと、マップ関数を実行するCPUコストとの双方を考慮して全体の計算時間を推定するコストモデルが構築される。各シンボルの定義は、図3に示されている。
A.最適なクエリプランの発見的アルゴリズム
コストモデルから、グループ化技術を用いた全体の処理時間を得るには、最適な統合クエリプランの計算時間を知ることが必要であることが分かる。最適な統合クエリプランを探求する問題は、以下のように定義される。
m個の統合クエリプランD’={D’1,...,D’m}を生成するn個のクエリプランD={D1,...,Dn}が与えられた場合に、全てのプランの総計算時間を削減する最適なクエリプランDopt∈D’を見つけよ。
・ルール1:複数のクエリプランの間に共通の演算子がない場合には、それらのクエリプランを単純にマージすることによって、統合クエリプランが生成される。ここで、共通の演算子とは、プランの間で共有することができる演算子、すなわち、その出力を複数のプランによって用いることができる演算子を意味する。
・ルール2:複数の共通の演算子がある場合、それらの演算子間の順序を維持しつつ、それらの演算子のサブセット又は全てを共有することによって、統合クエリプランが生成される。
準最適なクエリプランが生成された後、次のステップは、MRジョブをグループ化することである。最適なグループを見つける処理時間を削減するために、貪欲アルゴリズムが採用され、このアルゴリズムも準最適解のみを見つけることができる。本アルゴリズムは図6に記載されている。入力はn個のマップリデュースジョブJ={J1,...,Jn}であり、出力はジョブのグループGopt={G1,...,GS}である。本アルゴリズムは、以下のように動作する。
ステップ−1:各ジョブを単一のグループGopt={G1、G2,...,Gn}として開始し;
ステップ−2:グループの各ペアの利得TGiGj=TGi+TGj−TGi∪Gjを計算し、ここで、Gi,Gj∈Goptであり;
TGiGjを計算するために、統合クエリプランが、上記で説明したアルゴリズムに基づいて生成され;
ステップ−3:最大利得Tmax_gainを生成するグループのペアG’=Gi∪Gjを見つけ;
ステップ−4:G’をGopt内に追加し、GoptからGi及びGjを削除し;
ステップ−5:Tmax_gain<0になるまで、ステップ−2からステップ−4を繰り返し;
ステップ−6:Goptを返す。
複数のクエリをグループ化する例が図7に示されている。チャーン分析からの特徴生成のための3つのクエリがある。各クエリは、異なる述語を有する表cdrへの集約を実行する。1つの共通の述語は、友人(friend)が削除された(eliminated)表に存在しないということである。この述語は、マップ結合演算によって実行することができる。なぜならば、削除された表は、非常に小さく、この表を全てのマップに分配する方が効率的であるからである。このため、各クエリは、マップ関数が、全ての述語を有するフィルター演算子と、「NOT EXISTS(存在しない)」計算のマップ結合演算子と、部分的なグループ化(group by)演算子とから逐次的に構成されるMRジョブに変換される。
本発明者らの方法を有するSQL−on−Hadoopシステムのアーキテクチャが図8に示されている。クエリのバッチがシステムに発行され、マルチクエリ受信機81によってキャッシュされる。SQLパーサー82が、マルチクエリ受信機81とクエリプランナー83との間に接続されている。次に、クエリは、クエリプランナー83と、既存のシステムからのクエリオプティマイザー84とによって複数のMRジョブのDAGに変換及び最適化される。全てのクエリが変換及び最適化された後、それらのクエリからの全てのMRジョブは、複数クエリオプティマイザー85に送信される。この複数クエリオプティマイザーは、まず、本発明者らのモデルに基づいて、マップリデュースジョブグループ化86によってそれらのMRジョブをグループに分割し、次に、マルチクエリプランジェネレーター87によってクエリプランを再生成する。本発明者らの複数クエリオプティマイザーが受信したMRジョブは最適化されるので、実際にクエリプランの一部分であるマップ関数は、局所的に最適であるとみなされる。このため、最適なクエリプランを見つけるという本アルゴリズムの本発明者らの前提は正しい。最後に、新たなクエリプランは、クエリ実行器(例えば、Hadoop)88によって実行され、結果はクライアントに返される。
Claims (5)
- SQL−on−Hadoopシステムにおいて複数のマップリデュースジョブをグループ化及びマージすることによって複数のクエリを最適化して全体の計算時間を削減する方法であって、
各マップ関数が関係演算子のDAG(Directed Acyclic Graph)として表されるクエリプランの一部分であることに基づいて、当該SQL−on−Hadoopシステムにおいて複数クエリ最適化の問題として、複数のマップリデュースジョブが与えられた場合に、当該複数のマップリデュースジョブをグループ化して最適なグループを見つけることを、各グループの中で最適な統合クエリプランを見つけながら行うことにより、当該複数のマップリデュースジョブの全体の計算時間を削減する、という問題を設定し、
前記複数クエリ最適化の問題を解くために、グループ化技術を用いて、全てのクエリの前記計算時間を推定するコストモデルを作成して当該SQL−on−Hadoopシステムに登録し、
当該SQL−on−Hadoopシステムにおいて、登録された前記コストモデルを基に、処理時間削減のための貪欲アルゴリズムを用いて、複数のマップリデュースジョブをグループ化して最適なグループを見つけることと、発見的アルゴリズムを用いて複数のマップリデュースジョブを単一のマップリデュースジョブにマージするときに、グループ化された各グループを処理するための複数の統合クエリプランを生成し、生成された統合クエリプランの中から、当該統合クエリプランの処理時間を計算しながら、計算された処理時間を基に最小処理時間を有する準最適な統合クエリプランを見つけること、とを実行して、複数のマップリデュースジョブの前記全体の計算時間の削減を図り、
前記複数のマップリデュースジョブをグループ化する貪欲アルゴリズムの実行は、
各マップリデュースジョブを単一ジョブグループとして開始することと、
最大の利益をもたらす、マージされるマップリデュースジョブのグループのペアを反復的に選択することと、
いずれの2つのグループをマージすることによっても利益がないときは、前記反復的に選択することを停止してグループ化を終了することと、
を含み、
前記準最適な統合クエリプランを見つける発見的アルゴリズムの実行は、
各マップ関数における前記クエリプランが局所的に最適であることに基づいて複数のクエリプランの統合のためのルールを作成することと、
マップ関数の共有のより多くの機会を提供するように、フィルター演算子を独立した演算子に分割し、共通の演算子の順序を交換することによって、各クエリプランを等価なクエリプランに変換することと、
前記統合のためのルールに基づいて、前記変換から取得されたクエリプランをマージすることによって、複数の統合クエリプランの候補を生成することと、
生成された複数の統合クエリプランの中から最小処理時間を有する統合クエリプランの候補を前記準最適な統合クエリプランとして選択することと、
を含む、方法。 - 前記複数クエリ最適化の問題は、各マップ関数が関係演算子のDAGであるマップリデュースジョブの集合が与えられた場合に、それらのマップリデュースジョブを、全てのマップリデュースジョブの全体の計算時間を最小にする最適なクエリプランを有するマップリデュースジョブにグループ化及びマージせよ、と定義される、請求項1に記載の方法。
- 当該SQL−on−Hadoopシステムにおけるマップリデュースジョブの計算の前記コストモデルに基づく前記計算時間の計算として、
入力ファイルを読み出し、マップ関数を実行し、中間データを書き込み外部にソートするコストの加算として、各マップジョブの実行時間を計算することと、
ネットワークを介してマップ出力を転送し、マップ出力を外部にソート/マージし、それらをリデュース関数に読み込むコストの加算として、各リデュースジョブの実行時間を計算することと、
前記マップジョブの前記実行時間と前記リデュースジョブの前記実行時間との加算として各マップリデュースジョブの実行時間を計算することと、
を含む、請求項1に記載の方法。 - 前記マップ関数を実行するコストは、各演算子の入力タプルの数を1つのタプルの処理時間に乗算したものによって推定される前記各演算子のオーバーヘッドを加算したものである、請求項3に記載の方法。
- 当該SQL−on−Hadoopシステムにおける前記複数のクエリプラン-の統合のためのルールは、
複数のクエリプラン間に共通の演算子がない場合には、該複数のクエリプランを単純にマージすることによって統合クエリプランの候補を生成するルール1と、
複数の共通の演算子がある場合には、該複数の共通の演算子間の順序を維持しつつ、共通の演算子のサブセット又は全てを共有することによって統合クエリプランの候補を生成するルール2と、
を含む、請求項1に記載の方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2014/082348 WO2016088281A1 (en) | 2014-12-01 | 2014-12-01 | Multiple query optimization in sql-on- hadoop systems |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017539012A JP2017539012A (ja) | 2017-12-28 |
JP6516110B2 true JP6516110B2 (ja) | 2019-05-22 |
Family
ID=56091252
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017527675A Active JP6516110B2 (ja) | 2014-12-01 | 2014-12-01 | SQL−on−Hadoopシステムにおける複数クエリ最適化 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10572478B2 (ja) |
JP (1) | JP6516110B2 (ja) |
WO (1) | WO2016088281A1 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10025824B2 (en) * | 2015-05-27 | 2018-07-17 | International Business Machines Corporation | Filter optimizer for data streams |
US10073981B2 (en) * | 2015-10-09 | 2018-09-11 | Microsoft Technology Licensing, Llc | Controlling secure processing of confidential data in untrusted devices |
US10339330B2 (en) * | 2015-12-31 | 2019-07-02 | Neustar, Inc. | Data aggregation system for enabling query operations on restricted data that originates from multiple independent multiple sources |
CN107678790B (zh) | 2016-07-29 | 2020-05-08 | 华为技术有限公司 | 流计算方法、装置及系统 |
US11120021B2 (en) * | 2017-01-11 | 2021-09-14 | Facebook, Inc. | Systems and methods for optimizing queries |
CN108874954A (zh) * | 2018-06-04 | 2018-11-23 | 深圳市华傲数据技术有限公司 | 一种数据库查询的优化方法、介质及设备 |
CN109101468B (zh) * | 2018-08-02 | 2020-07-03 | 浙江大学 | 一种文本数据转换脚本的执行优化方法 |
US11416490B2 (en) | 2020-08-03 | 2022-08-16 | International Business Machines Corporation | Prioritization and optimization of database workloads |
CN112347120B (zh) * | 2020-10-27 | 2022-04-01 | 蜂助手股份有限公司 | 一种基于复杂sql的自动优化方法和装置 |
CN112507180B (zh) * | 2020-12-11 | 2022-07-05 | 浙江中控技术股份有限公司 | 模拟机时间的转换方法、装置、电子设备及存储介质 |
US11741101B2 (en) | 2020-12-15 | 2023-08-29 | International Business Machines Corporation | Estimating execution time for batch queries |
CN113792067B (zh) * | 2021-11-16 | 2022-02-11 | 全景智联(武汉)科技有限公司 | 一种基于递归算法的sql自动生成系统与方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8935232B2 (en) * | 2010-06-04 | 2015-01-13 | Yale University | Query execution systems and methods |
US9495427B2 (en) * | 2010-06-04 | 2016-11-15 | Yale University | Processing of data using a database system in communication with a data processing framework |
US9367601B2 (en) * | 2012-03-26 | 2016-06-14 | Duke University | Cost-based optimization of configuration parameters and cluster sizing for hadoop |
JP5936118B2 (ja) | 2012-04-16 | 2016-06-15 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | コード変換方法、プログラム及びシステム |
US8984515B2 (en) * | 2012-05-31 | 2015-03-17 | International Business Machines Corporation | System and method for shared execution of mixed data flows |
US10242052B2 (en) * | 2012-07-24 | 2019-03-26 | Unisys Corporation | Relational database tree engine implementing map-reduce query handling |
US9152469B2 (en) * | 2013-01-28 | 2015-10-06 | Hewlett-Packard Development Company, L.P. | Optimizing execution and resource usage in large scale computing |
US9342557B2 (en) * | 2013-03-13 | 2016-05-17 | Cloudera, Inc. | Low latency query engine for Apache Hadoop |
-
2014
- 2014-12-01 WO PCT/JP2014/082348 patent/WO2016088281A1/en active Application Filing
- 2014-12-01 US US15/523,729 patent/US10572478B2/en active Active
- 2014-12-01 JP JP2017527675A patent/JP6516110B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
WO2016088281A1 (en) | 2016-06-09 |
US20170316055A1 (en) | 2017-11-02 |
JP2017539012A (ja) | 2017-12-28 |
US10572478B2 (en) | 2020-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6516110B2 (ja) | SQL−on−Hadoopシステムにおける複数クエリ最適化 | |
US10521427B2 (en) | Managing data queries | |
US9053210B2 (en) | Graph query processing using plurality of engines | |
Zhang et al. | EAGRE: Towards scalable I/O efficient SPARQL query evaluation on the cloud | |
Turkay et al. | Progressive data science: Potential and challenges | |
CN103761080A (zh) | 一种基于SQL的MapReduce作业生成方法及系统 | |
Zhang et al. | Towards efficient join processing over large RDF graph using mapreduce | |
Zeng et al. | Redesign of the gStore system | |
CN104699698A (zh) | 基于海量数据的图查询处理方法 | |
Iglesias et al. | Scaling up knowledge graph creation to large and heterogeneous data sources | |
Wang et al. | Cleanix: A parallel big data cleaning system | |
CN111814458A (zh) | 规则引擎系统优化方法、装置、计算机设备及存储介质 | |
Hacígümüş et al. | Odyssey: a multistore system for evolutionary analytics | |
Alotaibi et al. | Property graph schema optimization for domain-specific knowledge graphs | |
Ordonez et al. | An er-flow diagram for big data | |
Bala et al. | Extracting-transforming-loading modeling approach for big data analytics | |
Gazzarri et al. | Towards task-based parallelization for entity resolution | |
Leung et al. | A high-performance parallel database architecture | |
Azzam et al. | Towards making distributed rdf processing flinker | |
Chasialis et al. | QFusor: A UDF Optimizer Plugin for SQL Databases | |
Pan et al. | Parallelizing multiple group-by queries using MapReduce: optimization and cost estimation | |
Hagedorn et al. | Conquering a Panda's weaker self-Fighting laziness with laziness. | |
Chen et al. | Query grouping–based multi‐query optimization framework for interactive SQL query engines on Hadoop | |
Liu et al. | An Abstract Description Method of Map‐Reduce‐Merge Using Haskell | |
Lee et al. | Minimization of resource consumption for multidatabase query optimization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180425 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180531 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180829 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20181009 |
|
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: 20190320 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190402 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6516110 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |