在Titan Cassandra中使用新的KeySpaces并持久保存数据

时间:2013-08-14 04:26:18

标签: graph-databases titan

我刚刚开始在Cassandra上使用Titan。我是Titan的新手,也是Graph Database Concept的新手。只需按照github和wiki上的说明操作即可。

Configuration conf = new BaseConfiguration();
conf.setProperty("storage.backend", "cassandra");
conf.setProperty("storage.hostname", "127.0.0.1");
TitanGraph g = TitanFactory.open(conf);

这是我打开图表的方式。

我了解默认密钥空间为titan。我在默认密钥空间中创建了一些节点和关系。我在顶点上进行了索引并查询了节点,并能够遍历结果。

现在我的问题 -

1)如何设置新的密钥空间?

我尝试使用该属性

conf.setProperty("storage.keyspace ", "newkeyspace");

不幸的是,当我检查cassandra键空间时,我只能找到titan。名称newkeyspace没有密钥空间。可能是什么原因?

2)如何创建图表?

例如,

g.createKeyIndex("name", Vertex.class);
Vertex juno = g.addVertex(null);
juno.setProperty("name", "juno");
juno.setProperty("type", "node");
Vertex juno1 = g.addVertex(null);
juno1.setProperty("name", "juno");
juno1.setProperty("type", "node1");

这是一个示例图表。一旦我发出表格的查询

Iterator<Vertex> junoIterator = g.getVertices("name", "juno")
                .iterator();
        while (junoIterator.hasNext()) {
            Vertex vertex = (Vertex) junoIterator.next();
            System.out.println(vertex.getProperty("type"));
        }

我的预期结果是

node 
node1

一旦我评论以下细分,相同的查询应该可以正常工作 -

    /*g.createKeyIndex("name", Vertex.class);
        Vertex juno = g.addVertex(null);
        juno.setProperty("name", "juno");
        juno.setProperty("type", "node");
        Vertex juno1 = g.addVertex(null);
        juno1.setProperty("name", "juno");
        juno1.setProperty("type", "node1");*/

在这里,我认为节点,关系和索引已经构建并在某些数据存储中保留。我错了吗?

请指教。

2 个答案:

答案 0 :(得分:3)

我已经弄明白了这个问题。只是提交问题。

单行g.commit();解决了所有问题。

答案 1 :(得分:0)

要创建一个新的泰坦表(Cayspace中的Keyspace),请使用该属性:

集( “storage.cassandra.keyspace”, “TitanTest”)

整个命令如下:

graph = TitanFactory.build()。 设置( “storage.backend”, “卡桑德拉”)。 set(“storage.hostname”,“127.0.0.1”)。set(“index.search.backend”,“elasticsearch”)。set(“storage.cassandra.astyanax.cluster-name”,“Test Cluster”)。集( “storage.cassandra.keyspace”, “TitanTest”)集( “cache.db高速缓存”, “真”)打开();