SlideShare uma empresa Scribd logo
1 de 19
Construindo sistemas de
recomendação com
Neo4j + NodeJs
(GRAPHS)[:ARE]›(EVERYWHERE)
Jhonathan S. Soares
• MongoDB Evangelist
• 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
• 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
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
Aplicações e Usos
• Fraud Detection
• Real-time recommendations
• Social network
• Identity and access management
• Network ant IT operations
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
Bolt Protocol API
• WebSocket
• Rest
• TCP & TSL encapsulation
• Porta 7687
Hora do Demo
Hora do Demo
• Preparando o Neo4j
• :play movies
• MATCH (tom {name: "Tom Hanks"}) RETURN tom
• MATCH (n:Movie) RETURN n LIMIT 25
• CREATE (Jhonathan:Person {name:'Jhonathan Soares', born:1990}) MATCH
(p:Person {name:'Jhonathan Soares'}), (m:Movie {title:'The Matrix'})
• CREATE (p)-[:ACTED_IN {roles:['Figurant']}]->(m)
• MATCH (jhonathan:Person { name:'Jhonathan Soares' }),(keanu:Person {
name: 'Keanu Reeves' }), p = shortestPath((jhonathan)-[*..15]-(keanu))
RETURN p
Hora do Demo
• Match
• Limit
• Insert
• Shortestpath
• :play query template
• :play sysinfo
• :config
Hora do Demo
• Stack
• Neo4j Bolt JavaScript Driver
• Neo4j Community
• Frontend: ES6, jquery, bootstrap, d3.js
• Webpack for building web assets
Github: https://github.com/jhomarolo/movies-javascript-bolt
• npm install
• npm run dev
• http://localhost:8080/webpack-dev-server/
Dúvidas?
(graphs)[:ARE]›(everywhere)
FIM!
http://codigosimples.net

Mais conteúdo relacionado

Semelhante a Neo4j + nodejs

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
 
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
 
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesUtilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesChristiano Anderson
 
Bancos NoSQL no Microsoft Azure
Bancos NoSQL no Microsoft AzureBancos NoSQL no Microsoft Azure
Bancos NoSQL no Microsoft AzureJoel Rodrigues
 
Escalabilidade com Redis
Escalabilidade com Redis Escalabilidade com Redis
Escalabilidade com Redis Mario Guedes
 
No sql Orientado a documento
No sql Orientado a documentoNo sql Orientado a documento
No sql Orientado a documentoAlex Martins
 
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
 
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 REDISArrayOf.io
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edtedbrunoaalves
 
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
 
Como modelar, integrar e desenvolver aplicações com múltiplos bancos de dados...
Como modelar, integrar e desenvolver aplicações com múltiplos bancos de dados...Como modelar, integrar e desenvolver aplicações com múltiplos bancos de dados...
Como modelar, integrar e desenvolver aplicações com múltiplos bancos de dados...Luiz Henrique Zambom Santana
 
Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...
Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...
Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...Luis Cipriani
 
NoSQL no Microsoft Azure - Global Azure Bootcamp 2017
NoSQL no Microsoft Azure - Global Azure Bootcamp 2017NoSQL no Microsoft Azure - Global Azure Bootcamp 2017
NoSQL no Microsoft Azure - Global Azure Bootcamp 2017Renato Groff
 
Minicurso Epoca mongoDB
Minicurso Epoca mongoDBMinicurso Epoca mongoDB
Minicurso Epoca mongoDBLelyBarros
 
Bancos de dados NoSQL - Redis e MongoDB
Bancos de dados NoSQL - Redis e MongoDBBancos de dados NoSQL - Redis e MongoDB
Bancos de dados NoSQL - Redis e MongoDBPaulo Bischof
 
Ruby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao FrameworkRuby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao FrameworkGuilherme Carlos
 
Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHPRangel Javier
 
AspNet 5 & Redis - Escalando sua performance
AspNet 5 & Redis - Escalando sua performanceAspNet 5 & Redis - Escalando sua performance
AspNet 5 & Redis - Escalando sua performanceJosé Roberto Araújo
 
O poder do Docker (7 Masters)
O poder do Docker (7 Masters)O poder do Docker (7 Masters)
O poder do Docker (7 Masters)Wellington Silva
 

Semelhante a Neo4j + nodejs (20)

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
 
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
 
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesUtilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentes
 
Bancos NoSQL no Microsoft Azure
Bancos NoSQL no Microsoft AzureBancos NoSQL no Microsoft Azure
Bancos NoSQL no Microsoft Azure
 
Escalabilidade com Redis
Escalabilidade com Redis Escalabilidade com Redis
Escalabilidade com Redis
 
