5个最佳的开源图数据库
在过去的几年中,图数据库变得越来越流行,因为它们为表述数据提供了极大的灵活性。大多数图数据库都是用Java编写的,但是在Python,.NET,PHP和C ++中有一系列好的解决方案。
1.Neo4j社区版
Neo4j是最流行的高度可扩展的本地图数据库(用Java编写)之一。Neo4j的Graph平台经过优化,可以存储,映射,分析和遍历连接的数据网络,以发现不可见的上下文和隐藏的关系。
通过直观地映射数据点及其之间的连接,Neo4j支持智能实时应用程序,包括:人工智能,机器学习,物联网,实时推荐;主数据管理;欺诈识别;身份和访问管理。
Neo4j带有2个版本:社区版和企业版。Community Edition是学习Neo4j和不需要大量扩展或专业服务与支持的小型项目的理想选择。企业版具有与社区版相同的功能,具有企业级可用性,管理以及向上和向外扩展功能。
Neo4j社区版的主要功能和优势:
- 标记属性图模型
- 本机图形处理和存储
- 密码图查询语言
- 通过本地标签索引快速写入
- 通过复合索引快速读取
- ACID交易
- 高性能本机API
- Java,Python,C#和JavaScript,PHP,NodeJS等的语言驱动程序。
- 非常快。
2.HyperGraphDB
HyperGraphDB是一种通用的开源数据存储机制。顾名思义,它是用于存储超图的数据库。HyperGraphDB主要设计用于知识管理,AI和语义Web项目,但它也用作各种规模Java项目的嵌入式面向对象的数据库。尽管HyperGraphDB属于图数据库的通用系列,但其许多设计都提供了以任意复杂度来管理结构丰富的信息的方法。
主要功能和优点:
- 面向图的存储。
- 强大的数据建模和知识表示。
- 图节点之间的N元高阶关系。
- 图遍历。
- 关系型查询。
- 可自定义的索引编制和存储管理。
- 可扩展的动态数据库模式。
- 开箱即用的Java OO数据库。
- 非阻塞并发写入和读取!
- 用于数据分发的P2P框架。
3.Titan分布式图数据库
Titan是最具扩展性的开源图数据库之一,已优化用于存储和查询包含数千亿个顶点和边的图形。可以在Hadoop中进行此操作,对大型数据集非常有用。Titan是一个事务数据库,支持数千个并发用户实时执行复杂图形。Titan具有弹性和线性的可扩展性,可以满足不断增长的数据和用户群的需求。实现语言是Java。
主要功能和优点:
- 多数据中心高可用性。
- 支持ACID和最终的一致性。
- 支持各种存储后端:Apache Cassandra,Apache HBase,Oracle BerkeleyDB。
- 通过与大数据平台(Apache Spark,Apache Giraph和Apache Hadoop)集成,支持全局图数据分析,报告和ETL。
- 通过以下方式支持地理,数值范围和全文本搜索:ElasticSearch,Solr,Lucene。
- 与TinkerPop图栈的本机集成:Gremlin图查询语言,Gremlin图服务器,Gremlin应用程序。
4.ArangoDB
由于其C ++内核,ArangoDB是一个非常快速的解决方案。可以将ArangoDB用作键/值,文档或图的专用数据库,并在一个查询中混合使用这些数据模型。ArangoDB设计为本地多模型数据库,可让你以非常灵活的方式对数据进行建模并支持大量用例。可以扩展ArangoDB以更好地满足你的需求。可以通过Foxx(一个由Google V8支持的数据库微服务JavaScript框架)添加逻辑,从而在C ++级别上完全访问ArangoDB的功能。
主要功能和优点:
- 模式匹配
- 最短路径
- 分布式图
- 嵌套属性
- 全面遍历
- 交易次数
- 自组织集群状态管理。
- 快速集群启动等。
5.Apache TinkerPop
Apache TinkerPop还是一个受欢迎的开源图数据库。Apache TinkerPop是与供应商无关的图计算框架,为批处理分析图形处理器(OLAP)和实时事务性图形数据库(OLTP)的分发。当数据系统启用TinkerPop时,可以将域建模为图形,并使用Gremlin图形遍历语言对其进行分析。此外,所有启用TinkerPop的系统都相互集成。
主要功能和优点:
- 图形遍历语言– Gremlin设计为可跨语言工作。
- 将关系数据库和图数据库捆绑在一起。
- 直到使用Tinkerpop 3为止,Python和其他语言的工作人员都可以选择。
- 可以用于分布式环境中的小型图或大型图。
- OLTP和OLAP遍历
- 命令式和声明式遍历。
这里还推荐一些其他好的解决方案:
ThingSpan——可扩展的图分析平台。它由Objectivity/DB支持,通过与Apache Spark和Hadoop分布式文件系统本地集成来利用开源堆栈。
Cayley——其灵感来自Freebase和Google的Knowledge Graph背后的图数据库。
OpenLink Virtuoso——用于数据访问,虚拟化,集成和多模型关系数据库管理的现代企业级解决方案。
Apache Giraph——为实现高可伸缩性而构建的迭代图处理系统。
VelocityGraph——可分发的开源C#.NET混合NoSQL图数据库和对象数据库。高性能数据持久性。
InfoGrid——具有许多其他软件组件的开源Web图数据库。