Как установить схему для janusgraph для пакетной загрузки с использованием python - PullRequest
0 голосов
/ 16 мая 2018

Я пытаюсь выполнить массовую загрузку данных в janusgraph 0.2 через HBase.Я использую библиотеку gremlinpython из python.Для массовой загрузки я установил storage.batch-loading на true, и теперь мне нужно определить схему для графика.

Я нашел документацию для установки схемы для графика (https://docs.janusgraph.org/0.2.0/schema.html & https://docs.janusgraph.org/0.2.0/advanced-schema.html).

Предлагается некоторый базовый код для схемы:

mgmt = graph.openManagement()
follow = mgmt.makeEdgeLabel('follow').multiplicity(MULTI).make()
mother = mgmt.makeEdgeLabel('mother').multiplicity(MANY2ONE).make()
mgmt.commit()

Я подключился к графу с помощью библиотеки python gremlinpython. Вот что я делаю:

from    gremlin_python                                  import  statics
from    gremlin_python.structure.graph                  import  Graph
from    gremlin_python.process.graph_traversal          import  __
from    gremlin_python.process.strategies               import  *
from    gremlin_python.driver.driver_remote_connection  import      DriverRemoteConnection
from    gremlin_python.process.traversal                import  T
from    gremlin_python.process.traversal                import  Order
from    gremlin_python.process.traversal                import  Cardinality
from    gremlin_python.process.traversal                import  Column
from    gremlin_python.process.traversal                import  Direction
from    gremlin_python.process.traversal                import  Operator
from    gremlin_python.process.traversal                import  P
from    gremlin_python.process.traversal                import  Pop
from    gremlin_python.process.traversal                import  Scope
from    gremlin_python.process.traversal                import  Barrier

from    config                                          import  graph_url, graph_name

graph = Graph()
drc = DriverRemoteConnection(graph_url, graph_name)

g = graph.traversal().withRemote(drc)

# I successfully get g here, I check it by :
# g.V().count().next()

Теперь мой вопрос: где я должен установить схему. Я пытался сделать mgmt = graph.openManagement() после закомментированных строк, но это не работает.


Обновление

Он работает на консоли gremlin следующим образом:

gremlin> :remote connect tinkerpop.server conf/remote.yaml
==>Configured localhost/127.0.0.1:8182
gremlin> 
gremlin> :> mgmt = graph.openManagement()
==>org.janusgraph.graphdb.database.management.ManagementSystem@625dfab4 

Но здесь не работают любые команды furthur:

:> follow = mgmt.makeEdgeLabel('follow').multiplicity(MULTI).make()
No such property: mgmt for class: Script10

1 Ответ

0 голосов
/ 17 мая 2018

Драйвер gremlinpython представляет собой Вариант языка Gremlin (GLV), который позволяет использовать Gremlin на родном языке Python.Определения схемы JanusGraph являются специфическими для базы данных JanusGraph, однако gremlinpython GLV является универсальным драйвером TinkerPop, поэтому он не имеет конструкций для вызова специфичных для db API.

Как вы заметили, вы могли быобъявите вашу схему через консоль Gremlin.Другой альтернативой является использование драйвера Gremlin на основе строк, например gremlinclient или gremlinpy , и отправка схемы в виде строкового запроса на сервер.

...