50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

  • 2010-02-28
  • 本文字数:1454 字

    阅读完需:约 5 分钟

在经过几年的开发后,近日 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

2010-02-28 06:0312913
用户头像

发布了 88 篇内容, 共 272.6 次阅读, 收获喜欢 9 次。

关注

评论

发布
暂无评论
发现更多内容

Deep dive #2:API 与 Python SDKs 详解

Zilliz

Python 数据库

大咖说|对话路特斯科技副总裁李博:如何看待智能驾驶的未来?

大咖说

阿里巴巴 智能 汽车 无人驾驶 路特斯

「前端CI/CD系列」第二篇:如何用建木CI更新七牛云CDN证书

Jianmu

CDN 自动化运维 七牛云 建木CI

火山引擎举办视频云科技原力峰会,发布面向体验的全新视频云产品矩阵

字节跳动视频云技术团队

音视频

极致用云,数智护航

阿里云云效

阿里云 DevOps 运维 云原生 运维安全

【重磅发布】蚂蚁动态卡片,让 App 首页实现敏捷更新

蚂蚁集团移动开发平台 mPaaS

ios android 前端 mPaaS

Milvus 图形化管理工具 Attu 来袭!

Zilliz

数据库

边缘计算场景下Service Mesh的延伸和扩展

华为云原生团队

开源 边缘计算 边缘技术 边缘 边缘云

混合云管平台哪家强?采购时候需要注意什么?

行云管家

混合云 云管平台

云效发布策略指南|滚动、分批、灰度怎么选?

阿里云云效

云计算 阿里云 云原生 持续交付 发布策略

为什么我的 ORDER BY create_time ASC 变成了 order by ASC

LigaAI

Java 数据库 sql 程序员

Android技术分享| 【你画我猜】Android 快速实现

anyRTC开发者

音视频 移动开发 互动白板 Andriod 你画我猜

Hudi Bucket Index 在字节跳动的设计与实践

字节跳动数据平台

数据库 字节跳动 数据湖 Hudi

如何通过 draftjs 设计留言框

全象云低代码

前端 低代码 留言 draftjs 留言框

产品经理:「点这里,我要跳到任何我想跳的页面」—— 解耦提效神器「统跳路由」

百瓶技术

ios 前端 客户端 路由

掌握这些招数,你也能写出HR眼中的高分简历

Tom弹架构

求职面试

虎符交易所2022年首届交易大赛 最高瓜分5万USDT奖励

区块链前沿News

虎符交易所

“pip不是内部或外部命令,也不是可运行的程序或批处理文件” 到底有多么神秘

华为云开发者联盟

Python pip 批处理 scripts pip install

前所未有的 Milvus 源码架构解析

Zilliz

一个关于 += 的谜题

AlwaysBeta

Python 编程语言

优化| 手把手教你学会杉数求解器(COPT)的安装、配置与测试

杉数科技

线性规划 求解器 优化求解器 混合整数规划 杉数科技

百度飞桨大企业开放创新中心联合赋能计划启动!助力浦东产业智能化升级

百度大脑

web前端培训:vue3源码中细节知多少

@零度

Vue 前端开发

ModStartCMS模块化建站系统 v3.3.0 组件功能升级,事件触发增强

ModStart开源

oracle数据库审计用什么数据库审计软件好?可以用什么方式部署?

行云管家

数据库 IT运维 数据库审计

Go 语言入门很简单:读写锁

宇宙之一粟

读写锁 Go 语言 2月月更

了解 DevOps,必读这十本书!

禅道项目管理

DevOps

杭州AI开发者Meetup报名开启!

百度大脑

移动开发er,10万奖金等你来战!

Speedoooo

活动 前端开发 移动开发 黑客马拉松 黑客松

乘冬奥之风:北京2022年冬奥会用户信息获取偏好专题分析

易观分析

冬奥会用户分析

Guitar Pro教程之如何设置MIDI键盘

懒得勤快

Neo4j:基于Java的NoSQL图形数据库_Java_Michael Hunger_InfoQ精选文章