SlideShare uma empresa Scribd logo
Introdução ao Neo4j – 3.0
(GRAPHS)[:ARE]›(EVERYWHERE)
Jhonathan S. Soares
• MVP Microsoft – Visual Studio
• Neo4j Certified Developer
• Criador do blog CodigoSimples.net
Leandro Domingues
• Neo4j Certified Developer
• SQL Server Specialist
• Criador do blog CodificandoSempre.com.br
Introdução ao Neo4j
• Tipos de NOSQL
• Já somos 255 e crescendo o/
• Colunar | Wide Column | Column Families
• Hadoop – Hbase – Cassandra – BigTable
• Orientado à Documentos| Document Store
• ElasticSearch – OrientDB – MongoDB - DocumentDB
• Chave Valor | Tuple Store | Key Value
• DynamoDB – Azure Table – Redis - MemcacheDB
• Orientado à Grafos | Graph Databases
• Neo4j – ArangoDB – OrientDB - Titan
Introdução ao Neo4j
• Graph Databases
• Somos diferentes?
• Só você
• Just you
• Diferentão
• Vanguardista
• Pica das galáxias
• Está diretamente relacionado a um modelo
de dados estabelecido, o modelo de grafos.
Introdução ao Neo4j
• Graph Databases
• Representar os dados e / ou o esquema dos dados como grafos
dirigidos.
Introdução ao Neo4j
• Dijkstra
• Lei do menor caminho ou caminho com menor peso.
Introdução ao Neo4j
• Graph Databases
• Porém, por meio dos relacionamentos
inerentes aos grafos, estas consultas tornam-se mais
simples e diretas.
Introdução ao Neo4j
• Neo4j é feito do que?​
• Nós, Labels, Relacionamentos e Propriedades​
• Nós são os registros
• Labels são conjunto agrupado de nós
• Relacionamentos são as conexões entre os nós
• Propriedades são definições de um nós ( Direção, Agrupamento etc)
Instalação e Configuração
• Plataformas suportadas​
• Windows
• Linux/Unix
• Mac OSX
• Versões
• Community Edition
• Enterprise Edition
Introdução à Cypher Query
• Conceitos
• Cypher é uma linguagem declarativa, de inspiração SQL para
descrever padrões em gráficos utilizando uma sintaxe ascii-art.
• Ela nos permite selecionar, inserir, atualizar ou excluir dados do
gráfico sem a necessidade de descrever exatamente como fazê-lo.
Introdução à Cypher Query
• Conceitos
• MATCH (p:pessoa{idade: 25}) RETURN p
• MATCH é o nosso comando de seleção
• p:pessoa é o nosso conjunto de dados
• {idade:25} é o nosso where
• return p é quais registros eu quero que retorne
Introdução à Cypher Query
• Conceitos
• MATCH (p:pessoa{idade: 25}) RETURN p
• SELECT * FROM Pessoa WHERE idade = 25
• MATCH (p:pessoa{name:’Anakin’})-[:visitou]->(p) RETURN p
• SELECT p.* FROM Planetas p INNER JOIN VisitouPlaneta v ON p.id =
v.planeta_id INNER JOIN Pessoa pe ON v.pessoa_id = pe.id WHERE pe.nome =
'Anakin'
Linguagens de programação
• Neo4j se integra nativamente com:
• Java
• C#
• Python
• Ruby
• Javascript
• PHP
• Exemplo com c# : github.com/Readify/Neo4jClient/wiki/cypher-examples
Linguagens de programação
Imagine a seguinte classe em c#:
public class User
{
public long Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public string Email { get; set; }
}
Linguagens de programação
Retornar todos usuários
Cypher:
MATCH (user:User)
RETURN user
C#:
graphClient.Cypher
.Match("(user:User)")
.Return(user => user.As<User>())
.Results
Linguagens de programação
Retornar usuário específico
Cypher:
MATCH (user:User)
WHERE user.Id = 1234
RETURN user
C#:
graphClient.Cypher
.Match("(user:User)")
.Where((User user) => user.Id ==
1234)
.Return(user => user.As<User>())
.Results
Aplicações e Usos
• Fraud Detection
• Real-time recommendations
• Social network
• Identity and access management
• Network ant IT operations
Hora do Demo
Hora do Demo
• Match
• Limit
• Insert
• Shortestpath
• Execution Plan
• WebAdmin
• Features “Escondidas”
Features “Escondidas”
• :play query template
• :play sysinfo
• :config
• EXPLAIN + query
• PROFILE + query
• WebAdmin
Dúvidas?
(graphs)[:ARE]›(everywhere)
FIM!
http://codifiquesempre.com.br
http://codigosimples.net

