2014-10-15 4 views
4

Я переношу с SQL Server на Neo4J (или ArangoDB, гораздо более сложный), в настоящее время использующий стек Windows и C#. Я видел импортера партии на github [https://github.com/jexp/batch-import/tree/20].Миграция с SQL Server на neo4j, есть что-то вроде SSMS для импорта данных в neo4j

Этот инструмент является инструментом экспорта, но я не могу понять, где находятся rels.csv и nodes.csv, со стороны экспорта (я вижу его при импорте в neo4j). Является ли это опцией в утилите, или это то, что я предлагаю создать SSMS (SQL Server Management Studio). В частности, каковы различия между реляциями и узлами с точки зрения SQL RDB?

Чтобы перенести данные - какие параметры/шаги необходимо выполнить, установите так, чтобы я мог: 1) экспортировать из SQL Server 2) Импортировать в Neo4j, который может легко работать с .netdriver/client?

Вот что я знаю об импорте, но не на стороне экспорта.

batch_import.nodes_files=nodes1.csv[,nodes2.csv] 
batch_import.rels_files=rels1.csv[,rels2.csv] 

Есть инструмент импорта, как импорт SSMS в Neo4j, что поможет в этом и перевести/сохранить отношения, как узлы к узлам

Я правильно думать так -

  • Таблицы схем сопоставляются с узлами?
  • Столбцы/атрибуты таблицы сопоставляются с (табличными) узлами в neo4j
  • Переводить FK и PK в отношения или метки?
+0

Возможно, вы должны упомянуть конкретный пример? –

ответ

1

Я попытаюсь предоставить краткие, сжатые ответы на ваши конкретные вопросы, но на темы моделирования данных вам нужно прочитать какой-то фон. Check out Data Modeling in Graphs за хорошее введение. Я не расскажу вам всю историю, потому что вы задаете вопрос, требующий подробного ответа. Этот брифинг - это ответ.

  1. Таблицы схем сопоставляются с узлами? Сортировка, да - то, как я бы сказал, это больше, что в реляционной базе данных «сущности» сопоставляются с узлами. Обратите внимание, что «сущности» и «таблицы» на самом деле не одно и то же из-за нормализации и многих других факторов. Кроме того, не все таблицы схем сопоставляются с узлом, в частности, поскольку таблицы включают такие вещи, как PKs/FKs, которые вы не будете использовать в neo4j (подробнее об этом мгновенно)

  2. Таблица таблиц столбцов/атрибутов to (table) в neo4j. Нет, они этого не делают. Атрибуты сопоставляются атрибутам узлов, но есть много исключений. В частности, любой атрибут, который вы используете для объединения вещей в реляционной базе данных, вероятно, сопоставляется с отношением neo4j, а не атрибутом узла.

  3. Переводы FK и PK на отношения или работы? Они сопоставляются с отношениями. Любое соединение, как правило, переводится в отношения между узлами.

+0

на # 2-> так, где столбцы перевести/отобразить в мир графиков. Как сохранить компоненты сцепления в таблице вместе или сгруппировать (например, они были в таблице, через столбцы). –

+2

Столбцы становятся свойствами узла. Таким образом, таблица «сотрудники», вероятно, становится набором узлов с меткой «Сотрудник». Атрибут «fname» таблицы employee становится свойством «fname» на узлах с надписью «Employee» – FrobberOfBits

+0

. Я думал, что Node будет столбцом, и записи будут его экземпляром. Из вашего комментария я вижу, что Node - это экземпляр, а 'schema' должен поддерживаться снаружи в приложении (понимая, что нам не нужно следовать схеме. –

0

Я могу дать вам общий ответ о том, как импортировать данные графика в ArangoDB. Также проверяет ответы FrobberOfBits. Для получения более конкретного ответа обратитесь к «хакерам (at) arangodb.org».

Обычно схема sql соответствует некоторым объектам, которые видны как объекты C#. Моделирование иерархии классов может выполняться по-разному. Такой объект будет соответствовать документам в ArangoDB.

Например: один из способов моделирования транспортных средств, автомобилей и мотоциклов - использование трех таблиц. Один для суперкласса и два для подкласса. Внешние ключи будут связывать данные подкласса с данными суперкласса. В ArangoDB будет только класс транспортного средства, а документы, содержащие атрибуты, могут варьироваться в зависимости от того, является ли это автомобилем или мотоциклом.

Теперь могут быть отношения между человеком и транспортным средством. Это отличается от приведенного выше примера - также используются внешние ключи. В этом случае у вас будет преимущество в ArangoDB между двумя документами.

Для экспорта всех документов (объектов) и всех ребер (отношений) необходим экспорт. Затем вы можете использовать «arangoimp» для импорта этих файлов в ArangoDB.

+0

** Поскольку они гибридные, я теряюсь на том, что экспортировать и импортировать где **, документ хранит данные или узел ... Я был на их веб-сайт много, и нет никакого руководства, мой друг также написал их, и ответа не было. 1) Что заставляет Arrango бросать вызов, это отсутствие оснастки, здесь Neo4j я нашел более зрелым. ** Однако архитектура Аранго, с его гибридным характером, гораздо более соблазнительным. ** Если бы мы могли работать с .Net ** и поддерживать путь обновления легко. 2) Arrango относительно новый, и я постоянно в горячем месте, когда я возвращаю что-то новое! 3) –

+0

Я также хотел поделиться случаем Арранго - в то время как мне они очень нравятся, модель лицензирования для запуска довольно высока, поэтому мы рассматривали lucene или эластичный поиск с монго (но они не являются graphDB). В применимости я считаю, что ArrangoDb может затмить Neo4j ... не уверен в простоте интеграции и использования! –

+0

Если вы пишете «хакерам (at) arangodb.org», вы обычно получаете ответ в течение дня. Пожалуйста, имейте в виду, что может быть разница во времени. – fceller