我想知道如何对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是否将完整的查询传递给所有节点并从每个其他节点返回结果?或者一部分查询要分发到所有节点并得到中间结果,然后再发送第二部分等等。
发布于 2013-10-29 01:26:05
Cassandra本身不支持SPARQL查询语言。然而,CumulusRDF是卡桑德拉之上的一个RDF数据库,它确实支持SPARQL --这可能是您所需要的。
发布于 2018-06-12 20:59:46
我使用Redland为Cassandra创建了SPARQL端点。
这里有一个卡桑德拉的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>
文件不见了。如果你对这其中的任何一个感兴趣,但无法想出如何使它工作,下午我,或提出一个问题,在github和我会写自述。
https://stackoverflow.com/questions/19647649
复制相似问题