本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Neptune 支援使用 OpenCypher 建置圖形,OpenCypher 是使用圖形資料庫的開發人員目前最熱門的其中一個查詢語言。開發人員、商務分析師和資料科學家都愛用 OpenCypher 的 SQL 啟發語法,因為它提供了熟悉結構來編寫屬性應用程式的查詢。
OpenCypher 是屬性圖的宣告式查詢語言,最初由 Neo4j 開發,然後在 2015 年成為開放原始碼,並在 Apache 2 開放原始碼授權下投入 OpenCypher
如需 Neptune 支援 OpenCypher 規格的限制和差異,請參閱 Amazon Neptune 中的 openCypher 規格合規。
注意
Cypher 查詢語言的目前 Neo4j 實作已某些方面與 OpenCypher 規格有所分歧。如果您要將目前 Neo4j Cypher 程式碼遷移至 Neptune,請參閱 Neptune 與 Neo4j 的相容性 和 重寫 Cypher 查詢以在 Neptune 上的 OpenCpher 中執行 以取得協助。
從引擎 1.1.1.0 版開始,openCypher 適用於 Neptune 中的生產用途。
Gremlin 與 openCypher:相似性與差異
Gremlin 和 OpenCypher 都是屬性圖查詢語言,並且它們在許多方面彼此互補。
Gemlin 旨在吸引程式設計人員並無縫融入程式碼中。因此,Gremlin 的設計是命令式,而對於具有 SQL 或 SPARQL 經驗的人員, OpenCypher 的宣告式語法可能會感覺更熟悉。對於在 Jupyter 筆記本中使用 Python 的資料科學家來說,Gremlin 似乎更自然,而對於具有某些 SQL 背景的商務使用者來說,openCypher 似乎更直觀。
好處是,您不必在 Neptune 中的 Gremlin 與 openCypher 之間進行選擇。無論使用這兩種語言的哪一種輸入資料,任一種語言的查詢都可以在相同的圖形上操作。您可能會發現將 Gremlin 用於某些事情更方便,而對於其他事情,使用 OpenCypher 則更方便,取決於您正在做的事情。
Gremlin 使用命令式語法,可讓您透過一系列步驟來控制您在圖形中移動的方式,每個步驟都會包含資料串流、對其執行某些動作 (使用篩選條件、映射等),然後將結果輸出至下一個步驟。Grimlin 查詢通常會採取格式 g.V()
,後面跟著額外的步驟。
在 OpenCypher 中,您可以使用受 SQL 啟發的宣告式語法,其會指定節點和關係的模式,以使用 motif 語法 (例如 ()-[]->()
) 在圖形中尋找。OpenCypher 查詢通常以 MATCH
子句開頭、後面跟著其他子句,例如 WHERE
、WITH
和 RETURN
。