有關從 Neo4j 遷移到 Neptune 的一般資訊 - Amazon Neptune

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

有關從 Neo4j 遷移到 Neptune 的一般資訊

透過 Neptune 對 OpenCypher 查詢語言的支援,您可以將使用 Bolt 通訊協定或 HTTPS 的大多數 Neo4j 工作負載移至 Neptune。不過,OpenCypher 是一種開放程式碼規範,其中包含其他資料庫 (例如 Neo4j) 所支援功能的大部分但不是全部。

儘管在許多方面相容,Neptune 並不是 Neo4j 的直接替代品。Neptune 是一種全受管圖形資料庫服務,具有高可用性和高持久性等企業功能,在架構方面與 Neo4j 不同。Neptune 是以執行個體為基礎,具有單一主要寫入器執行個體和最多 15 個僅供讀取複本執行個體,可讓您水平擴展讀取容量。使用 Neptune Serverless,您可以自動向上擴展和縮減運算容量,取決於查詢磁碟區。這與 Neptune 儲存體無關,此儲存體會在您新增資料時自動擴展。

Neptune 支援開放原始碼 openCypher 標準規格第 9 版。在 AWS,我們相信開放原始碼對每個人都有益,我們承諾將開放原始碼的價值帶給客戶,並將 的卓越營運帶 AWS 入開放原始碼社群。

不過,在 Neo4j 上執行的許多應用程式也會使用不是開放原始碼且 Neptune 不支援的專屬功能。例如,Neptune 不支援 APOC 程序、某些 Cyphers 特定的子句和函數,以及 CharDate、或 Duration 資料類型。Neptune 會自動將遺失的資料類型轉換為支援的資料類型

除了 openCypher 之外,Neptune 還支援 Apache TinkerPop Gremlin 查詢語言用於屬性圖 (以及支援 SPARQL 用於 RDF 資料)。Gremlin 可以在同一個屬性圖上與 OpenCypher 交互操作,並且在許多情況下,您可以使用 Gremlin 來提供 OpenCypher 未提供的功能。以下是兩種語言的快速比較:

openCypher Gremlin

Style (樣式)

宣告式

命令式

語法

模式比對

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 和 Websocket

一般來說,不需要變更資料模型,即可從 Neo4j 遷移到 Neptune,因為 Neo4j 和 Neptune 都支援標記的屬性圖 (LPG) 資料。不過,Neptune 有一些架構和資料模型差異,您可以利用這些差異來最佳化效能:例如:

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