No sql Orientado a documento
No sql Orientado a documentoNo sql Orientado a documento
No sql Orientado a documento
 
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
 
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
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edted
 
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
 
Como modelar, integrar e desenvolver aplicações com múltiplos bancos de dados...
Como modelar, integrar e desenvolver aplicações com múltiplos bancos de dados...Como modelar, integrar e desenvolver aplicações com múltiplos bancos de dados...
Como modelar, integrar e desenvolver aplicações com múltiplos bancos de dados...
 
Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...
Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...
Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...
 
NoSQL no Microsoft Azure - Global Azure Bootcamp 2017
NoSQL no Microsoft Azure - Global Azure Bootcamp 2017NoSQL no Microsoft Azure - Global Azure Bootcamp 2017
NoSQL no Microsoft Azure - Global Azure Bootcamp 2017
 
Minicurso Epoca mongoDB
Minicurso Epoca mongoDBMinicurso Epoca mongoDB
Minicurso Epoca mongoDB
 
Bancos de dados NoSQL - Redis e MongoDB
Bancos de dados NoSQL - Redis e MongoDBBancos de dados NoSQL - Redis e MongoDB
Bancos de dados NoSQL - Redis e MongoDB
 
Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0
 
Ruby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao FrameworkRuby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao Framework
 
Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHP
 
AspNet 5 & Redis - Escalando sua performance
AspNet 5 & Redis - Escalando sua performanceAspNet 5 & Redis - Escalando sua performance
AspNet 5 & Redis - Escalando sua performance
 
O poder do Docker (7 Masters)
O poder do Docker (7 Masters)O poder do Docker (7 Masters)
O poder do Docker (7 Masters)
 

Mais de Jhonathan de Souza Soares

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 .NetJhonathan de Souza Soares
 
Azure CosmosDB para desenvolvedores de software
Azure CosmosDB para desenvolvedores de softwareAzure CosmosDB para desenvolvedores de software
Azure CosmosDB para desenvolvedores de softwareJhonathan de Souza Soares
 
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 Jhonathan de Souza Soares
 
Introdução ao NoSQL e modelagem de dados com MongoDB
Introdução ao NoSQL e modelagem de dados com MongoDBIntrodução ao NoSQL e modelagem de dados com MongoDB
Introdução ao NoSQL e modelagem de dados com MongoDBJhonathan de Souza Soares
 
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 - ReplicaSetJhonathan de Souza Soares
 

Mais de Jhonathan de Souza Soares (14)

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
 
Introdução ao NoSQL e modelagem de dados com MongoDB
Introdução ao NoSQL e modelagem de dados com MongoDBIntrodução ao NoSQL e modelagem de dados com MongoDB
Introdução ao NoSQL e modelagem de dados com MongoDB
 
Sem limites com NoSQL
Sem limites com NoSQLSem limites com NoSQL
Sem limites com NoSQL
 
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
 

Neo4j + nodejs

  • 1. Construindo sistemas de recomendação com Neo4j + NodeJs (GRAPHS)[:ARE]›(EVERYWHERE)
  • 2. Jhonathan S. Soares • MongoDB Evangelist • 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 • 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)
  • 8. Instalação e Configuração • Plataformas suportadas​ • Windows • Linux/Unix • Mac OSX • Versões • Community Edition • Enterprise Edition
  • 9. 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
  • 10. Aplicações e Usos • Fraud Detection • Real-time recommendations • Social network • Identity and access management • Network ant IT operations
  • 11. 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.
  • 12. 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
  • 13. Bolt Protocol API • WebSocket • Rest • TCP & TSL encapsulation • Porta 7687
  • 15. Hora do Demo • Preparando o Neo4j • :play movies • MATCH (tom {name: "Tom Hanks"}) RETURN tom • MATCH (n:Movie) RETURN n LIMIT 25 • CREATE (Jhonathan:Person {name:'Jhonathan Soares', born:1990}) MATCH (p:Person {name:'Jhonathan Soares'}), (m:Movie {title:'The Matrix'}) • CREATE (p)-[:ACTED_IN {roles:['Figurant']}]->(m) • MATCH (jhonathan:Person { name:'Jhonathan Soares' }),(keanu:Person { name: 'Keanu Reeves' }), p = shortestPath((jhonathan)-[*..15]-(keanu)) RETURN p
  • 16. Hora do Demo • Match • Limit • Insert • Shortestpath • :play query template • :play sysinfo • :config
  • 17. Hora do Demo • Stack • Neo4j Bolt JavaScript Driver • Neo4j Community • Frontend: ES6, jquery, bootstrap, d3.js • Webpack for building web assets Github: https://github.com/jhomarolo/movies-javascript-bolt • npm install • npm run dev • http://localhost:8080/webpack-dev-server/