データベースについて調べてみた

データベースについて調べたことのメモ。Oracle要素多めになる予定。

KVSについて調べてみた

NoSQLに属するKVSについて、もう少し調べてみた。

KVSの特徴

KVSはKey Value Storeの略で、KeyとValueがペアとなって格納されるデータベース、ということで、特徴として以下の様なものがあるとのこと。

  • データモデルがシンプル
  • スケールアウトに適した構造
  • 分散処理に向いている
  • 高速なデータ読込/書込ができる
  • トランザクション処理はできないことが多い

KeyとValueの関係しかないので、確かにデータモデルはシンプルで構造も単純だ。

KVSはKeyで一本釣りするような処理を主なターゲットにしていると考えれば、Keyが重複することはないし、レコード間の関連性も低い(疎である)から、物理的に一つのサーバ(ストレージ)に全レコードを格納する必要性もないだろう。そう考えると、スケールアウトしやすいし、分散処理もしやすいというのも理解できる。

高速にデータを読書きできるのは、KeyとValueのシンプルな構造だからなのか、スケールアウトとかできる(している前提にしやすい)からなのかまでは判断つかないが、確かに負荷は軽そうなイメージを持った。

トランザクション処理については、そもそもNoSQLはこれを犠牲にした上で、他の長所に特化させているイメージなので、まあそうですね、といった感じだ。

 

主なKVS

KVSプロダクトについて軽く調べてみた。各プロダクトの詳細は、興味がわいた際においおいと…

Redis
  • メモリ上にデータ保存をする
  • Value部分に5種類のデータ型(Strings/Lists/Sets/Hashes/Sorted sets)を使用可能
  • マスタスレーブ型のレプリケーション機能がある

参考にしたサイト:

https://agency-star.co.jp/column/redis/

 

 memchached
  • メモリ上にデータ保存をする
  • 分散型キャッシュシステムの構築が可能
  • RDBのフロントに立てて、RDBの負荷軽減させることもできる

参考にしたサイト:

https://qiita.com/juve_534/items/54f7732641a406f31b55

 

DynamoDB
  • AWSで提供されるフルマネージドサービス
  • 1桁ミリ秒単位のレイテンシ要求にも対応

参考にしたサイト:

https://www.acrovision.jp/service/aws/?p=2536

 

 

次の記事:ドキュメントDBについて調べてみた

 

前回の記事:NoSQLについて調べてみた