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