SlideShare uma empresa Scribd logo
1 de 22
Introdução ao Neo4j – 3.x
(GRAPHS)[:ARE]›(EVERYWHERE)
Jhonathan S. Soares
• MVP Microsoft – Visual Studio
• Neo4j Top 50 Certified Developer
• Criador do blog CodigoSimples.net
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
Dúvidas?
(graphs)[:ARE]›(everywhere)
FIM!
http://codigosimples.net

Mais conteúdo relacionado

Semelhante a Criando sistemas de recomendação com neo4j

Criando sistemas de recomendação com Neo4j
Criando sistemas de recomendação com Neo4jCriando sistemas de recomendação com Neo4j
Criando sistemas de recomendação com Neo4jJhonathan de Souza Soares
 
Postgresql como NewSQL - DevCamp 2014
Postgresql como NewSQL - DevCamp 2014Postgresql como NewSQL - DevCamp 2014
Postgresql como NewSQL - DevCamp 2014Matheus de Oliveira
 
Banco de Dados em Grafos com Neo4J
Banco de Dados em Grafos com Neo4J  Banco de Dados em Grafos com Neo4J
Banco de Dados em Grafos com Neo4J Daniel San Martin
 
Voce ainda não conhece o mongoDb?
Voce ainda não conhece o mongoDb?Voce ainda não conhece o mongoDb?
Voce ainda não conhece o mongoDb?Pablo Juan ஃ
 
Apresentação Projeto Final Graduação UFF
Apresentação Projeto Final Graduação UFFApresentação Projeto Final Graduação UFF
Apresentação Projeto Final Graduação UFFBianca Caruso da Paixão
 
Três anos de Scala no NewsMonitor
Três anos de Scala no NewsMonitorTrês anos de Scala no NewsMonitor
Três anos de Scala no NewsMonitorFelipe Hummel
 
Ruby on rails gds 2011
Ruby on rails   gds 2011Ruby on rails   gds 2011
Ruby on rails gds 2011JogosUnisinos
 
Herança em Banco de Dados Objeto-Relacional (BDOR)
Herança em Banco de Dados Objeto-Relacional (BDOR)Herança em Banco de Dados Objeto-Relacional (BDOR)
Herança em Banco de Dados Objeto-Relacional (BDOR)Rafael Barbolo
 
MVP Conf 2018 - Pesquisa e Indexação de Documento com Azure Search
MVP Conf 2018 - Pesquisa e Indexação de Documento com Azure SearchMVP Conf 2018 - Pesquisa e Indexação de Documento com Azure Search
MVP Conf 2018 - Pesquisa e Indexação de Documento com Azure SearchRafael Cruz, MCT, MBA
 
SQL Server Heterogêneo: SQL Server + BigData
SQL Server Heterogêneo: SQL Server + BigDataSQL Server Heterogêneo: SQL Server + BigData
SQL Server Heterogêneo: SQL Server + BigDataRodrigo Dornel
 
Nosql e BD Orientados a Documentos
Nosql e BD Orientados a DocumentosNosql e BD Orientados a Documentos
Nosql e BD Orientados a DocumentosYuri Adams
 
HTML, CSS & JS: olhando pra frente
HTML, CSS & JS: olhando pra frenteHTML, CSS & JS: olhando pra frente
HTML, CSS & JS: olhando pra frenteLuiz Oliveira
 
Javascript para CSharpers 4 - POO
Javascript para CSharpers 4 - POOJavascript para CSharpers 4 - POO
Javascript para CSharpers 4 - POOWesley Lemos
 
Fazendo barba, cabelo e bigode com REDIS
Fazendo barba, cabelo e bigode com REDISFazendo barba, cabelo e bigode com REDIS
Fazendo barba, cabelo e bigode com REDISMario Guedes
 

Semelhante a Criando sistemas de recomendação com neo4j (20)

Criando sistemas de recomendação com Neo4j
Criando sistemas de recomendação com Neo4jCriando sistemas de recomendação com Neo4j
Criando sistemas de recomendação com Neo4j
 
Postgresql como NewSQL - DevCamp 2014
Postgresql como NewSQL - DevCamp 2014Postgresql como NewSQL - DevCamp 2014
Postgresql como NewSQL - DevCamp 2014
 
Minicurso mongo db
Minicurso mongo dbMinicurso mongo db
Minicurso mongo db
 
Banco de Dados em Grafos com Neo4J
Banco de Dados em Grafos com Neo4J  Banco de Dados em Grafos com Neo4J
Banco de Dados em Grafos com Neo4J
 
Voce ainda não conhece o mongoDb?
Voce ainda não conhece o mongoDb?Voce ainda não conhece o mongoDb?
Voce ainda não conhece o mongoDb?
 
Aprendendo R
Aprendendo RAprendendo R
Aprendendo R
 
Apresentação Projeto Final Graduação UFF
Apresentação Projeto Final Graduação UFFApresentação Projeto Final Graduação UFF
Apresentação Projeto Final Graduação UFF
 
Três anos de Scala no NewsMonitor
Três anos de Scala no NewsMonitorTrês anos de Scala no NewsMonitor
Três anos de Scala no NewsMonitor
 
