Ссылки в Riak: что они могут делать / не делать по сравнению с графовыми базами данных? - PullRequest
6 голосов
/ 17 марта 2012

Знакомый Neo4j относится к отношениям как к первоклассным гражданам;специальные запросы / обходы, целостность (если один узел удален, ссылка удалена) и т. д. Он также объявляет как единственный механизм для обозначения отношений, а также для объединения соединений реляционных БД.

Насколько мощны Riakссылки для обозначения отношений?Могут ли они использоваться для ответа на специальные запросы например ", чтобы получить список хобби для каждого такого человека, который зарабатывает более x" или друга друга Предполагая подходящие функции, такие как вторичные индексы?В общем, могут ли они имитировать вывод объединения в СУБД?

Они также предназначены для интенсивного использования, такого как система социальных закладок, где существует множество ссылок для человекаа закладки?Или они предназначены для осторожного использования (все структуры должны быть направлены ациклическими графами)?


В категории "не делай":

  1. Ссылкацелостность не применяется
  2. Он не может ответить «что связано с этим узлом?»

Ответы [ 2 ]

5 голосов
/ 10 мая 2012

Ссылки в Riak - это просто метаданные (список односторонних ссылок на внешние ключи), которые хранятся вместе со значением.Они обычно используются в качестве входных данных для MapReduce, которые могут делать с ними все, что угодно, включая имитацию соединений RDBMS.

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

В качестве примера социальных закладок я бы рекомендовал использовать Riak Search, поскольку он допускает более гибкие запросы, такие как http://example.com/*, и имеет надлежащую распределенную индексацию и поиск.

3 голосов
/ 21 октября 2012

blinkov ответ правильный. Нет, ссылки Riak не подходят для сценария, который вы описываете. Нет проверки ссылочной целостности, и есть ограничение на количество ссылок, которые вы можете хранить с каждым объектом (я думаю, до 255).

Riak Search гораздо больше подходит для сценария социальных закладок. Фактически, сайт социальных закладок Буфер обмена использует именно этот механизм - закладки как объекты Riak с включенным на них Riak Search (для тегов, триггеров событий, уведомлений и т. Д.). Когда видеоматериалы о конференциях Ricon 2012 появятся в сети, я рекомендую вам посмотреть доклад о работе с буфером обмена, чтобы получить более подробную информацию об этом.

Riak + Вторичные индексы также будет подходящим решением для многих из этих случаев. См. Мой ответ на Какая кластеризованная NoSQL DB для целей хранения сообщений? и Как структурировать данные в Riak? для рекомендаций по схеме для аналогичной настройки.

...