Neo4 j

660 visualizações

Publicada em

0 comentários
4 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
660
No SlideShare
0
A partir de incorporações
0
Número de incorporações
25
Ações
Compartilhamentos
0
Downloads
8
Comentários
0
Gostaram
4
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Neo4 j

  1. 1. Regis Hideki Hattori
  2. 2. Introdução
  3. 3. BD basead o em Grafos Nós Relacio namen tos Traves sias Camin hos Proprie dades Neo4J Índice Grafos é um gerencia gravam dados em percorrem descobrem são uma sequência de conectam têm têm mapeados por Modelo
  4. 4. Características • Armazenado e processados como grafo;
  5. 5. Características • Armazenado e processados como grafo; • Transações ACID;
  6. 6. Características • Armazenado e processados como grafo; • Transações ACID; • Operações CRUD;
  7. 7. Características • Armazenado e processados como grafo; • Transações ACID; • Operações CRUD; • Escalável para muitos bilhões de nós, arestas e propriedades;
  8. 8. Características • Armazenado e processados como grafo; • Transações ACID; • Operações CRUD; • Escalável para muitos bilhões de nós, arestas e propriedades; • Alta disponibilidade em sistemas distribuídos;
  9. 9. Características • Armazenado e processados como grafo; • Transações ACID; • Operações CRUD; • Escalável para muitos bilhões de nós, arestas e propriedades; • Alta disponibilidade em sistemas distribuídos; • Cypher;
  10. 10. Características • Armazenado e processados como grafo; • Transações ACID; • Operações CRUD; • Escalável para muitos bilhões de nós, arestas e propriedades; • Alta disponibilidade em sistemas distribuídos; • Cypher; • Algoritmos de travessia;
  11. 11. Características • Armazenado e processados como grafo; • Transações ACID; • Operações CRUD; • Escalável para muitos bilhões de nós, arestas e propriedades; • Alta disponibilidade em sistemas distribuídos; • Cypher; • Algoritmos de travessia; • Biblioteca embutida ou por meio de interface REST;
  12. 12. APIs
  13. 13. Communit y Advanced Enterpri se Ferramenta de gerenciamento avançado Não Sim Sim Suporte Comunid ade online E-mail (5x10) Telefon e (7x24) Alta disponibilidade, clustering, failover e backups Não Não Sim Assinatura anual/instância 0 6k USD 24k USD Tabela de Preços
  14. 14. Alguns Clientes
  15. 15. Documento x Grafo
  16. 16. Tabela x Grafo
  17. 17. Sharding
  18. 18. MySQL vs Neo4J x MySQL Neo4J 2 0,016 s 0,010 s 3 30,267 s 0,168 s 4 1.543 s 1,359 s 5 + 1h 2,132 s • Rede social com 1.000.000 de pessoas; • Cada pessoa com aproximadamente 50 amigos; • Retornar todos os amigos (x=2), amigos e amigos de amigos (x=3);
  19. 19. Neo4J Server
  20. 20. Dashboard
  21. 21. Data Browser - Console
  22. 22. Data Browser - Grafo
  23. 23. Data Browser – Tabela
  24. 24. Data Browser - Tabela
  25. 25. Data Browser - Estilo
  26. 26. Console – Shell, Gremlin, HTTP
  27. 27. Cypher
  28. 28. joã o ilda josé jea n olg a lara Criar
  29. 29. joã o ilda josé jea n olg a lara Buscar todos
  30. 30. joã o ilda josé jea n olg a lara Buscar por id, casar
  31. 31. joã o ilda josé jea n olg a lara 2010 2011 2009 Casar com condição, ?, renomear
  32. 32. joã o ilda josé jea n olg a lara Caminho variável, retorno sem repetição, ordenação
  33. 33. joã o ilda josé jea n olg a lara ? Adição de Relacionamento
  34. 34. joã o ilda josé jea n olg a lara ? Adição de Relacionamento
  35. 35. joã o ilda josé jea n olg a lara ilda josé Adição de Relacionamento
  36. 36. joã o ilda josé jea n olg a lara Adição de Relacionamento
  37. 37. joã o ilda olg a dd ee bb cc aa josé Sistema de Recomendação
  38. 38. joã o ilda olg a dd ee bb cc aa josé Sistema de Recomendação
  39. 39. joã o ilda olg a dd ee bb cc aa josé Sistema de Recomendação
  40. 40. Sistema de Recomendação joã o ilda olg a dd ee bb cc aa josé
  41. 41. Sistema de Recomendação joã o ilda olg a dd ee bb cc aa josé
  42. 42. Travessia u v x z w y
  43. 43. Travessia “todos os caminhos” u v x z w y
  44. 44. u v x z w y Travessia “todos os caminhos”
  45. 45. Travessia – sem repetir nó u v x z w y
  46. 46. Travessia – sem repetir nó u v x z w y
  47. 47. u v x z w y Travessia – sem repetir nó
  48. 48. Travessia – menor caminho u v x z w y
  49. 49. Travessia – considerando custos u v x z w y 2 1 2 3 3 1 2 5 1 5
  50. 50. Travessia – considerando custos u v x z w y 2 1 2 3 3 1 2 5 1 5
  51. 51. Travessia – considerando custos u v x z w y 2 1 2 3 3 1 2 5 1 5
  52. 52. Detecção de ciclos u v x z w y
  53. 53. Detecção de ciclos u v x z w y
  54. 54. Detecção de ciclos u v x z w y
  55. 55. Detecção de ciclos u v x z w y
  56. 56. Detecção de ciclos u v x z w y
  57. 57. Detecção de ciclos u v x z w y
  58. 58. Detecção de ciclos u v x z w y
  59. 59. Detecção de ciclos u v x z w y
  60. 60. Detecção de ciclos u v x z w y
  61. 61. Detecção de ciclos u v x z w y
  62. 62. Detecção de ciclos u v x z w y
  63. 63. CRUD • Para todas as operações abaixo, é preciso buscar o nó/relacionamento com o START. – Excluir: delete no; – Excluir propriedade: delete no.propriedade; – Atualizar propriedade: SET no.propriedade = valor;
  64. 64. Questão de Modelagem rua:Rua X tipo: residencial rua:Rua Y tipo:comerci al Nome:Joã o end end rua:Rua X rua:Rua Y Nome:Joã o end_re s end_co m
  65. 65. Apenas endereço residencial: START joao = node(id) MATCH (joao)->[:end]- >(endereco) WHERE endereco.tipo = ‘residencial’ Questão de Modelagem rua:Rua X tipo: residencial rua:Rua Y Tipo:comerci al Nome:Joã o end end
  66. 66. Todos os endereços: START joao = node(id) MATCH (joao)->[:end_res|end_com]- >(endereco) RETURN endereco; Questão de Modelagem rua:Rua X rua:Rua Y Nome:Joã o end_re s end_co m
  67. 67. Questão de Modelagem Nome:João rua:Rua Yrua:Rua X end_comend_res endend
  68. 68. Questão de Modelagem Nome:João rua:Rua Yrua:Rua X end_comend_res endend Específico: START joao = node(id) MATCH (joao)->[:end_res]- >(endereco) RETURN endereco;
  69. 69. Questão de Modelagem Nome:João rua:Rua Yrua:Rua X end_comend_res endend Genérico: START joao = node(id) MATCH (joao)->[:end]- >(endereco) RETURN endereco;
  70. 70. Referências • BROWN UNIVERSITY. The Neo4j Manual. Disponível em: <http://cs.brown.edu/courses/cs227/paper s/neo4j.pdf>. Acesso em: 6 de setembro de 2013. • IAN, R.; WEBBER, J.; EIFREM, E. Graph Databases. 1. ed. O’Reilly, 2013. • NEO4J. Learn. Disponível em: <http://www.neo4j.org/learn>. Acesso em 5 de setembro de 2013.

×