Я использую TitanGraphDB + Cassandra. Я запускаю Titan следующим образом.
cd titan-cassandra-0.3.1
bin/titan.sh config/titan-server-rexster.xml config/titan-server-cassandra.properties
У меня есть оболочка Rexster, которую я могу использовать для связи с Titan+Cassandra, описанной выше.
cd rexster-console-2.3.0
bin/rexster-console.sh
Я хочу запрограммировать базу данных Titan Graph из моей программы на Python. Для этого я использую пакет лампочек.
Я создаю 3 типа вершин из Python, используя лампочки, как показано ниже. 3 типа вершин
- switch
- port
- device
from bulbs.titan import Graph
vswitch = self.g.vertices.get_or_create('dpid',dpid_str,{'state':'active','dpid':dpid_str,'type':'switch'})
vport = self.g.vertices.get_or_create('port_id',port_id,{'desc':desc,'port_id':port_id,'state':state,'port_state':port_state,'number':number,'type':'port'})
Если я попытаюсь распечатать переменные vswitch, vport и vdevice, я получу следующие результаты.
vswitch <Vertex: http://localhost:8182/graphs/graph/vertices/4>
vport <Vertex: http://localhost:8182/graphs/graph/vertices/28>
Однако, если я попытаюсь получить вышеуказанные вершины, используя ключ, следующим образом.
vswitch = self.g.vertices.index.lookup(dpid=dpid_str)
vport = self.g.vertices.index.lookup(port_id=port_id_str)
И попробуйте распечатать переменные vswitch и vport, я получаю следующие значения
<generator object <genexpr> at 0x26d6370>)
<generator object <genexpr> at 0x26d63c0>
Я делаю что-то НЕПРАВИЛЬНОЕ, пытаясь получить вершины, как указано выше, используя g.vertices.index.lookup(dpid=dpid_str)