Thinking in Graphs
A Tech Talk, 3/3/23
©2021 Copyright - Confidential and Proprietary
©2021 Copyright - Confidential and Proprietary
What We'll Cover
- What data graphs are / can be
- How to think about your data in a graph
- How data graphs differ from other data modeling approaches
- The value of data graphs
- When to use a data graph
©2021 Copyright - Confidential and Proprietary
What is a data graph?
What is a data graph?
- A data graph is an approach to structuring data that is focused on relationships between entities.
- It's non-linear architecture allows for more flexibility and enables you to create connections between disparate pieces of data to provide new and powerful insights.
- When we talk about data within a data graph we generally refer to entities as "nodes", and connections between entities as "edges".
How do they work?
- Based on graph theory, a mathematical approach to model pairwise relations between objects.
- It connects vertices in a network through edges.
©2021 Copyright - Confidential and Proprietary
How we got here
©2021 Copyright - Confidential and Proprietary
How we got here
- Driven by a more recent change in how we think about data, which impacted how we structure it.
- Thinking shifted from how to most efficiently store data to how to get the most value out of it.
- Realization that data is inherently more valuable when it is connected.
©2021 Copyright - Confidential and Proprietary
The gold rush
GraphQL
Stardog
DGraph
Notable implementations
©2021 Copyright - Confidential and Proprietary
A shift in mindset needs to occur in order to see the value [in data graphs]. This mindset is a shift from thinking about your data in a table to prioritizing the relationships across it.
- Matthias Broecheler
©2021 Copyright - Confidential and Proprietary
Shifting our mindset
Trees vs. Graphs
- All trees are Graphs, but not all graphs are trees...
- Trees are linear, they have a single root node and flow in a single direction.
- Can connect to other leaf nodes or more subtrees, but connections happen in a specific order.
Trees vs. Graphs
- Graphs are omnidirectional
- They have no defined end or beginning, they have multiple "entrypoints"
- Connections to nodes within a graph can be
Multiple Entrypoints
Relational vs. Graph
- Relational model uses foreign keys to relate data together.
- Relational focuses on storing tabular data for people, places, and things.
- Graphs make it easier to create richer data connections with edges.
What does a healthy data graph look like?
- Many connections on each node, and many paths to each node through various entrypoints.
- Common entities referenced throughout the graph, enriched with relationship-specific data via edges.
- Few if-any "dead ends" within the graph where nodes are only accessible via a single entrypoint.
©2021 Copyright - Confidential and Proprietary
Edges
©2021 Copyright - Confidential and Proprietary
Edges
- Edges are the connections between nodes within a graph
- They often contain data that can be attributed to the relationship of the nodes
- You can have directed or bidirectional edges within a graph
©2021 Copyright - Confidential and Proprietary
Bidirectional Edges
- Bidirectional edges represent connections to nodes within a graph regardless of direction.
- In this example, the relationship between me and my dad can always be considered "family".
©2021 Copyright - Confidential and Proprietary
Directional Edges
- Directional edges represent connections to nodes where directionality does matter.
- In this example we are looking at a graph of twitter followers. Me and Elon Musk are followed by Russian bots, and I follow Elon musk, but Elon doesn't follow me and neither of us follow the Russian bots.
©2021 Copyright - Confidential and Proprietary
The value of a data graph
- Allows us to enrich connections from disparate data sources with highly valuable information.
- We can use edge data to personalize experiences for the user.
- Personalized experiences can lead to better customer engagement & ultimately revenue.
©2021 Copyright - Confidential and Proprietary
How we leverage data graphs at NerdWallet
{
review {
title
authors {
name
}
categories {
id
articles {
title
authors {
name
}
}
}
marketplaceEntity {
id
name
review {
id
title
}
}
}
}
©2021 Copyright - Confidential and Proprietary
When to leverage a data graph
- Relationships within your data help you understand your problem better.
- A lot of the data you need is derived from the relationship between entities.
- Most of the complexity within your implementation will be around creating relationships between entities.
- Your entity models change often, and are highly connected to other models.
©2021 Copyright - Confidential and Proprietary
Takeaways
- Data graphs can be an effective tool for extracting more value from your data.
- Data graphs can help create more meaningful connections by enriching them with edge data.
- When working with data graphs we need to stop thinking about data linearly, and embrace graph thinking when modeling nodes and edges for a data graph.
©2021 Copyright - Confidential and Proprietary
Thanks for coming! Questions?
Thinking in Graphs
By Ryan Kanner
Thinking in Graphs
- 329