graph database neo4j edson barboza. roteiro 1. exemplos de grafos 2. ranking graph database 3. graph...
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)
Nó
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