NoSQLに属するKVSについて、もう少し調べてみた。
KVSの特徴
KVSはKey Value Storeの略で、KeyとValueがペアとなって格納されるデータベース、ということで、特徴として以下の様なものがあるとのこと。
- データモデルがシンプル
- スケールアウトに適した構造
- 分散処理に向いている
- 高速なデータ読込/書込ができる
- トランザクション処理はできないことが多い
KeyとValueの関係しかないので、確かにデータモデルはシンプルで構造も単純だ。
KVSはKeyで一本釣りするような処理を主なターゲットにしていると考えれば、Keyが重複することはないし、レコード間の関連性も低い(疎である)から、物理的に一つのサーバ(ストレージ)に全レコードを格納する必要性もないだろう。そう考えると、スケールアウトしやすいし、分散処理もしやすいというのも理解できる。
高速にデータを読書きできるのは、KeyとValueのシンプルな構造だからなのか、スケールアウトとかできる(している前提にしやすい)からなのかまでは判断つかないが、確かに負荷は軽そうなイメージを持った。
トランザクション処理については、そもそもNoSQLはこれを犠牲にした上で、他の長所に特化させているイメージなので、まあそうですね、といった感じだ。
主なKVS
KVSプロダクトについて軽く調べてみた。各プロダクトの詳細は、興味がわいた際においおいと…
Redis
参考にしたサイト:
https://agency-star.co.jp/column/redis/
memchached
参考にしたサイト:
https://qiita.com/juve_534/items/54f7732641a406f31b55
DynamoDB
- AWSで提供されるフルマネージドサービス
- 1桁ミリ秒単位のレイテンシ要求にも対応
参考にしたサイト:
https://www.acrovision.jp/service/aws/?p=2536
次の記事:ドキュメントDBについて調べてみた
前回の記事:NoSQLについて調べてみた