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



我使用 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

最新更新