マジセミドライブ

ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。

OSS情報

2020.01.01

【OSS情報アーカイブ】Apache CouchDB

【OSS情報アーカイブ】Apache CouchDB

※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。

「Apache CouchDB」とは

基本情報

概要

Apache CouchDB(アパッチカウチデービー)とは、ドキュメント指向データベースです。「RESTful HTTP/JSON API」「スキーマレス(NoSQL)」「分散型」「スケーラブル」「耐障害性」などの特徴があります。

基本説明

Apache CouchDBは、ドキュメントをデータとして管理し、Web公開に最適化されたデータベース管理システムです。関数型言語「Erlang」で実装されています。

CouchDBコミュニティのWebサイトなどには「Relax(リラックス)」という言葉がよく登場します。「データベースの設計/構築/操作について極力リラックスできるデータベース環境を提供する」というコンセプトです。

経緯

・2007年、オープンソース公開
・2009年、Apache Software Foundationの正式なプロジェクトとして最初のリリース

ポイント

・ドキュメントストレージ
・ACIDセマンティクス
・MapReduceフレームワーク(JavaScriptビュー定義)によるクエリ/ビュー/インデックス
・分散アーキテクチャ/レプリケーション
・REST API
・結果整合性
・優れた管理画面「Futon」が付属
・オールインワン環境「JavaScriptでWebアプリまで作れる」「Webサーバも内蔵」
・JSONサーバとしてネットに直接公開しJavaScriptから利用できる
・効率的/堅牢なディスクレイアウト

主な特徴

「ドキュメント」指向

CouchDBは、すべてのデータをJSONフォーマットで表現される「ドキュメント」として扱います。フィールドには、文字列/数値/日付/順序付きリスト/連想配列などを格納できます。

CouchDBデータベースは、「ドキュメントのフラットなコレクション」として構成されます。各ドキュメントは一意のIDで識別されます。

スキーマレス

CouchDBは、フラットなアドレス空間を持ち、アドホックでスキーマ不要のデータベースです。「新しいドキュメントタイプ」を「古いドキュメントタイプ」と混在させて管理できます。

JavaScriptビューモデル

CouchDBは、JavaScriptを使って記述するビューモデルを採用しています。

ビューは、データベースドキュメントを対象とした集約/結合/レポート作成時に動的に生成されます。元のドキュメントは変更されないため、ビューを使用して、タイプが異なるドキュメントを扱えます。

分散データベース

CouchDBは、ピアベースの分散データベースシステムです。複数のCouchDBホストが、同一データベースの「レプリカ・コピー」をそれぞれ独自に保持します。

アプリケーションはこれらのホストに対して、完全なデータベース機能(クエリ/追加/編集/削除)を利用できます。

レプリケーションプロセス

CouchDBのレプリケーションプロセスには、衝突検出/管理機能が組み込まれており、高速インクリメンタルレプリケーションが可能です。

前回のレプリケーション以降に変更されたドキュメント(個々のフィールド)のみをコピーします。特別な準備を必要とせずに、分散更新/レプリケーションを利用できます。

各CouchDBホストは、任意のタイミングでレプリケーションを実行できます。

RESTful JSON API

データベースとのすべての通信にHTTPを使用し「RESTful API」を提供します。

同様製品

同様な機能を提供する製品として、次のようなものがあります。

オープンソース製品:「MongoDB」など。

導入事例

オフィシャルサイトで採用事例が紹介されています。
→CouchDB In The Wild

ライセンス情報

Apache CouchDBのライセンスは「Apache License 2.0」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。

ダウンロード

ダウンロードページ

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

この記事のタグ一覧

おすすめの記事

【トレンド解説】超入門「 スマートファクトリー 」🏭

トレンド解説

2024.04.15

【トレンド解説】超入門「 スマートファクトリー 」🏭

「 スマートファクトリー 」への理解を深めるための解説として、初心者向けにわかりやすくまとめた記事です。「新しい工場の概念」「デジタルツインの活用」「IoT技術による最適化」など、現代の製造業に必要な知識を効果的に学べます。 スマートファクトリー の導入によるメリットを具体的に解説しています。

【IT用語解説】「 デジタルヒューマン 」とは😊

IT用語解説

2024.01.26

【IT用語解説】「 デジタルヒューマン 」とは😊

【IT用語解説】「 デジタルヒューマン 」として、「デジタルヒューマンとは何か?」「どのようにして作成できるのか?」「私たちの世界にどのような影響を与えているのか?」などについて、まとめています。