импортировать ребра в OrientDB, используя etl

У меня есть 3 таблицы, одна для вершины A, одна для вершины B, а третья для ребер из B в A. Как я могу импортировать этот граф в OrientDB?

На данный момент в учебнике просто говорится, как импортировать два файла csv, один для вершины A, а другой для вершины B и связанных вершин из A. Загрузите вершину A, затем загрузите вершину B и создайте ребра от A до B в тем временем.

Это работает для простых графиков. Но для сложных графов, например, у меня есть три типа вершин, A, B и C, три типа ребер, A -> B, B -> C, C -> A, как я могу импортировать этот граф?

Я хочу использовать etl для загрузки графика, хотя JAVA API должен быть решением.


Обновление:
Наконец-то я понял, как работает Stack Overflow. Я не должен пытаться вставлять данные в комментарий, вместо этого обновите вопрос.
Это конкретный пример для моего вопроса:
Два типа вершин:
мастера(Джон, Джоуи, Майкл , Роберт, Аллен),
домашние животные(Снупи, Белый, Синий).

Два типа отношений:
нравится(Джон любит Снупи, Майкл связывает Белого, Майкл любит Голубого, Аллену нравится Снупи, Майклу нравится белый),
принадлежат (Снупи принадлежит Джоуи, Белый принадлежит Роберту, Синий принадлежит Джону).

Как я могу импортировать эту маленькую сеть в OrientDB с помощью OETL?


person Cauchy Schwarz    schedule 25.09.2015    source источник


Ответы (1)


Средство ETL OrientDB позволяет загружать графики из внешних источников. Если вы читаете введение в OriendDB-ETL, читается источник, созданный набором записей, к каждой строке применяется преобразование для создания записи документа (или вершины и, необязательно, egdes, помните, что OrientDB — это база данных документов в капот, который также поддерживает графы), а затем загрузите сгенерированные документы (или вершины/ребра) в OrientDB.

Вы должны использовать несколько файлов JSON ETL для загрузки более чем одного источника, но в каждом источнике вы можете загрузить несколько классов вершин и ребер, в зависимости от примененных преобразований (вы можете применить несколько). Источниками входных данных могут быть базы данных SQL, файлы в формате CSV и JSON. Пример с несколькими типами вершин и ребер, созданных из исходных файлов CSV, см. в разделе . "Импортировать базу пива".

При использовании таблиц базы данных (SQL) в качестве источника данных ознакомьтесь с разделом Импорт из СУБД< /а>.

Для таблиц обычно A -edge-> B отображается в таблицу отношений (например, для многих ко многим или когда само ребро имеет свойства), в то время как для более простых видов ребер (один к одному, один ко многим... ) обычно используется простой внешний ключ. Конфигурация ETL предоставляется в формате JSON, а для баз данных SQL вы можете настроить запрос SQL (предоставив «таблицу результатов») и способ сопоставления полей результатов как с вершинами, так и с соответствующими ребрами.

Вы можете добавить несколько команд JSON ETL, когда у вас есть несколько источников, но при обработке каждого источника вы можете использовать преобразователи (см. VERTEX, EDGE и MERGE в документации по преобразователям) для создания вершин и связанных ребер. Преобразователь CSV может даже создать ODocument прямо из каждой строки CSV.

Примечание: в качестве альтернативы средству ETL (относительно новому) вы можете использовать Java API для программного импорта данных в базы данных OrientDB. Если вам нужно загрузить огромные графики, это рекомендуемый способ, так как у вас есть полный контроль над тем, как данные загружаются в OrientDB.

person lrodriguez    schedule 26.09.2015