18

私たちが抱えている特定の問題に対する完璧な解決策のように見えるので、私は CouchDB を試し始めています。すべての作業は、従来の依存関係のないまったく新しいプロジェクトで行われることを考えると、どのクライアント ライブラリを使用することをお勧めしますか? また、その理由は何ですか?

使用する OS に重複があれば、これはより簡単になります。FreeBSD のポート コレクションにはpy-simplecouchdbしかありませんが、そのライブラリのプロジェクト Web サイトでは、代わりにCouchDBKitを使用するように指示されています。どちらもCouchDBのみに同梱される Ubuntu には付属していません。これらの 2 つの OS には共通のライブラリがないため、おそらくソースから何かをインストールする予定です (時間があれば、Ubuntu と FreeBSD の関係者にパッケージを提出したいと考えています)。

興味のある方のために、CouchDB を、さまざまなサービス間で受け渡されるデータの便利な中間ストレージの場所として使用したいと思います。メッセージ バス システムを考えてみてください。たとえば、Web ページをダウンロードして解析し、興味深いビットを他のデーモンに送信してさらに処理するデーモンがあります。これらのオブジェクトの多くは、実行時まで正しく定義されていません (「HTML と一連のメタデータ、およびそれに対して実行するいくつかのアクションがあります」)。アドホックなローカル ネットワーク プロトコルにシリアライズしたり、PostgreSQL に貼り付けたりするよりも、この目的のために設計されたものを使用したいと思います。私たちは現在、この役割でNetWorkSpacesを使用していますが、CouchDB のような幅広いサポートやユーザー コミュニティはほとんどありません。

4

6 に答える 6

5

私はcouchdb-pythonを使用して多くの成功を収めてきました。私が知る限り、desktopcouchの人たちはubuntuでそれを使用しています。前提条件は非常に基本的なものであり、問​​題はないはずです。

  • httplib2
  • simplejson または cjson
  • パイソン
  • 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のいくつかのバグ(おそらく今では解決されている)により、いくつかのエラー(ドキュメントの重複など)が発生していましたが、Couchdbkitで問題なく起動できました。

于 2009-11-12T09:41:58.853 に答える
1

スパイカウチ

CouchDB 用のシンプルな Python API

CouchDB を簡単に管理するための Python ライブラリ。

Web 上で通常利用可能なライブラリと比較して、最新バージョンの CouchDB - 1.2.1 で動作します

機能性

サーバー上に新しいデータベースを作成する

サーバーからのデータベースの削除

サーバー上のデータベースの一覧表示

データベース情報

データベースの圧縮

マップ ビューの作成

地図表示

DB 内のドキュメントの一覧表示

DB からドキュメントを取得する

ドキュメントをDBに保存

DB からドキュメントを削除

ドキュメントの編集

スパイカウチ >> https://github.com/cernyjan/repository

于 2013-04-07T06:12:21.637 に答える
0

私は、python-requests (ほとんどのディストリビューションに含まれています) に基づいて、couchdb クライアント ライブラリを作成しました。このライブラリを本番環境で使用しています。

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

python-requests を使用した堅牢な CouchDB Python インターフェイス。

目標:

  • 何かをする唯一の方法
  • 高速で安定 (接続プール)
  • 明示的は暗黙的よりも優れています。バッファ サイズ、接続プール サイズ。
  • クエリ パラメーターを指定します。クエリ関数には **params はありません
于 2013-07-22T13:04:41.320 に答える
0

解決しようとしているタスク (分散タスク処理) を考慮すると、データベースを使用するのではなく、メッセージ パッシング用に設計された多くのツールのいずれかを使用することを検討する必要があります。たとえば、 this SO question on running multiple tasks over many machines を参照してください。

シンプルでカジュアルなメッセージ パッシング システムが本当に必要な場合は、焦点をMorbidQに移すことをお勧めします。より深刻になると、RabbitMQまたはActiveMQを使用します。このようにして、システムの待ち時間を短縮し、多くのクライアントがデータベースをポーリングすることを回避します (したがって、そのコンピューターに打撃を与えます)。

データベースを避けるのが良い考えであることがわかりました(これが私のブログです) -ここでMorbidQ を使用してエンドツーエンドのライブ データ システムを実行しています。

于 2009-10-20T21:10:03.100 に答える