2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

Philip Rathle 谈 Neo4j 2.3 图数据库新特性和 openCypher 计划

  • 2015-12-10
  • 本文字数:2489 字

    阅读完需:约 8 分钟

近日,图 NoSQL 数据库 Neo4j 母公司 Neo Technology发布了该数据库的2.3 版本。同时,他们还宣布了 openCypher 计划,帮助创建一种标准的图查询语言。

为了获得更好的性能,2.3 版本支持内存内页面缓存组件。另外,它还支持 Docker 工具,并增强了查询计划器。 Philip Rathle 是 Neo Technology 的产品副总裁,他在一篇文章中介绍了Neo4j 最新版本的新特性。

openCypher 旨在使 Neo4j 成为一个 更简单的图数据管理平台,以加速图处理和分析的应用。它主要包含如下四个部分:

  • 语言规范
  • 参考实现
  • 技术兼容工具包
  • Cypher 参考文档

InfoQ 就 Neo4j 最新版本的新特性和 openCypher 公告采访了 Philip。

InfoQ:您能介绍下新的内存内页面缓存组件这个纯堆外缓存吗?它的工作原理是什么?为什么要构建一个原生缓存,而不是使用一种已有的缓存框架?

Rathle:将磁盘内容缓存移至堆外,可以让我们在管理整个数据库的内存时获得更多的控制。Neo4j 以 Java 为基础构建。对于传统应用程序而言,它提供了出色的内存管理和性能,不过,当连续不断的查询操作导致大量数据循环经过数据库缓存时,它就无法满足要求了。

Neo4j 的堆内缓存功能已经提供了极高的性能。这一直很有效……直到非常大的缓存与非常大的查询让 Java 的分代垃圾收集器备受压力,导致 JVM 堆成为一个限制扩展的因素。按照设计,新的堆外缓存同堆内缓存一样快(实际上更快),远远超出缓存在受 JVM 堆限制时可能达到的图查询性能水平。同时,新缓存管理非常简单,调优选项更少,调优更灵活。

InfoQ:内存内页面缓存的并发访问是如何管理的?

Rathle:并发管理有多种机制。一是提供粒度够细但又互不影响的低级数据结构,同时粒度又要够大,可以提供一个有效的“缓存亲和度(cache affinity)”水平。二是快速锁定同智能锁定相结合,确保访问缓存的线程在大多数情况下都可以自由运行。再就是,我们还在 Neo4j 2.3 中新增了检查点,提供恰当的选项和默认值,用于不断地清除缓存。通过将负载在时间上分散开,在日志切换期间,查询仍然能够顺畅地操作。

InfoQ:增强后的 Cypher 查询计划器是如何工作的?有什么特别的应用场景比其他应用场景更有效吗?

Rathle:在 Neo4j 2.3 中,Cypher 查询计划器在决定一个查询使用哪个执行计划之前会考察更多的计划。以前,为了避免内存过度使用,它会主动裁剪计划——这对于大查询非常合适。但计划器经常会陷入局部最优,导致次优查询计划。更新后的 Cypher 查询计划器采用了一种更好的算法,使它可以考察更多的计划,同时还能保持一个低水平的内存需求。

Neo4j 2.3 还提供了可以用于求解查询的新操作符——例如,在适用的情况下,新增的 TriadicSelection 操作符可以让查询比以前快许多倍。

InfoQ:对于新版本的字符串强化图搜索功能,您能举几个例子吗?这个新功能是基于什么构建的?

Rathle:Neo4j 2.3 向 Cypher 添加了新操作符——“STARTS WITH”、“ENDS WITH”和“CONTAINS”。这些操作符可以简化使用 Cypher 在图中搜索字符串属性的操作。此外,STARTS WITH 操作符可以使用普通索引快速找到匹配的节点。

同 STARTS WITH 类似,在 Neo4j 2.3 中,Cypher 计划器还能识别数值范围查询,并 且,会在基于数值属性在图中搜索节点时使用普通索引。所有这一切的关键是一个足够智能的优化器,它能够将图模式匹配与基于文本的索引结合起来,优化图 - 文混合搜索。

InfoQ:关于 Docker 支持,你们为开发人员提供了什么工具,让他们可以开始在 Docker 容器中使用 Neo4j?

Rathle:我们已经构建了一个 Neo4j Docker 镜像。该镜像是官方 Docker 镜像库的一部分,在使用标准 Docker 工具运行 Neo4j 容器时可以使用。要了解更多关于 Neo4j on Docker 和可用工具的信息,可以查看通用文档,地址为 https://hub.docker.com/r/neo4j/neo4j/

InfoQ:Docker 支持现在可以用于生产环境了吗?在将 Neo4j 与 Docker 一起使用时,有什么部署注意事项?

Rathle:是的。目前,Neo 有一个官方 Docker 库,我们会为客户提供官方支持。至于最佳实践:内存可能是最重要的调优参数。底层硬件必须为运行在它上面的容器提供足够的内存;Neo4j 镜像允许按需配置内存。而 Neo4j 企业版——与社区版的差别主要是商业性——有许多社区版所没有的操作特性,包括集群。

本质上讲,Docker 容器没有永久性,但 Neo4j 需要持久存储来存储数据。为此,底层硬件必须包含一块可以挂载到容器的磁盘。在默认情况下,Docker 是彼此隔离的。在运行一个 Neo4j 集群时,必须仔细配置容器,确保它们彼此之间可以互相通信。

InfoQ:OpenCypher 获得了来自 Databricks 和 Oracle 的支持。您能否详细介绍下,Spark GraphX 图数据处理库如何从 openCypher 计划获益?

