gpt4 book ai didi

python - 使用来自python的neo4J(服务器)和交易

转载 作者:行者123 更新时间:2023-11-28 20:50:04 25 4
gpt4 key购买 nike

我目前正在使用 python/flask 构建网络服务,并且想在 neo4j 之上构建我的数据层,因为我的核心数据结构本质上是一个图形。我对 neo4j 为这种情况提供的不同技术感到有点困惑。特别是:

  1. 我原本计划通过 py2neo 使用 REST Api,但缺少事务有点问题。

  2. “嵌入式数据库”neo4j 似乎不太适合我的情况。我想这在您处理批量分析和一次性分析时很有用,并且不需要将数据库存储在与 Web 服务器不同的服务器上。

  3. 我偶然发现了 neo4django 项目,但我不确定它是否提供事务支持(因为没有针对 python 的 neo4j native 客户端),以及在外部使用它是否有问题 Django 本身。事实上,在查看了该项目的文档之后,我觉得它具有完全相同的限制,也就是没有事务(但是,当您可以在单个连接超时时破坏您的模型时,您如何构建一个真实世界的服务?) .我什至不明白那个项目有什么用。

任何人都可以推荐任何东西吗?我觉得完全卡住了。

谢谢

最佳答案

没有任何 REST API 客户端能够明确支持(正确的)交易,因为该功能无法通过 Neo4j REST API 接口(interface)使用。有一些替代方案,例如 Cypher 查询和批处理执行,它们都在服务器端的单个原子事务中运行;然而,我对客户端应用程序的一般方法是尝试构建可以优雅地处理部分完整数据的代码,从而消除对显式事务控制的需要。

通常,这种方法会大量使用唯一索引,这是我在 py2neo 中提供大量“get_or_create”类型方法的原因之一。 Cypher 本身非常强大,还提供唯一性功能,特别是通过 CREATE UNIQUE 子句。使用这些,您可以使您的写入是幂等的,并且您可以安全地选择“多次执行”,因为您知道您最终不会得到重复数据。

同意,这种方法本身不会为您提供交易,但在大多数情况下,它可以为您提供等效的最终结果。在您的应用程序中哪些地方事务真正是必要的,这当然值得挑战一下自己。

希望对你有帮助

奈杰尔

关于python - 使用来自python的neo4J(服务器)和交易,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13233107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com