Skip to main content
QUICK REVIEW

[論文レビュー] Shark: SQL and Rich Analytics at Scale

Reynold Xin, Josh Rosen|arXiv (Cornell University)|Nov 27, 2012
Data Quality and ManagementDecision Sciences被引用数 19
ひとこと要約

Shark は、信頼性の高いメモリ内エンジンを用いて、SQL クエリ処理と機械学習などの複雑な分析を統合する高性能なデータ分析システムである。分散データセット(RDD)を用い、カラムストレージと実行中の中間再計画を動的に適用することで、Hive や Hadoop よりも最大 100 倍の高速性能を達成し、長時間実行されるクエリにおける細粒度の障害回復をサポートする。

ABSTRACT

Shark is a new data analysis system that marries query processing with complex analytics on large clusters. It leverages a novel distributed memory abstraction to provide a unified engine that can run SQL queries and sophisticated analytics functions (e.g., iterative machine learning) at scale, and efficiently recovers from failures mid-query. This allows Shark to run SQL queries up to 100x faster than Apache Hive, and machine learning programs up to 100x faster than Hadoop. Unlike previous systems, Shark shows that it is possible to achieve these speedups while retaining a MapReduce-like execution engine, and the fine-grained fault tolerance properties that such engines provide. It extends such an engine in several ways, including column-oriented in-memory storage and dynamic mid-query replanning, to effectively execute SQL. The result is a system that matches the speedups reported for MPP analytic databases over MapReduce, while offering fault tolerance properties and complex analytics capabilities that they lack.

研究の動機と目的

  • インタラクティブで複雑な分析ワークロード向けに、MapReduce ベースのシステムにおける性能ボトルネックを解消すること。
  • 一元的で障害に強い実行時環境において、SQL クエリと反復的機械学習アルゴリズムの両方を効率的に実行できること。
  • 完全な再実行を必要とせずに、長時間実行されるクエリ中に細粒度の障害耐性をサポートすること。
  • MPP データベースの高速性と、MapReduce に類似したエンジンの障害耐性および分析の表現力の両方を統合すること。
  • データのエクスポートを不要にすることで、ネイティブな SQL から機械学習へのパイプラインを実現すること。

提案手法

  • リレーショナルデータ処理の最適化を図るため、Spark の RDD 抽象を拡張し、メモリ内カラムストレージとカラム圧縮を導入する。
  • 実行中に収集したリアルタイムで細粒度の統計に基づき、実行計画を動的に再計画するランタイム最適化技術「部分 DAG 実行(PDE)」を導入する。
  • RDD のラインレージトラッキングを用いて、障害で失われたデータパーティションを他のノードで決定論的に再計算することで、細粒度の障害回復を実現する。
  • SQL クエリと同一の実行エンジン内でネイティブに機械学習アルゴリズムを統合することで、複雑な分析をサポートする。
  • MapReduce 式のタスクスケジューリングとデータベース式の最適化技術を組み合わせたハイブリッド実行モデルを採用し、効率的なクエリ実行を実現する。
  • HiveQL と Hive メタストアとの互換性を維持することで、Apache Hive とのシームレスな統合を可能にする。

実験結果

リサーチクエスチョン

  • RQ1MPP データベース並みの性能を実現する一方で、MapReduce に類似したエンジンの障害耐性と表現力も維持できるシステムは実現可能か?
  • RQ2メモリ内カラムストレージと動的クエリ最適化は、大規模データ処理における遅延を顕著に低減できるか?
  • RQ3細粒度の障害耐性を備えた単一の統合エンジンで、複雑な分析と SQL ワークロードの両方を効率的に処理できるか?
  • RQ4実行中に収集したリアルタイム統計に基づくクエリ再計画は、長時間実行される複雑なクエリの性能を向上させられるか?
  • RQ5障害耐性や拡張性を損なわず、Hadoop や Hive よりも 100 倍の高速化を達成できるようなシステムは実現可能か?

主な発見

  • Shark は、標準的な SQL クエリにおいて Apache Hive よりも最大 100 倍の高速なクエリ実行を達成しており、実世界の導入事例では 40–100 倍の高速化が報告されている。
  • ロジスティック回帰などの機械学習ワークロードは、メモリ内実行と反復的計算最適化のおかげで、Hadoop よりも最大 100 倍の高速化が達成された。
  • 部分 DAG 実行(PDE)技術により、実行中に収集した実データ統計に基づいた動的クエリ最適化が可能になり、実行時における性能向上が実現された。
  • RDD のラインレージトラッキングにより、障害で失われたデータパーティションを、通常数秒以内に決定論的に再計算することで、細粒度の障害耐性を実現した。
  • カラムストレージのメモリ内配置により、データサイズと I/O が削減され、特に選択性が高く集計処理が多用される分析ワークロードにおいて顕著な性能向上が得られた。
  • Shark は、SQL、機械学習、細粒度の障害耐性を統合した最初のオープンソースのエンジンであり、システム間のデータ移動を排除した。

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

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

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

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