2012-04-28 1 views
12

Neo4j - очень быстрая и масштабируемая база данных графов, кажется, что ее можно использовать в бизнес-проектах, и она тоже бесплатна!В чем преимущество RDF и Triple Storage для Neo4j?

В то же время нет трех магазинов RDF, которые хорошо работают с большими данными или обеспечивают высокоскоростной доступ. Более того, бесплатные трехмерные магазины RDF работают еще хуже.

В чем преимущество RDF и RDF тройных магазинов для Neo4j?

+2

«очень быстро», можете ли вы количественно оценить это? Например, скорость загрузки ... сколько вершин | ребер в секунду «очень быстро»? «шкала данных графа», можете ли вы количественно оценить это? Например, сколько вершин | ребер на сервере с X ГБ ОЗУ? – castagna

+0

@castagna: вставка или поиск? С привязками Pythonic он только в два раза медленнее при использовании в триплетной вставке по сравнению с оптимизированным стеком SQLAchemy/SQLite. Для обхода, если я хорошо помню, на моей персональной машине (6 ГБ оперативной памяти) было более 1 М краев/секунду, но я думаю, что это может пойти дальше. Для чистых запросов на отношение (вершины, отношения и т. Д.) Сервер no4j на моей машине преуспевает более 1 тыс. Транзакций, даже если база данных приближается к 1М индексированным свойствам с 100 тыс. Узлов и близка к a M отношения – chiffa

ответ

18

Преимущество использования трехместного хранилища для RDF, а не Neo4j заключается в том, что это то, что они предназначено для для. Neo4j довольно хорош для многих случаев использования, но по моему опыту его производительность для загрузки и запроса RDF значительно ниже всех выделенных баз данных RDF.

Ошибочно, что базы данных RDF не масштабируются или не бывают быстрыми. Конечно, они еще не достигли производительности & уровней масштабирования, которые имеют реляционные базы данных, но у них есть 50-летний старт. Многие тройные магазины масштабируются в миллиарды троек, обеспечивают «стандартные» функции предприятия и обеспечивают отличную производительность для многих случаев использования.

Если вы собираетесь использовать RDF для проекта, используйте тройной магазин; он будет обеспечивать лучшую производительность и набор функций/API для работы с RDF для создания вашего приложения.

+4

Neo4J поддерживает Sparql и Gremlin: http://blog.neo4j.org/2010/02/top-10-ways-to-get-to-know-neo4j.html Языки запросов Помимо программного обеспечения Neo4j, вы также можете выдавать запросы с использованием языка запросов. Это поддерживаемые параметры на данный момент: SPARQL: Neo4j может использоваться как трех- или четырехстрочный, и имеет реализации SAIL и SPARQL. Перейдите на сайт компонентов, чтобы узнать больше о связанных компонентах. Gremlin: основанный на графе язык программирования с различными реализациями в работе, а также вспомогательный набор инструментов. – sdw

-3

Я слышал слухи, что для загрузки 10M троек в Neo4j требуется целый день (он самый медленный, потому что он не построен в основном для RDF).

Sesame и 4Store являются самыми быстрыми, но у Jena есть мощный API.

+3

где вы слышали эти слухи? –

+0

Просьба указать ссылки – Kartoch

10

RDF и SPARQL - это стандарты, поэтому у вас есть выбор из нескольких реализаций и вы можете перенести данные из одного хранилища RDF в другой.

Кроме того, версия 1.1 языка запросов SPARQL довольно сложна (более выразительна, чем большинство реализаций SQL), и может выполнять всевозможные запросы, для которых в Neo4J потребуется много кода.

2

Если вы собираетесь использовать графа (например, обход графика) по троек, neo4j - хороший выбор. Для больших троек вы можете использовать свой пакетный запрос, который довольно быстр.