我想知道是否存在與存儲過程相當的Neo4j? 當我研究這個,我碰到events
,但我發現他們更像觸發器,而不是存儲過程。Neo4j中的存儲過程
6
A
回答
3
存儲過程可作爲自版本能力從Cypher支架語言CALLABLE 3.0
- 第一參考可以找到這裏 https://dzone.com/articles/neo4j-30-stored-procedures
- 一個顯着的例子中,示出了如何圖形可以在大 被處理通過程序實現網絡集羣和社區 欺騙,這裏 http://www.markhneedham.com/blog/2016/02/28/neo4j-a-procedure-for-the-slm-clustering-algorithm/
編輯
隨着Neo4J 3.0在4月16日發佈,存儲過程成爲官方的,Apache 2.0許可的存儲庫。
http://neo4j-contrib.github.io/neo4j-apoc-procedures/
可用程序的範圍從數據操作/導入到空間和複雜的圖形算法(ES。網頁排名,迪傑斯特拉,社區檢測,中介中心,接近中心等)
4
基本上有兩種技術來擴展的Neo4j服務器:
- Server plugins豐富現有REST端點和
- unmanaged extensions允許你創建新的REST端點
兩種技術都需要寫使用JVM(或其他JVM語言)編寫代碼,打包jar文件並將其部署到Neo4j服務器。
1
我的答案在這裏並沒有直接回答這個問題(Stefan的答案對此沒有問題)。這就是說,如果你們中的任何一個人在你的項目實際上在生產中使用之前(在編寫本文的時候是絕大多數的Neo4j用戶羣)之前,你正在考慮編寫服務器插件(以獲得Stored Proc行爲),我強烈建議不是這樣做。
服務器插件爲您的項目添加架構複雜性。您將需要JVM開發人員來維護它們。部署或更新它們可能會很棘手,並且相關的源代碼管理方法不直觀。 Neo4j不需要模式遷移,這使得您作爲開發人員的工作更加輕鬆。添加服務器插件將不再給您帶來好處,因爲它不是Neo4j的主流使用案例,您將從開發人員社區獲得很少的幫助,並且與該功能相關的改進和錯誤修復將從Neo4j團隊。
而所有這些都可能會略微提升性能,或者根本沒有。
「存儲過程」(或使用服務器插件等)是性能調優環境中的一個重要功能,但如果您的團隊仍然是車庫中的兩個人,那麼請不要考慮關閉此功能路徑。
相關問題
- 1. Neo4j 3.0.3 Scala中的存儲過程
- 2. 如何忽略cypher(neo4j)中java存儲過程的yield值?
- 3. 在Neo4j中存儲數學方程?
- 4. 在MySQL中調用存儲過程中的存儲過程
- 5. 調用存儲過程中的「out」ref_cursor的Oracle存儲過程
- 6. 從存儲過程中的select語句調用存儲過程
- 7. 如何調用其他存儲過程中的存儲過程
- 8. 在存儲過程中執行帶參數的存儲過程
- 9. 調用存儲過程中的存儲過程
- 10. 存儲過程中的SQL Server和使用存儲過程
- 11. 存儲過程中的Viemodel過程
- 12. MDX中的存儲過程
- 13. EF4.4中的存儲過程
- 14. datediff中的存儲過程
- 15. Python中的存儲過程
- 16. Hive中的存儲過程
- 17. elasticsearch中的存儲過程
- 18. 存儲過程中的HSQLDB:COMMIT
- 19. 存儲過程中的points.addxy
- 20. SQL中的存儲過程
- 21. Talend中的存儲過程
- 22. Derby中的存儲過程
- 23. scala.dbc中的存儲過程
- 24. 從存儲過程中調用存儲過程在MySQL中
- 25. 如何存儲在存儲過程中
- 26. Neo4j的對存儲數據
- 27. 存儲過程
- 28. 存儲過程
- 29. 存儲過程
- 30. 存儲過程
但非託管擴展是更多功能和更易於使用(恕我直言)。 –
服務器插件和非託管擴展都不提供Jack正在查找的存儲過程功能。 – bjlevine
我不同意,存儲過程基本上是服務器上運行的一段代碼 - 這正是未受管理的擴展或服務器插件所做的事情。 –