Skip to main content
QUICK REVIEW

[논문 리뷰] Shark: SQL and Rich Analytics at Scale

Reynold Xin, Josh Rosen|arXiv (Cornell University)|2012. 11. 27.
Data Quality and ManagementDecision Sciences인용 수 19
한 줄 요약

Shark는 고성능 데이터 분석 시스템으로, 장애 내성적인 메모리 기반 엔진을 사용해 SQL 쿼리 처리와 머신러닝과 같은 복잡한 분석을 통합한다. Resilient Distributed Datasets (RDDs)를 활용하고, 열 기반 저장 방식과 실시간 중간 쿼리 재계획 기법을 적용해 Hive와 Hadoop 대비 최대 100배 빠른 성능을 달성한다. 이는 SQL 및 반복적 머신러닝 워크로드 모두에서 가능하며, 장시간 실행되는 쿼리 중에도 세밀한 장애 복구를 지원한다.

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 추상화를 확장하여 메모리 기반 열 저장 방식과 열 압축을 도입한다.
  • 실시간으로 수집된 세밀한 통계를 바탕으로 쿼리 실행 중에 다시 계획하는 런타임 최적화 기법인 Partial DAG Execution (PDE)을 도입한다.
  • RDD의 라인재지 tracking을 통해 손실된 데이터 파artition을 다른 노드에서 결정론적으로 재계산함으로써 결정론적이고 세밀한 장애 복구를 가능하게 한다.
  • 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배 빠르게 실행된다.
  • Partial DAG Execution (PDE) 기법은 실행 중 실시간으로 수집된 데이터 통계를 기반으로 동적 쿼리 최적화를 가능하게 하여, 런타임에서 실제 데이터 특성에 맞게 성능을 적응적으로 향상시킨다.
  • Shark는 결정론적 라인재지 재계산을 통해 손실된 데이터 파artition을 일반적으로 몇 초 내에 복구함으로써 장시간 실행되는 쿼리 중에도 세밀한 장애 복구를 지원한다.
  • 열 기반 메모리 저장 방식은 데이터 크기와 I/O를 감소시켜 특히 고선택성 및 집계가 많은 분석 워크로드에서 뚜렷한 성능 향상을 이룬다.
  • Shark는 SQL, 머신러닝, 세밀한 장애 내성성을 하나의 오픈소스 엔진에서 네이티브로 통합한 최초의 시스템으로, 시스템 간 데이터 이동이 필요 없어졌다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.