Pal*_*alu 3 python-3.x arangodb
我一直在寻找一个既可以嵌入又可以基于文件的数据库,比如 Sqlite。我想要一个具有这种功能的 NoSQL 类型的数据库。语言是Python,ArangoDB 具有Python 和许多其他语言的绑定。
我发现有关 ArangoDB 的事实相互矛盾。在某些情况下,我看到文章说它不是嵌入式数据库,或者不能嵌入,然后看到其他文章暗示它是嵌入式的。
网站上还说它以特殊的二进制格式存储数据,然后我看到一篇文章说它主要是内存数据库。
所以这非常令人困惑。
1)那么问题是,这个数据库可以嵌入在python应用程序中运行吗?
如果不是,如果它作为一个单独的进程运行,作为服务器运行,用户可以使用“零配置”在Python中生成/管理它,以便基于此部署桌面应用程序。
2)数据库数据等是否存储在磁盘上。
所以就是这样!
不,您不能像嵌入 SQLite 那样嵌入 ArangoDB。
ArangoDB 提供Foxx 框架,您可以使用该框架在靠近数据库核心的 JavaScript 中实现 RESTfull 微服务,就像使用 Python 和 SQLite 一样。然而,ArangoDB 还通过AQL提供了一种查询语言,就像 SQLite 对 sql 所做的那样。
目前有几个可用的 python 驱动程序可以让您以舒适的方式从 python 访问 ArangoDB。
ArangoDB 下载页面提供了多个软件包,您可以使用它们将 ArangoDB 与您的应用程序一起部署。我们提供Windows zip 包,您可以自行安装,无需用户交互;对于 Linux 发行版,您可能希望使用该发行版的相应软件包。易于部署是我们的核心目标之一。
关于数据库和数据本身,这会被持久保存到磁盘上。这是通过内存映射文件来实现的。然而,索引和其他结构是在启动过程中建立的,这就是为什么我们称自己为“主要在内存中”。
对 ArangoDB(和 Foxx)的定期访问是通过 http 接口完成的,您将获得 json 文档作为响应。驱动程序为您抽象该接口。如果您实施foxx应用程序,您可能需要自己制定请求。
ArangoDB 数据文件不适合跨机器移动;尽管只要双方拥有相同的操作系统和架构,它就可以工作。正确的方法是在第一台计算机上使用ArangoDump ,在第二台计算机上使用ArangoRestore 。这些大多是 json 内部(每行一个 json 文档),因此它们是可移植的,甚至可以轻松地在 python 中加载 - 您甚至可以直接从 python 访问转储工具,并为用户准备一封包含内容的电子邮件。
运行 ArangoDB 最可持续的方式是作为服务;请注意,您可能需要提升权限才能在 Windows 中注册和重新/启动新服务。然后该服务绑定一个 TCP 端口,您可以从网络中的其他节点访问该端口。