使用 openCypher 访问 Neptune 图形 - Amazon Neptune
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 openCypher 访问 Neptune 图形

Neptune 支持使用 openCypher 构建图形应用程序,openCypher 是目前使用图形数据库的开发人员最常用的查询语言之一。开发人员、业务分析师和数据科学家都喜欢 openCypher 的受 SQL 启发的语法,因为它提供了一种熟悉的结构来为图形应用程序编写查询。

openCypher 是一种用于属性图的声明式查询语言,最初由 Neo4j 开发,然后于 2015 年开源,并在 Apache 2 开源许可证下为 openCypher 项目做出了贡献。其语法在 Cypher 查询语言参考版本 9 中介绍。

有关 openCypher 规范在 Neptune 支持方面的限制和差异,请参阅亚马逊 Neptune 中符合 OpenCypher 规范

注意

Cypher 查询语言的当前 Neo4j 实现在某些方面与 openCypher 规范有所不同。如果您要将当前的 Neo4j Cypher 代码迁移到 Neptune,请参阅Neptune 与 Neo4j 的兼容性重写 Cypher 查询以在 Neptune 上运行 openCypher 以获取帮助。

从引擎版本 1.1.1.0 开始,openCypher 可在 Neptune 中用于生产用途。

Gremlin 与 openCypher:相似之处和不同之处

Gremlin 和 openCypher 都是属性图查询语言,它们在很多方面互补。

Gremlin 旨在吸引程序员并无缝融入代码。因此,从设计上讲,Gremlin 势在必行,而对于具有 SQL 或 SPARQL 经验的人来说,可能会更熟悉 openCypher 的声明式语法。对于在 Jupyter 笔记本中使用 Python 的数据科学家来说,Gremlin 似乎更自然,而对于具有一些 SQL 背景的企业用户来说,openCypher 可能看起来更直观。

好消息是,在 Neptune 中,您不必在 Gremlin 和 openCypher 之间进行选择。无论使用这两种语言中的哪一种来输入数据,任何一种语言的查询都可以在同一个图形上运行。您可能会发现在某些情况下使用 Gremlin 更方便,而在其它情况下使用 openCypher 更方便,这取决于您正在做的事情。

Gremlin 使用命令式语法,这允许您通过一系列步骤控制如何在图形中移动,每个步骤都接收数据流,对其执行某种操作(使用筛选条件、映射等),然后将结果输出到下一个步骤。Gremlin 查询通常采用 g.V() 形式,后跟其它步骤。

在 openCypher 中,您使用一种受 SQL 启发的声明式语法,此语法使用主旨语法(比如 ()-[]->())指定要在图形中查找的节点和关系的模式。openCypher 查询通常以 MATCH 子句开头,后跟其它子句,如 WHEREWITHRETURN