Book Image

Graph Data Modeling in Python

By : Gary Hutson, Matt Jackson
Book Image

Graph Data Modeling in Python

By: Gary Hutson, Matt Jackson

Overview of this book

Graphs have become increasingly integral to powering the products and services we use in our daily lives, driving social media, online shopping recommendations, and even fraud detection. With this book, you’ll see how a good graph data model can help enhance efficiency and unlock hidden insights through complex network analysis. Graph Data Modeling in Python will guide you through designing, implementing, and harnessing a variety of graph data models using the popular open source Python libraries NetworkX and igraph. Following practical use cases and examples, you’ll find out how to design optimal graph models capable of supporting a wide range of queries and features. Moreover, you’ll seamlessly transition from traditional relational databases and tabular data to the dynamic world of graph data structures that allow powerful, path-based analyses. As well as learning how to manage a persistent graph database using Neo4j, you’ll also get to grips with adapting your network model to evolving data requirements. By the end of this book, you’ll be able to transform tabular data into powerful graph data models. In essence, you’ll build your knowledge from beginner to advanced-level practitioner in no time.
Table of Contents (16 chapters)
1
Part 1: Getting Started with Graph Data Modeling
4
Part 2: Making the Graph Transition
7
Part 3: Storing and Productionizing Graphs
11
Part 4: Graphing Like a Pro

Summary

We have learned a lot about common issues that may be presented to us as aspiring graph practitioners. These are based on many years of experience working with these issues, and they do spring up in production code and systems more than we would like. However, over time, these issues tend to be covered by effective error handling in Python code and defense mechanisms we can put in place in Cypher script.

The main things we looked at were issues such as how to debug errors in igraph and Neo4j (graph databases). In igraph, we have looked at issues such as how to correctly create edges in the graph, where we looked at the problems associated with node indexing; we extended this node indexing problem to analyzing node IDs in igraph and how we can fix node ID indexing issues. We then looked at adding properties effectively utilizing the vs and es attributes of igraph, getting under the hood of the select() method to understand how to use it, and sometimes, the shortfalls with...