Titan和Neo4j图形数据库有什么区别?

时间:2017-07-27 10:06:12

标签: database neo4j graph-databases titan non-relational-database

我曾在关系数据库工作过;但现在想了解图数据库。我才知道这两个是图数据库。这两个数据库有什么区别。我们应该在他们中间选择什么?

4 个答案:

答案 0 :(得分:13)

一种方法是简单地尝试选择一个数据库而不是另一个数据库。例如,您可以快速搜索,发现Titan已经分叉到JanusGraph,在那里更积极地维护它。在您的研究中,您可能会发现还有其他开源图形数据库,例如OrientDbChronoGraphSqlg以及Microsoft's CosmosDb等商业替代品,{{3 }或DSE Graph。你现在如何决定?

有一个图形框架将所有这些图形连接在一起,包括Neo4j / Titan(以及此处列出的图形以外):IBM Graph。 TinkerPop提供了对不同图形数据库和图形处理器的抽象,允许相同的代码与不同的可配置后端一起使用。这种模式与您使用JDBC在SQL中找到的模式非常相似,这有助于使您的代码供应商不可知。

您可以在做出选择之前尝试所有不同的受支持的图形数据库,并且可以使用Apache TinkerPop相当快速地进行此类原型设计/基准测试。您将能够自己选择什么是最适合您项目的方式。

当我到这篇文章的末尾时,我发现我还没有直接回答你的问题。如果您刚刚开始并且只是对学习图形数据库感兴趣,那么我可能不建议从Titan / JanusGraph开始,因为它需要一些配置才能开始(模式,后端选择等)。 {4}与TinkerGraph或Neo4j使用Gremlin控制台尝试一些简单的图形遍历并从那里开始。

答案 1 :(得分:13)

Titan 最初由Aurelius支持,2015年被DataStax收购。此举旨在让DataStax成为Graph DB世界的一个快速启动,因为他们现在提供自己的&# 34; DSE Graph"企业产品。从那以后,土卫六(如前所述)被分配到JanusGraph

Titan / Janus(IMO)的好处在于它可以插拔"与其他现有的后端和搜索技术。所以它会很好玩#34;像Cassandra,HBase,Hadoop,Solr和ElasticSearch这样的东西。

缺点是社区支持很难。 Titan项目已被有效杀死,Janus在DBEngines上获得了惊人的0.23。这使它成为第16个最受欢迎的Graph DB(第231位),这是非常低的。

Neo4j 由Neo Technology提供支持,并被视为Graph DB社区的领跑者(目前得分为38.52,第一个图表数据库和第21个总数)。它是open source,但由Neo Technologies控制,因此它们可以决定开源和企业之间功能集的差异。

关于Neo4j的好处是他们在Neo4j浏览器中内置了很多教程和学习辅助工具,这是一个不错的,用户友好的Web界面。他们的文档是一流的,易于阅读和搜索,他们在Stack Overflow上有很好的关注。

Neo4j浏览器截图:

enter image description here

Neo4j的缺点是某些功能(如群集)仅在企业版中可用。但是,如果你为一家不为企业许可证而花钱的大公司工作,这可能不是什么大问题。

一致性:Titan / Janus是"最终一致性的一部分"人群,而Neo4j旨在保持一致性(特别是在因果聚类场景中)。虽然可以通过两种配置来调整一致性,但Titan / Janus可能取决于您选择的可插拔后端(例如:通常与HBase强一致,最终与Cassandra一致)。

<强>建议

如果您刚刚开始学习图形数据库和建模,那么Neo4j就不会出错。只需下载/安装社区版,运行它,然后执行:play movies作为您的第一个命令(指导您加载,建模和查询电影关系的教程)。

如果您对图表有一定的经验,并且不介意排除故障/谷歌搜索以找出事情(比如如何为Thrift设置最大帧大小),那么你可能会用Titan做一些非常酷的事情

尝试每一个,看看哪个适合你。

答案 2 :(得分:9)

有两个以上的图表数据库 - 有几十个。话虽如此,有两个真正的市场份额:Neo4j和Titan / JanusGraph。但是还有许多其他图形数据,每个数据库都有针对不同特定应用程序空间的有趣优势。话虽如此,我不会深入研究所有利基玩家 - 学习图形数据库的基本思想可以与两个主要参与者中的一个完成。

Neo4j是最成熟的,具有最精美的安装和文档,大量的参考代码以及广泛合作伙伴的支持。

Titan / JanusGraph是下一个最受欢迎的,因为它是免费/开源的,并且有很强的支持(例如IBM,Google,Hortonworks,AWS等)。最近的一个复杂因素是Titan项目的领导者被收购,冻结了Titan项目。但社区将该项目分为JanusGraph。因此,虽然JanusGraph是一个新项目,但它实际上是相同的Titan代码,拥有比Titan更广泛的行业支持。

与二者相关的是用于处理图表的语言。 Neo4j使用其专有语言Cypher,而几乎所有其他人都使用Gremlin和TinkerPop开源工具集(这是Apache开源项目的一部分)。几乎所有的图形数据库,包括Neo4j,都支持Gremlin和TinkerPop。因此,例如,您可以使用Cypher或Gremlin来查询Neo4j,尽管Neo(以及其他一些专有图形数据库供应商)支持Gremlin作为二等公民,可以这么说。例如,您可以使用Gremlin从(外部)Gremlin控制台连接到Neo,但是您不能在(非常好的)Neo4j控制台中使用Gremlin。

请注意,除了Titan / JanusGraph之外,还有许多支持Gremlin的图形数据库。一个非常有趣的新进入者是微软的Azure Cosmos DB,它是一个托管图形数据库,如果你已经使用Azure,它“便宜又简单”。有几家供应商提供托管的JanusGraph。

对于个人学习,我会说Neo4j是最容易设置和学习的 - 你下载并运行它,并在他们的基于网络的控制台上打开网页浏览器,这只需要几分钟。话虽如此,如果你在命令行上感觉很舒服,JanusGraph只花了半个小时来安装并为我跑步,所以这并不难。

为了学习Neo4j的概念很棒。 Neo4j的查询语言Cypher和JanusGraph的查询语言Gremlin在语义上是相同的,只是拼写不同,因此您将以任何一种方式学习这些概念。

为了构建一个真实的系统,要么可以工作(并且两种方法都有很多成功)。

您选择的是,您需要考虑是否要与单一供应商(Neo4j)或更广泛的基于标准的社区建立战略联系。用最成熟的产品Neo4j挑选市场领导者是一种舒适的程度。在强大的行业支持下,采用开放标准的方式令人感到舒适--JanusGraph。所以IMO没有“错误”的答案 - 使用其中任何一个的人都很开心并且很成功。但是既然你必须选择,你需要考虑哪些你长期更适应。

答案 3 :(得分:1)

Neo4j使用本机图形技术。

  • 本机图技术通过编写彼此靠近的节点和关系来确保有效地存储数据。
  • 它优化了图形数据库。
  • 通过本机图形技术,处理变得更快,因为它使用了无索引 邻接这意味着每个节点都直接引用其相邻节点。

Titan(现在的JanusGraph)使用非本机图技术。

  • 在非原生环境中,我们使用不同的存储后端,例如Cassandra,HBase
  • 与非本地处理相比,非本地处理变得更慢,因为数据库使用 多种类型的索引将节点链接在一起。