本文由学者PengPeng,LeiZou,Lei Chen和DongyanZhao于2015年在期刊《Computer Science》联合发表
原文下载链接文末自取
主要概括:由于RDF数据高速增长,需要分布式管理RDF数据。分布式RDF数据设计需要将RDF数据划分为片段,再分配片段。分发设计=分段+分配。本文提出利用工作负载中查询结构之间的内在相似性处理碎片化和分配,减少SPARQL查询处理过程中交又匹配的数量和通信成本。基于所选的频繁访问模式,使用垂直和水平分段划分RDF图,同时满足各种查询处理目标。垂直分段提高吞吐量,水平分段提高性能。分割后再将碎片分布到各站点。
将RDF数据集看为图,主语和宾语通过谓语连接。SPARQL是访问RDF存储库的查询语言。回答SPARQL查询Q=在RDF图G上找到查询图Q的子图匹配。在分布式数据库设计中,存在两个问题:
-
数据碎片和分配:先将RDF图分成片段,再分配在站点之间。分布式系统的数据分段和分配过程的要点是在分布式查询评估期间降低不同分段之间的通信成本,为了通信成本最小化,大多数图碎片策略要使全局目标最大化。
-
评估SPARQL查询:子图匹配计算的通信成本不仅取决RDF图,还取决查询图。最小化通信成本与最大化全局目标之间无直接关系。本文的基于局部模式的分割策略可降低子图匹配计算的通信成本。
解决方案:
- 频繁访问模式选择:对于频繁访问模式,通过在RDF图中收集其所有匹配项构建片段。如果 SPARQL查询满足频繁访问模式,则可减少通信成本,提高查询性能。如果简单选择所有的频繁访问模式作为隐式模式,数据复制会消耗大量空间成本。
- 垂直和水平碎片:基于所选的频繁访问模式,设计了垂直和水平分段,两种策略适用于不同的查询处理目标。垂直碎片策略改善整个查询,并要求将一种频繁访问模式所涉及的所有结构都放置在同一片段。水平碎片策略将一种频繁访问模式所涉及的结构分布在不同的碎片间,以最大化查询评估的并行性,减少单个查询的查询响应时间。
- 查询分解:查询分解取决于碎片,在RDBMS和XML传统的垂直和水平分段中,因为不同的分段之间无重叠,所以查询分解唯一。而在RDF图的碎片化策略中由于数据复制,可能一个查询的会有多个分解结果。
利用如下定义将RDF数据表示为图:
本文提出高效的分布式SPARQL查询,重点是RDF存储库的“数据碎片和分配”, 如下是两个重点的形式化: