据说挺有用,摘录一下。
http://www.infoq.com/cn/news/2010/02/neo4j-10
<script src="http://s7.addthis.com/js/250/addthis_widget.js#username=infoq" type="text/javascript"></script><!-- AddThis Button END -->
在经过几年的开发后,近日NeoTechnology发布了基于Java的图形数据库Neo4j 1.0,它遵循着属性图形数据模型。InfoQ有幸采访了NeoTechnology的COO Peter Neubauer以深入了解此次发布的Neo4j及其向开发者所提供的功能。
Neo4j的核心JAR文件大约有440k,既有基于AGPLv3的开源版本,也有商业版本。如果在闭源软件中使用Neo4j则需要商业协议。Neo4j中的信息主要通过如下3个基本的构建块表示:
-
Node(又叫做vertex)——从概念上来说,这类似于对象实例,拥有唯一的ID。
-
Relationship(又叫做edge)——它连接了两个Node,此外还有方向和RelationshipType。
-
Property(又叫做attribute)——他们是字符串类型的key/Object值对,Node与Relationship都有Property。
相对于关系数据库来说,图形数据库善于处理大量复杂、互连接、低结构化的数据,这些数据变化迅速,需要频繁的查询——在关系数据库中,这些查询会导致大量的表连接,因此会产生性能上的问题。Neubauer详细解释了这一点:
Neo4j重点解决了拥有大量连接的传统RDBMS在查询时出现的性能衰退问题。通过围绕图形进行数据建模,Neo4j会以相同的速度遍历节点与边,其遍历速度与构成图形的数据量没有任何关系。此外,Neo4j还提供了非常快的图形算法、推荐系统和OLAP风格的分析,而这一切在目前的RDBMS系统中都是无法实现的。
由于Neo4j是个数据库,因此对图形结构的访问——读、写及遍历都是通过ACID事务系统进行管理的。图形遍历是通过Traverser API进行管理的,此外还借助于Lucene提供了对索引的支持,与Solr的集成也仍在开发当中。大家可以查看NeoTechnology CEO Emil Eifrem的讲座以深入了解Neo4j,此外还可以观看对Peter Neubauer的采访。
在被问到关于NoSQL运动的立场时,Neubauer说到:
当然支持NoSQL运动了,因为我们正在解决RDBMS目前所没有解决的问题。这就是说,我们首先关注的是数据、深度查询和分析的复杂性以及RDBMS中需要很多连接和稀疏表才能完成的操作;此外,很多其他的NoSQL项目正在努力解决可伸缩性和分片(sharding)等问题。
Neubauer说到:虽然Neo4j 1.0最近才发布,但在某些领域的产品中已经使用7年多了,此次发布的1.0版的重点并非代码基的稳定性而是API的稳定性。Neo4j的性能也得到了极大的提升,无须修改代码就能够处理拥有数十亿对象的图形;正常来说,Neo4j每秒能够读取200万个关系,同时最短路径计算的可伸缩性要远远好于关系数据库,如MySQL等(虽然使用了相同的性能基准,但众多的因素如硬件和数据集等都会对结果产生比较大的影响)。
除了主要的Neo4j代码基以外,还有一个贡献者与用户所构成的社区和一个庞大的生态圈,这里列举出几个:
关于Neo4j的未来计划,最近一轮的资金将有助于未来的进一步开发,包括对现有的主/从复制的增强、在线的备份支持以通过最终的一致性和write-master重选来提供无缝的高可用性、更棒的全局操作支持以及完整的REST支持(包括基于JavaScript的动态遍历和用于数据发布的只读模式)等等。长远计划包括对分片(sharding)的支持(这会给Neo4j代码基带来全新的挑战),Emil Eifrem还表示用户与开发者所构成的庞大且快速增长的社区(已经创建了数百个Neo4j项目)是非常重要的。
查看英文原文:Neo4j: Java-based NoSQL Graph Database
分享到:
相关推荐
Neo4j是一种高性能的NoSQL图数据库,它以图形的方式存储和处理数据,特别适合处理复杂的关系网络。在Java中,我们可以借助官方提供的Java驱动程序来连接、查询和管理Neo4j数据库。 首先,我们需要在项目中引入 ...
Neo4j 图形数据库应用场景** - **快递物流数据管理**: 适用于关系较为复杂的数据管理场景。 - **家庭用电数据管理**: 更偏向于使用时序数据库。 - **企业考勤数据管理**: 通常采用关系型数据库。 **15. HBase ...
《neo4j-java-reference-3.1》是Neo4j官方发布的针对Java开发者的详细指南,旨在帮助开发者熟练地利用Java API与Neo4j图形数据库进行交互。这本书涵盖了从安装配置到高级特性的方方面面,是Java程序员在 Neo4j 领域...
3. 图形数据库:如Neo4j,适用于社交网络和推荐系统,利用图结构算法处理复杂关系。 4. 文档型数据库:如MongoDB和CouchDB,适用于Web应用,支持结构化数据的灵活存储,查询效率较高。 这些NoSQL数据库在实际应用...
这时,非关系型数据库(NoSQL)应运而生,其中一种非常流行的图数据库就是Neo4j。本文将深入探讨Neo4j的基本概念、特性以及如何入门使用。 **1. Neo4j简介** Neo4j是一个开源的图数据库系统,专为处理图形数据而...
Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中...
Neo4j作为一款高性能的NoSQL图形数据库,其独特的数据存储方式——基于网络而非传统的表格形式,为现代数据管理和分析提供了全新的视角。Neo4j不仅是一款强大的数据库引擎,同时也是一款高效的图引擎,具备成熟...
SpringBoot是Java开发中的一个轻量级框架,简化了Spring应用的初始搭建以及开发过程,而Neo4j则是一个高性能的NoSQL图形数据库,特别适合处理具有关联关系的数据。 首先,让我们详细了解一下SpringBoot。SpringBoot...
Neo4j是一个高性能的NoSQL图形数据库,特别适合处理具有复杂关系的数据。Spring Data Neo4j是Spring Data项目的一部分,它提供了一种简单的方式来与Neo4j集成,使得在Java应用中操作图形数据库变得轻松。这个例子...
Neo4j是一个高性能的NoSQL图形数据库,它通过图形的方式存储数据,并为关系型数据结构提供高效的查询和管理。在Neo4j-java-reference-3.3这份参考指南中,涵盖了多个关于如何在Java环境中使用和扩展Neo4j数据库的...
标题"neo4j-ogm:用于Neo4j的Java对象图映射库"指的是一个名为neo4j-ogm的Java库,它的主要功能是为Neo4j图形数据库提供对象图映射(Object-Graph Mapping,OGM)服务。对象图映射是一种技术,允许开发人员在关系型...
`gorm-neo4j`是针对Neo4j图形数据库的一个扩展,它实现了GORM(Grails Object-Relational Mapping)接口,使得在Groovy或Grails应用中操作Neo4j数据库变得更为便捷。GORM是Grails框架的核心部分,主要用于处理对象...
Neo4j是一个高性能的NoSQL图形数据库,它以节点、关系和属性的形式存储数据,这使得它在处理高度互联的数据时具有显著优势。在传统的关系型数据库中,处理多对多关系可能需要复杂的JOIN操作,而在Neo4j中,这些关系...
图数据库作为一类非关系型数据库(NoSQL),近年来因其处理复杂数据关系的能力而在云计算环境中变得越来越重要。它们特别适合于处理如社交网络、生物信息学中蛋白相互作用、地理信息系统、通信网络以及大规模数据...
7. **NoSQLJava** - Neo4j提供了Java API,允许开发人员使用Java进行编程,与NoSQL数据库进行交互。 【详细说明】 Neo4j是一个高性能的图数据库,支持实时分析和高并发访问。它的核心特性包括: 1. **ACID事务** ...
Neo4j是一款先进的图形数据库系统,专注于处理复杂的网络数据结构。作为NoSQL数据库的一员,它以节点、边(关系)和属性的形式存储数据,特别适合处理具有关联性的数据,如社交网络、推荐系统、知识图谱等。这个...
Linux上的Neo4j安装包是用于在开源操作系统环境中部署和运行图形数据库的软件包。Neo4j是一款强大的图数据库管理系统,特别适合处理高度关联的数据,广泛应用于社交网络、推荐系统、知识图谱等领域。以下是对Linux上...
最后,关于Neo4j的研究和部署,通常会有特定的关键词提示,如图形数据库、社交网络、关联数据、NoSQL等,这些关键词有助于我们更好地定位Neo4j数据库的使用场景和技术特点。随着Web 2.0和大数据时代的到来,图形...
Neo4j是一个高性能的NoSQL图形数据库,它专为处理连接数据和复杂的关系网络而设计。本文将详细介绍Neo4j开发手册(版本3.1)中的主要内容,重点集中在Neo4j的特点、图形数据库概念、Cypher查询语言以及数据库驱动...