Skip to main content
QUICK REVIEW

[論文レビュー] BlinkDB: Queries with Bounded Errors and Bounded Response Times on Very Large Data

Sameer Agarwal, Aurojit Panda|arXiv (Cornell University)|Mar 25, 2012
Data Management and Algorithms参考文献 24被引用数 45
ひとこと要約

BlinkDB は分散型でサンプリングに基づくクエリエンジンであり、事前に多次元・多解像度のサンプルを計算することで、ユーザーが指定した誤差または応答時間の上限を満たすように、大規模データセット上でインタラクティブで近似可能な SQL クエリを実行可能にする。17TB のデータに対して 2–10% の誤差で 1 秒未満の応答時間を達成し、従来のシステムを 100 倍以上上回る性能を発揮する。

ABSTRACT

In this paper, we present BlinkDB, a massively parallel, sampling-based approximate query engine for running ad-hoc, interactive SQL queries on large volumes of data. The key insight that BlinkDB builds on is that one can often make reasonable decisions in the absence of perfect answers. For example, reliably detecting a malfunctioning server using a distributed collection of system logs does not require analyzing every request processed by the system. Based on this insight, BlinkDB allows one to trade-off query accuracy for response time, enabling interactive queries over massive data by running queries on data samples and presenting results annotated with meaningful error bars. To achieve this, BlinkDB uses two key ideas that differentiate it from previous work in this area: (1) an adaptive optimization framework that builds and maintains a set of multi-dimensional, multi-resolution samples from original data over time, and (2) a dynamic sample selection strategy that selects an appropriately sized sample based on a query's accuracy and/or response time requirements. We have built an open-source version of BlinkDB and validated its effectiveness using the well-known TPC-H benchmark as well as a real-world analytic workload derived from Conviva Inc. Our experiments on a 100 node cluster show that BlinkDB can answer a wide range of queries from a real-world query trace on up to 17 TBs of data in less than 2 seconds (over 100 imes faster than Hive), within an error of 2 - 10%.

研究の動機と目的

  • 広告ターゲティング、金融取引、サービス監視などのリアルタイム応用分野におけるテラバイト規模のデータに対する低遅延分析の増大するニーズに対応すること。
  • 完全なテーブルスキャンを必要とせず、時間的に敏感な意思決定に不適切なほど遅い処理を避けるために、大規模データセット上でインタラクティブでアドホックな SQL クエリを可能にすること。
  • 統計的に意味のある誤差境界を伴うクエリ結果を提供すると同時に、知的なサンプル選択により応答時間を最小限に抑えること。
  • 偏ったデータ分布における均一サンプリングの限界を克服するため、希少なサブグループをよりよく表現するための層別化および多次元サンプルを用いること。
  • 将来的で未確認のクエリを含む幅広いクエリカバレッジを確保するために、ストレージ制約とクエリテンプレートに配慮したサンプル作成を最適化すること。

提案手法

  • BlinkDB は、さまざまな属性の組み合わせに対して、均一および層別化の両方の多次元・多解像度のサンプルを事前に計算・維持することで、多様なクエリワークロードをサポートする。
  • 履歴のクエリテンプレートとストレージ予算制約に基づいて、層別サンプルを選択する最適化フレームワークを用いて、サンプル作成を最適化問題として定式化する。
  • クエリ実行時、BlinkDB は小さなサンプルを用いてクエリの選択性を推定し、ユーザーが指定した誤差または応答時間の上限を満たす最適なサンプル(均一または層別)を選択する。
  • 統計的サンプリング理論を活用して信頼区間と誤差棒を計算し、結果に意味のある正確性保証を添付する。
  • Hive や Shark(Hadoop/Spark)と統合されており、クエリ実行エンジンの変更なしに標準的なビッグデータプラットフォームにデプロイ可能である。
  • 等価結合および集計クエリの両方をサポートし、バイアス付きサンプリングによりサブセット誤差を低減することで、希少なサブグループを含む複雑なクエリに対応できる。

実験結果

リサーチクエスチョン

  • RQ1サンプリングベースのクエリエンジンは、誤差を制限しつつ、テラバイト規模のデータに対してインタラクティブな応答時間(1 秒未満)を達成できるか?
  • RQ2ユーザーが指定した正確性およびパフォーマンス制約を満たすために、システムは最適なサンプルサイズおよびタイプ(均一対層別)を動的に選択できるか?
  • RQ3多次元・多解像度のサンプリングは、均一サンプリングと比較して、偏ったデータ分布におけるクエリの正確性をどの程度向上できるか?
  • RQ4サンプル作成を、過去および将来のアドホッククエリの両方のカバレッジを最適化しつつ、ストレージコストとバランスを取る最適化問題として定式化できるか?
  • RQ5このようなシステムは、標準的な Hadoop/Spark クラスタに効率的にデプロイ可能であり、100 ノードのクラスタに 17TB のデータでスケーリング可能か?

主な発見

  • BlinkDB は、TPC-H および実世界のワークロードを含む広範なクエリに対して、17TB のデータで 2 秒未満の応答時間を達成し、Hive よりも 100 倍以上優れた性能を発揮する。
  • システムは、正確な結果と比較して 2–10% の誤差範囲内でクエリの正確性を維持しており、統計的に意味のある誤差境界がユーザーに添付されている。
  • 層別サンプリングはサブセット誤差を顕著に低減し、希少なサブグループの収束を改善するため、低頻度のグループに対しても信頼性の高い結果を提供できる。
  • 動的サンプル選択戦略は正確性とパフォーマンスのバランスを効果的にとることができ、ユーザーが応答時間と誤差を最小限のオーバーヘッドでトレードオフできる。
  • 100 ノードのクラスタでの評価では、BlinkDB が多様で予測不能なクエリワークロードを一貫した低遅延性能と誤差の制限付きで処理できることを示している。
  • オープンソース実装は、Conviva Inc. のような生産システムからの実世界の分析パイプラインにおいても実用的なデプロイが可能であることを示している。

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

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

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

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