Как удалить график в 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