Neo4j - Sua vida com grafos

40
Neo4j Sua vida com grafos!

description

Palestra TDC SP 2014

Transcript of Neo4j - Sua vida com grafos

Page 1: Neo4j - Sua vida com grafos

Neo4jSua vida com grafos!

Page 2: Neo4j - Sua vida com grafos

Oi!

• Hanneli (‘H' mudo)

• CodeMiner 42

• Café, Pokémon, Lego e bichos <3

HIRING

Page 3: Neo4j - Sua vida com grafos

Afinal, por que grafos?

faculdadeprecisa

representação

fácil

memorizar

Page 4: Neo4j - Sua vida com grafos

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)

Page 5: Neo4j - Sua vida com grafos

Agenda

Teoria básica

surge representação

Neo4j

bancos

Primeiros passos

vantagensquando não

usar

Page 6: Neo4j - Sua vida com grafos

Dia a dia com grafosUm exemplo além de Twitter e Facebook

Page 7: Neo4j - Sua vida com grafos

ExemploComo a Codeminer monta os times para os projetos?

Page 8: Neo4j - Sua vida com grafos

ExemploComo a Codeminer monta os times para os projetos?

MATCH

Page 9: Neo4j - Sua vida com grafos

Quantas vezes você já não fez

desenhos assim?

Page 10: Neo4j - Sua vida com grafos

Breve histórico• Euler

• Estatística

• Patterns/relacionamento

• Dependências

• Trajetos

Page 11: Neo4j - Sua vida com grafos

Persistência

Page 12: Neo4j - Sua vida com grafos

Persistência

Page 13: Neo4j - Sua vida com grafos

PersistênciaQual uma das primeiras matérias que!

vemos na faculdade?

Page 14: Neo4j - Sua vida com grafos

Quem lembra?

FilaStackHashTree

Grafos

Page 15: Neo4j - Sua vida com grafos

PersistênciaQual a primeira forma de armazenamento que vemos!

na disciplina de Banco de dados?

a. Filab. Stackc. Hashd. Treee. N.D.A

Page 16: Neo4j - Sua vida com grafos

Persistência

Page 17: Neo4j - Sua vida com grafos

Você já tinha pensado nisso?

Page 18: Neo4j - Sua vida com grafos

Quando me dei conta disso?

Page 19: Neo4j - Sua vida com grafos

Modelagem de usinas hidrelétricas

Page 20: Neo4j - Sua vida com grafos

Falhas modelo relacional

Page 21: Neo4j - Sua vida com grafos

Quero representar isso no modelo relacional

USINAlocalizacao:floatcapacidade:floatnome:floatcidades_que_atende_ids:CIDADEusinas_vizinhas_id:USINA populacao:int

Page 22: Neo4j - Sua vida com grafos

FUUUUUUU….

Page 23: Neo4j - Sua vida com grafos

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?

Page 24: Neo4j - Sua vida com grafos

Double Fail….

Page 25: Neo4j - Sua vida com grafos

Desaprendi?

Page 26: Neo4j - Sua vida com grafos

Olhe para isso

Page 27: Neo4j - Sua vida com grafos

Parecidos?

Page 28: Neo4j - Sua vida com grafos

Parecidos?

Page 29: Neo4j - Sua vida com grafos

Bancos orientados a grafos

Porque nem tudo precisa viver em tabelas

Page 30: Neo4j - Sua vida com grafos

Neo4j

Page 31: Neo4j - Sua vida com grafos

Nossas usinas agora em grafos

Itaipu! é_vizinha Itá

latitude:33.43 longitude:32:33capacidade:1400

latitude:43.43 longitude:56:33capacidade:700

tensao_linha:230

Page 32: Neo4j - Sua vida com grafos

Nossas usinas agora em grafos

Itaipu! é_vizinha Itá

latitude:33.43 longitude:32:33capacidade:1400

latitude:43.43 longitude:56:33capacidade:700

tensao_linha:230 Node

Relationship

Attributes

index

Page 33: Neo4j - Sua vida com grafos

Representação visual

Page 34: Neo4j - Sua vida com grafos

Nossas usinas agora em grafos

Itaipu! alimenta Foz do iguaçu

latitude:33.43 longitude:32:33capacidade:1400

populacao:265000alimenta

Curitiba

populacao:1700000

Page 35: Neo4j - Sua vida com grafos

Itaipu abastece quantas pessoas?

Page 36: Neo4j - Sua vida com grafos

Traversal - Busca

Itaipu! alimenta Foz do iguaçu

latitude:33.43 longitude:32:33capacidade:1400

populacao:265000alimenta

Curitiba

populacao:1700000

Page 37: Neo4j - Sua vida com grafos

Cypher

Page 38: Neo4j - Sua vida com grafos

Neo4j - Quando não usar?

Page 39: Neo4j - Sua vida com grafos

Neo4j - Quando não usar?• NoSQL Hater?

• Buscas - cautela (profundidade x largura)

• Cloud

• Monitoramento

• Infra (backup)

• Pouca RAM

Page 40: Neo4j - Sua vida com grafos

Neo4j - Quando não usar?• NoSQL Hater?

• Buscas - cautela (profundidade x largura)

• Cloud

• Monitoramento

• Infra (backup)

• Pouca RAM