Mais conteúdo relacionado

Introdução ao neo4j

  • 1. Introdução ao Neo4j – 3.0 (GRAPHS)[:ARE]›(EVERYWHERE)
  • 2. Jhonathan S. Soares • MVP Microsoft – Visual Studio • Neo4j Certified Developer • Criador do blog CodigoSimples.net Leandro Domingues • Neo4j Certified Developer • SQL Server Specialist • Criador do blog CodificandoSempre.com.br
  • 3. Introdução ao Neo4j • Tipos de NOSQL • Já somos 255 e crescendo o/ • Colunar | Wide Column | Column Families • Hadoop – Hbase – Cassandra – BigTable • Orientado à Documentos| Document Store • ElasticSearch – OrientDB – MongoDB - DocumentDB • Chave Valor | Tuple Store | Key Value • DynamoDB – Azure Table – Redis - MemcacheDB • Orientado à Grafos | Graph Databases • Neo4j – ArangoDB – OrientDB - Titan
  • 4. Introdução ao Neo4j • Graph Databases • Somos diferentes? • Só você • Just you • Diferentão • Vanguardista • Pica das galáxias • Está diretamente relacionado a um modelo de dados estabelecido, o modelo de grafos.
  • 5. Introdução ao Neo4j • Graph Databases • Representar os dados e / ou o esquema dos dados como grafos dirigidos.
  • 6. Introdução ao Neo4j • Dijkstra • Lei do menor caminho ou caminho com menor peso.
  • 7. Introdução ao Neo4j • Graph Databases • Porém, por meio dos relacionamentos inerentes aos grafos, estas consultas tornam-se mais simples e diretas.
  • 8. Introdução ao Neo4j • Neo4j é feito do que?​ • Nós, Labels, Relacionamentos e Propriedades​ • Nós são os registros • Labels são conjunto agrupado de nós • Relacionamentos são as conexões entre os nós • Propriedades são definições de um nós ( Direção, Agrupamento etc)
  • 9. Instalação e Configuração • Plataformas suportadas​ • Windows • Linux/Unix • Mac OSX • Versões • Community Edition • Enterprise Edition
  • 10. Introdução à Cypher Query • Conceitos • Cypher é uma linguagem declarativa, de inspiração SQL para descrever padrões em gráficos utilizando uma sintaxe ascii-art. • Ela nos permite selecionar, inserir, atualizar ou excluir dados do gráfico sem a necessidade de descrever exatamente como fazê-lo.
  • 11. Introdução à Cypher Query • Conceitos • MATCH (p:pessoa{idade: 25}) RETURN p • MATCH é o nosso comando de seleção • p:pessoa é o nosso conjunto de dados • {idade:25} é o nosso where • return p é quais registros eu quero que retorne
  • 12. Introdução à Cypher Query • Conceitos • MATCH (p:pessoa{idade: 25}) RETURN p • SELECT * FROM Pessoa WHERE idade = 25 • MATCH (p:pessoa{name:’Anakin’})-[:visitou]->(p) RETURN p • SELECT p.* FROM Planetas p INNER JOIN VisitouPlaneta v ON p.id = v.planeta_id INNER JOIN Pessoa pe ON v.pessoa_id = pe.id WHERE pe.nome = 'Anakin'
  • 13. Linguagens de programação • Neo4j se integra nativamente com: • Java • C# • Python • Ruby • Javascript • PHP • Exemplo com c# : github.com/Readify/Neo4jClient/wiki/cypher-examples
  • 14. Linguagens de programação Imagine a seguinte classe em c#: public class User { public long Id { get; set; } public string Name { get; set; } public int Age { get; set; } public string Email { get; set; } }
  • 15. Linguagens de programação Retornar todos usuários Cypher: MATCH (user:User) RETURN user C#: graphClient.Cypher .Match("(user:User)") .Return(user => user.As<User>()) .Results
  • 16. Linguagens de programação Retornar usuário específico Cypher: MATCH (user:User) WHERE user.Id = 1234 RETURN user C#: graphClient.Cypher .Match("(user:User)") .Where((User user) => user.Id == 1234) .Return(user => user.As<User>()) .Results
  • 17. Aplicações e Usos • Fraud Detection • Real-time recommendations • Social network • Identity and access management • Network ant IT operations
  • 19. Hora do Demo • Match • Limit • Insert • Shortestpath • Execution Plan • WebAdmin • Features “Escondidas”
  • 20. Features “Escondidas” • :play query template • :play sysinfo • :config • EXPLAIN + query • PROFILE + query • WebAdmin