0
0

More than 1 year has passed since last update.

キーバリュー型のデータベース

Posted at

キーバリュー型(Key Value Store)データベースとは

キーバリューストアとは、データの書式を問わず、そのデータに対して何か「キー」となる値を結びつけて格納する方式のデータベース。略してKVSという。NoSQL型のデータベースの代表例。
キーというのは、データを見つけやすくするラベルのこと。リレーショナル型と異なり、柔軟性があり、データを書式通りに入力しなくて良い反面、なんでもデータとして格納できる。よって、詳細な検索ができない。しかし、データのアクセスが高速。
近年ではビックデータ処理やIoTのような大量のデータ処理や高速化が求められる場面で使用される。
キーバリューストア型のデータベースは、AWSに2種類用意されている。
1つは、ストレージに保存するDynamoDB
もう1つは、メモリにキャッシュするAmazon ElasticCache

DynamoDB

Amazon DynamoDBは、キーバリューストア型のデータベース。
リレーショナル型に向かない汎用的なデータを保存するのに適している。

リレーショナルの特徴は表であることと、デーブル同士が連携していること。つまり事前に形式をしっかりと決めなければならない上、形式通りのデータしか入力できない。テーブル同士が連携していることはストレージの節約にもなるが、処理が遅くなる側面もある。

キーバリューストア型は、納めるデータに書式はない。
項目数(列数・カラム数)もバラバラでよく、データ型も指定しない。テーブル同士の連携もない。
そのため、SQLが使用できないので高度な検索ができない弱点があるが、その代わりにリレーショナルより遥かに早く処理する。
DynamoDBはVPCなしで接続できるので、Lambdaなどの非VPCのアプリケーション実行環境と相性が良い。
大規模なデータを処理するために、ACID(トランザクションとして必要な各性質)トランザクション、データの暗号化、アクセス制御などのサービスが整っている。グローバテーブルとして作成すれば、世界中に分散しているデータを自分のリージョンに複製されて使用できる。

Amazon ElasticCache

Amazon ElasticCacheとは、インメモリ型のデータベース
インメモリ型とは、データベース操作のたびに外部記憶装置と読み書きを行うのではなく、頻繁に読み書きのあるデータは一時的にメモリに置いておくなど、メモリを活用して処理を高速にする形式。
DynamoDBはストレージに保存するため、インメモリ型のElasticCasheの方がより高速。その代わりに、**インスタンスの再起動時にデータが削除されてしまう。**そのため、高速化を目的としたキャッシュとしてよく使われる。
ElasticCacheにはRedis用とMemcached用があり、RedisとMemcachedは、どちらも代表的なメモリキャッシュ型キーバリューストアのDBMS。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0