我正在寻找一个小型数据库,可以“嵌入”到我的 Python 应用程序中,而无需运行单独的服务器,就像使用 SQLite 或 Metakit 一样。我不需要 SQL 数据库,实际上存储自由格式数据(例如 Python 字典或 JSON)更好。
另一个要求是能够在服务器上运行数据库实例,并让我的应用程序(客户端)实例将数据库与服务器同步(双向),类似于 CouchDB 复制可以执行的操作。
有数据库可以做到这一点吗?
根据您的描述,听起来您可以通过使用
pickle
和FTP来获得。
如果不需要 SQL 数据库,那么 CouchDB 有什么问题呢?您可以生成一个本地进程来为数据库提供服务,并且可以轻松编写服务器包装器以仅允许从您的应用程序进行访问。我不确定访问情况,但我相信最新的 Ubuntu 使用 CouchDB 来同步用户级数据。
对于 CouchDB 来说似乎是完美的工作:2 路同步非常简单,无模式 JSON 文档是本机格式。如果您使用 python,couchdb-python 是使用 CouchDB 的好方法。
BerkeleyDB 可能是另一个可供选择的选择,而且它足够轻量。如果您需要 Python 界面,则 easy_install bsddb3 。
HSQLDB 就是这样做的,但不幸的是它是 Java 而不是 Python。
Firebird SQL 可能更接近您想要的,因为它似乎确实有一个 Python 接口。
SyncLite 与 SQLite、DuckDB、Apache Derby、H2 Database、HyperSQL(HSQLDB) 等嵌入式数据库无缝集成,支持事务性、实时数据复制并将其整合到各种行业领先的数据库、数据仓库和数据库中。数据湖。
SyncLite Java 驱动程序可在 Java 和 Python 应用程序中使用: