[论文解读] PRoST: Distributed Execution of SPARQL Queries Using Mixed Partitioning Strategies
PRoST 是一个基于 Apache Spark 的分布式 RDF 存储系统,结合了垂直分割(Vertical Partitioning)和属性表(Property Table)策略,以优化 SPARQL 查询性能。它在无需大量预计算的情况下,实现了对多种查询类型的优越查询运行时间,优于最先进的系统如 SPARQLGX 和 Rya,且在性能上与 S2RDF 相当,同时支持更快的数据加载。
The rapidly growing size of RDF graphs in recent years necessitates distributed storage and parallel processing strategies. To obtain efficient query processing using computer clusters a wide variety of different approaches have been proposed. Related to the approach presented in the current paper are systems built on top of Hadoop HDFS, for example using Apache Accumulo or using Apache Spark. We present a new RDF store called PRoST (Partitioned RDF on Spark Tables) based on Apache Spark. PRoST introduces an innovative strategy that combines the Vertical Partitioning approach with the Property Table, two preexisting models for storing RDF datasets. We demonstrate that our proposal outperforms state-of-the-art systems w.r.t. the runtime for a wide range of query types and without any extensive precomputing phase.
研究动机与目标
- 解决在分布式环境中高效查询大规模 RDF 图的挑战。
- 设计一种存储模型,以在多种 SPARQL 查询类型下实现快速加载与高性能查询之间的平衡。
- 在不依赖耗时预计算的前提下,保持或提升查询效率。
- 评估新型混合数据模型相较于现有基于 Hadoop 的 RDF 系统的性能表现。
- 为实际应用场景提供一种实用且可扩展的解决方案,适用于未知或可变的数据与查询工作负载。
提出的方法
- 该系统采用混合存储模型,整合垂直分割(VP)与属性表,将 RDF 三元组按主体、谓词和对象分别存储在独立的分区关系中。
- 利用 Apache Spark SQL 将 SPARQL 查询转换为经过优化的执行计划,借助 Catalyst 优化器和物理执行计划。
- 属性表结构通过将具有相同谓词的三元组分组,实现高效的等值连接,从而减少数据混洗(shuffle)开销。
- 系统避免预计算半连接或物化中间结果,最大限度减少加载时间和存储开销。
- 通过谓词下推、基于谓词的剪枝以及利用统计信息选择高效的连接顺序,优化查询执行。
- 实现基于 Spark 的内存处理模型,利用主内存计算实现比基于磁盘的 MapReduce 更快的执行性能。
实验结果
研究问题
- RQ1在基于 Spark 的分布式系统中,结合垂直分割与属性表是否能提升 SPARQL 查询性能?
- RQ2所提出的混合模型是否能在不依赖预计算的前提下,对多种 SPARQL 查询类型保持高性能?
- RQ3与 S2RDF、Rya 和 SPARQLGX 等现有系统相比,PRoST 在查询运行时间和加载时间上的表现如何?
- RQ4属性表组件在复杂查询、星型查询和雪花型查询中对性能的提升程度如何?
- RQ5该系统是否能在不同谓词数量和查询模式的数据集上保持一致的性能表现?
主要发现
- 在所有查询类型中,PRoST 的性能比 SPARQLGX 提高约一个数量级,证实了混合数据模型的优势。
- 对于复杂(C)查询,PRoST 的平均查询时间为 9,364ms,而 S2RDF 为 3,392ms,表明尽管未使用预计算的半连接,PRoST 仍表现出色。
- PRoST 显著优于 Rya,后者的平均查询时间为 2,195,322ms,原因在于 Rya 在处理复杂连接时效率低下。
- 对于雪花型(F)查询,PRoST 的平均时间为 5,923ms,而 S2RDF 为 1,564ms,表明 S2RDF 在特定情况下因预计算而具有优势。
- 引入属性表显著提升了所有查询类型的性能,尤其在星型(S)和复杂(C)查询中,共享谓词使得连接处理更加高效。
- PRoST 在所有查询类型中均表现出一致的性能,且不依赖于数据集特征(如谓词数量),而其他依赖预计算的系统则存在此类依赖。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。