NoSQL 数据库:ArangoDB
NoSQL database: ArangoDB
我一直在寻找一个既可以嵌入又可以基于文件的数据库,比如Sqlite。
我想要一个具有这种功能的 NoSQL 类型的数据库。
语言是 Python,ArangoDB 绑定了 Python 和许多其他语言。
我发现关于 ArangoDB 的事实相互矛盾。
在某些情况下,我看到文章说它不是嵌入式数据库,或者不能嵌入,然后看到其他人暗示它是嵌入式的。
网站上还说它以特殊的二进制格式存储数据,然后我看到一篇文章说它主要是一个内存数据库。
所以一直很混乱。
1) 那么问题来了,这个数据库 运行 可以嵌入到 python 应用程序中吗?
如果不是,如果它 运行s 作为一个单独的进程,运行s 作为一个服务器,这可以是 generated/managed in Python with "zero configuration" 用户方面,基于此部署桌面应用程序。
2) 数据库数据等是否存储在磁盘上。
就是这样!
不,你不能像嵌入 SQLite 那样嵌入 ArangoDB。
ArangoDB 提供了 Foxx framework, which you can use to implement RESTfull microservices in JavaScript close to the database core like you would use python with SQLite. However, with AQL ArangoDB 还提供了一种查询语言,就像 SQLite 使用 sql。
目前有几个 python 可用的驱动程序允许您以舒适的方式从 python 访问 ArangoDB。
ArangoDB 下载页面提供了几个包,您可以使用它们将 ArangoDB 与您的应用一起部署。我们提供 a windows zip package that you could install by yourselves without user interaction;对于 linux 发行版,您可能希望为该发行版使用相应的包。易于部署是我们的核心目标之一。
关于数据库和您的数据本身,这会持久保存到磁盘。这通过内存映射文件工作。但是索引等结构是在启动时建立起来的,这就是为什么我们称自己为mostly in memory.
对 ArangoDB(和 foxx)的常规访问是通过 http 接口完成的,您会得到 json 个文档作为响应。驱动程序为您抽象该接口。如果您实施 foxx 应用程序,您可能需要自己制定请求。
ArangoDB 数据文件不适合跨机器移动;尽管只要您在两侧具有相同的 OS 和架构,它就可以工作。这样做的正确方法是使用 ArangoDump on the first machine and ArangoRestore on the second. These are mostly json inside (one json document per line) so they're portable and even simple to load in python - you could even directly access the dump facility from python,并为用户准备一封包含内容的电子邮件。
运行 ArangoDB 最可持续的方式是作为一种服务;请注意,您可能需要提升权限才能在 Windows 中注册和 re/start 新服务。该服务然后绑定一个 tcp 端口,您可以从网络中的其他节点访问该端口。
我一直在寻找一个既可以嵌入又可以基于文件的数据库,比如Sqlite。 我想要一个具有这种功能的 NoSQL 类型的数据库。 语言是 Python,ArangoDB 绑定了 Python 和许多其他语言。
我发现关于 ArangoDB 的事实相互矛盾。 在某些情况下,我看到文章说它不是嵌入式数据库,或者不能嵌入,然后看到其他人暗示它是嵌入式的。
网站上还说它以特殊的二进制格式存储数据,然后我看到一篇文章说它主要是一个内存数据库。
所以一直很混乱。
1) 那么问题来了,这个数据库 运行 可以嵌入到 python 应用程序中吗?
如果不是,如果它 运行s 作为一个单独的进程,运行s 作为一个服务器,这可以是 generated/managed in Python with "zero configuration" 用户方面,基于此部署桌面应用程序。
2) 数据库数据等是否存储在磁盘上。
就是这样!
不,你不能像嵌入 SQLite 那样嵌入 ArangoDB。
ArangoDB 提供了 Foxx framework, which you can use to implement RESTfull microservices in JavaScript close to the database core like you would use python with SQLite. However, with AQL ArangoDB 还提供了一种查询语言,就像 SQLite 使用 sql。
目前有几个 python 可用的驱动程序允许您以舒适的方式从 python 访问 ArangoDB。
ArangoDB 下载页面提供了几个包,您可以使用它们将 ArangoDB 与您的应用一起部署。我们提供 a windows zip package that you could install by yourselves without user interaction;对于 linux 发行版,您可能希望为该发行版使用相应的包。易于部署是我们的核心目标之一。
关于数据库和您的数据本身,这会持久保存到磁盘。这通过内存映射文件工作。但是索引等结构是在启动时建立起来的,这就是为什么我们称自己为mostly in memory.
对 ArangoDB(和 foxx)的常规访问是通过 http 接口完成的,您会得到 json 个文档作为响应。驱动程序为您抽象该接口。如果您实施 foxx 应用程序,您可能需要自己制定请求。
ArangoDB 数据文件不适合跨机器移动;尽管只要您在两侧具有相同的 OS 和架构,它就可以工作。这样做的正确方法是使用 ArangoDump on the first machine and ArangoRestore on the second. These are mostly json inside (one json document per line) so they're portable and even simple to load in python - you could even directly access the dump facility from python,并为用户准备一封包含内容的电子邮件。
运行 ArangoDB 最可持续的方式是作为一种服务;请注意,您可能需要提升权限才能在 Windows 中注册和 re/start 新服务。该服务然后绑定一个 tcp 端口,您可以从网络中的其他节点访问该端口。