2015-09-25 2 views
4

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

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

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

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


Update:
Наконец, я понял, как работает переполнение стека. Я не должен пытаться вставлять данные в комментарий, вместо этого обновляю вопрос.
Это конкретный пример моего вопроса:
Два типа вершин:
мастера (Джон, Джой, Майкл, Роберт Аллен),
домашних животных (Snoopy, белый, синий).

два типа отношений:
как (Джон любит Снупи, Майкл linkes Белый, Майкл любит синий, Аллен любит Снупи, Майкл любит белый),
принадлежат (Snoopy принадлежит Джо, White принадлежит Роберту, синий принадлежит Иоанну).

Как импортировать эту небольшую сеть в OrientDB, используя OETL?

ответ

2

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

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

При использовании таблиц базы данных (SQL) в качестве источника данных ознакомьтесь с Import from DBMS.

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

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

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

Смежные вопросы