У меня есть простая древовидная структура в таблице MySQL (id, parentId) с примерно 3 миллионами вершин и вы хотите импортировать ее в базу данных OrientDB Graph. Импортер ETL импортирует вершины плавно, но не может создавать ребра (NullPointerException). ETL даже не работает в простой базе данных с приведенными примерами в документации (http://orientdb.com/docs/last/Import-a-tree-structure.html выбрасывает одно и то же исключение), поэтому я просто импортировал вершины и хотел создать ребра вручную.OrientDB: Создать края с подзапросом
У меня есть класс (адрес) Вершины с двумя свойствами (id, parentId), и я хочу создать грани между этими вершинами (parentId -> id). Есть ли простой способ сделать это вместо того, чтобы вставлять ребра в цикл? Что-то, как в SQL
INSERT INTO E (out, in) VALUES (SELECT parentId, id FROM Address)
Поскольку края должны быть созданы только с СОЗДАТЬ EDGE, я думаю OrientDB не поддерживает такую операцию по умолчанию. Но, возможно, есть обходное решение для создания этих 3 миллионов ребер?
Я нашел его легко создать связь между двумя записями:
CREATE LINK parentLink TYPE LINK FROM Address.parentId TO Address.Id
Однако, я не могу создать Ребра таким образом. Я пробовал работать с переменными
CREATE EDGE isParentOf FROM (SELECT FROM Address) TO (SELECT FROM Address WHERE id = $current.parentId)
Но это не работает.
Вы уже создали вопрос о ETL проекта? Какой выпуск вы используете? – Lvca
Нет, я создам проблему в проекте ETL на следующей неделе. Я использую community db community edition 2.1. – Stephan