有关从 Neo4j 迁移到 Neptune 的一般信息 - Amazon Neptune

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

有关从 Neo4j 迁移到 Neptune 的一般信息

借助 Neptune 对 openCypher 查询语言的支持,您可以将大多数使用 Bolt 协议的 Neo4j 工作负载或迁移到 Neptune。HTTPS但是, openCypher 是一个开源规范,它包含其他数据库(例如Neo4j)支持的大部分(但不是全部)功能。

尽管在许多方面兼容,但 Neptune 并不是 Neo4j 的直接替代。Neptune 是一项完全托管式图形数据库服务,具有高可用性和高耐久性等企业级特征,在架构上与 Neo4j 不同。Neptune 基于实例,具有一个主写入器实例和最多 15 个只读副本实例(可让您水平扩展读取容量)。使用 Neptune 无服务器,您可以根据查询量自动横向扩展和缩减计算容量。这与 Neptune 存储无关,Neptune 存储会随着您添加数据而自动扩展。

Neptune 支持开源openCypher标准规范,即版本 9。在 AWS,我们相信开源对每个人都有好处,我们既致力于为客户带来开源的价值,又致力于为开源社区带来卓越的 AWS 运营。

但是,许多在 Neo4j 上运行的应用程序也使用非开源且 Neptune 不支持的专有特征。例如,Neptune 不支持APOC过程、某些特定于 Cypher 的子句和函数以及CharDate或数据类型。DurationNeptune 确实会将缺失的数据类型自动转换为支持的数据类型

此外openCypher,Neptune 还支持用于属性图(以及数据)的 Apache TinkerPop Gremlin 查询语言。SPARQL RDFGremlin 可以在同一个属性图 openCypher 上与之互操作,在许多情况下,你可以使用 Gremlin 来提供不提供的功能。 openCypher 以下是两种语言的快速比较:

openCypher Gremlin

样式

声明式

命令式

语法

模式匹配

Match p=(a)-[:route]->(d) WHERE a.code='ANC' RETURN p

基于遍历

g.V().has('code', 'ANC'). out('route').path(). by(elementMap())

易于使用

SQL-受启发,非程序员也能阅读

更陡峭的学习曲线,类似于 Java 等编程语言

弹性

查询支持

基于字符串的查询

客户端库支持的基于字符串的查询或内联代码

客户端

HTTPS还有 Bolt

HTTPS和网络套接字

通常,无需更改数据模型即可从 Neo4j 迁移到 Neptune,因为 Neo4j 和 Neptune 都支持带标签的属性图 () 数据。LPG但是,Neptune 有一些架构和数据模型差异,您可以利用这些差异来优化性能。例如:

如有疑问,请联系 AWS 支持人员或联系您的 AWS 客户团队。我们会根据您的反馈来确定满足您需求的新特征的优先顺序。