Upload
jhonathan-de-souza-soares
View
316
Download
3
Embed Size (px)
Citation preview
Graph of Thrones
(GRAPHS)[:ARE]›(EVERYWHERE)
Jhonathan S. Soares
• MVP Microsoft – Visual Studio
• Neo4j Top 50 Certified Developer
• MongoDB Evangelist
• Criador do blog CodigoSimples.net
DISCLAIMER
• SE VOCÊ JÁ VIU TUDO SOBRE GAME OF THRONES, OK
• SE VOCÊ NÃO VIU TUDO, MAS NÃO SE IMPORTA DE RECEBER ALGUNS SPOILERS, OK
• SE VOCÊ NUNCA VIU, PREPARE-SE PARA SPOLERS
• SE VOCÊ NUNCA VIU E QUER VER E NÃO QUER SPOILERS, VOCÊ
ESTÁ EM PÉSSIMO LUGAR AGORA!
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
• 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
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
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
• Game of Thrones
• http://gameofthrones.wikia.com/wiki/Game_of_Thrones_Wiki
Hora do Demo
Questões pertinentes para o Neo4j
• Quem é o personagem mais prominente?
• Quem é a casa mais populosa?
• Como os starks e os tararyans estão relacionados?
Um pouco sobre modelagem ...
Nodes
Labels
Properties
Relationships
Demo time
• 1º Dataset
• :play https://guides.neo4j.com/got_wwc
• 2º Dataset
• :play http://guides.neo4j.com/got
Dúvidas?
(graphs)[:ARE]›(everywhere)