本文由学者Thomas Neumann和Gerhard Weikum共同发表
本文介绍SPARQL的RDF-3X引擎,通过采用精简的体系结构和精密的数据结构和操作实现RISC的体系结构,获得出色的性能。RDF-3X的要点:1、通用的解决方案用于存储和索引RDF,RDF无需要物理设计调整;2、强大简单的查询处理器,利用快速合并连接可能的最大范围;3、查询优化器,对整个连接路径使用基于统计概要的成本模型选择最佳连接顺序。
每个连接点对应一个连接,整个查询可看成是RDF数据图中需要匹配的模式。在SPARQL中,谓词可为变量或通配符,允许与模式无关的查询。通过将具有相同属性名的三元组分组到属性表中,将它们映射到列存储并为频繁连接创建具体化的视图实现良好的性能。管理大规模RDF数据的技术挑战包括存储布局,索引编制和查询处理:
-
缺少全局模式和谓词名称的多样性是物理数据库设计的主要问题。
-
通过对RDF数据的细粒度建模,具有大量连接的查询将在本质上构成工作负载的很大一部分,但是连接属性的可预测性远远低于关系设置。
-
作为连接顺序和其他执行计划的优化需要数据统计来选择性估计。
-
RDF使用XML语法,而 SPARQL涉及到类似于XML路径表达式的搜索模式,RDF元组形成图而不是树的集合,这与XML设置很不同。
RDF-3X基于三个关键原则:
-
通过在“巨大的三元组表”上创建适当索引,使物理设计独立于工作负载。RDF-3X不依赖自动调整向导,但有效消除了物理设计调整的需要。
-
查询处理器是RISC模式,主要依赖于合并连接而不是排序的索引列表。
-
查询优