`
ppjava
  • 浏览: 135503 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Neo4j:基于Java的NoSQL图形数据库

    博客分类:
  • java
阅读更多

据说挺有用,摘录一下。

 

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图形数据库介绍及应用场景

    Neo4j是一个高性能的NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中...

    图形数据库之王Neo4j从入门到精通(含Neo4j+D3.js完整实战项目开发)

    Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中...

    gorm-neo4j:Neo4j的GORM

    适用于Neo4j的GORM 该项目使用Bolt Java驱动程序为Neo4j 3.x图形数据库实现 。 有关更多信息,请参见以下链接: 对于当前的开发版本,请参见以下链接:

    maven项目:neo4j实例

    Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中...

    NEO4J数据库安装手册.docx

    Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中...

    neo4j-driver-manual-1.7-java.pdf

    Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中...

    lecture-nosql:使用各种NoSQL技术的示例项目

    neo4j-tutorial:Neo4J(图形数据库) redis-tutorial:Redis(键/值存储) solr-tutorial:Apache SolrCloud(搜索技术) 更改为相应的子文件夹后,您可以执行以下命令来构建应用程序: gradle干净的构建 运行...

    neo4j-community-4.3.5-windows.zip

    Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中...

    neo4j-manual-2.3.1.pdf

    Neo4j 图形数据库,是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)...

    neo4j community 3.1.3 [windows & linux]

    Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中...

    neo4j-community-4.0.3.zip

    Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中...

    neo4j-community-4.0.3-unix.tar.gz

    Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中...

    Neo4j开发手册

    Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中...

    ongdb:ONgDB是Neo4j:registered:Enterprise Edition版本3.4.0.rc02(受AGPLv3许可)和Community Edition(受GPLv3许可)的独立分支。

    在许多用例中,与非本机图形数据库,关系数据库和NoSQL数据库相比,ONgDB将提供数个数量级的性能优势。 在上了解更多信息。 使用ONgDB ONgDB既可以作为独立服务器使用,也可以作为可嵌入组件使用。 扩展ONgDB ...

    neo4j-restful

    Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中...

    movies-java-spring-data-neo4j-main.zip

    Neo4j是一个高性能的,NOSQL图形数据库 附件是java-spring-data 调用Neo4j的接口例子

    Neo4j权威指南

    neo4j权威指南,Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做...

    neo4j安装使用笔记.docx

    Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中...

    LearningNeo4j官方推荐读物

    Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中...

    neo4j-community-3.5.15-windows.zip

    Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎

Global site tag (gtag.js) - Google Analytics