Se ha denunciado esta presentación.
Se está descargando tu SlideShare. ×

Introdução à Neo4j

Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Próximo SlideShare
Palestra Ciência de Dados
Palestra Ciência de Dados
Cargando en…3
×

Eche un vistazo a continuación

1 de 52 Anuncio
Anuncio

Más Contenido Relacionado

Similares a Introdução à Neo4j (20)

Más de Neo4j (20)

Anuncio

Más reciente (20)

Introdução à Neo4j

  1. 1. Webinar Introdução à Neo4J Junho 2022 José Eduardo Machado – Sales Engineer 1 Neo4j, Inc. All rights reserved 2022
  2. 2. Neo4j, Inc. All rights reserved 2022 2 Apresentação José Eduardo Machado Neo4j Sales Engineer - Latin America José Eduardo se juntou à Neo4j em 2022 para compor o time da América Latina. Estudou Ciências da Computação na USP e tem uma pós-graduação em Administração pela FGV. Começou sua carreira como analista de dados em uma instituição financeira, depois foi consultor e migrou para a área de pré-vendas. Em sua jornada navegou por diferentes indústrias e passou por empresas como Itaú, SAS, SAP e Salesforce onde atuou nos últimos 4,5 anos. Dados, Serviços Financeiros e CRM são suas paixões.
  3. 3. Neo4j, Inc. All rights reserved 2022 3 Agenda 1. Introdução 2. A Neo4j 4. Neo4j na indústria e como plataforma 5. Demo
  4. 4. Neo4j, Inc. All rights reserved 2022 4 Introdução
  5. 5. Neo4j, Inc. All rights reserved 2021 5 Clientes resolvendo o que era considerado insolúvel Panamá & Pandora Papers Cura do câncer Missão à Marte Preço de tarifas globais COVID-19 Neo4j, Inc. All rights reserved 2022
  6. 6. © 2022 Neo4j, Inc. All rights reserved. 6 O que é um grafo?
  7. 7. Neo4j, Inc. All rights reserved 2022 7
  8. 8. Neo4j, Inc. All rights reserved 2022 8
  9. 9. Neo4j, Inc. All rights reserved 2022 9 O que é a teoria dos grafos? Em matemática, a Teoria dos Grafos é o estudo de estruturas usadas para modelar relações entre conceitos. Mais intuitivamente: a Teoria dos Grafos é o estudo das relações.
  10. 10. LOVES LOVES LIVES WITH 10 Entidade Representa uma entidade Relacionamento Conecta as entidades com contexto Propriedades Descreve uma entidade ou relacionamento ex. nome, idade, etc MICA ANDRE Name: “Andre” Born: May 29, 1970 Twitter: “@dan” Name: “Mica” Born: Dec 5, 1975 CAR Brand “Volvo” Model: “V70” Since: Jan 10, 2011
  11. 11. © 2022 Neo4j, Inc. All rights reserved. 11 Por que grafos?
  12. 12. Neo4j, Inc. All rights reserved 2022 Por que grafos? Relacionamentos e estruturas interconectadas são altamente preditivos e subutilizados – e já estão em seus dados. Os grafos são uma maneira natural de armazenar e usar essas informações preditivas. “Os relacionamentos são o mais forte preditor de comportamento” James Fowler (“Connected”)
  13. 13. 13 13 COVID-19 Demands Urgent Use of Graph Data Management & Analytics, April 2020 De acordo com o Gartner, “a análise de grafos se destaca particularmente na descoberta de dados porque permite que os usuários descubram os ‘desconhecidos desconhecidos’ – para identificar padrões nos dados quando não sabemos a pergunta certa a ser feita em primeiro lugar. A análise de grafos torna isso possível, promovendo relacionamentos que não são óbvios, por meio da consciência de relacionamento não óbvio (NORA, em inglês).” De acordo com o Gartner, “Os grafos formam a base da D&A moderna, com recursos para aprimorar e melhorar a colaboração do usuário, modelos de ML e IA explicável. O recente Gartner AI in Organizations Survey demonstra que as técnicas de grafo são cada vez mais prevalentes à medida que a maturidade da IA cresce, passando de 13% de adoção quando a maturidade da IA é mais baixa para 48% quando a maturidade é mais alta.” Top 10 Tech Trends in Data and Analytics, 16 Feb 2021
  14. 14. © 2022 Neo4j, Inc. All rights reserved. 14 A NEO4J
  15. 15. Neo4j: Ajudando o mundo a entender seus dados 160M+ Downloads 230K+ Devs & Data Scientists $390M Series F (June 2021) Maior investimento na história do banco de dados A mais confiável plataforma de Grafos 7 dos 10 maiores varejistas do mundo 3 dos 5 principais fabricantes de aeronaves Todos os 20 maiores bancos da América do Norte 7 das 10 maiores empresas de Telco Líder de mercado: milhares de implantações ao redor do mundo
  16. 16. Neo4j, Inc. All rights reserved 2022 Pioneira com o maior investimento dedicado da indústria em grafos Neo4j - A companhia de grafos Criadora da categoria (Gartner), Property Graph e linguagem Cypher no centro do projeto GQL ISO Milhares de clientes em todo o mundo Sede no Vale do Silício, incluindo escritórios em Londres, Munique, Paris e Malmö. On-Prem In The Cloud DB-as-a-Service Em qualquer lugar, os clientes utilizam Funcionamento independente de plataforma ou nuvem
  17. 17. © 2022 Neo4j, Inc. All rights reserved. © 2022 Neo4j, Inc. All rights reserved. 17 Neo4j na indústria
  18. 18. Pessoas Funcionários, Clientes, Fornecedores, Parceiros, Influenciadores Transações Compras, Pagamentos, Análise de risco, eCommerce Conhecimento Conteúdo da empresa/domínio, cadeia de suprimentos, etc. De orientado por dados a orientado por inteligência 8 Neo4j, Inc. All rights reserved 2021 A tecnologia de grafos representa as relações de dados de forma intuitiva
  19. 19. Neo4j, Inc. All rights reserved 2022 Onde os dados conectados têm maior impacto? Personalização • Recomendações de produtos em tempo real • Cliente 360 • Plataforma de dados de marketing • Análise da jornada do cliente Detecção de Fraudes Operações de Rede Gerenciamento de dados mestre Grafos de conhecimento Gerenciamento de identidade e acesso • Contra lavagem de dinheiro • Negociação com informações privilegiadas • Conheça seu cliente • Detecção de thread • Análise de impacto • Design de rede • Metadados • Linhagem de dados • Dados hierárquicos • Inteligência artificial • Aprendizado de máquina • Processamento de linguagem natural • Chatbot • Gerenciamento de capital humano • Direitos de acesso • Provisionamento e desprovisionamento
  20. 20. Neo4j, Inc. All rights reserved 2022 20 Bancos de dados de grafos Por que a Neo4j?
  21. 21. Neo4j, Inc. All rights reserved 2022 21 O modelo de grafos é natural
  22. 22. Neo4j, Inc. All rights reserved 2022 Neo4j é um banco de dados de grafos nativo 22
  23. 23. Neo4j, Inc. All rights reserved 2022 O modelo de grafo de propriedades 23 Nós • Eles podem ter rótulos para serem classificados • As tags têm índices nativos Relações • Eles relacionam nós por tipo e endereço Propriedades • Atributos de nós e relacionamentos • Persistente como chave/valor • Eles podem ter índices ou índices compostos AMA AMA VIVE COM ANA DANIEL Nome: “Daniel” Nascimento: 29 de Maio, 1970 Twitter: “@dan” CARRO Marca “Volvo” Modelo: “V70” Desde: 10 de Jan, 2011
  24. 24. Neo4j, Inc. All rights reserved 2022 Modelo relacional (RDBMS) vs Modelo de grafos 24 Modelo relacional Modelo de grafos CONHECE ANDRÉ TOBIAS MÁRCIA DÉLIA Pessoa Amigo Pessoa-Amigo ANDRÉ DÉLIA TOBIAS MÁRCIA
  25. 25. Neo4j, Inc. All rights reserved 2022 Cypher: linguagem de consulta potente e expressiva 25 CREATE (:Pessoa{nome:“Daniel”} )-[:CASADO_COM]->(:Pessoa{nome:“Ana”} ) Pessoa NÓ NÓ ETIQ PROPRIEDADE ETIQ PROPRIEDADE RELAÇÃO nome: ‘Ana’ CASADO_COM Pessoa nome: ‘Daniel’
  26. 26. Neo4j, Inc. All rights reserved 2022 Cypher: linguagem de consulta potente e expressiva 26 CASADO_COM Pessoa nome: ‘Daniel’ MATCH (p:Pessoa{nome:“Daniel”} ) -[:CASADO_COM]-> (esposa) NÓ TIPO DE RELAÇÃO ETIQ PROPRIEDADE VARIÁVEL esposa NÓ RETURN p, spouse VARIÁVEL
  27. 27. © 2022 Neo4j, Inc. All rights reserved. 27 A plataforma
  28. 28. Neo4j, Inc. All rights reserved 2022 Analytics Tooling Graph Transactions Data Integration Dev. & Admin Drivers & APIs Discovery & Visualization Graph Analytics & Data Science Tecnologia nativa de grafos para aplicações e análise 28 Developers Admins Applications Business Users Data Analysts Data Scientists Bloom Kafka Connector BI Connector Spark Connector GRANDstak (GraphQL, React, Apollo, Neo4j)
  29. 29. Neo4j, Inc. All rights reserved 2022 29 Graph Data Science com Neo4j
  30. 30. Neo4j, Inc. All rights reserved 2022 O que é GDS? - Graph Data Science 30 Ciência de dados quando as relações importarem
  31. 31. Neo4j, Inc. All rights reserved 2022 Categorias de algoritmos de grafos Pathfinding and Search Centrality Community Detection Heuristic Link Prediction Similarity Determina a importância de diferentes nós na rede. Detecta clustering ou particionamento. Avalia como os nós são semelhantes por vizinhos e relacionamentos. Encontra rotas ideais ou avalia a disponibilidade e a qualidade das rotas. Estima a probabilidade dos nós formarem um relacionamento futuro. Mais de 60 algoritmos de grafos na Neo4j Embeddings Aprenda a topologia do grafo para reduzir a dimensionalidade do ML 31
  32. 32. Neo4j, Inc. All rights reserved 2022 60+ Algoritmos de grafos na Neo4j 32 • Degree Centrality • Closeness Centrality • Harmonic Centrality • Betweenness Centrality & Approx. • PageRank • Personalized PageRank • ArticleRank • Eigenvector Centrality • Triangle Count • Clustering Coefficients • Connected Components (Union Find) • Strongly Connected Components • Label Propagation • Louvain Modularity • Balanced Triad (identification) • Shortest Path • Single-Source Shortest Path • All Pairs Shortest Path • A* Shortest Path • Yen’s K Shortest Path • Minimum Weight Spanning Tree • K-Spanning Tree (MST) • Random Walk • Breadth & Depth First Search • Triangle Count • Local Clustering Coefficient • Connected Components (Union Find) • Strongly Connected Components • Label Propagation • Louvain Modularity • K-1 Coloring • Modularity Optimization • Euclidean Distance • Cosine Similarity • Node Similarity (Jaccard) • Overlap Similarity • Pearson Similarity • Approximate KNN Pathfinding & Search Centrality / Importance Community Detection Similarity Link Prediction • Adamic Adar • Common Neighbors • Preferential Attachment • Resource Allocations • Same Community • Total Neighbors ... Auxiliary Functions: • Random graph generation • Graph export • One hot encoding • Distributions & metrics Embeddings • Node2Vec • Random Projections • GraphSAGE
  33. 33. Neo4j, Inc. All rights reserved 2022 33 Demonstração
  34. 34. Neo4j, Inc. All rights reserved 2022 34 O banco de dados de filmes
  35. 35. Neo4j, Inc. All rights reserved 2022 () (:Person) (p1:Person) (p2:Person {name: "Tom Hanks"}) 35 Cypher é arte ASCII (nós)
  36. 36. Neo4j, Inc. All rights reserved 2022 ()-[]-()-[]-()-[]-()-[]-()-[]-()-[]-() ()-[:ACTED_IN]-() ()-[a1:ACTED_IN]-() ()-[a2:ACTED_IN]->() ()-[a3:ACTED_IN|DIRECTED]-() ()-[a4:ACTED_IN {roles: ["Mr. White"]}]-() 36 Cypher é arte ASCII (relações)
  37. 37. Neo4j, Inc. All rights reserved 2022 Importando dados de CSV LOAD CSV WITH HEADERS FROM 'http://data.neo4j.com/intro/movies/movies.csv' AS row RETURN row, keys(row) LIMIT 5;
  38. 38. Neo4j, Inc. All rights reserved 2022 Lock & Load - Primeiro as constraints! 38 CREATE CONSTRAINT ON (m:Movie) ASSERT m.title IS UNIQUE; CREATE CONSTRAINT ON (p:Person) ASSERT p.name IS UNIQUE;
  39. 39. Neo4j, Inc. All rights reserved 2022 Lock & Load - Loading Movie Node 39 // load … and by all means try it multiple times LOAD CSV WITH HEADERS FROM 'http://data.neo4j.com/intro/movies/movies.csv' AS row CREATE (:Movie {title: row.title, released: toInteger(row.released), tagline: row.tagline}); // verify MATCH (m:Movie) RETURN count(*);
  40. 40. Neo4j, Inc. All rights reserved 2022 Lock & Load - Loading Person Node 40 // load LOAD CSV WITH HEADERS FROM 'http://data.neo4j.com/intro/movies/people.csv' AS row CREATE (:Person {name: row.name, born: toInteger(row.born)}); // verify MATCH (p:Person) RETURN count(*);
  41. 41. Neo4j, Inc. All rights reserved 2022 Lock & Load - Creating relationships 41 // load LOAD CSV WITH HEADERS FROM 'http://data.neo4j.com/intro/movies/actors.csv' AS row MATCH (p:Person {name: row.person }) MATCH (m:Movie {title: row.movie}) MERGE (p)-[actedIn:ACTED_IN]->(m) ON CREATE SET actedIn.roles = split(row.roles,';'); // verify MATCH(p:Person {name: "Tom Hanks"})-[a:ACTED_IN]-(m:Movie) RETURN p,a,m;
  42. 42. Neo4j, Inc. All rights reserved 2022 Lock & Load - Creating relationships 42 // load LOAD CSV WITH HEADERS FROM 'http://data.neo4j.com/intro/movies/directors.csv' AS row MATCH (p:Person {name: row.person }) MATCH (m:Movie {title: row.movie}) MERGE (p)-[:DIRECTED]->(m); // verify MATCH(p:Person {name: "Tom Hanks"})-[d:DIRECTED]-(m:Movie) RETURN p,d,m;
  43. 43. Neo4j, Inc. All rights reserved 2022 // Finding Tom MATCH (p:Person {name: "Tom Hanks"}) RETURN p; // Finding Tom too MATCH (p:Person) WHERE p.name = "Tom Hanks" RETURN p; Essas duas consultas são exatamente as mesmas... mas como eu sei? 43 A primeira query
  44. 44. Neo4j, Inc. All rights reserved 2022 // analyzing finding Tom PROFILE MATCH (p:Person {name: "Tom Hanks"}) RETURN p; // analyzing finding Tom too PROFILE MATCH (p:Person) WHERE p.name = "Tom Hanks" RETURN p; 44 A primera query (analisada)
  45. 45. Neo4j, Inc. All rights reserved 2022 // analyzing without finding Tom EXPLAIN MATCH (p:Person {name: "Tom Hanks"}) RETURN p; // analyzing without finding Tom too EXPLAIN MATCH (p:Person) WHERE p.name = "Tom Hanks" RETURN p; 45 A primera query (analisada)
  46. 46. Neo4j, Inc. All rights reserved 2022 // O Tom atuou com o Tom? MATCH (p1:Person)-[a1:ACTED_IN]-(m:Movie)-[a2:ACTED_IN]-(p2:Person) WHERE p1.name = "Tom Hanks" AND p2.name = "Tom Cruise" RETURN p1.name, a1.roles, p2.name, a2.roles, m.title; 46 Segunda query
  47. 47. Neo4j, Inc. All rights reserved 2022 // Crie-se como um ator ou uma atriz... CREATE (p:Person {name: "<your name>"}); // Merge MERGE (p:Person {name: "<your name>"}); // Criar relação MATCH (p:Person {name: "<your name>"}),(m:Movie{title:'The Matrix'}) WITH a,m MERGE (a)-[:ACTED_IN]->(m) 47 Criando nós
  48. 48. Neo4j, Inc. All rights reserved 2022 // O que eu estou fazendo exatamente aqui? MATCH (p:Person {name: "José Eduardo"})-[a:ACTED_IN]->(m:Movie{title:'The Matrix'}) SET p.born = 1988 RETURN * 48 Atualizando nós
  49. 49. © 2022 Neo4j, Inc. All rights reserved. 49 Recomendações 101
  50. 50. Neo4j, Inc. All rights reserved 2022 // Quem deveria atuar com Tom? MATCH (tom:Person {name: "Tom Hanks"})-[:ACTED_IN]->(m1)<-[:ACTED_IN]- (coActors:Person)-[:ACTED_IN]->(m2)<-[:ACTED_IN]-(cocoActors:Person) WHERE NOT (tom)-[:ACTED_IN]->()<-[:ACTED_IN]-(cocoActors) AND tom <> cocoActors RETURN cocoActors.name AS Recommended, count(*) AS Strength ORDER BY Strength DESC; 50 Recomendações
  51. 51. Neo4j, Inc. All rights reserved 2022 // Quem deveria atuar com Tom? MATCH (tom:Person {name: "Tom Hanks"})-[:ACTED_IN]->(m1)<-[:ACTED_IN]- (coActors:Person)-[:ACTED_IN]->(m2)<-[:ACTED_IN]-(cocoActors:Person) WHERE NOT (tom)-[:ACTED_IN]->()<-[:ACTED_IN]-(cocoActors) AND tom <> cocoActors RETURN cocoActors.name AS Recommended, collect(DISTINCT coActors.name), count(DISTINCT coActors.name) AS Strength ORDER BY Strength DESC; 51 Recomendações (melhorado)
  52. 52. Neo4j, Inc. All rights reserved 2022 52 Obrigado! Perguntas? jose.machado@neo4j.com

×