Apache CouchDBは、JSONベースのドキュメント形式でデータを収集して保存するオープンソースのNoSQLドキュメント・データベースです。CouchDBは、リレーショナル・データベースとは異なり、スキーマフリーのデータ・モデルを使用するため、さまざまなコンピューティング・デバイス、携帯電話、Webブラウザー間でのレコード管理が簡素化されます。
CouchDBは2005年に導入され、その後2008年にApache Software Foundationプロジェクトになりました。CouchDBはオープンソース・プロジェクトとして、使いやすさとWebへの対応に重点を置いてソフトウェアを継続的に改善するアクティブな開発者コミュニティーによってサポートされています。
データ管理テクノロジーをどのベンダーから調達すR化を決定するのは、ほとんどの企業にとって困難となる可能性があります。ベンダー独自のソフトウェアは、テクノロジーの使用に特定のライセンス制限があるだけでなく、すべての企業データを内部構造を可視化できない「万能型」データベース管理システム(DBMS)に移行しようとすると、ビジネス継続性に懸念が生じます。
CouchDBは違います。「ベンダー・ロックイン」のリスクがあるベンダー独自のソフトウェアとは異なり、CouchDBはオープンソースで無料で使用でき、現在のデータ管理インフラストラクチャーに簡単に統合できます。また、ソフトウェアをより細かく制御できるため、ビジネス固有のニーズに合わせてソフトウェアを適応させる際の柔軟性も高まります。汎用ドキュメント・ストアが必要な場合でも、効率的なデータ同期の実現が必要な場合でも、「オフライン・ファースト」を採用する場合でも、CouchDBなら、耐久性、信頼性、拡張性に優れたインフラストラクチャーの構築に必要な柔軟性を提供します。
CouchDBが開発される動機となったのは、「リラックス」という一言で表すことができます。そのため、CouchDBには、回復力のある分散システムを実行する際の労力を軽減できるよう、一連の機能が備わっています。ここでは、CouchDBの主な機能と、他のNoSQLデータベースとの違いについて説明します。
複製CouchDBの特徴的な機能の1つは双方向複製です。双方向複製により、複数のサーバーやデバイス間でのデータの同期が可能になります。この複製により、企業はシステムの可用性を最大限に高め、データ回復時間を短縮し、データをエンド・ユーザーに最も近い場所に地理的に配置し、バックアップ・プロセスを簡素化できます。
CouchDBでは、データが1つのサーバーに格納されているか、複数のサーバーに格納されているかは区別されません。むしろ、CouchDBは、あらゆるソースからドキュメントの変更が発生するとそれを識別し、すべてのデータベース・コピーが最新の情報と同期された状態を維持するようにします。これにより、複数のコンピューティング環境にわたって正確なリアルタイム情報を格納しながら、複数のデータベース・レプリカを自己完結的に管理できるようになります。
表示モード。CouchDBは、照会し、保存されたドキュメント・ファイルからレポートを作成するための主要なツールとして表示モード「ビュー」を使用します。ビューを使用すると、ドキュメントを絞り込み、特定のデータベース・プロセスに関連する情報を見つけることができます。この情報は、ユーザーの好みに応じてマッピングされ、特定の順序で抽出されます。
CouchDBの優れた点は、情報をどのように提示するかを自由に決められることです。CouchDBのビューは動的に表示され、基盤となるドキュメント・ストアに直接影響を与えないため、同じデータに対して実行できる異なるビューの数に制限はありません。これらのビューは特別な設計ドキュメント内に作成され、通常の保存データと同様に複数のデータベース・インスタンスに複製できます。
CouchDBのもう1つの優れた機能は、MapReduceが利用できることです。CouchDBのビューは、インデックス内に保持されているデータに対して要約集計を実行できます。これらは事前に計算されて保存されるため、何十億ものドキュメントであっても即座に返すことができます。
HTTP API。CouchDBは、REST APIを使用しており、CRUD(作成、読み取り、更新、削除)操作を柔軟にでき、どこからでもデータベースにアクセスできます。このシンプルで効果的なデータベース接続手段により、CouchDBは高いアクセス性を維持しながら、柔軟、高速、強力に使用できます。
オフライン用に構築。データベースの使いやすさとアクセシビリティーを拡張する場合、オンラインだけではなく、オフラインでも動作するよう、アプリケーションを構築できることが不可欠です。CouchDBを使用すると、収集したデータをモバイル・デバイスやブラウザーにローカルに保存し、オンラインに切り替えたときにそのデータを同期できます。
効率的な文書ストレージCouchDBでは、JSONドキュメントと、それに関連付けられた画像などのバイナリー添付ファイルが主なデータ単位となります。各ドキュメントのテキスト・サイズや要素数に制限はありません。複製されると、グローバルに分散されたサーバー・クラスター全体でデータにアクセスして更新できるようになります。
互換性。CouchDBは非常に使いやすく、既にお使いのインフラストラクチャーと連携することで、さまざまな互換性のメリットが得られます。CouchDBは Erlang(汎用、並行、ガベージ・コレクションのプログラミング言語およびランタイム・システム)で記述されており、開発者にとって信頼性が高く、使いやすいものとなっています。標準のHTTPロード・バランサーの背後に配置できます。HTTPクライアントは、CouchDB固有のクライアント・ライブラリーだけでなく、あらゆるプログラミング言語でも利用できます。
CouchDBは柔軟性が高く、多くのオペレーティング・システムや仮想化ツールにインストールして実行できます。また、モバイル・デバイスを含むWebブラウザーで実行するように設計された軽量データベースであるPouchDBとも互換性があります。
CouchDBはユーザーと開発者の両方にメリットをもたらします。
拡張性。CouchDBのアーキテクチャー設計により、データベースをパーティション分割し、データを複数のノードに拡張する際に、非常に適応性が高まります。CouchDBは、水平パーティショニングとレプリケーションの両方をサポートし、データベースのデプロイメント中に読み取りと書き込みの両方の負荷を分散するための、管理しやすいソリューションを作成します。
CouchDBは、マルチクラウドおよびマルチデータベース・インフラストラクチャー向けにゼロから構築された、耐久性と信頼性に優れたストレージ・エンジンを備えています。NoSQLデータベースであるCouchDBは、非常にカスタマイズ性が高く、データ量やユーザー数に関係なく、予測可能でパフォーマンス重視のアプリケーションを開発できるようになります。
読み込みロック不要。CouchDBは、MVCC(Multi-Version Concurrency Control)を使用して、データベースへの同時アクセスを管理します。これにより、更新中にデータの一部をロックする必要がなくなり、CouchDBの高スループットのワークロードを維持する能力が向上します。実行中のリクエストでは、読み取りが開始されたときに存在していたドキュメントのバージョンが読み取られ、同時更新との競合が発生する場合にのみ書き込みが拒否されます。
オープンソース開発。CouchDBは、オープンソース・コミュニティーによる強力な支援とサポートにより、エンタープライズ・データベース管理のための強力で信頼性の高い基盤を維持しています。数年にわたりスキーマレス・ソリューションとして開発されたCouchDBは、ほとんどの独自仕様のデータベース・ソリューションでは実現できない比類のない柔軟性を実現しています。
IBMのデータベース・ソリューションを活用して、ハイブリッドクラウド全体のさまざまなワークロードのニーズに対応しましょう。
構造化データの保管と管理に高性能で拡張性と信頼性を備えたリレーショナル・データベースであるIBM Db2をご覧ください。IBM Cloud上でSaaSとして、もしくはセルフホスティングとしてご利用いただけます。
IBMコンサルティングと連携することで、企業データの価値を引き出し、ビジネス上の優位性をもたらす洞察を活用した組織を構築します。