Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Cassandra存储后端删除Titan中的图形?_Cassandra_Titan_Tinkerpop_Rexster - Fatal编程技术网

如何使用Cassandra存储后端删除Titan中的图形?

如何使用Cassandra存储后端删除Titan中的图形?,cassandra,titan,tinkerpop,rexster,Cassandra,Titan,Tinkerpop,Rexster,我使用Titan 0.4.0 All,在Ubuntu 12.04上以共享VM模式运行Rexster 如何正确删除Titan中使用Cassandra存储后端的图形 我尝试了TitanCleanup.clear(graph),但它并没有删除所有内容。指数仍然存在。我真正的问题是,我有一个我不想要的索引(它会使每个查询崩溃),但据我所知,Titan的文档。您可以使用以下方法清除所有边/顶点: g.V.remove() 但正如您所发现的,这不会清除以前创建的类型/索引。最干净的选择是删除Cassand

我使用Titan 0.4.0 All,在Ubuntu 12.04上以共享VM模式运行Rexster

如何正确删除Titan中使用Cassandra存储后端的图形


我尝试了
TitanCleanup.clear(graph)
,但它并没有删除所有内容。指数仍然存在。我真正的问题是,我有一个我不想要的索引(它会使每个查询崩溃),但据我所知,Titan的文档。

您可以使用以下方法清除所有边/顶点:

g.V.remove()
但正如您所发现的,这不会清除以前创建的类型/索引。最干净的选择是删除Cassandra数据目录

如果您通过单元测试执行删除,您可以尝试在测试设置中执行此操作:

this.config = new BaseConfiguration(){{
    addProperty("storage.backend", "berkeleyje")
    addProperty("storage.directory", "/tmp/titan-schema-test")
}}
GraphDatabaseConfiguration graphconfig = new GraphDatabaseConfiguration(config)
graphconfig.getBackend().clearStorage()
g = (StandardTitanGraph) TitanFactory.open(config)
确保在测试拆卸方法中调用
g.shutdown()

DROP
中所述,使用
cqlsh
ping键空间
titan
应执行以下操作:

cqlsh> DROP KEYSPACE titan;
Titan使用的键空间的名称是使用
storage.cassandra.keyspace
配置选项设置的。您可以将其更改为您想要的任何名称,并且可以被Cassandra接受

storage.cassandra.keyspace=hello_titan
当Cassandra起床时,它会打印出键空间的名称,如下所示:

信息19:50:32创建新键空间:KSMetaData{name=hello_titan, strategyClass=SimpleStrategy,strategyOptions={replication\u factor=1}, cfMetaData={},durableWrites=true, userTypes=org.apache.cassandra.config。UTMetaData@767d6a9f}

0.9.0-M1中,该名称出现在Titan的登录调试中(在
conf/log4j server.properties中设置
log4j.rootLogger=DEBUG,stdout
):

如果没有,请执行以下操作:

[DEBUG] AstyanaxStoreManager - Creating keyspace titan...
[DEBUG] AstyanaxStoreManager - Created keyspace titan

只是为了更新这个答案

使用
Titan 1.0.0
可以通过以下方式在Java中编程实现:

TitanGraph graph = TitanFactory.open(config);
graph.close();
TitanCleanup.clear(graph);

对于名为JanusGraph的Titan的延续,命令是
JanusGraphFactory.clear(graph)
,但很快将是
JanusGraphCleanup.clear(graph)

,因此删除Cassandra数据目录将完全删除包括我不想要的索引在内的图形?是的……所有包括索引在内的数据都存储在Cassandra中。我想您也可以在Cassandra中删除“titan”键空间(这是默认的键空间名称)。我试过了,但是当我删除数据文件夹cassandra(或者可能是titan/rexster)时,我重新创建了这个文件夹,但仍然得到了相同的错误(存在一些我不想要的索引)。我尝试过删除机器上的每个cassandra文件夹,重新启动系统等,但索引仍然存在。有没有一种方法可以最终做到这一点?也许是卡桑德拉控制台什么的?终于可以用了。我删除了机器上所有同名文件夹。我怀疑ubuntu在某个地方或类似的地方缓存了这个过程。我正在嵌入式模式下使用Titan rexster,您可以执行以下操作:
sudo bin/Titan.sh clean
重置数据库。很高兴您能让它正常工作。应该注意的是,“clean”选项是0.4.0中新提供的。在0.4.0版本中,cassandra并不是真正的“嵌入式”,它只是与rexster打包在一起,带有一个
titan.sh
。救了我的命。对于新的titan,JanusGraph,命令是JanusGraphCleanup.clear(),但很快将是JanusGraphCleanup.clear()
TitanGraph graph = TitanFactory.open(config);
graph.close();
TitanCleanup.clear(graph);