【问题标题】:NoSQL database: ArangoDBNoSQL 数据库:ArangoDB
【发布时间】:2016-04-04 04:09:21
【问题描述】:

我一直在寻找一个可以嵌入也可以基于文件的数据库,比如 Sqlite。 我想要一个具有这种特性的 NoSQL 类型的数据库。 语言是 Python,ArangoDB 绑定了 Python 和许多其他语言。

我发现关于 ArangoDB 的事实相互矛盾。 在某些情况下,我看到文章说它不是嵌入式数据库,或者不能嵌入,然后看到其他暗示它是嵌入式的。

在网站上也说它以特殊的二进制格式存储数据,然后我看到一篇文章说它主要是一个内存数据库。

所以它非常混乱。

1)那么问题来了,这个数据库可以嵌入到 python 应用程序中运行吗?

如果不是,如果它作为单独的进程运行,作为服务器运行,是否可以在 Python 中使用“零配置”在用户方面生成/管理,以便基于此部署桌面应用程序.

2) 数据库数据等是否存储在磁盘上。

原来如此!

【问题讨论】:

    标签: python-3.x arangodb


    【解决方案1】:

    不,您不能像嵌入 SQLite 那样嵌入 ArangoDB。

    ArangoDB 提供了Foxx framework,您可以使用它在靠近数据库核心的 JavaScript 中实现 RESTfull 微服务,就像在 SQLite 中使用 Python 一样。但是,AQL ArangoDB 也提供了一种查询语言,就像 SQLite 使用 sql 一样。

    目前有几个可用的 python 驱动程序允许您以舒适的方式从 python 访问 ArangoDB。

    ArangoDB 下载页面提供了几个包,您可以使用它们将 ArangoDB 与您的应用一起部署。我们提供a windows zip package that you could install by yourselves without user interaction;对于 linux 发行版,您可能希望使用该发行版的相应软件包。易于部署是我们的核心目标之一。

    关于数据库和您的数据本身,它会被持久化到磁盘上。这通过内存映射文件起作用。然而,索引和其他结构是在启动过程中建立起来的,这就是为什么我们称自己为大部分在内存中

    对 ArangoDB(和 foxx)的定期访问是通过 http 接口完成的,您会得到 json 文档作为响应。驱动程序为您抽象了该接口。如果您实施 foxx 应用程序,您可能需要自己制定请求。

    ArangoDB 数据文件不打算跨机器移动;尽管只要您在双方都有相同的操作系统和架构,它就可以工作。正确的做法是在第一台机器上使用ArangoDump,在第二台机器上使用ArangoRestore。这些主要是内部的 json(每行一个 json 文档),因此它们是可移植的,甚至可以简单地在 python 中加载 - 你甚至可以directly access the dump facility from python,并为用户准备一封包含内容的电子邮件。

    运行 ArangoDB 最可持续的方式是作为服务;请注意,您可能需要提升权限才能在 Windows 中注册和重新/启动新服务。然后该服务绑定一个 tcp 端口,您可以从网络中的其他节点访问该端口。

    【讨论】:

    • 嗨,谢谢,这真的很棒!我要迎合的用户将在 Windows 中。因此,数据被持久化到磁盘上,可以将其移动到另一个 Windows 框并让另一个人使用我的应用程序,能够以这种方式在磁盘上打开此文件。使用 SQLite,如果使用应用程序构建文件,则可以将该 db 文件移动到具有相同应用程序的另一台机器上以打开并查看数据。因此,我正在寻找这种可移植的数据移动方式。
    • 不同机器上的用户可能希望将数据从一个位置移动到另一个位置并让应用打开它,无论应用安装在哪里。我所说的应用程序是一个桌面应用程序。就像人们可以通过电子邮件发送 Excel 文件一样,只要他们在另一台机器上安装了 Office 套件就可以打开它们,所以这就是我想要的应用程序模型.
    • 好的,所以根据你的第一行,它没有嵌入到与应用程序本身相同的进程中,所以你说它在类似服务器的模式下运行。这对我来说很好,只要它以零管理方式安装,这将符合我的目的。
    • 我已编辑我的回复以回答其余问题。
    • 世界仍然缺乏可嵌入的 NoSQL DB。 RDBMS 数据库在很多年前就完成了。谢谢 SQLite
    猜你喜欢
    • 2012-12-08
    • 2011-02-10
    • 2012-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多