¿Cómo eliminar el gráfico en Titán con el backend de almacenamiento de Cassandra?
titan tinkerpop (3)
Uso Titan 0.4.0 All, ejecutando Rexster en modo VM compartido en Ubuntu 12.04.
¿Cómo podría eliminar correctamente un gráfico en Titán que está utilizando el back-end de almacenamiento de Cassandra?
He probado TitanCleanup.clear(graph)
, pero no elimina todo. Los índices todavía están allí. Mi verdadero problema es que tengo un índice que no quiero (bloquea todas las consultas), sin embargo, como entiendo la documentación de Titán, es imposible eliminar un índice una vez que se ha creado .
Puede borrar todos los bordes / vértices con:
g.V.remove()
pero como ha descubierto, eso no borrará los tipos / índices previamente creados. La opción más limpia sería simplemente eliminar el directorio de datos de Cassandra.
Si está ejecutando la eliminación mediante una prueba unitaria, puede intentar hacer esto como parte de su configuración de prueba:
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)
Asegúrese de llamar a g.shutdown()
en su método de g.shutdown()
prueba.
Solo para actualizar esta respuesta.
Con Titan 1.0.0
esto se puede hacer programáticamente en Java con:
TitanGraph graph = TitanFactory.open(config);
graph.close();
TitanCleanup.clear(graph);
Como se mencionó en uno de los comentarios a la respuesta anterior, DROP
ping a un espacio de cqlsh
titan
usando cqlsh
debería hacerlo:
cqlsh> DROP KEYSPACE titan;
El nombre del espacio de teclado que utiliza Titan se configura con la opción de configuración storage.cassandra.keyspace
. Puedes cambiarlo por el nombre que quieras y es aceptable por Cassandra.
storage.cassandra.keyspace=hello_titan
Cuando Cassandra se está levantando, imprime el nombre del espacio de teclado de la siguiente manera:
INFO 19:50:32 Crear nuevo Keyspace: KSMetaData {name = hello_titan, strategyClass = SimpleStrategy, strategyOptions = {replication_factor = 1}, cfMetaData = {}, durableWrites = true, userTypes=org.apache.cassandra.config.UTMetaData@767d6a9f }
En 0.9.0-M1 , el nombre aparece en el registro de Titan en log4j.rootLogger=DEBUG, stdout
(establezca log4j.rootLogger=DEBUG, stdout
en conf/log4j-server.properties
):
[DEBUG] AstyanaxStoreManager - Found keyspace titan
o lo siguiente cuando no:
[DEBUG] AstyanaxStoreManager - Creating keyspace titan...
[DEBUG] AstyanaxStoreManager - Created keyspace titan