Rathle:该计划最终会实现 Cypher 在 Spark 上运行……或者至少成为 Spark 的图功能组件。现在,在 Spark 上做图查询,主要的选项是 Scala,这不错:Scala 非常强大。(实际上,Cypher 就是用 Scala 实现的。)但是,Cypher 为许多习惯使用 SQL 的数据分析师提供了使用 GraphX 图分析功能的机会,我们为此感到兴奋,因为 Spark 是 Neo4j 很自然的补充。Spark 主要是一个数据科学家获取洞识的工具集,Neo4j 主要是一个在应用程序中实现实时图分析的平台。洞识和行动:很好的互补。

那是我们的愿景和动机。我们同 Databricks 建立了良好的友谊,Databricks 联合创始人兼 CEO Ion Stoica 表示将为 openCypher 提供公共支持服务,对此我们非常高兴。用他的话说:“图处理正成为现代大数据技术栈中不可或缺的部分。Neo4j Cypher 查询语言将极大的加速图数据库的应用。我们希望将 Cypher 的图模式匹配能力带到 Spark 技术栈,使人们可以更方便地进行图查询。”

关于受访者

Philip Rathle是 Neo Technology 的产品副总裁。他热衷于构建优秀的产品,帮助用户应对明天的挑战。在职业生涯的头十年,他为世界上其中一些最大的公司构建信息解决方案:首先是在埃森哲,然后是在 Tanning Technology,后者是当时世界上顶尖的数据库咨询服务公司之一,他作为解决方案架构师,主要关注数据仓库和 BI 战略。

查看英文原文: Philip Rathle on Neo4j 2.3 Graph Database Features and openCypher Initiative

2015-12-10 16:162219
用户头像

发布了 1008 篇内容, 共 440.7 次阅读, 收获喜欢 346 次。

关注

评论

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

行业分享丨TCL华星光电:AI 如何助力LCD显示模组精准老化预测?

Altair RapidMiner

人工智能 AI 仿真 CAE RapidMiner

MyEMS 深度解析:碳管理赋能与系统集成的实践路径

开源能源管理系统

开源 能源管理系统

Gemini从生成到编辑的进化

kookeey代理严选

Google 代理IP 海外IP Gemini 2.5

AI评测入门(一):先搞懂你的数据集

非晓为骁

AI评测 Langfuse AI产品经理

qData 数据中台开源版部署全攻略:三种方式任你选择

千桐科技

大数据平台 qData 开源数据中台 Java数据中台 企业级数据中台

一客一策:Data Agent 如何重构大模型时代的智能营销?

字节跳动数据平台

大数据 营销 agent 智能营销

多模态大模型Keye-VL-1.5发布!视频理解能力更强!

快手技术

多模态 大模型 快手 keye

广告质量为何至关重要?Unity 高管 Felix Thé 解读行业痛点与应对之道

极客天地

零代码集成真的靠谱吗?ETL平台的背后技术揭秘

谷云科技RestCloud

零代码 数据处理 数据同步 ETL 数据集成平台

重磅!幂律智能推出首款能交付真实法律任务的 AI 律师——吾律

人称T客

AI写代码时代,赢的不是写得快的企业,而是懂这个规则的...

安势信息

AI 软件供应链 软件供应链安全 AI编码 AI 编码隐患

AI 评测入门(二):Prompt 迭代实战从“能跑通”到“能落地”

非晓为骁

AI工程化 prompt 工程 Langfuse AI产品经理 AI 评测

ADManager Plus使用案例:企业AD域管理场景痛点与解决方案

运维有小邓

AD域 AD域管理

iPaaS 如何帮助 CIO 减少 50% 的集成成本?

谷云科技RestCloud

数字化转型 集成平台 ipaas

TitanIDE:构建企业级云端代码安全管理体系

行云创新

代码安全 源代码安全 代码安全管理

Battery Health 3 for Mac 随时掌握苹果电脑电池电量、充电情况、电池容量

Rose

前端热更新重构中国互联网技术架构演进路径

xuyinyin

一文秒懂SaaS、CRM、OA、ERP、MES、WMS、HR

优秀

SaaS CRM ERP mes

AI Compass前沿速览:字节Seedream4.0、Qwen3-Max、EmbeddingGemma、OneCAT多模态、rStar2-Agent

汀丶人工智能

面试官:如何实现动态线程池的任务编排?

王磊

关于nano banana模型实践的思考

伤感汤姆布利柏

强烈推荐Nano Banana 的几种神仙用法

苍何

MyEMS:开源领域的能源管理创新解决方案

开源能源管理系统

开源 能源管理系统

盛趣游戏携手火山引擎打造大模型防火墙,保障智能NPC安全合规

新消费日报

Active Directory 迁移分步指南

运维有小邓

AD域管理 AD域迁移

SSH Shell mac:支持 SSH1、SSH2、Telnet 等远程连接

Rose

VMware 迁移后成本不降反升?国产超融合“一次买断”才是真省钱

智驱前线

低代码如何帮助创业者从“0”到“1”

引迈信息

京东商品评论API全栈开发指南:从接口调用到数据可视化实战

tbapi

京东API 京东商品评论API 京东评论API 京东评论数据采集

ERP、OMS、WMS为什么需要对接快递API接口?

快递鸟

招银浦江数字金融生态大会:招商银行已与火山引擎展开”AI+金融”试点

新消费日报

Philip Rathle谈Neo4j 2.3图数据库新特性和openCypher计划_语言 & 开发_Srini Penchikala_InfoQ精选文章