[논문 리뷰] S2RDF: RDF Querying with SPARQL on Spark
S2RDF는 쿼리 형태에 관계없이 쿼리 입력 크기를 최소화하는 데 초점을 맞춘 RDF 데이터를 위한 새로운 관계형 파artitioning 스키마인 ExtVP를 도입한다. Apache Spark 기반으로 구축되었으며, SPARQL를 SQL로 컴파일하여 10억 트리플 데이터셋에서 밀리초 수준의 쿼리 성능을 달성한다. 이는 기존 최고 수준의 SPARQL-on-Hadoop 시스템보다 평균적으로 10배 이상 빠르며, 고직경 쿼리에 대해서도 성능이 떨어지지 않는다.
RDF has become very popular for semantic data publishing due to its flexible and universal graph-like data model. Yet, the ever-increasing size of RDF data collections makes it more and more infeasible to store and process them on a single machine, raising the need for distributed approaches. Instead of building a standalone but closed distributed RDF store, we endorse the usage of existing infrastructures for Big Data processing, e.g. Hadoop. However, SPARQL query performance is a major challenge as these platforms are not designed for RDF processing from ground. Thus, existing Hadoop-based approaches often favor certain query pattern shape while performance drops significantly for other shapes. In this paper, we describe a novel relational partitioning schema for RDF data called ExtVP that uses a semi-join based preprocessing, akin to the concept of Join Indices in relational databases, to efficiently minimize query input size regardless of its pattern shape and diameter. Our prototype system S2RDF is built on top of Spark and uses its relational interface to execute SPARQL queries over ExtVP. We demonstrate its superior performance in comparison to state of the art SPARQL-on-Hadoop approaches using the recent WatDiv test suite. S2RDF achieves sub-second runtimes for majority of queries on a billion triples RDF graph.
연구 동기 및 목표
- 분산 환경에서 대규모 RDF 데이터에서 SPARQL 쿼리 처리의 성능 저하 문제를 해결하기 위해.
- 선택도가 낮거나 고직경 쿼리에서 성능이 저하되는 기존 Hadoop 기반 SPARQL 엔진의 한계를 극복하기 위해.
- 특수화된 RDF 스토어에 의존하지 않고, Spark와 같은 일반적인 빅데이터 플랫폼을 활용해 효율적이고 인터랙티브한 SPARQL 쿼리 처리를 가능하게 하기 위해.
- 구조적 복잡성이나 직경에 관계없이 어떤 SPARQL 쿼리 패턴이든 입력 크기를 줄일 수 있는 스토리지 스키마를 설계하기 위해.
- ExtVP 테이블에 대해 설정 가능한 선택도 임계값을 통해 스토리지 오버헤드와 성능 사이의 실용적 트레이드오프를 제공하기 위해.
제안 방법
- ExtVP는 SPARQL 쿼리의 삼중항 패턴 간 조인 상관관계를 기반으로 사전에 반조인 감소를 계산함으로써 수직 파artitioning(VP)을 확장한다.
- 선택도 요소(SF) 임계값을 사용하여 높은 선택도를 가진 ExtVP 테이블만 물리적으로 저장함으로써 스토리지 오버헤드를 줄이고 성능 이점을 유지한다.
- 테이블 통계를 활용하여 SPARQL 쿼리를 Spark SQL 쿼리로 컴파일하며, 실행에 가장 선택도가 높은 테이블을 선택한다.
- ExtVP 스키마를 기반으로 Spark의 인-memory SQL 인터페이스를 활용해 효율적이고 분산된 쿼리 실행을 수행한다.
- 관계형 데이터베이스의 조인 인덱스와 개념적으로 유사하지만, RDF의 삼중항 기반 구조와 SPARQL의 패턴 매칭을 고려해 특화된 방식이다.
- 선택도를 기반으로 최적의 테이블을 선택하는 쿼리 컴파일러가 입력 크기와 실행 비용을 최소화한다.
실험 결과
연구 질문
- RQ1RDF 데이터에 대한 관계형 파artitioning 스키마가 직경이나 형태에 관계없이 어떤 SPARQL 쿼리 패턴이든 입력 크기를 크게 줄일 수 있는가?
- RQ2Spark를 사용하여 10억 트리플 RDF 그래프에서 ExtVP가 복잡하거나 선택도가 낮은 쿼리에 대해서도 밀리초 수준의 쿼리 성능을 달성할 수 있는가?
- RQ3ExtVP 테이블에 선택도 임계값을 포함시키는 것이 스토리지 오버헤드와 쿼리 성능 사이의 트레이드오프에 어떤 영향을 미치는가?
- RQ4다양한 쿼리 워크로드에서 S2RDF는 최고 수준의 SPARQL-on-Hadoop 시스템과 비교해 성능 면에서 어떻게 다른가?
- RQ5Spark와 같은 일반적인 빅데이터 플랫폼이 대규모 RDF 데이터셋에서 인터랙티브 SPARQL 쿼리 처리에 효과적으로 사용될 수 있는가, 성능 저하가 최소화되는가?
주요 결과
- WatDiv 테스트 세트를 사용하여 10억 트리플 RDF 데이터셋에서 S2RDF는 대부분의 쿼리에 대해 밀리초 수준의 실행 시간을 달성한다.
- 모든 쿼리 형태에서 평균적으로 S2RDF는 최고 수준의 SPARQL-on-Hadoop 시스템보다 10배 이상 빠른 성능을 보인다.
- 선택도 임계값이 0.25일 경우, S2RDF는 전체 ExtVP 스키마의 95% 성능 이점을 달성하면서도 테이블 튜플 수와 스토리지 크기를 각각 25%로만 사용한다.
- 선형, 스타형, 복잡한 쿼리의 경우 SF TH = 0.25를 초과해 성능 향상이 거의 없지만, 스노우플레이크형 쿼리(F3, F5 등)는 중간 테이블의 선택도가 0.25 < SF < 0.5인 경우 더 높은 임계값에서 유의미한 성능 향상을 보인다.
- S2RDF의 성능는 기존 시스템과 달리 쿼리 직경에 영향을 받지 않으며, 긴 체인이나 선택도가 낮은 쿼리에서 성능 저하가 심각하게 발생하지 않는다.
- ExtVP는 사전에 계산된 반조인 감소를 통해 끌고 있는 튜플을 제거함으로써 입력 크기를 줄이며, 이는 작은 직경이 아닌 모든 쿼리 패턴에 효과적이다.
더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.