Подтвердить что ты не робот

Каковы наилучшие способы хранения графиков в постоянном хранилище

Мне интересно, какие лучшие способы хранения графиков в постоянном хранилище - для последующего анализа, поиска, кластеризации и т.д.

Я вижу, что neo4j является опцией, мне любопытно, есть ли другие доступные базы данных графов. Кто-нибудь знает, как большие социальные сети хранят свои данные на основе графиков (или другие сайты, требующие хранения графических моделей, например RDF).

Как насчет таких параметров, как Cassandra или MySQL?

4b9b3361

Ответ 1

Базы данных диаграмм:

  • HyperGraphDB: универсальный, расширяемый, переносимый, распределенный, встраиваемый механизм хранения данных с открытым исходным кодом.
  • InfoGrid: база данных интернет-графики с множеством дополнительных программных компонентов, которые делают разработку веб-приложений REST-ful на основе графика легко.
  • vertexdb: высокопроизводительный сервер базы данных графов, который поддерживает автоматическую сборку мусора.

Источник: http://nosql.mypopescu.com/post/498705278/quick-review-of-existing-graph-databases

Библиотеки графиков:

  • WebGraph - это основа для изучения веб-графа. На своей странице - "Он предоставляет простые способы управления очень большими графиками, используя современные методы сжатия".
  • Dex - это высокопроизводительная библиотека для управления очень большими графиками или сетями.
  • Это сообщение в блоге - Построение глупо быстрой базы графиков - содержит некоторые рекомендации по созданию базы данных графа - техника они используют "ядро ввода-вывода с памятью, основанное на диске линейное хеширование".

Ответ 2

Отказ от ответственности. Я говорю о точке анализа графика.

Существует несколько форматов файлов для хранения данных графа: GraphML, GXL и несколько других. Но хранение обычно не является проблемой. Работа с графиками без полной загрузки их в ОЗУ - сложная часть.

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

Для реального анализа загрузите все данные в ОЗУ с помощью существующих библиотек анализа графиков, например SNAP или см. Этот вопрос.

Ответ 3

Здесь нет абсолютно правильного ответа; существует большое разнообразие вариантов, выбор которых серьезно зависит от ваших потребностей. При крупномасштабных поисках/обходах (например, в социальных сетях и аналогичных back-end) вы быстро столкнетесь с узким местом случайного ввода-вывода; Я считаю, что сохранение графика в ОЗУ в настоящее время является единственным практическим направлением. Меньше чувствительных к задержкам приложений имеют довольно широкий спектр опций, включая neo4j (с открытым исходным кодом с коммерческим вкусом) и Allegrograph (коммерческая версия с ограниченной бесплатной версией).

В Delver мы завершили реализацию нашей собственной модели денормализованных данных (по существу, списка смежности для представления графика) в ОЗУ поверх GigaSpaces (некоторую информацию можно найти в эту презентацию), с настраиваемым кодом уменьшения размера для запросов и анализа данных. Если вы идете по этому маршруту, Cassandra кажется жизнеспособной платформой с открытым исходным кодом, на которой можно строить.

Ответ 4

Вы можете посмотреть InfiniteGraph, который скоро будет выпущен для бета (http://www.infinitegraph.com/)

Если это для коммерческого использования, вы увидите, что оно нацелено на сайты с большими графами. Сайты социальных сетей создали собственные решения, которые в то время работали на них. Но они - внутренние решения, более ограниченные, чем использование чего-то вроде InfiniteGraph. Такие продукты, как Cassandra или MySQL, не были разработаны для этого набора проблем "многие-ко-многим". Ты можешь сделать это? Конечно, но это много рукописного кодирования, а не масштабируемого. Сообщите нам, если у вас есть настоящий проект, мы могли бы помочь вам разобраться в ваших графических требованиях. Благодаря, кроличий садок [email protected]