Ruby on rails gds 2011
Ruby on rails   gds 2011Ruby on rails   gds 2011
Ruby on rails gds 2011
 
Herança em Banco de Dados Objeto-Relacional (BDOR)
Herança em Banco de Dados Objeto-Relacional (BDOR)Herança em Banco de Dados Objeto-Relacional (BDOR)
Herança em Banco de Dados Objeto-Relacional (BDOR)
 
NoSQL e MongoDB
NoSQL e MongoDBNoSQL e MongoDB
NoSQL e MongoDB
 
Dados espaciais em R (2020)
Dados espaciais em R (2020)Dados espaciais em R (2020)
Dados espaciais em R (2020)
 
MVP Conf 2018 - Pesquisa e Indexação de Documento com Azure Search
MVP Conf 2018 - Pesquisa e Indexação de Documento com Azure SearchMVP Conf 2018 - Pesquisa e Indexação de Documento com Azure Search
MVP Conf 2018 - Pesquisa e Indexação de Documento com Azure Search
 
SQL Server Heterogêneo: SQL Server + BigData
SQL Server Heterogêneo: SQL Server + BigDataSQL Server Heterogêneo: SQL Server + BigData
SQL Server Heterogêneo: SQL Server + BigData
 
NoSQL e MongoDB - ETEC
NoSQL e MongoDB - ETECNoSQL e MongoDB - ETEC
NoSQL e MongoDB - ETEC
 
Nosql e BD Orientados a Documentos
Nosql e BD Orientados a DocumentosNosql e BD Orientados a Documentos
Nosql e BD Orientados a Documentos
 
Expressões regulares
Expressões regularesExpressões regulares
Expressões regulares
 
HTML, CSS & JS: olhando pra frente
HTML, CSS & JS: olhando pra frenteHTML, CSS & JS: olhando pra frente
HTML, CSS & JS: olhando pra frente
 
Javascript para CSharpers 4 - POO
Javascript para CSharpers 4 - POOJavascript para CSharpers 4 - POO
Javascript para CSharpers 4 - POO
 
Fazendo barba, cabelo e bigode com REDIS
Fazendo barba, cabelo e bigode com REDISFazendo barba, cabelo e bigode com REDIS
Fazendo barba, cabelo e bigode com REDIS
 

Mais de Jhonathan de Souza Soares

Mais de Jhonathan de Souza Soares (12)

Link Prediction with Neo4j
Link Prediction with Neo4jLink Prediction with Neo4j
Link Prediction with Neo4j
 
6 Principios arquitetura de dados moderna
6 Principios arquitetura de dados moderna6 Principios arquitetura de dados moderna
6 Principios arquitetura de dados moderna
 
Api todo list
Api todo listApi todo list
Api todo list
 
Azure Service Fabric - Orquestrando aplicações .Net
Azure Service Fabric - Orquestrando aplicações .NetAzure Service Fabric - Orquestrando aplicações .Net
Azure Service Fabric - Orquestrando aplicações .Net
 
Azure CosmosDB para desenvolvedores de software
Azure CosmosDB para desenvolvedores de softwareAzure CosmosDB para desenvolvedores de software
Azure CosmosDB para desenvolvedores de software
 
Graph of Thrones - Neo4j + Game of Thrones
Graph of Thrones - Neo4j + Game of Thrones Graph of Thrones - Neo4j + Game of Thrones
Graph of Thrones - Neo4j + Game of Thrones
 
CosmosDB from zero2hero
CosmosDB from zero2heroCosmosDB from zero2hero
CosmosDB from zero2hero
 
NoSQL CosmosDB e IOT na era Serveless
NoSQL CosmosDB e IOT na era ServelessNoSQL CosmosDB e IOT na era Serveless
NoSQL CosmosDB e IOT na era Serveless
 
NoSQL Multi-Model - Conheça o CosmosDB
NoSQL Multi-Model - Conheça o CosmosDB NoSQL Multi-Model - Conheça o CosmosDB
NoSQL Multi-Model - Conheça o CosmosDB
 
Análise de faces e emoções com Serviços Cognitivos de Visão da Microsoft
Análise de faces e emoções com Serviços Cognitivos de Visão da Microsoft Análise de faces e emoções com Serviços Cognitivos de Visão da Microsoft
Análise de faces e emoções com Serviços Cognitivos de Visão da Microsoft
 
Conhecendo o mongodb e clusterização de dados - ReplicaSet
Conhecendo o mongodb e clusterização de dados - ReplicaSetConhecendo o mongodb e clusterização de dados - ReplicaSet
Conhecendo o mongodb e clusterização de dados - ReplicaSet
 
Migrando dados do SQL para Neo4j - TDC
Migrando dados do SQL para Neo4j  - TDCMigrando dados do SQL para Neo4j  - TDC
Migrando dados do SQL para Neo4j - TDC
 

Criando sistemas de recomendação com neo4j

  • 1. Introdução ao Neo4j – 3.x (GRAPHS)[:ARE]›(EVERYWHERE)
  • 2. Jhonathan S. Soares • MVP Microsoft – Visual Studio • Neo4j Top 50 Certified Developer • Criador do blog CodigoSimples.net
  • 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