JP6673683B2 - 実行時間予測のためのデータベースクエリのクラスタリング - Google Patents

実行時間予測のためのデータベースクエリのクラスタリング Download PDF

Info

Publication number
JP6673683B2
JP6673683B2 JP2015242282A JP2015242282A JP6673683B2 JP 6673683 B2 JP6673683 B2 JP 6673683B2 JP 2015242282 A JP2015242282 A JP 2015242282A JP 2015242282 A JP2015242282 A JP 2015242282A JP 6673683 B2 JP6673683 B2 JP 6673683B2
Authority
JP
Japan
Prior art keywords
query
index
database
clustering
execution time
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
Application number
JP2015242282A
Other languages
English (en)
Other versions
JP2016126770A (ja
JP2016126770A5 (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.)
Dassault Systemes SE
Original Assignee
Dassault Systemes SE
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 Dassault Systemes SE filed Critical Dassault Systemes SE
Publication of JP2016126770A publication Critical patent/JP2016126770A/ja
Publication of JP2016126770A5 publication Critical patent/JP2016126770A5/ja
Application granted granted Critical
Publication of JP6673683B2 publication Critical patent/JP6673683B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/24542Plan optimisation
    • 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
    • G06F16/2272Management thereof
    • 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/24542Plan optimisation
    • G06F16/24545Selectivity estimation or determination
    • 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/24547Optimisations to support specific applications; Extensibility of optimisers
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2321Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
    • G06F18/23213Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Operations Research (AREA)
  • Artificial Intelligence (AREA)
  • Probability & Statistics with Applications (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、特に、データベースエンジニアリングの分野に関し、特に、データベースにおいて基準クエリ(reference queries)をクラスタリングする、コンピュータ実装方法、コンピュータプログラム、およびシステムに関する。
データベースエンジニアリングは、データベース上のクエリに対する異なる種類の最適化を含むことが多く、特に、処理負荷予測を実行することを目的とすることが多い。クエリを実行するのに要する時間は、処理負荷(Workload)もしくは単純に実行時間、またはクエリ実行時間(query runtime)と称される。このことは概して、オプティマイザが最小化する量である(使用されるメモリ空間およびリソースとして他のコストを考慮に入れる必要がある場合でさえ)。クエリに応答するのに必要な時間が、クエリ実行計画(query plan)を算出する時間、およびクエリ実行計画を実行する時間の合計であることに留意することが重要である。一部の技術は、それらの2つの量の間のトレードオフを発見する傾向がある(特許文献1など)。
クエリ実行時間予測の最も重要な適用は、それらの予測を信頼して、大抵は非常に多数の候補から特定の実行計画を選択する、クエリ最適化である。実際の適用では、データベースシステムは、短い時間で(in a few time)多数のクエリに応答する必要があり、すなわち、なぜそれがクエリスケジューリング(非特許文献1の論文で詳述されるように)を実行するかであり、このスケジューリングは、予想されるクエリ実行時間とは異なる基準、クエリを送信したユーザの優先度、対象のタスクの優先度に基づいている。
よって、クエリ実行時間は、クエリをスケジュールするために推定することが必要な1つである主要な情報である。特に、他の重要なクエリの遅延を引き起こすボトルネッククエリを回避することが望まれる。さらに、クエリが所与の制限時間の前に処理されるように、どの程度のリソースをその算出に使用するかを定量化するために、クエリの実行時間を評価することに関心がある。このことは、特許文献2において説明されている、上述したように、クエリの実行時間を予測することは、クエリスケジューリングの中心にあり、したがって、この問題が集中して研究されている。
クエリの実行時間を予測する1つの自然な方法は、既に実行された「同様の」クエリ(および、それに対し使用された時間が記憶されている)の実行時間を探索する(look for)ことである。この種の方法を実装するために、良好な表示(representations)を発見して、それらの間でクエリを比較し、および、例えば、非特許文献2の論文にあるような測定基準(metrics)、または非特許文献3にあるようなモデル選択を使用して、どのようにしてそれらの実行時間をモデル化するかを学習する必要がある。クエリの表示の選択、およびこの表示に従って実行時間をモデル化する方法は、クエリが構築される言語に依存する。例えば、非特許文献4の研究報告は、SPARQL言語のケースを扱っている。
次いで、機械学習アルゴリズムがトレーニングセットに適用された後に、クエリの実行時間の予測を評価することができる。特に、非特許文献5の論文は、クエリの特定の表示を使用して、PostgreSQLなどの関係データベースのケースを分析し、および異なる古典的な(classical)機械学習アルゴリズムをテストする。教師なし平均法(Undersupervised averaging)、教師なし線形回帰法、教師なしk近傍回帰法、教師なしNadaraya−Watson回帰法は、全て使用されている概念である。
幾つかの文献は、パワフルメタ方法(powerful meta-method)が、実行時間の範囲においてトレーニングセットのクエリを分割すること、および範囲の各々で機械学習アルゴリズムを適用することから構成されることを証明している。特に、非特許文献6の論文は、この時間の分割を使用している。一部の方法はまた、このパラダイムを再帰的に適用し、および、PQRツリーを取得し(特許文献3および特許文献4にあるように)、ツリーの各ノードは、トレーニングデータに関して学習された予測因子を使用する(トレーニングデータは、その実行時間が知られているクエリの組であることが想起される)。最もロバストな一般的な方法の1つは、トレーニングセットのクエリのクエリ時間をクラスタリングすること、および、クラスタを発見する所与の(新たな)クエリ(そのクエリからそれは最も近い(クエリとクラスタの中心(centroid)との間の類似性に基づくことが多い、類似性の特定の概念(notion)を使用して)ことを含み、そして、クラスタのクエリ時間に従ってクエリ時間を算出する。上述した非特許文献4の研究報告、および非特許文献7の論文は、例えば、クラスタに関して学習された予測モデルを評価することによって、この最後の算出を実行することができ(単純な平均値とすることができ、そのケースでは、この最後の算出は、ある程度は、量子化(すなわち、予め定められた距離に従って、予め定められた組の値における最も近い1つによる入力値の置き換え)またはSVMとしてのより複雑な機械学習方法にある程度は相当する)。このフレームワークは、クラスタ分析のより一般的な分野に関する。
クラスタ分析は、グループにおけるオブジェクトの区分化し(partitioning)、それによって各グループにおいてデータが同一となる(非特許文献8の論文を参照)タスクに関する。それは、データマイニング(非特許文献9の論文を参照)、機械学習(非特許文献10の論文を参照)、および大規模検索(非特許文献11の論文を参照)における主要な問題のように見える。クラスタ分析は、各クラスタに中心(center)を割り当て、1つは、そのクラスタの中心に対する各ポイントを量子化することにある単純な量子化を有する、量子化のための重要なツールである。
K平均クラスタリング問題は、クラスタ分析の最も有名な問題であり、パルス符号変調のための技術として、1957年にBell研究所においてStuart Lloydによって導入されている。Lloydアルゴリズムは、p次元のポイントの集合を入力と見なし、および「全歪み」最小化することを目的とするそれらのポイントの区画(partition)を出力する。このアルゴリズムは、発見的問題解決(heuristic)であるにすぎない(最適なクラスタリングをもたらさない)。しかしながら、実際には、K平均クラスタリング問題が一次元でないケースにおけるNP困難(NP-hard)であるので、正確なアルゴリズムを期待することはできない。Lloydアルゴリズムが最近では広く使用されている。幾つかの変形例がまた提案されている(非特許文献12を参照)。
一次元の適用が特に重要である。この問題に対する最も有名なアルゴリズムの1つは、1967年に開発されたJenks natural breaks optimizationと称され(地図製作の国際年鑑における非特許文献13の論文を参照)、地図製作を目的に導入されている。Lloydアルゴリズムとして、それは発見的問題解決であるにすぎない。2011年に、CK平均と称される、正確なアルゴリズムが、WangおよびSongによって開発されている(非特許文献7の論文を参照)。このアルゴリズムは、特許文献5の基礎(corner stone)である。それは時間O(K*n2)において実行し、Kは要求される数のクラスタであり、およびnは実数である。さらに最近では(2013年に)、Maarten Hilferinkが、より効率的なアルゴリズムを開発し、およびそれの実装を提供している。この実装は、コロプレス(choropleth)に対してより正確な、地図製作に特化されているが、このアルゴリズムの文献のみは、Wikipediaのページである(非特許文献14)。
米国特許出願公開第2005/0071331号明細書 米国特許出願公開第2005/0192937号明細書 米国特許第7895192号明細書 米国特許出願公開第2008/0270346号明細書 米国特許第1543036号明細書 米国特許第5694591号明細書 米国特許出願公開第2006/0031189号明細書 国際公開第2014/060050号
"Distribution-Based Query Scheduling", by Chi, Hacigum, Hsiung, Naughton, 2013 "Predicting Multiple Metrics for Queries: Better Decisions Enabled by Machine Learning", by Ganapathi, Kuno, Dayal, Wiener, Fox, Jordan, and Patterson (2009) "Learning to Predict Response Times for Online Query Scheduling", by Macdonald, Tonellotto, and Ounis (2011) "Predicting SPARQL Query Execution Time and Suggesting SPARQL Queries Based on Query History", by Hasan and Gandon "Dynamic Cost Models for Query Runtime Prediction" by Lima "PQR: Predicting Query Execution Times for Autonomous Workload Management", by Gupta, Mehta, Dayal (2008) Wang and Wong, "Optimal k-means Clustering in One Dimension by Dynamic Programming" Jain et al., "Data Clustering: A Review" Chen et al., "Data mining: an overview from a database perspective" Murphy, "Machine Learning, A Probabilistic Perspective" Goodrum,"Image Information Retrieval: An Overview of Current Research" J.A. Hartigan (1975), "Clustering algorithms", John Wiley & Sons, Inc. Jenks, "The Data Model Concept in Statistical Mapping" Fisher's Natural Breaks Classification, accessible at the following URL at the priority date: http://wiki.objectvision.nl/index.php/Fisher%27s_Natural_Breaks_Classification). "Logic Programming and Databases", Tanca, 1990 "Principles of Distributed Databases", Ozsu, Valduriez, 2011 "A Federated Architecture for information management", McLeod, Heimbigner, 1985 "Survey of graph database models", Angles, Gutierrez, 2008 "Report on a knowledge-based software assistant", Green, Cordell, Luckham, Balzer, Cheatham, Rich,1986 "Management Information Technology Systems", O’Brien, Marakas, 2008 "Efficient query evaluation on probabilistic databases", Dalvi, Suciu, 2007 "TSQL2 Temporal Query Language", Snodgrass, 2009 "Query optimization", by Ioannidis and Yannis, 1996 "An Overview of Query Optimization in Relational Systems", by Chaudhuri and Surajit, 1998 Gray and Neuhoff, "Quantization" MacQueen, "Some Methods for classification and Analysis of Multivariate Observations" Bellman, "The theory of dynamic programming" Bradford and Reinert, "Lower Bounds for Row Minima Searching",1996 Alon and Azar, "Comparison-Sorting and Selecting in Totally Monotone Matrices" Cechlarova and Szabo, "On the Monge property of matrices" Bein, Golin, Larmore, and Zhang, "The Knuth-Yao quadrangle-inequality speedup is a consequence of total-monotonicity"
しかしながら、これらの既存の方法の全ては、いずれも最適なK平均クラスタリングをもたらさず、およびそれらは非常に低速であるので、制限されている。このコンテキスト内で、実行時間予測のためのクラスタクエリに対する改善された解決方法の必要性がいまだに存在する。
したがって、基準クエリとのターゲットクエリ(target query)の類似性に基づいて、データベースにおけるターゲットクエリの実行時間の予測のための、データベースにおける基準クエリをクラスタリングする、コンピュータ実装方法が提供される。方法は、基準クエリの実行時間を表す数値の数を設けるステップを備える。方法はまた、予め定められた数のクラスタに対して数値の最適なK平均クラスタリングを算出するステップを備える。算出するステップは、予め定められた数のクラスタに対応する回数、数値の数に等しい次数の正方行列に適用される線形時間行最小検索(Row Minima Searching)アルゴリズムを反復するステップを含む。また、方法は、数値の算出されたクラスタリングに従って、基準クエリをクラスタリングするステップを備える。
方法は、
−その結果、数値がソートおよびインデックス付けされ、算出するステップ内で反復することが、正方行列に適用される線形時間行最小検索アルゴリズムに従って、各々のそれぞれの反復ランク(iteration rank)において、および数値の数未満のそれぞれのインデックスごとに、それぞれの反復ランクに対応するクラスタの数で、それぞれのインデックス未満でインデックス付けされた数値のサブセットに対して達成可能な最小全歪み(minimal total distortion)を算出することを含むことと、
−各々のそれぞれの反復ランクにおいて、ならびに数値の数未満のそれぞれのインデックスごとに、行インデックスごと、および列インデックスごとに、行列エントリ(matrix entry)は、行インデックスに先行するインデックスに対する前の反復において算出された最小全歪みの合計、および行インデックスと列インデックスとの間の数値の連続するサブセットの歪みに対応することと
のうちの1つ以上を備える。
方法は、各々のそれぞれの反復ランクにおいて、行最小検索アルゴリズムによって返されるインデックスを記憶するステップをさらに備える。
方法は、算出するステップにおいて、記憶されたインデックスから最適なクラスタリングを判定するステップ、および/または、記憶されたインデックスから最適なクラスタリングを判定するステップは、記憶されたインデックスにおいて、最後にインデックス付けされた数値から開始して、数値を区分化する(partitioning)ステップであって、各々のそれぞれの反復ランクにおいて、現在形成されているクラスタの開始の数値のインデックスは、予め定められた数のクラスタから、現在形成されているクラスタの最後にインデックス付けされた数値のインデックスに等しい行インデックスに対するそれぞれの反復ランクを減算したものに等しいランクの反復において、算出するステップ内で反復する間に記憶されたインデックスに等しい、ステップをさらに備える。
データベースにおけるターゲットクエリの実行時間を予測する方法がさらに提供される。予測方法は、上記クラスタリングする方法によって取得可能なデータベースにおける基準クエリのクラスタリング、および基準クエリの実行時間を提供するステップを備える。予測方法はまた、基準クエリとのターゲットクエリの類似性に基づいて、ターゲットクエリをクラスタリングのクラスタと関連付けるステップをさらに備える。また、予測方法は、ターゲットクエリに関連付けられたクラスタの基準クエリの実行時間に従って、ターゲットクエリの実行時間を予測するステップをさらに備える。
クラスタリングおよび/また予測方法を実行するための命令を備えたコンピュータプログラムがさらに提供される。
それにコンピュータプログラムを記憶したコンピュータ可読記憶媒体がさらに提供される。
それにコンピュータプログラムを記憶した、メモリに結合されたプロセッサを備えたシステムがさらに提供される。
例では、メモリはデータベースをさらに記憶し、システムは、データベースにおける基準クエリ上でプログラムを実行し、および/または、データベースにおけるターゲットクエリ上でプログラムを実行するように構成されている。
本発明の実施形態は、非限定的な例によって、かつ添付図面を参照して説明される。
方法の例のフローチャートを示す。 システムの例を示す。 方法の例を示す。
図1のフローチャートを参照して、基準クエリとのターゲットクエリの類似性に基づいて(例えば、任意の予め定められたクエリ類似性基準に従って)、データベースにおけるターゲットクエリ(すなわち、例えば、実質的に同一のデータベースに対する別のクエリ)の実行時間を予測するための(すなわち、それ自体が既知であるように、基準クエリ、およびそのような後の予測に関連し/適合されているそれらのクラスタリング)、データベースにおける基準クエリ(すなわち、データベースに対するクエリ)をクラスタリングする、コンピュータ実装方法が提案される。方法は、基準クエリの実行時間を表す数値の数(例えば、任意の数)(すなわち、例えば、その実行時間が実際には全て知られている、それぞれの基準クエリの実質的な実行時間に対応し/表し/等しい各々の数)を設けるステップS10を備える。方法はまた、予め定められた数のクラスタに対する数値の最適K平均クラスタリングを算出するステップS20を備える。算出するステップS20は、予め定められた数のクラスタに対応する回数、数値の数に等しい次数の正方行列に適用される線形時間行最小検索アルゴリズムを反復するステップを含む。また、方法は、数値の算出されたクラスタリングに従って、基準クエリをクラスタリングするステップS30を備える(すなわち、各々の基準クエリがそのそれぞれの実行時間のクラスタに従って割り当てられる)。そのような方法は、ターゲットクエリの実行時間の後の予測に対して基準クエリのクラスタリングを改善する。
特に、方法によって、本分野でも公知なように、それらの実行時間に基づいて基準クエリ(その実行時間が既知である)をクラスタリングする(S30)ことが可能になる。方法は、最適K平均クラスタリングを算出する(S20)ことによって、そのようなクラスタリングを実行する(S30)ので、方法は、データベースエンジニアリングの分野において公知なように、後の実行時間予測の観点から比較的良好なクラスタリングを実行する。しかしながら、最も重要なことに、方法は、予め定められた数のクラスタに対応する回数、数値の数に等しい次数の正方行列に適用される線形時間行最小検索アルゴリズムを反復することによって、そのような算出S20を実行する。本方法によって実行されるこの特定のアルゴリズムのフレームワークによって、後述するように、最適K平均クラスタリングの算出が高速に実行される。
方法は、コンピュータによって実行される。これは、方法のステップ(すなわち、実質的に全てのステップ)が、少なくとも1つのコンピュータ、または同様の任意のシステムによって実行されることを意味する。よって、方法のステップは、場合によっては完全に自動で(例えば、設けるステップS10を除く全てのステップ)、または半自動でコンピュータによって実行される。例では、方法のステップの少なくとも一部をトリガすることは、ユーザ−コンピュータの対話を通じて実行される(例えば、設けるステップS10)。要求されるユーザ−コンピュータの対話のレベルは、予想される機械的動作(automatism)に依存することがあり、およびユーザの要求を実装する必要性とのバランスをとられることがある。例では、このレベルは、ユーザにより定義されてもよく、または事前定義されてもよい。
コンピュータ実装方法の典型的な例は、この目的のために適合されたシステムで方法を実行することである。システムは、メモリに結合されたプロセッサを備えてもよく、メモリは方法を実行するための命令を備えたコンピュータプログラムを記憶している。メモリはまた、方法によって処理されるデータを維持するように適合されたデータベースを記憶している。メモリは、場合によっては幾つかの物理的に別個の部分(parts)(例えば、1つはプログラム用であり、場合によっては、1つはデータベース用である)を備えた、そのような記憶に適合された任意のハードウェアである。
図2は、システムの例を示し、システムは、クライアントコンピュータシステム、例えば、ユーザのワークステーションである。例示のクライアントコンピュータは、内部通信バス1000に接続された中央処理装置(CPU)1010、またバスに接続されたランダムアクセスメモリ(RAM)1070を備える。クライアントコンピュータはさらに、バスに接続されたビデオランダムアクセスメモリ1100と関連付けられたグラフィカルプロセシングユニット(GPU)1110が設けられる。ビデオRAM1100は、フレームバッファとしても本分野で知られている。大容量記憶装置コントローラ1020は、ハードドライブ1030などの大容量メモリデバイスへのアクセスを管理する。コンピュータプログラム命令およびデータを有形的に具体化するのに適切な大容量メモリデバイスは、例として、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、内蔵ハードディスクおよび着脱可能ディスクなどの磁気ディスク、光磁気ディスク、ならびにCD−ROMディスク1040を含む、全ての形式の不揮発性メモリを含む。上述したことのいずれかは、特別に設計されたASIC(特定用途向け集積回路)によって補完されてもよく、またはそれに組み込まれてもよい。ネットワークアダプタ1050は、ネットワーク1060へのアクセスを管理する。クライアントコンピュータはまた、カーソル制御装置、またはキーボードなどの触覚デバイス1090を含んでもよい。カーソル制御装置は、ディスプレイ1080上の任意の所望の位置においてユーザが選択的にカーソルを位置付けることを可能にするために、クライアントコンピュータにおいて使用される。加えて、カーソル制御装置によって、ユーザは種々のコマンドを選択することが可能になり、および制御信号を入力することが可能になる。カーソル制御装置は、システムに制御信号を入力するための幾つかの信号生成デバイスを含む。概して、カーソル制御装置は、信号を生成するために使用されるマウス、マウスのボタンであってもよい。代わりに、または加えて、クライアントコンピュータシステムは、感知パッド、および/または感知スクリーンを備えてもよい。
コンピュータプログラムは、コンピュータにより実行可能な命令を備えてもよく、命令は、上記システムに方法を実行させる手段を備える。プログラムは、システムのメモリを含む、任意のデータ記憶媒体上で記録可能であってもよい。プログラムは、例えば、デジタル電子回路、またはコンピュータハードウェア、ファームウェア、ソフトウェア、もしくはそれらの組合せで実装されてもよい。プログラムは、装置、例えば、プログラム可能なプロセッサによって実行される機械可読記憶デバイスで有形的に具体化される製品として実装されてもよい。方法のステップは、入力データを操作し、および出力を生成することによって、方法の機能を実行するために、命令のプログラムを実行するプログラム可能プロセッサによって実行されてもよい。よって、プロセッサは、データ記憶システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信し、ならびにそれらにデータおよび命令を送信するようにプログラム可能であってもよく、およびそれらに結合されてもよい。アプリケーションプログラムは、高レベル手続型プログラミング言語、もしくはオブジェクト指向プログラミング言語、または望ましい場合にアセンブリ言語もしくは機械語で実装されてもよい。いずれにしても、言語はコンパイル言語またはインタープリタ言語であってもよい。プログラムは、完全インストールプログラムまたはアップデートプログラムであってもよい。システム上のプログラムのアプリケーションは、方法を実行するための命令におけるいずれかのケースをもたらす。
方法は、特にクエリ実行時間予測に適用される、改善されたデータクラスタリングアルゴリズムを提案する。しかしながら、方法のアルゴリズム的な解決策を詳述する前に、そのコンテキスト(すなわち、その適用)がここで詳述される。
方法は、基準クエリをクラスタリングする。クラスタリングは、基準クエリとのターゲットクエリの類似性(例えば、従来技術の類似性基準などの任意の類似性)に基づいて、データベースにおいてターゲットクエリの実行時間(すなわち、クエリ実行計画を算出する時間、および/もしくはクエリ実行計画を実行する時間、またはさらに方法に入力されるターゲットクエリが、例えば、通常のクエリのクエリ実行計画を算出することから出力されるターゲットクエリがサブクエリの場合にサブクエリを実行する時間)の(後の)予測に対して実行される(すなわち、検討中の特定のデータベース上での実行に対して要する時間)。言い換えると、方法によって、(場合によっては前の)基準クエリの前のクラスタリングに基づいて、(場合によっては後の)所与のクエリ(すなわち、ターゲットクエリ)の実行時間の予測が可能になる。よって、基準クエリは、本分野で既知であり、かつ上述したようなトレーニングセットを形成する。例えば、基準クエリは単に、その実行時間が既知である(例えば、方法の前に、データベースが設けられ、クエリの組が設けられ、組のクエリがデータベース上で実行され、および実行時間の追跡を維持することによって、S10において設けられることになるデータの判定が可能になる)任意の組のクエリであってもよい。方法が持続的に反復され、およびクラスタリングが更新される場合に、後に入力されるターゲットクエリはさらに、それが実行され、およびその実際の実行時間が既知であるときに基準クエリに追加されてもよい
基準クエリがクラスタリングされ、およびそれらはその(既知であり、かつ実際の)実行時間(すなわち、持続時間を表す数値の形式でS10において設けられる)に関連付けられる。例では、1つの代表的な実行時間のみが、方法の終わり、例えば、クラスタの中心、すなわち、クラスタの中間(mean)においてクラスタごとに維持される。次いで、(新たな)ターゲットクエリが提供されるとき、予測アルゴリズムは、基準クエリとのターゲットクエリの類似性に基づいて、このターゲットクエリをクラスタの1つと関連付けてもよい。ここで、従来技術に関して議論されたことと関連して上述したものなどの、類似性に基づく任意の関連付けスキームが実装されてもよい。このことは、それ自体が既知である。例えば、クラスタリングS30が利用可能であるとき、ターゲットクエリと全てのクエリ、または各クラスタの1つもしくは複数の代表クエリ(例えば、その実行時間がクラスタの中心に最も近い)との間で評価された、予め定められたクエリ距離基準に従って、ターゲットクエリがクラスタの1つに関連付けられてもよい。この評価は、「最も近い」クラスタの判定につながる(クエリ距離基準に基づいて)。次いで、ターゲットクエリの実行時間が、そのような情報に基づいて予測されてもよい。
実際に、予測アルゴリズムは、ターゲットクエリに関連付けられたクラスタの基準クエリの実行時間に従って、ターゲットクエリの実行時間を予測してもよい。再度、例えば、任意の既存の従来技術に従って、それ自体が既知としてこのことが実行されてもよい。例えば、このステップの効率的かつ直接の実装は、関連付けられたクラスタの中心をとることである(すなわち、ターゲットクエリに対して予測される実行時間が、関連付けられたクラスタの基準クエリの平均実行時間である)。より複合的な実装形態では、サポートベクトルマシンが使用されてもよい。よって、クエリ時間スケジューリング(例えば、同時(concurrent)クエリの総数が予め定められた閾値よりも小さいとき、および/または例えば、夜間においてデータベースがあまりクエリされないことが知られているときに、予め定められた閾値よりも大きい予測される実行時間を有するターゲットクエリが、実行されることが延期されてもよい)、実行計画最適化(execution plan optimization)におけるボトルネックを回避するために方法が特に有益であり、ならびに方法は特に、連合(Federated)データベースシステムに対して適合される。
ここで、S10において提供された数値(x1,…,xn)がさらに議論される。
それらの数値は、このデータベース上での/おけるクエリ(基準クエリ)の実行時間を表すことによってデータベースに関連する。もちろん、データベースは、経時的にわずかに発展することがあるが、本分野で既知の予測スキームの更新を得るように、方法が定期的に反復されてもよい。遷移(transitions)において、S10において設けられた実行時間は正確でないことがあるが(データベースが発展していることを理由に)、それらはいまだに良好な近似値(approximations)を形成する。いずれにせよ、そのような更新事項は、当業者にとって自明であり、かつ本議論の対象外である。本議論は、クエリおよびその実行時間が予め定められたデータベースに対して考慮される(クエリの実行時間が当該データベース上でのクエリの実行に要する時間である)ことを意味する、データベース「における」クエリを対象とすることに留意されたい。
ここで、方法によって考慮されるデータベースおよびそのクエリが議論される。
データベース(DB)は、明確に定義された言語で表現されたクエリを使用して、ユーザが特定の部分の情報を取り出すことができる方法で記憶された、組織化されたデータの集合である。ユーザとデータベースとの間のインタフェースは、データベースマネジメントシステム(DBMS)と称される。最も有名なDBMSは、MySQL、PostgreSQL、Microsoft SQL Server、Oracle、SAPおよびDB2である。
データベースの考えは、非常に包括的であり、かつ多くの種類の機能的に異なるシステムを含む。方法のデータベースは、以下の種類のいずれかのデータベースであってもよい。
−演繹(Deductive)データベース(非特許文献15で説明されるデータベースなど)。
−分散データベース(非特許文献16で説明されるものなど)。
−連合データベースシステム(非特許文献17で説明されるデータベースなど)。
−グラフデータベース(非特許文献18で説明されるデータベースなど)。
−知識ベース(非特許文献19で説明されるデータベースなど)。
−オペレーショナルデータベース(非特許文献20で説明されるデータベースなど)。
−確率データベース(非特許文献21で説明されるデータベースなど)。
−一時データベース(非特許文献22で説明されるデータベースなど)。
全てのそれらの種類のデータベースは、それらの情報を記憶するために異なるアルゴリズムのデータ構造を使用するが、それらは全て、クエリの考えによって関連している。クエリを表すために使用される言語がデータベースの性質に依存する場合でさえ、それらの構造は、一般的な形状を共有することが多い。特に、連合データベースシステムは、ユーザが、統合フレームワークの下に、異なる性質の協調データベースと対話することができるように設計される。方法の主要部がクエリおよびその実行時間を取り扱うので、任意の種類のデータベースにそれを使用することができるという意味で包括的である。
方法によって考慮されるクエリはユーザによって記述されてもよく、よって宣言型言語(例えば、SQL)で表現されることが多く、および効率的に応答するために変換されてもよい。この変換は、ユーザクエリを再表現し、それによってクエリ計画、すなわち実行計画(Execution Plan)と称される、従属スキーム(dependency scheme)に従って処理されるより小さなサブクエリに分解することができることを目的とする、クエリオプティマイザ(および、それは、非特許文献23の論文などにおいて処理されてもよい)と称されるユニットによって実行される。クエリ計画は、各ノードが原子的操作(atomic operation)に対応し、および算出がリーフからルートに行われ、ルートの結果がユーザに与えられる回答に対応する(非特許文献24の論文、または特許文献6および7などで上記引用されたように)、「プレーンノード(plain nodes」のツリーとして表されることが多い。
方法は、クエリ時間上でクラスタリングを使用する方法のカテゴリに属し、方法の主要部は、スカラクラスタリングに関する。上述したように、それらの方法は、クラスタ分析に大いに関連する。方法は、近年の他の最適なクラスタリングデバイスよりも高速な、最適なクラスタリング(標準的な目的関数(standard objective function)である、「全歪みに関して)を生じさせる。実際に、下記で示されるように、方法の算出時間は、最良の発見的問題解決(非最適な量子化を生じさせる)よりも比較可能である(および、さらに高速であることが多い)。
方法は、以下のパイプライン(上記で提示されてもいる)に従ってもよい。
−ステップ1:クエリ時間をクラスタリングする
−ステップ2:各々のクラスタ上でモデルを学習する
−ステップ3:クエリ実行時間を予測する
方法の主要部は、ステップ1にあり、および最適なクラスタリングスキームを算出する高速な方法を提案する。ステップ2および3は既に背景技術の欄で言及されており、ならびにその1つがクエリ上で有する特定のモデルに依存するので(それが表現される言語、それが関連するデータベースのタイプに依存するが、具体的な内在するアプリケーションにも依存する)、本議論は、主としてステップ1のみに焦点があてられ、ステップ2および3の考えは、簡潔に言及されるにすぎない。
先で既に議論されている、各クラスタ上でモデルを学習するステップが、さらに簡単に詳述される。それらの詳細は、全てが従来技術から公知である。
方法がクラスタ上で構築する最も簡単なモデルは、このクラスタに存在する任意のクエリが、クラスタの実行時間の平均に等しい予測実行時間を有することを考慮することにある(このことは、例えば、特許文献8でとられる選択である)。
より複合的な技術は、クエリ(クエリの内部統計として見ることができる特徴のリストにある、特許文献2の論文を参照)の表示に基づいて機械学習アルゴリズムを使用する。例えば、上述した研究報告の特許文献4は、各クラスタにおいて予測子を学習するためにサポートベクトルマシンを使用する。
先で既に議論されている、クエリ実行時間を予測するステップが、さらに簡単に詳述される。それらの詳細は、全てが従来技術から公知である。
新たなクエリが与えられるとき、古典的な方式は、クエリの「最も類似するクラスタ」を発見し、次いでステップ2で学習されたモデルを単に適用することにある。クラスタの数、および各クラスタのサイズの数に応じて、ターゲットクエリと特定のクラスタのうちの1つとの間で実行される比較の数が変化することがある。1つのアプローチは、先で議論された類似性の特定の概念(notion)を使用して、特許文献5で提案されたようにターゲットクエリを各クラスタの中心(centroids)と単に比較することである。
この点において、方法およびその多くの例のコンテキストが提供されているが、方法の主要部に関する詳細(すなわち、後のクラスタリングS30を定義する、算出するステップS20)がまだ提供されていない。これは以下で行われ、以下で提供される全ての実装形態の例が、上記提供された例示的な適用例のいずれかに適用されてもよいことに留意されたい。
前に示されたように、方法は、予め定められた数Kのクラスタに対する数値の最適K平均クラスタリングを算出するステップS20を備える。しかしながら、これは乱暴に(brutally)は行われない。実際に、算出するステップS20は、Kに対応する回数を、線形時間行最小検索アルゴリズムを反復することを含む(後述する例では、K−1回)。行最小検索アルゴリズムの公知なカテゴリの任意の予め定められた線形時間アルゴリズムのその使用によって、算出するステップS20は、複雑度が低い。よって、方法は、K平均クラスタリング問題の新た解決策であり、かつアルゴリズムによる効率的な解決策を実装する。
算出するステップS20に関するさらなる詳細を提供する前に、スカラ量子化がここで議論される。実際に、方法のクラスタリングS20〜S30は、この例では、それらの実行時間を仮想的に「量子化」し、および仮想的に量子化された値に関連してクラスタを定義することによって、それが実行時間に対する基準クエリをクラスタリングすることができるので、スカラ量子化のフレームワークに従う。実際に、クラスタの基準クエリは、クラスタの中心に等しい仮想的な実行時間(すなわち、当該クエリの基準クエリの実行時間の平均値)に関連付けられる。よって、基準クエリの実行時間はこのようにして量子化される。
公知であるように、スカラ量子化は、有限集合
を使用して、実際の値を近似させる算出ツールであり、デジタルステップと称されるVの要素は、近似値として使用される値である。スカラ量子化器は、マッピング
として数学的に定義され、それによって、xとq(x)との間の距離が小さくなりようになり、距離は、ユークリッド距離などの任意の予め定められた距離である(距離の概念はコンテキストに依存することがある)。
実際に、スカラ量子化器は、間隔(intervals)I1=]−∞、a1[、I2=[a1,a2[,…,IK=[aK-1、∞[(a1<…<aK-1)への、
次いで、各々の
の区画を通じて常に定義され、Iiはx∈Iiとなるような間隔のみを表し、値q(x)=ciを関連付ける。実際の数a1,…,aK-1は「閾値(decision bounds)」と称される。非特許文献25の論文は、量子化の完全な調査を与える。
方法は、例えば、最も広く使用されている、非特許文献26で周知であり、かつ定義されたK平均法設定に焦点をあてる。この設定では、方法は、S20において、昇順にソートされた所与のタプル
、および所与の整数K(一般に、K=2bであり、bは各xiをエンコードするのに利用可能なビットの数である)を検索し、量子化器qは、最小全歪みを達成するKのデジタルステップを使用し、全歪みは、
として定義される。
この量を最小化するために、方法は、各々の実際の値をその最も近いデジタルステップにマッピングする量子化器を単に扱うことができることが明らかである。よって、問題はまさに、
を最小化するKの中心c1,…,cKを発見することに等しい。
図3は、10の値および4のデジタルステップに対する例を示す。最適な量子化は、集合{c1,…,cK}によって与えられ、それによって、
になる。
この全歪みを最小化することは、量子化ステップ(所与のKに対する)の間に失われる情報をできるだけ少なくすることを理解される必要がある。各ポイントxiがその最も近い中心に黙示的に割り当てられており、よって、方法は、クラスタへの区画を構築しており、各クラスタは、所与の中心に割り当てられたポイントの集合に対応する(よって、最良の量子化器を発見することは、「PCMにおける最小二乗量子化」におけるLloydによって説明されるように、クラスタリング問題である)。k∈{1,…,K}ごとに、中心ckに対応するクラスタをckによって表す。実際には、各々の中心がその対応するクラスタのポイントの平均であることを理解することは容易である。さらに、x1<…<xn、であることが想定されるので、各々のクラスタが連続するサブセットのポイントから構成されることに留意されたい。例えば、K=4のクラスタに区分化することを望む47の実数を有する場合、可能な最適なクラスタリングは、
である。
全て1<=a<=b<=nの場合、表記(notation)
が導入され、また、
を表す。前の例の対応する全歪みは、
TD=disto(1,17)+disto(18,24)+disto(25,42)+disto(43,47)
として記述することができる。
上述したように、この問題の解決策は既に存在するが、それらは、本方法よりも低速であり、それらのほとんどがまさに発見的問題解決である(すなわち、最適な量子化を生成しない)。
したがって、方法の例示的な実装形態では、数値(x1,…,xn)がソートおよびインデックス付けされる。算出するステップS20内での反復は、各々のそれぞれの反復ランクkにおいて、および数値の数n未満のそれぞれのインデックスjごとに、正方行列Hに適用される線形時間行最小検索アルゴリズムに従って、それぞれの反復ランク(よってk)に対応するクラスタkの数での、j(よってi<=j)未満のインデックス付けされた数値xiのサブセットに対して達成可能な、TDmin(j,k)で表される最小全歪みの算出を含む。
この例では、各々のそれぞれの反復ランクkにおいて、および数値の数n未満のそれぞれのインデックスjごとに、行インデックスiごと、および各々の列インデックスjごとに、行列エントリH(i,j)は、
−行インデックスの前のインデックス(i−1)に対する前の反復において算出された最小全歪み(TDmin(i−1,k−1))、および
−行インデックスと列インデックスとの間の数値の連続するサブセット(xi,…,xj)の歪み(disto(i,j))
の合計に対応してもよい。
そのような実装形態は、既存のクラスタリング方法よりも効率が良い(outperform)システム(それはまた、最適K平均クラスタリングを生成するが、特に時間O(K*n)においてより高速に実行するので)を提供する。一般的な使用では、例示的な方法は、「良好な」発見的問題解決よりも10倍以上高速に実行することに留意されたい。
例示的なクラスタリングアルゴリズムのさらなる完全な概要がここで議論される。
最適な区画を算出するために、方法は、ダイナミックプログラミングパラダイム(Dynamic Programming paradigm)(非特許文献27の論文で説明される)を使用する。特に、例示的な方法は、j∈{1,…,n}および各々のk∈{1,…,K}ごとに、jの第1のポイント(x1,…,xj)を単に考慮する場合に、最大でkのクラスタで達成することができる最小全歪みとして定義される値TDmin(j,k)を算出する。
定義によって、全てのj∈{1,…,K}に対し、TDmin(j,1)=disto(1,j)を有し、なぜならば、1つのクラスタにおいてポイントの組を区分化する唯一の方法がそれら全てをとることであるからである。さらに、全てのk∈{2,…,k}および全てのj∈{1,…,n}に対し、式
を有する。
この式は、最大でkのクラスタで(x1,…,xj)に対して達成することができる最小全歪みが、或るiに対し、最大でk−1のクラスタおよび最終(final)クラスタとしての[xi,…,xj]でi−1の第1のポイントの最適クラスタリングから構成されるという事実を表す。上記式は、本方法の主要部にある。所与のk∈{2,…,K}に対し、全てのjに対する値TDmin(j,k−1)を算出した場合、方法の1つは、上記式における全ての可能な(possible)i∈{1,…,j}を試験することによって、全てのjに対し、値TDmin(j,k)を算出してもよい。しかしながら、この仮説的な(hypothetical)技術は、非常に低速なアルゴリズムにつながることがある。
これを克服するために、方法は、特定の行列において行最小検索に対する特定のカテゴリのアルゴリズムを使用する。
ここで例示的な方法が依存する行最小検索および全単調性(Total monotonicity)の概念が議論される。
行最小検索アルゴリズムは(非特許文献28の論文で詳述されるように)、全ての1<=i<=R,1<=j<=Cに対し、値f(i,j)を一定時間で計算し、および整数p=(p1,…,pR)のベクトルを出力することでき、それによって
とすることができるように、
関数
を入力として見なすアルゴリズムである。
以下では、Fによって行列F=(f(i,j))i,jを表す。完全を期して、行列Fが特定の特性を有さない場合に、ベクトルpを算出するために全てのそのエントリが要求される場合があることに留意されたい。しかしながら、Fに関する或る条件下では、抜本的により高速になるアルゴリズムを実装することができる。
行列Fは、それが次の条件を満たす場合に全体として単調(monotone)と称される。「i,j,k、i<jに対し、F(k,i)<F(k,j)の場合、全てのk'<=kに対し、F(k',i)<F(k',j)」。
全体的に単調な行列における行最小検索に対する線形−時間アルゴリズムが存在する(非特許文献29の論文で説明されるように)。そのような予め定められたアルゴリズム(すなわち、線形時間行最小検索アルゴリズム)のいずれかは、行列H上でS20における方法によって実装されてもよい。特に、発明者は、非特許文献29の論文で提示された、飛躍的に高速に集束する(with dramatically fast convergence)(従来技術と比較して)周知のSMAWKアルゴリズムを使用して当該方法を試験している。
ここで、方法を飛躍的に高速に実行することを可能にする基本的特性が議論される。その前に、この特性の特定がK平均クラスタリング問題と行最小検索に対して提供される周知かつ強力なアルゴリズムとの間の架け橋(bridge)を作成することにつながり、およびK平均クラスタリングに関する長年の研究がそのような架け橋を特定してこなかったことに留意されたい。
<定理>
全ての1<=i<j<nに対し、disto(i,j)+disto(i+1,j+1)<=disto(i,j+1)+disto(i+1,j)。
<証明>
まず第一に、1<=a<=b<=nに対し、disto(a,b)は、定義によって(b−a+1)と乗算した(xa,…,xb)の変数に等しい。
したがって、Konig−Huygens式から
有する。
1<=i<j<nとなるようにiおよびjを考える。
p=(b−a+1)を表し、
であり、α=xj+1、β=xiであり、上記特定から
を有する。
したがって、式(1)
である。
さらに、
である。
したがって、式(2)
である。
Δ=disto(i,j+1)−disto(i,j)+disto(i+1,j)−disto(i+1,j+1)を表す。
証明したい定理は、単純にΔ>=0と等しい。
さらに、式(1)と式(2)とを加算すると、
が得られる。
目標は、Δ>=0を示すためにこの式を使用することである。
概念を失うことなく、問題は変換(translation)によって不変であるので、S=0であることを想定することができ(それは、
による全てのポイントを変換することに対応する)、それによって
とすることができ、
Δ'=−p(p+1)β2−p(p−1)α2+(p−1)(p+1)(α−β)2
である。
項(term)をグループ化して、
Δ'=−(p+1)β2+(p−1)α2−2(p+1)(p−1)αβ
と記述することができる。
全てのl∈{i+1,…,j}に対しα>=xlであるので、S=xi+…+xj=β+…+α<=β+(p−1)α(x1<=xnであることが想起される)であることに留意されたい。S=0であることが想定されるので、
(p−1)α>=−β
が得られる。
さらに、ヌルである合計Sのより小さな項であるので、β<=0を明確に有し、よって、
−(p−1)αβ>=β2
に従う。
この不等式をΔの最後の式に再注入(reinject)すると、
Δ'>=−(p+1)β2+(p−1)α2+2(p+1)β2>=(p−1)α2+(p+1)β2
よって、Δ'>=0であり、結果としてΔ>=0であり、立証を結論づける。
ここで、固定されたk∈{2,…,K}に対し、方法が全てのjに対して全てのTDmin(j,k−1)を算出したと推定される。関係
を通じて全てのjに対して(TDmin(j,k))jを取り出すことができることが想起される。
ここで、上述した特性がどのようにして、方法が時間O(n)において(TDmin(j,k−1))jから全ての(TDmin(j,k))jを算出することを支援するかが理解されよう。
最初に、H(i,j)=TDmin(i−1,k−1)+disto(i,j)を表す。
disto(i,j)+disto(i+1,j+1)<=disto(i,j+1)+disto(i+1,j)であるので、TDmin(i−1,k−1)+TDmin(i,k−1)の両側を加算することによって、
H(i,j)+H(i+1,j+1)<=H(i,j+1)+H(i+1,j)を得る。
この特性は、行列H=(H(i,j))i,jのMongeの特性を称され(非特許文献30の論文を参照)(実際に、方法は、j<iであるがそのような欠けた値(missing value)が実際に本当に問題にならないときに、H(i,j)の定義を無視してもよく、このことはこれ以上は論述されない)。一部の文献では、Knuth−Yao四角形不等式(quadrangle inequality)とも称される(例えば、非特許文献31の論文を参照)。
定理によって、行列Hは全体として単調であり、すなわち、i<jであるi,j,kに対し、H(k,i)<H(k,j)である場合、全てのk'<=kに対しH(k',i)<H(k',j)である。これは実際に、Mongeの行列の周知の特性であり、証明される必要はない。
ここで、(TDmin(j,k))jを算出することは、行列Hの行の各々の最小値を算出することに等しいことに留意されよう。例示的な方法は、時間O(n)において解決されるこの副課題に対して偶然に正確に設計されることになる、任意の予め定められた線形時間行最小検索アルゴリズム(SMAWKアルゴリズムなど)を引き起こす。行列Hはサイズn×nの行列であるが、方法はそれを全体として構築する必要はない。方法は、単に、一定の時間で任意のHエントリを算出する方法をSMAWKサブルーチンに提供する。
よって、実際には、方法のアルゴリズムは最初に、第1の層(TDmin(j,0))jを算出してもよく、次いで、行最小検索(RMS)サブルーチンを使用して第2の層(TDmin(j,1))jを算出し、および方法が全ての(TDmin(j,k))j,kを取得する前に、第2の時間でRMSアルゴリズムなどを使用して第3の層(TDmin(j,2))jを算出する。Kの層の各々が、算出されることになる時間O(n)を要するので、アルゴリズム全体が時間O(Kn)で動作する。
この点において、例では、方法はさらに、各々のそれぞれの反復ランクkにおいて、例えば、専用行列Cutminにおいて、行最小検索アルゴリズムによって返されるインデックスを記憶するステップを備えてもよい。この例示的な方法はさらに、算出するステップS20において、記憶されたインデックスから最適クラスタリングを判定するステップを含んでもよい。
単純かつ直接的な実装形態では、記憶されたインデックスから最適クラスタリングを判定するステップは、行列Cutmin内で作用するステップを備える。特に、例示的な方法は、最後にインデックス付けされた数値(Cutmin(n,K))から開始して、数値を反復して区分化する(partition)。各々のそれぞれの反復ランクqにおいて、現在形成されているクラスタの開始数値のインデックスは、ランクK−qの反復において(算出するステップS20内での反復の間に)記憶されたインデックスに等しい。
言い換えると、方法が毎回最小値を算出することに気付く場合、方法はまた、この最小値に到達するインデックスを得ることができる。より正確には、(TDmin(j,k))j,kの各々の値は、そのインデックスを行列(Cutmin(j,k))j,kに記憶することができる最小値として算出される。そのことから、方法は、テーブルCutminを参照することのみで、最適な区分を容易に得ることができる。

Claims (11)

  1. 基準クエリとのターゲットクエリの類似性に基づいて、データベースにおける前記ターゲットクエリの実行時間を予測するための前記データベースにおいて前記基準クエリをクラスタリングするコンピュータにより実行される方法であって、
    前記基準クエリの前記実行時間を表す数値(x1,…,xn)の数(n)を設けるステップと、
    予め定められた数(K)のクラスタに対する前記数値の最適K平均クラスタリングを算出するステップであって、前記算出するステップは、前記予め定められた数のクラスタに対応する回数、前記数値の数に等しい次数(n)の正方行列(H)に適用される線形時間行最小検索アルゴリズムを反復するステップを含む、ステップと、
    前記数値の前記算出されたクラスタリングに従って、前記基準クエリをクラスタリングするステップと
    を備えたことを特徴とする方法。
  2. 前記数値(x1,…,xn)は、記憶およびインデックス付けされ、前記算出するステップ内で反復することは、各々のそれぞれの反復ランク(k)において、ならびに前記数値の数(n)未満のそれぞれのインデックス(j)ごとに、前記正方行列(H)に適用される前記線形時間行最小検索アルゴリズムに従って、前記それぞれの反復ランク(k)に対応するクラスタの数で、前記それぞれのインデックス(i<=j)よりも低くインデックス付けされた数値(xi)のサブセットに対して達成可能な最小全歪み(TDmin(j,k))の算出を含む、ことを特徴とする請求項1に記載の方法。
  3. 各々のそれぞれの反復ランク(k)において、および前記数値の数(n)未満のそれぞれのインデックス(j)ごとに、行インデックス(i)ごと、および列インデックス(j)ごとに、行列エントリ(H(i,j))は、
    前記行インデックスに先行するインデックス(i−1)に対する前の反復において算出された最小全歪み(TDmin(i−1,k−1))、および
    前記行インデックスと前記列インデックスとの間の前記数値の連続するサブセット(xi,…,xj)の歪み(disto(i,j))
    の合計に対応する、ことを特徴とする請求項2に記載の方法。
  4. 前記方法は、各々のそれぞれの反復ランク(k)において、前記行最小検索アルゴリズムによって返されるインデックス(Cutmin(j,k))を記憶するステップをさらに備えている、ことを特徴とする請求項3に記載の方法。
  5. 前記方法は、前記算出するステップにおいて、前記記憶されたインデックスから最適クラスタリングを判定するステップをさらに備えている、ことを特徴とする請求項4に記載の方法。
  6. 前記記憶されたインデックスから前記最適クラスタリングを判定するステップは、前記記憶されたインデックス(Cutmin)における最後にインデックス付けされた数値(Cutmin(n,K))から開始して、前記数値を反復して区分化するステップを備え、各々のそれぞれの反復ランク(q)において、現在形成されているクラスタの開始数値のインデックスは、前記算出するステップ内での反復の間に、前記予め定められた数のクラスタから、前記現在形成されているクラスタの最後にインデックス付けされた数値の前記インデックスに等しい前記行インデックスに対するそれぞれの反復ランク(q)を引いたのに等しいランク(K−q)の反復において、記憶されたインデックスに等しい、ことを特徴とする請求項5に記載の方法。
  7. データベースにおいてターゲットクエリの実行時間を予測する方法であって、
    請求項1乃至6のいずれか一項に記載の方法によって取得可能な前記データベースにおける基準クエリのクラスタリング、および前記基準クエリの前記実行時間を提供するステップと、
    前記基準クエリとの前記ターゲットクエリの類似性に基づいて、前記ターゲットクエリを前記クラスタリングのクラスタに関連付けるステップと、
    前記ターゲットクエリに関連付けられた前記クラスタの前記基準クエリの前記実行時間に従って、前記ターゲットクエリの前記実行時間を予測するステップと
    を備えたことを特徴とする方法。
  8. コンピュータによって実行されるとき、前記コンピュータに、請求項1乃至7のいずれか一項に記載の方法を実行させるためのコンピュータ実行可能命令を備えたことを特徴とするコンピュータプログラム。
  9. 請求項8に記載のコンピュータプログラムを記憶したことを特徴とするデータ記憶媒体。
  10. メモリに結合されたプロセッサを備えたシステムであって、前記プロセッサは、前記メモリに記憶された、請求項8に記載の前記コンピュータプログラムを実行するように構成されていることを特徴とするシステム。
  11. 前記メモリはデータベースをさらに記憶し、前記プロセッサは、前記データベースにおける基準クエリおよび/または前記データベースにおけるターゲットクエリ上で前記コンピュータプログラムを実行するように構成されていることを特徴とする請求項10に記載のシステム。
JP2015242282A 2014-12-27 2015-12-11 実行時間予測のためのデータベースクエリのクラスタリング Active JP6673683B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP14307192.6A EP3038018A1 (en) 2014-12-27 2014-12-27 Clustering database queries for runtime prediction
EP14307192.6 2014-12-27

Publications (3)

Publication Number Publication Date
JP2016126770A JP2016126770A (ja) 2016-07-11
JP2016126770A5 JP2016126770A5 (ja) 2019-01-24
JP6673683B2 true JP6673683B2 (ja) 2020-03-25

Family

ID=52396394

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015242282A Active JP6673683B2 (ja) 2014-12-27 2015-12-11 実行時間予測のためのデータベースクエリのクラスタリング

Country Status (4)

Country Link
US (1) US10191967B2 (ja)
EP (1) EP3038018A1 (ja)
JP (1) JP6673683B2 (ja)
CN (1) CN105740312B (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9959354B2 (en) * 2015-06-23 2018-05-01 Google Llc Utilizing user co-search behavior to identify search queries seeking inappropriate content
US11249995B2 (en) * 2016-12-30 2022-02-15 Salesforce.Com, Inc. Techniques and architectures for providing and operating an application-aware database environment with predictive execution of queries and query flows
US11120021B2 (en) * 2017-01-11 2021-09-14 Facebook, Inc. Systems and methods for optimizing queries
CN106991006B (zh) * 2017-03-30 2018-05-15 浙江天正信息科技有限公司 支持依赖和时间平衡的云工作流任务聚类方法
US11372858B2 (en) * 2017-05-18 2022-06-28 Oracle International Corporation Estimated query performance
CN107491508B (zh) * 2017-08-01 2020-05-26 浙江大学 一种基于循环神经网络的数据库查询时间预测方法
CN108052614B (zh) * 2017-12-14 2021-12-03 太原理工大学 一种数据库***负载的调度方法
US11100555B1 (en) * 2018-05-04 2021-08-24 Coupa Software Incorporated Anticipatory and responsive federated database search
US12013856B2 (en) 2018-08-13 2024-06-18 Amazon Technologies, Inc. Burst performance of database queries according to query size
US11586939B2 (en) * 2019-02-28 2023-02-21 Entigenlogic Llc Generating comparison information
US11327970B1 (en) 2019-03-25 2022-05-10 Amazon Technologies, Inc. Context dependent execution time prediction for redirecting queries
US11308100B2 (en) 2019-06-25 2022-04-19 Amazon Technologies, Inc. Dynamically assigning queries to secondary query processing resources
US11314561B2 (en) * 2020-03-11 2022-04-26 UiPath, Inc. Bottleneck detection for processes
US11416270B2 (en) * 2020-03-11 2022-08-16 Td Ameritrade Ip Company, Inc. Systems and methods for dynamic server control based on estimated script complexity
US11537616B1 (en) 2020-06-29 2022-12-27 Amazon Technologies, Inc. Predicting query performance for prioritizing query execution
CN112256725A (zh) * 2020-11-06 2021-01-22 山东伏羲智库互联网研究院 一种基于gpu和cpu的相似数据查询方法及***
CN112397146B (zh) * 2020-12-02 2021-08-24 广东美格基因科技有限公司 一种基于云平台的微生物组学数据交互分析***
US11741101B2 (en) 2020-12-15 2023-08-29 International Business Machines Corporation Estimating execution time for batch queries

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1543036A (en) 1924-10-10 1925-06-23 Lawrence H Taylor Domestic press
US5694591A (en) 1995-05-02 1997-12-02 Hewlett Packard Company Reducing query response time using tree balancing
US7356526B2 (en) 2003-09-30 2008-04-08 International Business Machines Corporation Estimating the compilation time of a query optimizer
US20050192937A1 (en) 2004-02-26 2005-09-01 International Business Machines Corporation Dynamic query optimization
US8346761B2 (en) 2004-08-05 2013-01-01 International Business Machines Corporation Method and system for data mining for automatic query optimization
US7831594B2 (en) 2007-04-30 2010-11-09 Hewlett-Packard Development Company, L.L.P. Estimating the static execution time of a database query
US7895192B2 (en) 2007-07-19 2011-02-22 Hewlett-Packard Development Company, L.P. Estimating the loaded execution runtime of a database query
US8352480B2 (en) * 2010-12-20 2013-01-08 Nokia Corporation Methods, apparatuses and computer program products for converting a geographical database into a map tile database
IN2015DN02750A (ja) 2012-10-19 2015-08-28 Ericsson Telefon Ab L M

Also Published As

Publication number Publication date
JP2016126770A (ja) 2016-07-11
US10191967B2 (en) 2019-01-29
CN105740312B (zh) 2020-10-23
US20160188696A1 (en) 2016-06-30
CN105740312A (zh) 2016-07-06
EP3038018A1 (en) 2016-06-29

Similar Documents

Publication Publication Date Title
JP6673683B2 (ja) 実行時間予測のためのデータベースクエリのクラスタリング
Diaz et al. An effective algorithm for hyperparameter optimization of neural networks
JP6969637B2 (ja) 因果関係分析方法および電子デバイス
US20180018586A1 (en) Apparatus and method for managing machine learning
JP2020522055A5 (ja)
US11308418B2 (en) Automatic selection of variables for a machine-learning model
JP2017049674A (ja) 予測性能曲線推定プログラム、予測性能曲線推定装置および予測性能曲線推定方法
US11366806B2 (en) Automated feature generation for machine learning application
WO2018144534A1 (en) Hardware-based machine learning acceleration
CN110020435B (zh) 一种采用并行二进制蝙蝠算法优化文本特征选择的方法
Yaghoobi et al. A review of modeling techniques for genetic regulatory networks
JP2016194914A (ja) 混合モデル選択の方法及び装置
JP7481902B2 (ja) 管理計算機、管理プログラム、及び管理方法
CN114902246A (zh) 用于大数据的快速交互式探索的***
Anderson et al. Sample, estimate, tune: Scaling bayesian auto-tuning of data science pipelines
Kumar et al. Scalable performance tuning of hadoop mapreduce: a noisy gradient approach
Huang et al. Mbct: Tree-based feature-aware binning for individual uncertainty calibration
CN113449182A (zh) 一种知识信息个性化推荐方法及***
CN111160715A (zh) 基于bp神经网络新旧动能转换绩效评价方法和装置
JP2016126771A (ja) コロプレスマップの設計
JP2009265729A (ja) 推定装置および方法、並びにプログラム
Rajput et al. Feature weighted unsupervised classification algorithm and adaptation for software cost estimation
Hewa Nadungodage et al. Online multi-dimensional regression analysis on concept-drifting data streams
Fu et al. Relevance feedback techniques and genetic algorithm for image retrieval based on multiple features
Thiyagarajan Platfora Method for High Data Delivery in Large Datasets

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181206

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191001

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190927

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: 20200204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200305

R150 Certificate of patent or registration of utility model

Ref document number: 6673683

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250