Использование графовых БД / Андрей Синицын (itrustore)

Post on 24-Jun-2015

363 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Использование графовых БДпри разработке социальных сетей

Андрей Синицын

Rate'N'Goods

● Рекомендательный сервис + соцсеть

● Пользовательские связи

● Много связей внутри проекта

http://ratengoods.com

Связи между сущностями

● Рекомендации по кругам

● Геоданные

● ACL

Поиск решения: RDBMS● Большие таблицы со связями

● No JOIN

● No sharding

● Add property → ALTER TABLE

Поиск решения: Doc-Based● No relations

● Нет связей — нет выборок

● Consistency?

Поиск решения: Key-value

Graph Databases● Вершины или узлы

● Рёбра или связи

● Направления связей

● Вершина → Ребро → Вершина

Graph Databases● Вершины или узлы

● Рёбра или связи

● Направления связей

● Вершина → Ребро → Вершина

Whiteboard friendly

Queries? Ok! ● SparQL

SELECT ?name ?emailWHERE { ?person a foaf:Person. ?person foaf:name ?name. ?person foaf:mbox ?email.}

Queries? Ok! ● Cypher

START john=node:node_auto_index(name = 'John')MATCH john-[:friend]->()-[:friend]->fofRETURN john, fof

Traversal? WTF? ● Just a JOIN?

● No! It is PATH

Use-cases● Выборки связей внутри сущностей

● Выборки связей между сущностями

● Хранение геоданных — Spatial

● Access Control Lists

● Analitycs data

SoftwareOpen Graph Api

Facebook Graph Search API

FlockDB

No traversals :(

Software

Software stack: TinkerPop

← Like *DBC but for graph

← Like *Nix-pipes but for graph

← Traversal your graph

← Collect your objects

← Algo implementations

← Protocols: HTTP, Rest API, etc

Neo4j: software● Java

● Web Interface

● Data Console

● REST API

● Python bindings

Neo4j: REST API● Any language

● HTTP Overhead

● Libs: py2neo, bulbs

Neo4j: Embedded● Native support for Java

● Python support via JPype

● Other (ruby, Scala, js)

Neo4j: Bonus● No backup and clustering in

community version

● Tornado-based server

● Replication like MySQL (query log)

● Scalability

● Backup and restore

Спасибо! Вопросы?

http://ratengoods.com

andrey.sinitsyn@itrustore.com

top related