MongoDB

MongoDBとは



MongoDBは、ドキュメント指向データベースとして知られるNoSQLデータベースの一つです。RDBMS(リレーショナルデータベース管理システム)とは異なり、テーブルとレコードではなく、形式に似た「ドキュメント」と呼ばれる構造化されたデータを扱います。これらのドキュメントの集合は「コレクション」として管理され、スキーマ定義が不要なため、柔軟なデータ管理が可能です。データの格納形式にはBSONバイナリ)が用いられます。

特徴



柔軟なデータ構造: ドキュメントは複雑な階層構造を持つことができ、フィールドの追加や変更が容易です。スキーマレスなため、データ構造の変化に柔軟に対応できます。
高速な処理: データの追加、更新、削除、クエリが高速に行えます。特に、書き込み処理において高いパフォーマンスを発揮します。これは、2015年のバージョン3.0以降に導入されたWiredTigerストレージエンジンによる、ドキュメント単位でのロック機能に起因します。
豊富なデータ型: 日付、正規表現、バイナリデータなど、多様なデータ型をサポートしています。
強力なクエリ機能: 特定のフィールドを指定したクエリや、範囲検索、正規表現検索など、多様なクエリが可能です。JavaScript関数を述語として使用することもできます。
インデックス機能: 単一キー、複合キー、ユニーク/非ユニーク、地理空間インデックスなど、様々なインデックスをサポートしており、検索速度を向上させることができます。
集約機能: SQLのGROUP BYに相当する集約処理や、MapReduceなどの機能も提供しています。
ファイルストレージ: GridFSと呼ばれるプロトコルにより、大きなファイルをデータベースに格納・取得できます。
サーバーサイドJavaScript: JavaScriptをクエリや集約関数に使用できるだけでなく、データベースに直接送信して実行することも可能です。ストアドプロシージャのようにJavaScriptを扱うことも可能です。
Cappedコレクション: 固定サイズのコレクションを作成し、古いドキュメントから順に削除することで、ログデータなどの管理に適しています。tailable cursorを利用することで、リアルタイムでのデータ監視も可能です。

デプロイとサポート



MongoDBは、各種LinuxディストリビューションやmacOS、Windowsなど、様々なプラットフォームで利用できます。公式ウェブサイトからバイナリパッケージをダウンロードしてインストールできるほか、多くのLinuxパッケージ管理システムでも提供されています。ただし、32-bitシステムではメモリ制限により利用できるデータサイズに制限があります。

レプリケーションとシャーディング



レプリケーション: レプリカセットと呼ばれる仕組みにより、データの高可用性を実現します。データの複数のコピーを保持し、プライマリレプリカが故障した際には、自動的にセカンダリレプリカがプライマリに昇格します。
シャーディング: 水平スケーリングを可能にするシャーディング機能を提供します。データはshardキーに基づいて分散され、大量のデータを効率的に管理できます。mongosと呼ばれるルーティングプロセスを介して、アプリケーションは複数のshardを意識せずにデータを操作できます。

管理と監視



公式ツール: mongoシェルは、データベースの閲覧、挿入、削除、更新、レプリケーション情報の取得、シャーディング設定、サーバー停止など、様々な操作を行える強力な管理ツールです。Webベースの管理インターフェースも利用可能です。
監視: munin、ganglia、scout、cactiなどの監視ツールに対応したプラグインが提供されています。
GUI: Fang of Mongo、Futon4Mongo、Mongo3、MongoHub、Opricot、Database Master、BI Studio、RockMongo、Robo 3TなどのGUIツールが存在し、データの可視化や管理を容易に行えます。

ライセンスと批判



MongoDB Community Serverは、ソースアベイラブルなServer Side Public License (SSPL) の下で利用できます。以前はAGPLライセンスでしたが、クラウドサービスでの利用に関する制限を設けるためにSSPLに移行しました。言語ドライバはApache Licenseで提供されています。過去のバージョンでは、設計上の問題でデータの永続性が保証されないという批判もありました。

幅広い採用実績



MTV Networks、craigslist、Disney Interactive Media Group、Wordnik、diaspora、Shutterfly、foursquare、bit.ly、The New York Times、SourceForge、Business Insider、Etsy、CERN LHC、Thumbtack、AppScale、Uber、Ameba など、多くの企業や組織で採用されています。

その他の情報



MongoDBは、ドキュメント指向データベース、NoSQL、Apache CouchDB、MEAN (ソフトウェアバンドル)などの技術と関連しています。

これらの特徴から、MongoDBは特にWebアプリケーションやモバイルアプリケーション、IoT、ビッグデータ分析など、多様なデータを取り扱う分野で広く利用されています。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。