What is the difference between Titan and Neo4j datasheets?

I was working on a relational database; but now want to know about the graph database. I found out that these two are graphical database. What is the difference between these two databases. What should we choose from them?

+3


source to share


3 answers


Titan was originally backed by Aurelius, which was acquired by DataStax in 2015. The move was designed to give DataStax a start in their transition to the Graph DB world as they now offer their own DSE Graph "enterprise product. Titanium has since been bifurcated (as previously mentioned) in JanusGraph ."

The good thing about Titan / Janus (IMO) is that it β€œplugs in” with other existing background and search technologies. Thus, it will "play well" with things like Cassandra, HBase, Hadoop, Solr, and ElasticSearch.

The downside is that community support is tough. Project Titan was effectively killed, with Janus ranking a whopping 0.23 on DBEngines. This makes it the 16th most popular graphic DB (231st overall), which is pretty low.

Neo4j is backed by Neo Technology and is considered a leader in the Graph DB community (score 38.52 right now, 1st DB graph and 21st overall). It 's open source , but controlled by Neo Technologies, so they can dictate the difference in feature set between open source and enterprise.

The best part about Neo4j is that they have a lot of tutorials and tutorials built into the Neo4j browser, which is a nice and user-friendly web interface. Their documentation is top-notch, easy to read and searchable, and they have pretty good results under Stack Overflow.

Screenshot of Neo4j browser:

enter image description here



The downside to Neo4j is that some features (like clustering) are only available in the enterprise version. But if you work for a large company that doesn't mind shelling out $ for a business license, this may not be a big deal.

Consistency: Titan / Janus is part of the "ultimate consistency" crowd, while Neo4j aims to be strong consistency (especially in a causal clustering scenario). Although consistency can be tweaked with tweak in both cases, with Titan / Janus, which may depend on your choice of pluggable backend (eg: usually strong HBase compatibility, eventually Cassandra compatible).

Recommendation

If you're just starting out with graph databases and modeling, you can't go wrong with Neo4j . Just download / install the community version, run it, and run it :play movies

as your first command (a tutorial where you will find information on downloading, modeling and querying movie relationships).

If you have some experience with graphics and don't mind searching and troubleshooting / googling (like how to set the maximum frame size for Thrift) then you could possibly do some really cool stuff with Titan.

Try each one and see which one works for you.

+9


source


One approach is to simply try to select one database over another. For example, you can quickly search around to find that Titan has forked onto JanusGraph , where it is more actively supported. In your research, you may find that there are other open source databases as well as OrientDb , ChronoGraph , or Sqlg , as well as commercial alternatives such as Microsoft CosmosDb , DSE Graph, or IBM Graph . How do you decide now?

There is a graphical framework that links all of these graphs, including Neo4j / Titan (and more than those listed here): Apache TinkerPop . TinkerPop provides abstraction over different graph databases and GPUs, allowing you to use the same code with different custom backends. This pattern is very similar to the one you find in SQL with JDBC, which helps your code provider agnostic.



You can try all the different supported graph databases before making a choice and do this type of prototyping / benchmarking pretty quickly using the Gremlin Console . You will be able to make your own choices about what works best for your project.

It seems to me that I have reached the end of this post, that I have not directly answered your question. If you are just starting out and just interested in learning about graphical databases, then I probably don't recommend starting with Titan / JanusGraph as it requires a bit of configuration (schema, backend selection, etc.) to get started. Start with TinkerGraph or Neo4j using the Gremlin console to try out some simple graph traces and go from there.

+8


source


There are much more than two graph databases - there are dozens. That being said, there are two with real market share: Neo4j and Titan / JanusGraph. But there are dozens of other graphical data, each with interesting strengths for different specific application spaces. That being said, I wouldn't dig all the niche players to get started - learning the basic idea of ​​graph databases can be done with one of the top two players.

Neo4j is the most mature, with the most beautifully packaged installation and documentation, lots of reference code, and support from a wide range of partners.

Titan / JanusGraph is the next most popular as it is free / open source and has very strong support (e.g. IBM, Google, Hortonworks, AWS, ...). There's a recent complication in that the Titan project leaders were acquired by freezing the Titan project. But the community has forked the project on JanusGraph. Thus, while JanusGraph is a new project, it is literally the same titanium code with even broader industry support than Titan.

In this regard, the language used for working with graphs is used. Neo4j uses its own language, Cypher, while almost everyone else uses Gremlin and the open source TinkerPop toolkit (which is part of the open source Apache suite of programs). Almost all graph databases including Neo4j support Gremlin and TinkerPop. So, for example, you can use Cypher or Gremlin to query Neo4j, although Neo (and some other proprietary graph database vendors) maintain Gremlin as a second-class citizen, so to speak. For example, you can connect to Neo using Gremlin from the (external) Gremlin console, but you cannot use Gremlin in the (very nice) Neo4j console.

Note that there are many graphical databases out there that support Gremlin besides Titan / JanusGraph. One newcomer that's very interesting is Microsoft Azure Cosmos DB, which is a managed graphical database that's "cheap and easy" if you're already using Azure. And there are several vendors that provide managed JanusGraph.

For personal training, I would say Neo4j is the easiest to set up and learn - you download and run it, and open a web browser on your web console, which only takes a few minutes. That being said, if you're comfortable with the command line, JanusGraph took half an hour to install and run for me, so it's not too difficult.

For learning concepts Neo4j is excellent. Neo4j Query Language, Cypher Query Language and JanusGraph, Gremlin, are semantically identical, just written differently, so you'll be learning the concepts anyway.

To build a real system either can work (and there are many successful ones with both approaches).

To do this, you'll want to consider whether you want to be strategically tied to a single vendor (Neo4j) or to the wider standards-based community. There's a level of comfort in choosing the market leader with the most mature product - Neo4j. And there's a level of comfort in choosing open standards with strong industry support - JanusGraph. So IMO has no "wrong" answer - people using one of them are happy and successful. But since you have to choose, you need to think about what is more comfortable for you with the long term.

+3


source







All Articles