我使用 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()
。
只是为了更新这个答案。
有了Titan 1.0.0
这可以在 Java 中以编程方式完成:
TitanGraph graph = TitanFactory.open(config);
graph.close();
TitanCleanup.clear(graph);
对于名为JanusGraph的泰坦的延续,该命令JanusGraphFactory.clear(graph)
,但很快就会被JanusGraphCleanup.clear(graph)
。
正如在前面答案的一条评论中提到的,DROP
ping一个密钥空间titan
使用cqlsh
应该这样做:
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_factor=1}, cfMetaData={}, durableWrites=true, userTypes=org.apache.cassandra.config.UTMetaData@767d6a9f}
在 0.9.0-M1 中,这个名字出现在 DEBUG 中的 Titan 日志中(在 conf/log4j-server.properties
中设置log4j.rootLogger=DEBUG, stdout
):
[DEBUG] AstyanaxStoreManager - Found keyspace titan
或以下情况(如果没有):
[DEBUG] AstyanaxStoreManager - Creating keyspace titan...
[DEBUG] AstyanaxStoreManager - Created keyspace titan