Save 37% off PRO during our Black Friday Sale! »

Graph Databases: Solving Business Problems with Connected Data

Graph Databases: Solving Business Problems with Connected Data

In this connected world, traditional data stores often make it difficult to find valuable relationships. By making them a key component of the model, contextualizing a set of data becomes incredibly simple. In this session, we will walk through what a graph database is and how it can transform your applications and data. We will explore what data looks like in a graph and how to use simple tools to interact with the database. A demo will bring this all to life and show how to really use it. Join us to learn how graph databases can improve the data world and help users easily gain valuable insights with connected data!

10f2b035856eef2b59c02267e3ee9e63?s=128

Jennifer Reif

May 25, 2021
Tweet

Transcript

  1. Jennifer Reif Neo4j Developer Relations Engineer jennifer.reif@neo4j.com @JMHReif linkedin.com/in/jmhreif/ Graph

    Databases - Solving Business Problems with Connected Data
  2. Who Am I? • Developer Relations Engineer for Neo4j •

    Continuous learner • Conference speaker • Tech blogger • Hobbies: cats, co ff ee, horses, traveling Email: jennifer.reif@neo4j.com Twitter: @JMHReif
  3. What is a graph?

  4. A graph is… …a set of discrete objects, each of

    which has some set of relationships with the other objects Seven Bridges of Konigsberg problem. Leonard Euler, 1735
  5. (Graphs)-[ARE]-(Everywhere) the Internet a water molecule H O H Bank

    Fraud
  6. Literally… NASA space satellite Game of Thrones family trees

  7. What does graph have to offer?

  8. Show how data is connected

  9. Relational Graph

  10. Other NoSQL Graph

  11. Graphs add context and meaning

  12. A few graph use cases… Social network Fraud detection Network

    & IT operations Identity & access management Graph-based search
  13. None
  14. Follow the flow - buying tennis shoes

  15. Panama Papers Simple model, powerful outcome The Panama papers data

    model...
  16. Roses are red, Facebook is blue, No mutual friends, so

    who are you? Friends of friends….or co-actors of co-actors
  17. What are good graph scenarios?

  18. Identifying good graph scenarios Scenario 1: Does our problem involve

    understanding relationships between entities? •Recommendations •Fraud detection •Finding duplicates •Data lineage
  19. Identifying good graph scenarios Scenario 2: Does the problem involve

    a lot of self-referencing to the same type of entity? •Organisational hierarchies •Access management •Social influencers •Friends of friends
  20. Identifying good graph scenarios Scenario 3: Does the problem explore

    relationships of varying or unknown depth? •Supply chain visibility •Bill of Materials •Network management
  21. Identifying good graph scenarios Scenario 4: Does our problem involve

    discovering lots of di ff erent routes or paths? •Logistics and routing •Infrastructure management •Dependency tracing
  22. So what does a (property) graph look like?

  23. Graph components Node (vertex) • The main data element from

    which graphs are constructed Michael Jennifer Neo4j Graphs
  24. Graph components Node (vertex) • The main data element from

    which graphs are constructed Relationship (edge) • A link between two nodes. Has: • Direction • Type • A node without relationships is permitted. A relationship without nodes is not. :LIKES :IS_FRIENDS_WITH :WORKS_FOR Michael Jennifer Neo4j Graphs
  25. Graph components Node (vertex) Relationship (edge) :LIKES :IS_FRIENDS_WITH :WORKS_FOR Michael

    Jennifer Graphs Neo4j
  26. Graph components Node (vertex) Relationship (edge) Label • De fi

    ne node category (optional) :LIKES :IS_FRIENDS_WITH :WORKS_FOR Person Person Technology Company
  27. Graph components Node (vertex) Relationship (edge) Label • De fi

    ne node category (optional) • Can have more than one :LIKES :IS_FRIENDS_WITH :WORKS_FOR Person Person Employee Technology Hobby Company
  28. Graph components Node (vertex) Relationship (edge) Label • De fi

    ne node category (optional) • Can have more than one Properties • Enrich a node or relationship • No need for nulls! :LIKES :IS_FRIENDS_WITH :WORKS_FOR Person name: Michael Person name: Jennifer Technology type: Graphs since: 2018 Company name: Neo4j
  29. Easy to design and model direct representation of the model

    Easy to design and model direct representation of the model
  30. Whiteboard friendliness

  31. Whiteboard friendliness paymentId: 657987915649862247 Payment User username: jennifer123 name: Venmo

    for x Application username: mark456 User SENDS PAID_TO PAID_USING
  32. Whiteboard friendliness

  33. How do I access the data?

  34. Cypher A pattern-matching query language made for graphs

  35. Cypher A pattern-matching query language made for graphs • Declarative

    • Expressive • Pattern-matching A B LIKES MATCH ( A ) - [ : LIKES] - > ( B )
  36. Cypher A pattern-matching query language made for graphs • Declarative

    • Expressive • Pattern-matching With ASCII Art ¯\_(ツ)_/¯ A B LIKES MATCH ( A ) - [ : LIKES] - > ( B )
  37. Cypher: Powerful and Expressive Jennifer Neo4j WORKS_FOR CREATE (:Person {

    name: ‘Jennifer’}) -[:WORKS_FOR]-> (:Company { name: ‘Neo4j’}) LABEL PROPERTY NODE NODE LABEL PROPERTY
  38. Cypher: Powerful and Expressive Jennifer Neo4j WORKS_FOR MATCH (:Person {

    name: ‘Jennifer’} ) -[:WORKS_FOR]-> ( whom ) 
 RETURN whom
  39. More data access Drivers, libraries, and more • Language drivers

    • Java, Python, GraphQL, Go, .Net, JavaScript, … • Extension libraries • APOC, Neosemantics (RDF), Kettle • Partner tools • Connectors, other data source export tools • Visualization • Bloom, Browser, many JS libraries, many partner tools
  40. Driver example - Java

  41. Language example - GraphQL

  42. Library example - APOC

  43. Library example - Neosemantics

  44. Visualization example - Bloom

  45. How do I import/export my data?

  46. Import / Export graph data So many choices! • Drivers

    + queries • Java, Python, GraphQL, etc • Extension libraries • APOC, Neosemantics, etc • Tools • Kettle, Browser, Bloom, etc • Flat fi les / dump fi les • Neo4j Desktop/Aura dump, CSV, JSON, etc
  47. How do I get more from my data?

  48. Gaining insights with graph data • Feed data to other

    systems • Spark, ML pipelines, applications, other data sources • Network structure with Graph Data Science • Algorithms for routes, similarity, centrality, community, and more! • Applications on top of graph • Data entry, system of record, transactional system • Understanding structures and data • Visibility to connections and context in data!
  49. Demo Time!

  50. So how do I continue my graph journey?

  51. Free developer conference: • dev.neo4j.com/nodes Free online training and certification:

    • dev.neo4j.com/learn How to, best practices, hands on and community stories: • dev.neo4j.com/videos Come say hello :) • dev.neo4j.com/chat • dev.neo4j.com/forum Continue your journey
  52. Jennifer Reif Developer Relations Engineer Join the conversation at community.neo4j.com

    Email: jennifer.reif@neo4j.com LinkedIn: https://www.linkedin.com/in/jmhreif/ Twitter: @JMHReif Github repository: https://github.com/JMHReif/graph-demo-datasets/tree/main/venmo-payments