Skip to main content
QUICK REVIEW

[論文レビュー] NeuroCard: One Cardinality Estimator for All Tables

Zongheng Yang, Amog Kamsetty|arXiv (Cornell University)|Jun 15, 2020
Advanced Database Systems and Queries参考文献 44被引用数 23
ひとこと要約

NeuroCardは、独立性の仮定をせず、データベーススキーマ全体にわたる表間およびカラム間の相関をモデル化する、単一で統合的なニューラル密度推定器を提案する。ジョインサンプリングとディープオートレグレッシブモデルを活用することで、従来手法よりも最大34倍高い精度を達成しながら、数MBのコンactなモデルサイズと、数秒から数分で学習可能な効率性を実現する。

ABSTRACT

Query optimizers rely on accurate cardinality estimates to produce good execution plans. Despite decades of research, existing cardinality estimators are inaccurate for complex queries, due to making lossy modeling assumptions and not capturing inter-table correlations. In this work, we show that it is possible to learn the correlations across all tables in a database without any independence assumptions. We present NeuroCard, a join cardinality estimator that builds a single neural density estimator over an entire database. Leveraging join sampling and modern deep autoregressive models, NeuroCard makes no inter-table or inter-column independence assumptions in its probabilistic modeling. NeuroCard achieves orders of magnitude higher accuracy than the best prior methods (a new state-of-the-art result of 8.5$ imes$ maximum error on JOB-light), scales to dozens of tables, while being compact in space (several MBs) and efficient to construct or update (seconds to minutes).

研究の動機と目的

  • 複雑なマルチジョインクエリに対して特に顕著な基数推定の不正確さという、クエリ最適化における重要な課題に取り組む。
  • 独立性の仮定に依存する既存のデータ駆動型推定器の限界を克服し、複雑な表間相関を捉えきれない問題を解決する。
  • 再トレーニングが不要な、スケーラブルで汎用的な基数推定器を構築する。これは、スキーマ内の任意のテーブルサブセットに適用可能である。
  • 完全な OUTER JOIN を事前に計算するのではなく、完全な OUTER JOIN からのサンプリングによって、トレーニングコストとモデルサイズを削減しながら高い精度を維持する。
  • クエリ固有の仮定を設けずに、すべてのテーブルの完全な結合分布を学習することで、分布シフトにも強靭な推定を可能にする。

提案手法

  • スキーマ内のすべてのテーブルの完全 OUTER JOIN に対して、表間およびカラム間の相関をすべて捉えるための単一のディープオートレグレッシブ(AR)モデルを構築する。
  • 各キーに対する正しいサンプリング重みを事前に計算するための線形時間の動的計画法を用い、完全 OUTER JOIN 分布からのバイアスなしサンプリングを可能にする。
  • 計算された重みを用いて完全 OUTER JOIN からタプルをサンプリングし、真のジョイン分布を保持するトレーニングデータを生成する。
  • サンプルデータ上でディープオートレグレッシブモデル(例:フローベースドまたはオートレグレッシブノーマライジングフローに基づくもの)を学習させ、結合確率分布を学習する。
  • 推論時、学習済みモデルを用いて条件付き確率を計算し、属性を統合して、任意のテーブルサブセットにおける任意のクエリの選択性および基数を推定する。
  • 複雑な述語を扱うために、学習済み分布からサンプリングし、サンプルタプル上で述語を評価する。

実験結果

リサーチクエスチョン

  • RQ1独立性の仮定をせず、データベース内のすべての表間およびカラム間相関をモデル化できる単一のニューラル密度推定器は構築可能か?
  • RQ2完全 OUTER JOIN を事前に計算するのではなく、計算的に非現実的であるにもかかわらず、このようなモデルを効率的に学習できるか?
  • RQ3単一でコンactなモデルを用いて、多様なクエリタイプやテーブルコンビネーションにおいて高い推定精度を達成できるか?
  • RQ4正しい重みを用いて完全 OUTER JOIN 分布からサンプリングすることで、基数推定に適した代表的なトレーニング分布が得られるか?
  • RQ5従来のクエリ駆動型およびデータ駆動型基数推定器と比較して、本手法は精度と効率の両面で優れているか?

主な発見

  • JOB-lightベンチマークにおいて、NeuroCardはDeepDBよりも最大34倍高い精度を達成し、最良の従来手法よりも最大誤差が8.5倍低い。
  • 複雑なマルチジョインクエリにおいても、クエリ駆動型およびデータ駆動型推定器を大きく上回る、最先端のパフォーマンスを発揮する。
  • NeuroCardはコンactであり、数メガバイトのストレージで十分で、数秒から数分でトレーニングまたは更新が可能である。
  • 数十のテーブルにまでスケーリング可能であり、実世界のデータベーススキーマにおける実用性を示している。
  • 独立性の仮定なしに完全な結合分布を学習することで、従来の推定器が見逃す複雑な相関を捉えきれる。
  • 重み付きジョインサンプリングの活用により、トレーニングデータが真のジョイン分布を代表するようになり、任意のテーブルサブセットにおける任意のクエリへの正確な一般化が可能になる。

より良い研究を、今すぐ始めましょう

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。