如何在cassandra集群上完成SPARQL查询处理?

时间:2013-10-29 00:38:06

标签: cassandra cluster-computing sparql

我想知道如何在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是否将完整查询传递给所有节点并从每个其他节点获取结果?或者将一部分查询分发给所有节点并获得中间结果,然后再发送第二部分......?

2 个答案:

答案 0 :(得分:3)

Cassandra本身不支持SPARQL查询语言。但是,CumulusRDF是位于Cassandra之上的RDF数据库,它支持SPARQL - 它可能就是您所需要的。

答案 1 :(得分:0)

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

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

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

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

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

缺少文档。如果您对此任何一项感兴趣并且无法解决如何使其工作,请告诉我,或者在github上提出问题,我会写自述文件。

相关问题