NoSQLに属するドキュメントDBについて、もう少し調べてみた。
ドキュメントDBの特徴
- 1件のデータをドキュメントとして格納
- ドキュメントのデータ構造は自由(RDBの様にテーブル構造を事前に決める必要がない)
KVSで言うところのValueに、JSONとか放り込んじゃえば、KVSもドキュメントDBも一緒なのでは?と思いましたが、ドキュメントDBは、JSONの中に含まれている属性を指定した検索やインデックス作成もできるところが、KVSとは違うようだ。
今の世の中、広く利用されているWebAPIでは、データ取得する際にJSONやYAMLなどが使用されていて、これらをRDBMSに格納するのは難しい(JSONの様な階層化された情報を予めRDBMS側で定義するのが難しい)し、頑張ってRDBMSで定義をしても、WebAPIは仕様変更頻度が高いことが多いので、また頑張らなければいけない(仕様変更に対する追従スピードが劣る/負担が大きい)という点から、データ構造が自由なドキュメントDBというのが、生まれてきたようだ。
主なドキュメントDB
ドキュメントDBのプロダクトを調べてみると、よく見かけたのが以下2つ。
- MongoDB
- CouchDB
各プロダクトの特徴をまとめてみようと思ったが、ドキュメントDBとしての特徴は記載されていても、そのプロダクトの特徴というのが、ちょっと読み解けなかったので、両者を比較しているサイトの情報から、特徴をピックアップしてみることにした。
MongoDB
CouchDB
参考にしたサイト:
https://www.xplenty.com/jp/blog/couchdb-vs-mongodb-ja/
次の記事:カラムストア型DBについて調べてみた
前回の記事:KVSについて調べてみた