Neo4j для OrientDB не может создавать вершины
Я пытаюсь импортировать данные из Neo4J (neo4-shell) и загружать в OrientDB (gremlin.sh). Однако OrientDB не может создавать вершины и, по-видимому, дает сбой по следующим причинам.
gremlin> g.loadGraphML('/tmp/out.graphml');
Feb 11, 2016 12:42:10 PM com.orientechnologies.common.log.OLogManager log
WARNING: {db=neo2orient} The command 'create edge type 'ACTED_IN' as subclass of 'E'' must be executed outside an active transaction: the transaction will be committed and reopen right after it. To avoid this behavior execute it outside a transaction (db=neo2orient)
Feb 11, 2016 12:42:10 PM com.orientechnologies.common.log.OLogManager log
WARNING: {db=neo2orient} The command 'create edge type 'DIRECTED' as subclass of 'E'' must be executed outside an active transaction: the transaction will be committed and reopen right after it. To avoid this behavior execute it outside a transaction (db=neo2orient)
Feb 11, 2016 12:42:10 PM com.orientechnologies.common.log.OLogManager log
WARNING: {db=neo2orient} The command 'create edge type 'PRODUCED' as subclass of 'E'' must be executed outside an active transaction: the transaction will be committed and reopen right after it. To avoid this behavior execute it outside a transaction (db=neo2orient)
Feb 11, 2016 12:42:10 PM com.orientechnologies.common.log.OLogManager log
WARNING: {db=neo2orient} The command 'create edge type 'WROTE' as subclass of 'E'' must be executed outside an active transaction: the transaction will be committed and reopen right after it. To avoid this behavior execute it outside a transaction (db=neo2orient)
Feb 11, 2016 12:42:10 PM com.orientechnologies.common.log.OLogManager log
WARNING: {db=neo2orient} The command 'create edge type 'FOLLOWS' as subclass of 'E'' must be executed outside an active transaction: the transaction will be committed and reopen right after it. To avoid this behavior execute it outside a transaction (db=neo2orient)
Feb 11, 2016 12:42:10 PM com.orientechnologies.common.log.OLogManager log
WARNING: {db=neo2orient} The command 'create edge type 'REVIEWED' as subclass of 'E'' must be executed outside an active transaction: the transaction will be committed and reopen right after it. To avoid this behavior execute it outside a transaction (db=neo2orient)
==>null
gremlin> exit
And data looks like this
<node id="n0" labels=":Movie"><data key="labels">:Movie</data><data key="title">The Matrix</data><data key="released">1999</data><data key="tagline">Welcome to the Real World</data></node>
<node id="n1" labels=":Person"><data key="labels">:Person</data><data key="name">Keanu Reeves</data><data key="born">1964</data></node>
<node id="n2" labels=":Person"><data key="labels">:Person</data><data key="name">Carrie-Anne Moss</data><data key="born">1967</data></node>
<node id="n3" labels=":Person"><data key="labels">:Person</data><data key="name">Laurence Fishburne</data><data key="born">1961</data></node>
<node id="n4" labels=":Person"><data key="labels">:Person</data><data key="name">Hugo Weaving</data><data key="born">1960</data></node>
<node id="n5" labels=":Person"><data key="labels">:Person</data><data key="name">Andy Wachowski</data><data key="born">1967</data></node>
<node id="n6" labels=":Person"><data key="labels">:Person</data><data key="name">Lana Wachowski</data><data key="born">1965</data></node>
<node id="n7" labels=":Person"><data key="labels">:Person</data><data key="name">Joel Silver</data><data key="born">1952</data></node>
<node id="n8" labels=":Person"><data key="labels">:Person</data><data key="name">Emil Eifrem</data><data key="born">1978</data></node>
<node id="n9" labels=":Movie"><data key="labels">:Movie</data><data key="title">The Matrix Reloaded</data><data key="released">2003</data><data key="tagline">Free your mind</data></node>
2 ответа
Спасибо, Лука, за быстрый ответ. Это все еще не помогло. Похоже, что нагрузка от нео до ориентации с использованием gremlin не создает вершин. Однако, когда я создал БД и импортировал те же данные из того же файла GraphML, он просто берет их без ошибок, и все данные были импортированы. Затем я сравнил как neo, так и orient Graph. Пользовательский интерфейс приближается к аналогичному виду, однако neo показывает свойства для всех объектов (узлы, отношения...), но orient не показывает их свойства явно. Ориент поддерживает свойства неявно?
Какую версию OrientDB вы используете?
OrientDB имеет схему, поэтому он пытается автоматически создавать классы вершин и ребер. Вы можете использовать нетранзакционный граф с: g = new com.tinkerpop.blueprints.impls.orient.OrientGraphNoTx();