Skip to main content
QUICK REVIEW

[논문 리뷰] Approximate Distributed Joins in Apache Spark

Do Le Quoc, İstemi Ekin Akkuş|arXiv (Cornell University)|2018. 05. 15.
Advanced Database Systems and Queries참고 문헌 34인용 수 5
한 줄 요약

이 논문은 Apache Spark용 새로운 근사 분산 조인 연산자인 ApproxJoin을 제안한다. ApproxJoin는 블룸 필터 스케칭과 분層 표본 추출을 결합하여 조인 결과의 통계적 정확성을 유지하면서 데이터 재정렬과 통신 비용을 줄인다. 조인에 적합하지 않은 튜플을 조기에 필터링하고 조인 중에 편향 보정된 분층 표본 추출을 적용함으로써, 표준 Spark 조인 대비 6–9배의 속도 향상과 5–82배의 재정렬된 데이터 감소를 달성하며, 엄격한 오차 범위를 확보하고 사전 입력 지식이 필요로 하지 않는다.

ABSTRACT

The join operation is a fundamental building block of parallel data processing. Unfortunately, it is very resource-intensive to compute an equi-join across massive datasets. The approximate computing paradigm allows users to trade accuracy and latency for expensive data processing operations. The equi-join operator is thus a natural candidate for optimization using approximation techniques. Although sampling-based approaches are widely used for approximation, sampling over joins is a compelling but challenging task regarding the output quality. Naive approaches, which perform joins over dataset samples, would not preserve statistical properties of the join output. To realize this potential, we interweave Bloom filter sketching and stratified sampling with the join computation in a new operator, ApproxJoin, that preserves the statistical properties of the join output. ApproxJoin leverages a Bloom filter to avoid shuffling non-joinable data items around the network and then applies stratified sampling to obtain a representative sample of the join output. Our analysis shows that ApproxJoin scales well and significantly reduces data movement, without sacrificing tight error bounds on the accuracy of the final results. We implemented ApproxJoin in Apache Spark and evaluated ApproxJoin using microbenchmarks and real-world case studies. The evaluation shows that ApproxJoin achieves a speedup of 6-9x over unmodified Spark-based joins with the same sampling rate. Furthermore, the speedup is accompanied by a significant reduction in the shuffled data volume, which is 5-82x less than unmodified Spark-based joins.

연구 동기 및 목표

  • 대규모 데이터셋에서 Apache Spark와 같은 분산 시스템에서의 등가조인(equi-joins)에 따른 높은 통신 및 계산 비용을 해결하기 위해.
  • 사전에 계산된 통계나 색인 자료가 필요로 하지 않는, 데이터 레이크 상에서 임의의 분석 워크로드에 대해 정확하고 저지연의 근사 쿼리 처리를 가능하게 하기 위해.
  • 입력 데이터에 대한 단순 표본 추출이 내재한 편향과 부정확성을 해결하고 실제 조인 결과의 통계적 성질을 유지하기 위해.
  • 사용자가 정의한 지연 시간 및 정확도 제약 조건을 충족시키기 위해 런타임에서 추정된 조인 카디널리티에 기반해 표본 추출 비율을 동적으로 조정할 수 있는 시스템을 설계하기 위해.
  • 기본 키, 히스토GRAM, 캐시된 표본 등의 사전 지식이 필요로 하지 않도록 하여, 임의의 인덱스가 없는 데이터에 적용 가능한 시스템을 설계하기 위해.

제안 방법

  • 네트워크를 통해 데이터 이동을 크게 줄이기 위해 재정렬 전에 비조인 가능한 튜플을 블룸 필터를 사용해 필터링한다.
  • 조인 결과의 카디널리티를 추정하기 위해 블룸 필터를 사용하며, 이는 사용자가 정의한 정확도 및 지연 시간 요구사항을 충족시키기 위한 동적 표본 추출 비율 선택을 안내한다.
  • 남은 조인 가능 튜플에 대해 조인 동안 분층 표본 추출을 적용하여 전체 조인 결과의 대표 표본을 생성한다.
  • 호르비츠-트로프 추정기(Horvitz-Thompson estimator)를 사용해 잠재적인 표본 추출 편향을 보정하고, 중심극한정리(Central Limit Theorem)를 활용하여 근사의 통계적 신뢰성을 확보한다.
  • 표준 조인의 즉시 대체 가능한 연산자로 ApproxJoin을 Apache Spark에 통합하여 이원 및 다원 조인 모두를 지원한다.
  • 기본 키, 외래 키, 또는 입력 데이터에 대한 사전 계산된 통계 자료에 의존하지 않는 조건에 독립적인 시스템 설계

실험 결과

연구 질문

  • RQ1정확도를 희생시키지 않고 분산 등가조인에서의 통신 오버헤드를 줄일 수 있는가?
  • RQ2조인 동안의 표본 추출이 전체 조인 결과의 통계적 성질을 유지할 수 있는가? 단순한 입력 표본 추출에서 발생하는 편향을 피할 수 있는가?
  • RQ3런타임에서 추정된 카디널리티에 기반해 조인 중 표본 추출 비율을 동적으로 조정할 수 있는가? 이는 사용자가 정의한 정확도 및 지연 시간 제약 조건을 충족시킬 수 있는가?
  • RQ4사전에 계산된 통계, 히스토GRAM, 또는 색인 자료가 없이도 높은 성능과 낮은 데이터 재정렬을 달성할 수 있는가?
  • RQ5블룸 필터와 분층 표본 추출의 조합은 기존의 근사 조인 기법 대비 속도 향상과 데이터 이동 감소 측면에서 어떻게 비교되는가?

주요 결과

  • 동일한 표본 추출 비율을 사용할 때 ApproxJoin은 표준 Spark 기반 등가조인 대비 6–9배의 속도 향상을 달성하여 쿼리 응답 시간을 크게 단축시킨다.
  • 수정되지 않은 Spark 조인 대비 재정렬된 데이터의 양을 5–82배 감소시켜 통신 비용 절감 효과를 입증한다.
  • 표본 추출 없이도 ApproxJoin은 표준 Spark보다 2–10배의 속도 향상을 달성하여, 블룸 필터 기반 필터링만으로도 성능 향상이 가능함을 시사한다.
  • 호르비츠-트로프 추정기로 인한 편향 보정 덕분에 오차 범위가 매우 좁게 유지되어 신뢰할 수 있는 통계적 신뢰구간을 보장한다.
  • 이 방법은 이원 및 다원 조인 모두에 효과적이며, 기본 키-외래 키 관계나 사전 계산된 통계 자료가 필요로 하지 않는다.
  • 마이크로 벤치마크, TPC-H 쿼리, 실세계 워크로드에 대한 평가를 통해 다양한 분석 워크로드에서 이 방법의 강건성과 확장성을 확인하였다.

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

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

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

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