Какую клиентскую библиотеку Python я должен использовать для CouchdB?

Я начинаю экспериментировать с CouchDB, потому что он выглядит как идеальное решение для определенных проблем, которые у нас есть. Учитывая, что вся работа будет в совершенно новом проекте без каких-либо наследственных зависимостей, какую клиентскую библиотеку вы бы предложили использовать и почему?

Это было бы легче, если бы было какое-то совпадение с используемыми ОС. FreeBSD имеет только py-simplecouchdb, уже доступный в коллекции портов, но на веб-сайте проекта этой библиотеки вместо этого используется CouchDBKit . Ни у кого из них нет Ubuntu, который поставляется только с CouchDB . Поскольку эти две ОС не имеют общих библиотек, я, вероятно, буду устанавливать что-то из источника (и, надеюсь, отправит пакеты пользователям Ubuntu и FreeBSD, если у меня будет время).

Для желающих я хотел бы использовать CouchDB как удобное промежуточное место хранения данных, передаваемых между различными службами, – подумайте о системе сообщений, но с меньшей формальностью. Например, у нас есть демоны, которые скачивают и анализируют веб-страницы, а затем отправляют интересные бит другим демонам для дальнейшей обработки. Многие из этих объектов не определены до времени выполнения («вот несколько HTML, плюс набор метаданных и некоторые действия для запуска на нем»). Вместо того, чтобы сериализовать его на специальный протокол локальной сети или использовать его в PostgreSQL, я бы скорее использовал что-то, предназначенное для этой цели. В настоящее время мы используем NetWorkSpaces в этой роли, но у него почти нет поддержки или сообщества пользователей CouchDB.

6 Solutions collect form web for “Какую клиентскую библиотеку Python я должен использовать для CouchdB?”

Я использую couchdb-python с большим успехом, и насколько я знаю, ребята из desktopcouch используют его в ubuntu. Предварительные требования очень просты, и у вас не должно быть проблем:

  • httplib2
  • simplejson или cjson
  • питон
  • CouchDB 0.9.x (ранее или более поздние версии вряд ли будут работать, поскольку интерфейс все еще меняется)

Для меня некоторые из преимуществ:

  • Pythonic интерфейс. Вы можете работать с базой данных, как если бы это был dict.
  • Интерфейс для проектной документации.
  • сервер просмотра CouchDB, который позволяет записывать функции просмотра в Python

Он также предоставляет несколько инструментов командной строки:

  • couchdb-dump: записывает снимок базы данных CouchDB
  • couchdb-load: считывает MIME-файл с несколькими файлами, сгенерированный couchdb-дампом, и загружает все документы, вложения и проектные документы в базу данных CouchDB.
  • couchdb-replicate: Может использоваться в качестве скрипта уведомления об обновлениях для запуска репликации между базами данных при изменении данных.

Если вы все еще рассматриваете CouchDB, я рекомендую Couchdbkit ( http://www.couchdbkit.org ). Это достаточно просто, чтобы быстро повесить трубку и отлично работать на моей машине, работающей с Karmic Koala. До этого я пробовал couchdb-python, но некоторые ошибки (возможно, теперь они были сглажены) с httplib давали мне некоторые ошибки (дубликаты документов ..etc), но Couchdbkit поднял меня и пошел до сих пор без проблем.

spycouch

Простой API Python для CouchDB

Библиотека Python для управления CouchDB.

По сравнению с обычными доступными библиотеками в Интернете работает с последней версией CouchDB – 1.2.1

функциональность

Создание новой базы данных на сервере

Удаление базы данных с сервера

Листинг баз данных на сервере

Информация о базе данных

Сжатие данных

Создание вида карты

Вид карты

Листинг документов в БД

Получить документ из базы данных

Сохранить документ в DB

Удалить документ из базы данных

Редактирование документа

spycouch >> https://github.com/cernyjan/repository

Учитывая задачу, которую вы пытаетесь решить (распределенная обработка задач), вы должны использовать один из многих инструментов, предназначенных для передачи сообщений, а не для использования базы данных. См. Например, этот вопрос SO для запуска нескольких задач на многих машинах .

Если вы действительно хотите простую систему передачи случайных сообщений, я рекомендую вам переключить свое внимание на MorbidQ . По мере того как вы становитесь более серьезными, используйте RabbitMQ или ActiveMQ . Таким образом, вы уменьшаете задержку в своей системе и избегаете того, чтобы многие клиенты опросили базу данных (и, таким образом, забили этот компьютер).

Я обнаружил, что избегать баз данных – это хорошая идея (это мой блог) – и у меня есть сквозная система живых данных, работающая с использованием MorbidQ здесь

Я написал клиентскую библиотеку couchdb, построенную на python-запросах (которая находится в большинстве дистрибутивов). Мы используем эту библиотеку в производстве.

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

Надежный интерфейс CouchDB Python с использованием запросов python.

Цели:

  • Только один способ сделать что-то
  • Быстрая и стабильная (пул соединений)
  • Явный лучше, чем неявный. Размер буфера, размер пула подключений.
  • Укажите параметры запроса, нет ** параметров в функциях запроса

После того, как я просмотрел документы многих библиотек python, я выбрал pycouchdb .

Все, что мне нужно было знать, было очень быстро понять из документа: https://py-couchdb.readthedocs.org/en/latest/, и это работает как шарм.

Кроме того, он хорошо работает с Python 3.

  • Обнаружение «необычного поведения» с использованием машинного обучения с CouchDB и Python?
  • Графический интерфейс Qt Python при нажатии кнопки
  • couchDB, python и аутентификация
  • уведомления о замене couchdb-python
  • Рекомендуемый подход для загрузки документации CouchDB в Python?
  • объекты для очистки не являются сериализуемыми JSON, сохраняя их на couchdb
  • Python - лучший язык программирования в мире.