我曾经从事关系数据库的工作,但现在想学习图形数据库。我知道这两个都是图形数据库,请问这两者有什么区别?在它们之间应该选择哪一个呢?
我曾经从事关系数据库的工作,但现在想学习图形数据库。我知道这两个都是图形数据库,请问这两者有什么区别?在它们之间应该选择哪一个呢?
一种方法是简单地选择一个数据库,比如你可以快速搜索发现Titan已被分叉为JanusGraph,在那里它得到了更积极的维护。在研究过程中,你可能还会发现其他开源图形数据库,例如OrientDb、ChronoGraph或Sqlg,以及商业替代品,例如Microsoft's CosmosDb、DSE Graph或IBM Graph。现在该怎么决定呢?
有一个图形框架将所有这些图形连接在一起,包括Neo4j/Titan(以及不止列出的这些):Apache TinkerPop。TinkerPop提供了一个抽象层,可以与不同的图形数据库和图处理器结合使用,从而允许将相同的代码用于不同的可配置后端。这种模式与SQL中的JDBC相当相似,有助于使您的代码供应商无关。
在做出选择之前,您可以尝试所有不同的支持的图形数据库,并且可以使用Gremlin Console进行此类原型开发/基准测试。通过这种方式,您将能够自我决定哪种方法最适合您的项目。
当我写到这篇文章的结尾时,我想起来我还没有直接回答你的问题。如果你刚开始学习图数据库并且只是对学习它感兴趣,那么我可能不会建议你从Titan/JanusGraph开始,因为它需要一些配置才能开始使用(如模式、后端选择等)。从TinkerGraph或Neo4j开始,使用Gremlin控制台尝试一些简单的图遍历,然后逐步深入。
Titan最初由Aurelius支持,而Aurelius在2015年被DataStax收购。 这一举措旨在为DataStax提供Graph DB领域的快速入门,因为他们现在提供自己的“DSE Graph”企业产品。后来Titan被分叉(如前所述)成为JanusGraph。
Titan / Janus的好处是它可以与其他现有的后端和搜索技术“可插拔”。 因此,它将与像Cassandra、HBase、Hadoop、Solr和ElasticSearch等内容相容。
缺点在于社区支持非常困难。Titan项目已被有效地终止,而Janus在DBEngines中的得分仅为0.23。这使它成为最受欢迎的16个图形数据库(总体排名第231位),相当低。
Neo4j由Neo Technology支持,并被视为Graph DB社区的领先者(当前得分为38.52,是第一个图形DB和第21个总体)。它是开源的,但受Neo Technologies控制,因此他们可以在开源和企业之间确定功能集的差异。
Neo4j的好处在于他们内置了很多教程和学习辅助工具,这是一个不错的用户友好型Web界面。他们的文档是一流的,易于阅读和搜索,并且在Stack Overflow上有相当大的追随者。
Neo4j浏览器截图:
Neo4j的缺点是某些功能(如集群)仅在企业版中可用。但如果您为一家不介意支付企业许可证费用的大公司工作,那可能并不是什么大问题。
一致性:Titan/Janus是“最终一致性”派别的一部分,而Neo4j旨在实现强一致性(特别是在因果群集场景下)。虽然在两者中都可以通过配置调整一致性,但Titan/Janus可能会依赖于您选择的可插拔后端(例如:通常使用HBase实现强一致性,而使用Cassandra则最终一致性)。
建议:
如果您刚开始学习图形数据库和建模,那么使用Neo4j就没错了。只需下载/安装社区版,运行它,然后执行:play movies
作为您的第一个命令(该教程将指导您加载、建模和查询电影关系)。
如果您已经有一些图形处理经验,并且不介意排除故障/搜索解决问题(例如如何为Thrift设置最大帧大小),那么您可以使用Titan做一些很酷的事情。
尝试一下,看哪个适合您。
对于个人学习而言,我认为Neo4j是最容易安装和学习的 - 你下载并运行它,然后在他们基于Web的控制台上打开一个Web浏览器,这只需要几分钟时间。话虽如此,如果您熟悉命令行,JanusGraph只需半个小时即可安装并运行,因此也不太难。
对于学习概念来说,Neo4j非常棒。 Neo4j的查询语言Cypher和JanusGraph的查询语言Gremlin在语义上是相同的,只是拼写不同,所以无论哪种方法都可以学习到概念。
对于构建真实系统,任何一种都可能适用(并且有许多使用这两种方法的成功案例)。
对于选择哪种方法,您需要考虑是否想要与单个供应商(Neo4j)或更广泛的基于标准的社区紧密联系。选择市场领导者和成熟产品 - Neo4j会带来舒适感。选择具有强大行业支持的开放标准 - JanusGraph会带来一定的舒适感。因此,在我看来,没有“错误”的答案 - 使用其中任何一种的人都很满意和成功。但由于必须选择,您需要考虑长期内哪个更符合您的舒适度。