ドキュメントデータベースとは
ドキュメントデータベースの特徴
ドキュメントデータベースは、非リレーショナルデータベースの一種で、データを JSON のようなドキュメントとして保存し、クエリするために設計されています。ドキュメントデータベースを使用すると、開発者はアプリケーションコードで使用しているのと同じドキュメントモデル形式を使って、簡単にデータをデータベースに保存し、クエリできるようになります。ドキュメントおよびドキュメントデータベースは柔軟性があり、半構造化され、階層的な性質を持つため、アプリケーションのニーズに合わせて進化させることができます。ドキュメントモデルは、カタログ、ユーザープロファイル、コンテンツ管理システムなど、各ドキュメント固有のものであり、時間の経過とともに進化するユースケースでうまく機能します。ドキュメントデータベースを使用すると、柔軟なインデックス作成、強力なアドホッククエリ、およびドキュメントのコレクションに対する分析が可能になります。
次の例では、JSON のようなドキュメントが書籍項目を記述しています。
[
{
"year" : 2013,
"title" : "Turn It Down, Or Else!",
"info" : {
"directors" : [ "Alice Smith", "Bob Jones"],
"release_date" : "2013-01-18T00:00:00Z",
"rating" : 6.2,
"genres" : ["Comedy", "Drama"],
"image_url" : "http://ia.media-imdb.com/images/N/O9ERWAU7FS797AJ7LU8HN09AMUP908RLlo5JF90EWR7LJKQ7@@._V1_SX400_.jpg",
"plot" : "A rock band plays their music at high volumes, annoying the neighbors.",
"actors" : ["David Matthewman", "Jonathan G. Neff"]
}
},
{
"year": 2015,
"title": "The Big New Movie",
"info": {
"plot": "Nothing happens at all.",
"rating": 0
}
}
]
ユースケース
コンテンツ管理
ドキュメントデータベースは、ブログプラットフォームや動画プラットフォームなどのコンテンツ管理アプリケーションに好んで用いられる選択肢です。ドキュメントデータベースでは、アプリケーションが追跡する各エンティティを 1 つのドキュメントとして格納できます。 ドキュメントデータベースは、要件が導き出されてアプリケーションを更新する場合、開発者にとってより直感的です。さらに、データモデルを変更する必要がある場合に更新する必要があるのは、影響を受けるドキュメントのみです。スキーマの更新は不要で、変更を加えるためにデータベースのダウンタイムは必要になりません。
カタログ
ドキュメントデータベースは、カタログ情報の保存に関して効率的かつ効果的です。 例えば、e コマースアプリケーションでは、異なる製品の属性数は、通常は異なっています。リレーショナルデータベースで数千の属性を管理することは非効率的であり、読み取りのパフォーマンスが影響を受けます。ドキュメントデータベースの使用時には、容易な管理と読み取り速度向上のため、各製品の属性を 1 つのドキュメント内に記述できます。1 つの製品の属性を変更しても、他の製品に影響しません。
AWS でのドキュメントデータベース
Amazon DocumentDB (MongoDB 互換)
Amazon DocumentDB (MongoDB 互換) は、高速でスケーラブルかつ高可用性の完全マネージド型ドキュメントデータベースサービスで、MongoDB のワークロードをサポートしています。開発者は同じ MongoDB のアプリケーションコード、ドライバー、ツールを使用して、Amazon DocumentDB のワークロードの実行、管理、スケーリングを行うことができます。また基礎になるインフラストラクチャの管理を心配をすることなく、向上したパフォーマンス、スケーラビリティ、可用性を享受できます。