2

我想知道如何在 Cassandra 集群上完成 SPARQL 查询处理。例如,我将 LUBM 生成的大学数据存储在 Cassandra 集群上。现在我想在 Cassandra 节点 A、B、C、D 上执行以下查询,我将此查询交给节点 A,因为该节点是我的主客户端节点,它将使用 Gossip 协议与其他节点同步。

PREFIX ub: <http://www.lehigh.edu/~zhp2/2004/0401/univ-bench.owl#> 
SELECT ?X WHERE
{
  ?X a ub:student .
  ?Y a ub:graduateCourse .
  ?X ub:takesCourse ?Y .
}

我的问题是如何在分布式 Cassandra 节点上执行查询的子部分?节点 A 是否将完整查询传递给所有节点并从每个其他节点获取结果?或者查询的一部分被分发到所有节点并返回中间结果,然后再次发送第二部分等等..?

4

2 回答 2

3

Cassandra 本身不支持 SPARQL 查询语言。然而,CumulusRDF是一个基于 Cassandra 的 RDF 数据库,它支持 SPARQL——它可能是您所需要的。

于 2013-10-29T01:26:05.960 回答
0

我使用 Redland 为 Cassandra 创建了一个 SPARQL 端点。

这里有一个 Cassandra 的 Redland 模块:https ://github.com/cybermaggedon/cassandra-redland

此外,提供 SPARQL 端点的 Redland 包装器:https ://github.com/cybermaggedon/sparql-service

我已将 SPARQL 位打包为 Docker 容器: https ://hub.docker.com/r/cybermaggedon/sparql-cassandra/容器命令行参数为:

/usr/local/bin/sparql <PORT> cassandra <CASSANDRAHOSTNAME>

缺少文档。如果您对此感兴趣并且不知道如何使其工作,请 PM 我,或在 github 上提出问题,我将编写自述文件。

于 2018-06-12T20:59:46.153 回答