小型“嵌入式”数据库也可以通过网络同步?

问题描述 投票:0回答:7

我正在寻找一个小型数据库,可以“嵌入”到我的 Python 应用程序中,而无需运行单独的服务器,就像使用 SQLiteMetakit 一样。我不需要 SQL 数据库,实际上存储自由格式数据(例如 Python 字典或 JSON)更好。

另一个要求是能够在服务器上运行数据库实例,并让我的应用程序(客户端)实例将数据库与服务器同步(双向),类似于 CouchDB 复制可以执行的操作。

有数据库可以做到这一点吗?

python database sqlite couchdb
7个回答
2
投票

根据您的描述,听起来您可以通过使用

pickle
和FTP来获得。


1
投票

如果不需要 SQL 数据库,那么 CouchDB 有什么问题呢?您可以生成一个本地进程来为数据库提供服务,并且可以轻松编写服务器包装器以仅允许从您的应用程序进行访问。我不确定访问情况,但我相信最新的 Ubuntu 使用 CouchDB 来同步用户级数据。


1
投票

对于 CouchDB 来说似乎是完美的工作:2 路同步非常简单,无模式 JSON 文档是本机格式。如果您使用 python,couchdb-python 是使用 CouchDB 的好方法。


1
投票

您是否需要客户端离线工作,然后在重新连接到网络时重新同步?我不知道MongoDB是否可以处理离线客户端场景,但如果客户端始终在线,MongoDB可能也是一个很好的解决方案。它有相当好的 python support。仍然是一个单独的进程,但在 Windows 上运行可能比 CouchDB 更容易。


1
投票

BerkeleyDB 可能是另一个可供选择的选择,而且它足够轻量。如果您需要 Python 界面,则 easy_install bsddb3 。


0
投票

HSQLDB 就是这样做的,但不幸的是它是 Java 而不是 Python。

Firebird SQL 可能更接近您想要的,因为它似乎确实有一个 Python 接口。


-4
投票

SyncLite 与 SQLite、DuckDB、Apache Derby、H2 Database、HyperSQL(HSQLDB) 等嵌入式数据库无缝集成,支持事务性、实时数据复制并将其整合到各种行业领先的数据库、数据仓库和数据库中。数据湖。

SyncLite Java 驱动程序可在 Java 和 Python 应用程序中使用:

https://github.com/syncliteio/SyncLiteLoggerJavaExtended

© www.soinside.com 2019 - 2024. All rights reserved.