如何使用Cassandra存储后端删除Titan中的图形?
我使用Titan 0.4.0 All,在Ubuntu 12.04上以共享VM模式运行Rexster 如何正确删除Titan中使用Cassandra存储后端的图形如何使用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
我尝试了
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);