graph database neo4j edson barboza. roteiro 1. exemplos de grafos 2. ranking graph database 3. graph...

Post on 07-Apr-2016

239 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Graph DatabaseNeo4j

Edson Barboza

Roteiro1.Exemplos de grafos

2.Ranking Graph Database

3.Graph Search

4.Tamanho vs Complexidade

5.Porque usar o neo4j

6.Nó

7.Relacionamento

8. Propriedades

9. Getting started

10.Neo4j Java API

11.Estado da Arte – Arquitetura Neo4j HA Mode

12.Pontos a melhorar

Exemplos de grafo

Ranking

Fonte: http://db-engines.com/en/ranking_trend/graph+dbms

Graph Search - Facebook

Tamanho vs Complexidade

Por que utilizar o Neo4j?Rapidez e robustez

Ótima performance para ler e escrever, robustez

Criar nós indexados (melhoria de performance nas consultas)

API para algoritmos de busca (shortest Path)

Possibilidade de integração com Web Semântica

Neo4j (2)Full ACID (na transação)

Alta Disponibilidade (Enterprise Edition)

Suporta até 32 bilhões de nós, 32 bilhões de relacionamentos64 bilhões de propriedades

Consulta REST (Representation State Transfer)

Unidade fundamental de armazenamento

Representam entidades de uma modelo relacional

Pode conter propriedades.

RelacionamentoPermitem encontrar dados relacionados

Podem contem certas propriedades

Start node e end node.

Propriedade• Pares de chaves e valores• Uma chave é uma string.

• Valor• Primitivo ou array de tipo primitivo

Getting starterwww.neo4j.com

Getting starterTo get started with Neo4j,

1. Let's start the server and take a look at the web interface ...2. Open a console and navigate to the install directory.3. Start the server:

* Windows: use bin\Neo4j.bat* Linux/Mac: use ./bin/neo4j start console4. Open http://localhost:7474/

Criando um nó

Buscando um nó

CypherLinguagem de consulta com casamento de padrão

CONSULTA

Criando vários nós e criando relacionamentos

Solve

Deletando nós e relacionamentos

Neo4j Java APIGraphDatabaseService

• gerenciamento a criação do grafo e seus componentes

• criação de nós, relacionamento e propriedades.

GraphDatabaseFactory

• criar e gerenciar novas instancias de banco de dados em grafo

HighlyAvailableGraphDatabaseFactory (EmbeddedGraphDatabase)

• arquitetura de criação de grafos com alta disponibilidade.

 

ARQUITETURA – Estado da ArteCONSISTENCIA EVENTUAL

REPLICACAO MASTER-SLAVE

• Slaves sincronizados em operação de escrita

• Atualização eventual nos slaves• Abordagem otimística para o

master no commit.• Rool-back transações no

master.

Pontos a melhorar1. Não enforça a segurança a nível dos dados

2. Suporte a HTTPS

3. Certificado SSL auto-emitido e uma chave privada. Solução: Configurar própria chave

4. Servidor expõe funcionalidade do script remotamente.

5. Implementar camada de segurança para sanar vulnerabilidade ao expor servidor

ReferênciasIntrodution to Graph Database - http://www.slideshare.net/maxdemarzi/introduction-to-graph-databases-12735789

Introdution to Neo4j - http://gotocon.com/dl/goto-amsterdam-2012/slides/IanRobinson_AnIntroductionToDoctorWhoandNeo4j.pdf. Acessado em 03/12/2015

OrientDB Guide - http://orientdb.com

The Neo4j Manual - http://cs.brown.edu/courses/cs227/archives/2013/papers/neo4j.pdf. Acessado em 03/12/2015.

Infoscience - http://oss.infoscience.co.jp/neo4j/docs.neo4j.org/chunked/stable/ha-architecture.html

techblog.netflix.com

top related