

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

# 有关从 Neo4j 迁移到 Neptune 的一般信息
<a name="migrating-from-neo4j-general"></a>

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

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

Neptune 支持开源 [openCypher 标准规范，版本 9](https://s3.amazonaws.com/artifacts.opencypher.org/openCypher9.pdf)。在 AWS，我们相信开源对每个人都有好处，我们既致力于为客户带来开源的价值，又致力于为开源社区带来卓越的 AWS 运营。

但是，许多在 Neo4j 上运行的应用程序也使用非开源且 Neptune 不支持的专有特征。例如，Neptune 不支持 APOC 过程、某些特定于 Cypher 的子句和函数以及 `Char`、`Date` 或 `Duration` 数据类型。Neptune 确实会将缺失的数据类型自动转换为[支持的数据类型](bulk-load-tutorial-format-opencypher.md#bulk-load-tutorial-format-opencypher-data-types)。

除了 OpenCypher 之外，Neptune 还支持用于属性图的 [Apache TinkerPop Gremlin](https://tinkerpop.apache.org/docs/current/reference/#traversal) 查询语言（以及用于 RDF 数据的 SPARQL）。Gremlin 可以在同一个属性图上与 openCypher 互操作，在许多情况下，您可以使用 Gremlin 来提供 openCypher 不提供的功能。以下是两种语言的快速比较：


|  | openCypher | Gremlin | 
| --- | --- | --- | 
| 样式 | 声明式 | 命令式 | 
| 语法 |  模式匹配 <pre>Match p=(a)-[:route]->(d)<br />WHERE a.code='ANC'<br />RETURN p<br /></pre>  |  基于遍历 <pre>g.V().has('code', 'ANC').<br />out('route').path().<br />by(elementMap())</pre>  | 
| 易于使用 | SQL 启发式，非程序员也可阅读 | 更陡峭的学习曲线，类似于 Java 等编程语言 | 
| 弹性 | 低 | 高 | 
| 查询支持 | 基于字符串的查询 | 客户端库支持的基于字符串的查询或内联代码 | 
| 客户端 | HTTPS 和 Bolt | HTTPS 和 Websocket | 

通常，无需更改数据模型即可从 Neo4j 迁移到 Neptune，因为 Neo4j 和 Neptune 都支持带标签的属性图 (LPG) 数据。但是，Neptune 有一些架构和数据模型差异，您可以利用这些差异来优化性能。例如：
+ 海王星 IDs 被当作头等公民对待。
+ Neptune 使用 [AWS Identity and Access Management (IAM) 策略](iam-auth.md)以灵活而精细的方式保护对您的图形数据的访问。
+ Neptune 提供了多种[使用 Jupyter 笔记本](graph-notebooks.md)运行查询和[可视化结果](notebooks-visualization.md)的方法。Neptune 还可以与[第三方可视化工具](visualization-tools.md)配合使用。
+ 尽管 Neptune 无法替代 Neo4j 图形数据科学 (GDS) 库，但 Neptune 通过各种解决方案支持当今的图形分析。例如，一些[示例笔记本](https://github.com/aws/graph-notebook/tree/main/src/graph_notebook/notebooks/01-Neptune-Database/03-Sample-Applications/06-Data-Science-Samples)演示了如何[在 Python 环境中利用 Neptune 与 P AWS andas SDK 的集成](https://github.com/amazon-archives/fully-automated-neo4j-to-neptune)来对图形数据进行分析。

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