Каковы наилучшие способы хранения графиков в постоянном хранилище - PullRequest
29 голосов
/ 04 июня 2010

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

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

А как насчет таких опций, как Cassandra или MySQL?

Ответы [ 4 ]

14 голосов
/ 05 июня 2010

График Базы данных:

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

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

Графические библиотеки:

  1. WebGraph - это фреймворк для изучения веб-графа. С их страницы - «Он предоставляет простые способы управления очень большими графиками, используя современные методы сжатия».
  2. Dex - это высокопроизводительная библиотека для управления очень большими графиками или сетями.
  3. Этот пост в блоге - О построении глупо быстрой графовой базы данных - содержит некоторые рекомендации по построению графовой базы данных - техника они используют «сопоставленный с памятью ввод-вывод, дисковое линейное хеширование».
4 голосов
/ 05 июня 2010

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

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

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

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

2 голосов
/ 20 февраля 2011

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

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

0 голосов
/ 05 июня 2010

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

Если это для коммерческого использования, то вы увидите, что оно нацелено на сайты с большими графиками. Сайты социальных сетей создавали нестандартные решения, которые работали для них в то время. Но их собственные решения более ограничены, чем использование чего-то вроде InfiniteGraph. Такие продукты, как Cassandra или MySQL, не были разработаны для этого множества проблем. Ты можешь сделать это? Конечно, но это много рукописного кодирования, и оно не масштабируется. Дайте нам знать, если у вас есть реальный проект, мы можем помочь вам определить ваши требования к графику. Спасибо, кроличий садок wdavidson@objectivity.com

...