Graph databases such as Neo4j, TigerGraph, Amazon Neptune, the graph portion of Azure Cosmos DB, and AnzoGraph, the subject of this review, offer a natural representation of data that is primarily about the relationships between people, places, and things. Graph databases are good for applications for fraud detection, social networks, recommendation systems, and so on.
This essay makes a good case for graph databases over relational databases for these kinds of apps. TL;DR version: Once you need complex joins of large tables, relational database queries slow down; the same task is faster on a graph database.
Like relational databases, graph databases can be designed for efficient online transaction processing (OLTP) or efficient online analytical processing (OLAP), and occasionally for both (HTAP, hybrid transaction/analytical processing). Neo4j, Neptune, and Cosmos DB are all OLTP graph databases, although Neo4j has recently added some OLAP capabilities. TigerGraph is an HTAP graph database and claims swift, deep analytics as well as fast transaction processing.
AnzoGraph, on the other hand, is designed as an OLAP graph database. Cambridge Semantics actually says “Complement your OLTP graph database engine with OLAP” on the main web page for AnzoGraph.
Neo4j uses its own query language, Cypher, for its labeled property graphs; there is an open source version, openCypher. TigerGraph uses its own query language, GSQL. Neptune has both RDF (SPARQL) and labeled property graph (Gremlin) graph stores. They both exist on the same fabric, but they don’t connect to each other. Cosmos DB’s graph database uses Gremlin, which is the graph traversal language of Apache TinkerPop.
AnzoGraph uses W3C-standard RDF triple and quad data and SPARQL 1.1 queries. It also supports labeled property graphs as part of the RDF store, conforming to the proposed RDF* and SPARQL* standards. AnzoGraph has extensions to SPARQL to support graph algorithms, inferencing, window aggregates, BI functions, and named views. Support for openCypher and Bolt (the Neo4j protocol) is planned.