Skip to main content
QUICK REVIEW

[論文レビュー] Pay One, Get Hundreds for Free: Reducing Cloud Costs through Shared Query Execution

Renato Marroquín, Ingo Müller|arXiv (Cornell University)|Sep 1, 2018
Advanced Database Systems and Queries参考文献 19被引用数 5
ひとこと要約

本論文では、Amazon Athena や Google BigQuery などのクラウドベースのクエリ・アズ・ア・サービス(QaaS)システムで、複数のクエリを共有実行可能にするSQLレベルのクエリリライト技術を提案する。これにより、クエリを1回の実行にバッチ処理することで、コストを削減できる。基盤エンジンを変更せずに、クエリ間でデータアクセスを再利用することで、最大107倍のコスト削減と66倍のスループット向上を達成し、バイト単価課金モデルの下では、追加クエリのコストがほぼゼロに近くなる。

ABSTRACT

Cloud-based data analysis is nowadays common practice because of the lower system management overhead as well as the pay-as-you-go pricing model. The pricing model, however, is not always suitable for query processing as heavy use results in high costs. For example, in query-as-a-service systems, where users are charged per processed byte, collections of queries accessing the same data frequently can become expensive. The problem is compounded by the limited options for the user to optimize query execution when using declarative interfaces such as SQL. In this paper, we show how, without modifying existing systems and without the involvement of the cloud provider, it is possible to significantly reduce the overhead, and hence the cost, of query-as-a-service systems. Our approach is based on query rewriting so that multiple concurrent queries are combined into a single query. Our experiments show the aggregated amount of work done by the shared execution is smaller than in a query-at-a-time approach. Since queries are charged per byte processed, the cost of executing a group of queries is often the same as executing a single one of them. As an example, we demonstrate how the shared execution of the TPC-H benchmark is up to 100x and 16x cheaper in Amazon Athena and Google BigQuery than using a query-at-a-time approach while achieving a higher throughput.

研究の動機と目的

  • ユーザーが処理バイト数に応じて課金される、高コストなクラウドベースのクエリ・アズ・ア・サービス(QaaS)システムにおける高い実行コストを低減すること。
  • 基盤データベースエンジンの変更やクラウドプロバイダーの支援を必要とせず、顕著なコスト削減を実現すること。
  • SQLレベルの変換のみを用いて、大規模な共有クエリ実行の実現可能性と利点を調査すること。
  • リライトによるクエリバッチ処理が、既存の課金モデル下で追加クエリのマージナルコストをほぼゼロに近づけることを実証すること。

提案手法

  • クエリごとのタプルが属する元のクエリを追跡できるように、ネストされたアノテート済み表現を用いて、複数の同時実行SQLクエリを1つのバッチクエリにリライトする。
  • ユーザーおよびエンジンの変更なしに、透明にクエリをグループ化・リライトするミドルウェア層を用いる。
  • 各演算子で選択的出力プロジェクションと共有実行を可能にするために、中間結果にクエリ識別子をアノテートする。
  • 共通のジョインやスキャンを多く含む多様なクエリ間で最大限の共有を実現するため、グローバル論理実行計画をDAGとして構築する。
  • コストベースの最適化のオーバーヘッドを避けるために、高影響度の中間結果をマテリアライズすることに焦点を当て、グローバル計画を木構造計画に手動で変換する。
  • さまざまなバッチサイズと構成で、Amazon Athena および Google BigQuery における性能とコストをTPC-Hベンチマークを用いて評価する。

実験結果

リサーチクエスチョン

  • RQ1基盤エンジンの変更なしに、サーバessなSQLベースのクエリ・アズ・ア・サービスシステムで、共有クエリ実行がクラウドクエリコストを低減できるか?
  • RQ2エンジンレベルの変更ではなく、SQLレベルのリライトによるクエリバッチ処理で、どの程度のコスト削減が達成可能か?
  • RQ3重複するが同一でないデータにアクセスするクエリにおいて、共有実行はスループットと実行時間にどのような影響を与えるか?
  • RQ4共通の中間結果をマテリアライズする代償と、それに伴うコストとパフォーマンスの向上のトレードオフは何か?
  • RQ5個別のタイプごとのグループ化と比較して、1つのグローバル実行計画がコストとスループットの面で優れているか?

主な発見

  • 共有実行を用いることで、Amazon Athena において128個のTPC-H Query 6インスタンスの実行コストは3.417ドルから0.028ドルにまで低下し、122倍のコスト削減と66倍のスループット向上を達成した。
  • Google BigQuery では、同様のワークロードで16倍のコスト削減(16.07ドルから0.088ドル)と10倍のスループット向上を達成した(Query 10を除く)が、128倍のコスト削減を達成した。
  • BigQueryにおけるグローバル共有計画は、個別実行と比較して5倍のスループットと9.7倍のコスト改善を達成した。また、実行時間の21%が共有中間結果のマテリアライズに費やされた。
  • マテリアライズのオーバーヘッドが存在しても、バイト単価課金モデルの下でバッチサイズが増加してもコストがほぼ一定に保たれ、追加クエリがほぼ無料に近くなった。
  • 非最適化可能なクエリを除いた場合、Amazon Athena で最大107倍、BigQuery で最大128倍のコスト削減を達成した。これは、SQLレベルのリライトによるコスト削減の可能性を示している。
  • クエリ固有のアノテーションと選択的出力プロジェクションを活用することで、同一でない複雑なクエリに対しても、本手法は有効であることが示された。

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

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

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

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