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

24
Graph Database Neo4j Edson Barboza

Upload: denilson-schmidt-amorim

Post on 07-Apr-2016

238 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Graph Database Neo4j Edson Barboza. Roteiro 1. Exemplos de grafos 2. Ranking Graph Database 3. Graph Search 4. Tamanho vs Complexidade 5. Porque usar

Graph DatabaseNeo4j

Edson Barboza

Page 2: Graph Database Neo4j Edson Barboza. Roteiro 1. Exemplos de grafos 2. Ranking Graph Database 3. Graph Search 4. Tamanho vs Complexidade 5. Porque usar

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

Page 3: Graph Database Neo4j Edson Barboza. Roteiro 1. Exemplos de grafos 2. Ranking Graph Database 3. Graph Search 4. Tamanho vs Complexidade 5. Porque usar

Exemplos de grafo

Page 4: Graph Database Neo4j Edson Barboza. Roteiro 1. Exemplos de grafos 2. Ranking Graph Database 3. Graph Search 4. Tamanho vs Complexidade 5. Porque usar

Ranking

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

Page 5: Graph Database Neo4j Edson Barboza. Roteiro 1. Exemplos de grafos 2. Ranking Graph Database 3. Graph Search 4. Tamanho vs Complexidade 5. Porque usar

Graph Search - Facebook

Page 6: Graph Database Neo4j Edson Barboza. Roteiro 1. Exemplos de grafos 2. Ranking Graph Database 3. Graph Search 4. Tamanho vs Complexidade 5. Porque usar

Tamanho vs Complexidade

Page 7: Graph Database Neo4j Edson Barboza. Roteiro 1. Exemplos de grafos 2. Ranking Graph Database 3. Graph Search 4. Tamanho vs Complexidade 5. Porque usar

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

Page 8: Graph Database Neo4j Edson Barboza. Roteiro 1. Exemplos de grafos 2. Ranking Graph Database 3. Graph Search 4. Tamanho vs Complexidade 5. Porque usar

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)

Page 9: Graph Database Neo4j Edson Barboza. Roteiro 1. Exemplos de grafos 2. Ranking Graph Database 3. Graph Search 4. Tamanho vs Complexidade 5. Porque usar

Unidade fundamental de armazenamento

Representam entidades de uma modelo relacional

Pode conter propriedades.

Page 10: Graph Database Neo4j Edson Barboza. Roteiro 1. Exemplos de grafos 2. Ranking Graph Database 3. Graph Search 4. Tamanho vs Complexidade 5. Porque usar

RelacionamentoPermitem encontrar dados relacionados

Podem contem certas propriedades

Start node e end node.

Page 11: Graph Database Neo4j Edson Barboza. Roteiro 1. Exemplos de grafos 2. Ranking Graph Database 3. Graph Search 4. Tamanho vs Complexidade 5. Porque usar

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

• Valor• Primitivo ou array de tipo primitivo

Page 12: Graph Database Neo4j Edson Barboza. Roteiro 1. Exemplos de grafos 2. Ranking Graph Database 3. Graph Search 4. Tamanho vs Complexidade 5. Porque usar

Getting starterwww.neo4j.com

Page 13: Graph Database Neo4j Edson Barboza. Roteiro 1. Exemplos de grafos 2. Ranking Graph Database 3. Graph Search 4. Tamanho vs Complexidade 5. Porque usar

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/

Page 14: Graph Database Neo4j Edson Barboza. Roteiro 1. Exemplos de grafos 2. Ranking Graph Database 3. Graph Search 4. Tamanho vs Complexidade 5. Porque usar

Criando um nó

Page 15: Graph Database Neo4j Edson Barboza. Roteiro 1. Exemplos de grafos 2. Ranking Graph Database 3. Graph Search 4. Tamanho vs Complexidade 5. Porque usar

Buscando um nó

Page 16: Graph Database Neo4j Edson Barboza. Roteiro 1. Exemplos de grafos 2. Ranking Graph Database 3. Graph Search 4. Tamanho vs Complexidade 5. Porque usar

CypherLinguagem de consulta com casamento de padrão

Page 17: Graph Database Neo4j Edson Barboza. Roteiro 1. Exemplos de grafos 2. Ranking Graph Database 3. Graph Search 4. Tamanho vs Complexidade 5. Porque usar

CONSULTA

Page 18: Graph Database Neo4j Edson Barboza. Roteiro 1. Exemplos de grafos 2. Ranking Graph Database 3. Graph Search 4. Tamanho vs Complexidade 5. Porque usar

Criando vários nós e criando relacionamentos

Page 19: Graph Database Neo4j Edson Barboza. Roteiro 1. Exemplos de grafos 2. Ranking Graph Database 3. Graph Search 4. Tamanho vs Complexidade 5. Porque usar

Solve

Page 20: Graph Database Neo4j Edson Barboza. Roteiro 1. Exemplos de grafos 2. Ranking Graph Database 3. Graph Search 4. Tamanho vs Complexidade 5. Porque usar

Deletando nós e relacionamentos

Page 21: Graph Database Neo4j Edson Barboza. Roteiro 1. Exemplos de grafos 2. Ranking Graph Database 3. Graph Search 4. Tamanho vs Complexidade 5. Porque usar

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.

 

Page 22: Graph Database Neo4j Edson Barboza. Roteiro 1. Exemplos de grafos 2. Ranking Graph Database 3. Graph Search 4. Tamanho vs Complexidade 5. Porque usar

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.

Page 23: Graph Database Neo4j Edson Barboza. Roteiro 1. Exemplos de grafos 2. Ranking Graph Database 3. Graph Search 4. Tamanho vs Complexidade 5. Porque usar

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

Page 24: Graph Database Neo4j Edson Barboza. Roteiro 1. Exemplos de grafos 2. Ranking Graph Database 3. Graph Search 4. Tamanho vs Complexidade 5. Porque usar

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