

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 有關從 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 Serverless](neptune-serverless.md)，您可以自動向上擴展和縮減運算容量，取決於查詢磁碟區。這與 Neptune 儲存體無關，此儲存體會在您新增資料時自動擴展。

Neptune 支援開放原始碼 [openCypher 標準規格第 9 版](https://s3.amazonaws.com/artifacts.opencypher.org/openCypher9.pdf)。在 AWS，我們相信開放原始碼對每個人都有益，我們承諾將開放原始碼的價值帶給客戶，並將 AWS 的卓越營運帶給開放原始碼社群。

不過，在 Neo4j 上執行的許多應用程式也會使用不是開放原始碼且 Neptune 不支援的專屬功能。例如，Neptune 不支援 APOC 程序、某些 Cyphers 特定的子句和函數，以及 `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) 查詢語言用於屬性圖 (以及支援 SPARQL 用於 RDF 資料)。Gremlin 可以在同一個屬性圖上與 OpenCypher 交互操作，並且在許多情況下，您可以使用 Gremlin 來提供 OpenCypher 未提供的功能。以下是兩種語言的快速比較：


|  | openCypher | Gremlin | 
| --- | --- | --- | 
| Style (樣式) | 宣告式 | 命令式 | 
| 語法 | 模式比對<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 有一些架構和資料模型差異，您可以利用這些差異來最佳化效能：例如：
+ Neptune ID 被視為頭等公民。
+ 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 [與 AWS Pandas SDK 的整合](https://github.com/amazon-archives/fully-automated-neo4j-to-neptune)，對圖形資料執行分析。

如果您有任何問題，請聯絡 AWS 支援或與您的 AWS 客戶團隊互動。我們會使用您的意見回饋，來排定符合您需求之新功能的優先順序。