Как удалить график в Titan с хранилищем Cassandra?

Я использую Titan 0.4.0 All, использую Rexster в режиме виртуальной виртуальной машины на Ubuntu 12.04.

Как я могу правильно удалить график в Titan, который использует хранилище Cassandra?

Я попробовал TitanCleanup.clear(graph), но это не все удаляет. Индексы все еще там. Моя настоящая проблема в том, что у меня есть индекс, который мне не нужен (он вылетает при каждом запросе), однако, поскольку я понимаю документацию Titan, невозможно удалить индекс после его создания.

4 ответа

Решение

Вы можете очистить все ребра / вершины с помощью:

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);

Для продолжения Titan под названием JanusGraph, команда JanusGraphFactory.clear(graph) но скоро будет JanusGraphCleanup.clear(graph),

Как уже упоминалось в одном из комментариев к предыдущему ответу DROPпинговать пространство клавиш titan с помощью cqlsh следует сделать это:

cqlsh> DROP KEYSPACE titan;

Имя пространства ключей, которое использует Titan, устанавливается с помощью storage.cassandra.keyspace Вариант конфигурации. Вы можете изменить его на любое имя, какое захотите, и это приемлемо для Кассандры.

storage.cassandra.keyspace=hello_titan

Когда Кассандра встает, она печатает имя пространства клавиш следующим образом:

ИНФОРМАЦИЯ 19:50:32 Создайте новое пространство ключей: KSMetaData{name=hello_titan, StrategyClass = SimpleStrategy, StrategyOptions={replication_factor=1}, cfMetaData={}, durableWrites=true, userTypes=org.apache.cassandra.config.UTMeta6a@7 }

В 0.9.0-M1 имя появляется в журнале Титана в DEBUG (установлено log4j.rootLogger=DEBUG, stdout в conf/log4j-server.properties):

[DEBUG] AstyanaxStoreManager - Found keyspace titan

или следующее, когда это не так:

[DEBUG] AstyanaxStoreManager - Creating keyspace titan...
[DEBUG] AstyanaxStoreManager - Created keyspace titan
Другие вопросы по тегам