Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Neo4j - Dia a dia com grafos, Neo4j e Ruby

83a8147c3c83c22e1e421c3420e768f9?s=47 hannelita
October 18, 2014

Neo4j - Dia a dia com grafos, Neo4j e Ruby

Palestra no TDC 2014 POA - trilha de Ruby

83a8147c3c83c22e1e421c3420e768f9?s=128

hannelita

October 18, 2014
Tweet

More Decks by hannelita

Other Decks in Technology

Transcript

  1. Neo4j Sua vida com grafos!

  2. Oi! • Hanneli (‘H' mudo) • CodeMiner 42 • Café,

    Pokémon, Lego e bichos <3 HIRING
  3. faculdade precisa representação fácil memorizar Afinal, por que grafos? Numa

    trilha de Ruby!
  4. O que não vamos ver aqui • Teoria avançada de

    grafos • Guia completo de Neo4j • Introdução sobre NoSQL • Exemplos de Redes Sociais (CLÁSSICO)
  5. Agenda Teoria básica surge representação Neo4j bancos Primeiros passos vantagens

    quando não usar
  6. Dia a dia com grafos Um exemplo além de Twitter

    e Facebook
  7. Exemplo Como a Codeminer monta os times para os projetos?

  8. Exemplo Como a Codeminer monta os times para os projetos?

    MATCH
  9. Quantas vezes você já não fez desenhos assim?

  10. Breve histórico • Euler • Estatística • Patterns/relacionamento • Dependências

    • Trajetos
  11. Persistência

  12. Persistência

  13. Persistência Qual uma das primeiras matérias que! vemos na faculdade?

  14. Quem lembra? Fila Stack Hash Tree Grafos

  15. Persistência Qual a primeira forma de armazenamento que vemos! na

    disciplina de Banco de dados? a. Fila b. Stack c. Hash d. Tree e. N.D.A
  16. Persistência

  17. Você já tinha pensado nisso?

  18. Quando me dei conta disso?

  19. Modelagem de usinas hidrelétricas

  20. Falhas modelo relacional

  21. Quero representar isso no modelo relacional USINA localizacao:float capacidade:float nome:float

    cidades_que_atende_ids:CIDADE usinas_vizinhas_id:USINA populacao:int
  22. FUUUUUUU….

  23. FUUUUUUU…. • De acordo com a população, qual vizinhança de

    usinas devo formar? • Se uma usina cair, qual a melhor para reassumir sem comprometer o sistema? • Como evitar subutilização? • Como monitorar?
  24. Double Fail….

  25. Desaprendi?

  26. Olhe para isso

  27. Parecidos?

  28. Parecidos?

  29. Bancos orientados a grafos Porque nem tudo precisa viver em

    tabelas
  30. Neo4j

  31. Nossas usinas agora em grafos Itaipu! é_vizinha Itá latitude:33.43 longitude:32:33

    capacidade:1400 latitude:43.43 longitude:56:33 capacidade:700 tensao_linha:230
  32. Nossas usinas agora em grafos Itaipu! é_vizinha Itá latitude:33.43 longitude:32:33

    capacidade:1400 latitude:43.43 longitude:56:33 capacidade:700 tensao_linha:230 Node Relationship Attributes index
  33. Representação visual

  34. Nossas usinas agora em grafos Itaipu! alimenta Foz do iguaçu

    latitude:33.43 longitude:32:33 capacidade:1400 populacao:265000 alimenta Curitiba populacao:1700000
  35. Itaipu abastece quantas pessoas?

  36. Traversal - Busca Itaipu! alimenta Foz do iguaçu latitude:33.43 longitude:32:33

    capacidade:1400 populacao:265000 alimenta Curitiba populacao:1700000
  37. Cypher

  38. Neo4j com Ruby <3 neo4j.rb Active Record

  39. Neo4j com Ruby <3 Wrapper da REST API Neography

  40. Neo4j - Quando não usar?

  41. Neo4j - Quando não usar? • NoSQL Hater? • Buscas

    - cautela (profundidade x largura) • Cloud • Monitoramento • Infra (backup) • Pouca RAM
  42. Obrigada! @hannelita hannelita@gmail.com

  43. Referências • NoSQL Hater? • Buscas - cautela (profundidade x

    largura) • Cloud • Monitoramento • Infra (backup) • Pouca RAM