18

我开始尝试使用 CouchDB,因为它看起来是我们遇到的某些问题的完美解决方案。鉴于所有工作都将在一个没有遗留依赖项的全新项目上进行,您建议我使用哪个客户端库,为什么?

如果我们使用的操作系统有任何重叠,这会更容易。FreeBSD 的端口集合中只有py-simplecouchdb可用,但该库的项目网站说要使用CouchDBKit。这些都没有随 Ubuntu 一起提供,它只随CouchDB一起提供。由于这两个操作系统没有共同的库,我可能会从源代码安装一些东西(如果我有时间,希望将包提交给 Ubuntu 和 FreeBSD 人员)。

对于那些感兴趣的人,我想使用 CouchDB 作为在各种服务之间传递的数据的方便中间存储位置——想想消息总线系统,但不那么正式。例如,我们有守护程序下载和解析网页,然后将有趣的位发送给其他守护程序以进行进一步处理。很多这些对象在运行时之前都是不明确的(“这里有一些 HTML,加上一组元数据,以及一些要在其上运行的操作”)。与其将其序列化为临时本地网络协议或将其粘贴在 PostgreSQL 中,我更愿意使用为此目的设计的东西。我们目前在这个角色中使用NetWorkSpaces,但它几乎没有 CouchDB 的广泛支持或用户社区。

4

6 回答 6

5

我一直在使用couchdb-python并取得了很大的成功,据我所知 desktopcouch 的人在 ubuntu 中使用它。先决条件是非常基本的,你应该没有问题:

  • httplib2
  • simplejson 或 cjson
  • Python
  • CouchDB 0.9.x(早期或更高版本不太可能工作,因为界面仍在更改)

对我来说,一些优点是:

  • Pythonic 界面。您可以像使用字典一样使用数据库。
  • 设计文档的界面。
  • 允许在 Python 中编写视图函数的 CouchDB 视图服务器

它还提供了几个命令行工具:

  • couchdb-dump:写入 CouchDB 数据库的快照
  • couchdb-load:读取由 couchdb-dump 生成的 MIME 多部分文件,并将所有文档、附件和设计文档加载到 CouchDB 数据库中。
  • couchdb-replicate:可用作更新通知脚本,以在数据更改时触发数据库之间的复制。
于 2009-10-20T20:41:02.240 回答
2

如果您仍在考虑 CouchDB,那么我会推荐 Couchdbkit ( http://www.couchdbkit.org )。在我运行 Karmic Koala 的机器上快速上手并运行良好非常简单。在此之前,我尝试过 couchdb-python,但是 httplib 的一些错误(现在可能已经解决)给了我一些错误(重复的文档..etc),但 Couchdbkit 让我起来并到目前为止没有任何问题。

于 2009-11-12T09:41:58.853 回答
1

间谍沙发

用于 CouchDB 的简单 Python API

用于轻松管理 CouchDB 的 Python 库。

与网络上普通可用的库相比,适用于最新版本的 CouchDB - 1.2.1

功能性

在服务器上创建一个新数据库

从服务器中删除数据库

列出服务器上的数据库

数据库信息

数据库压缩

创建地图视图

地图视图

在数据库中列出文档

从数据库获取文档

将文档保存到数据库

从数据库中删除文档

编辑文档

间谍沙发上 >> https://github.com/cernyjan/repository

于 2013-04-07T06:12:21.637 回答
0

考虑到您要解决的任务(分布式任务处理),您应该考虑使用为消息传递而设计的众多工具之一,而不是使用数据库。例如,请参阅this SO question on running multiple tasks over many machines

如果你真的想要一个简单的随意消息传递系统,我建议你将注意力转移到MorbidQ 上。当您变得更认真时,请使用RabbitMQActiveMQ。通过这种方式,您可以减少系统中的延迟并避免让许多客户端轮询数据库(从而重击该计算机)。

我发现避免使用数据库是个好主意(那是我的博客)——我有一个使用MorbidQ运行的端到端实时数据系统

于 2009-10-20T21:10:03.100 回答
0

我已经编写了一个基于 python-requests(在大多数发行版中)构建的 couchdb 客户端库。我们在生产中使用这个库。

https://github.com/adamlofts/couchdb-requests

使用 python-requests 的强大的 CouchDB Python 接口。

目标:

  • 只有一种方法可以做某事
  • 快速稳定(连接池化)
  • 显式优于隐式。缓冲区大小,连接池大小。
  • 指定查询参数,查询函数中没有**参数
于 2013-07-22T13:04:41.320 回答
0

在浏览了许多 couchdb python 库的文档后,我选择了pycouchdb

我需要知道的只是从文档中快速掌握:https ://py-couchdb.readthedocs.org/en/latest/它就像一个魅力。

此外,它适用于 Python 3。

于 2015-02-10T13:52:28.127 回答