質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

2回答

4126閲覧

なぜKeyValue型データベースなのですか?

hojo

総合スコア195

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2015/11/15 03:22

編集2015/11/15 04:11

RDBみたいに複雑なクエリ投げて必要な時に必要な形のデータが手に入るのって便利です。

でも、その複雑なクエリを処理してるのってデータベース。だから大量アクセス発生したら1台のDBサーバじゃ耐えられない。

じゃあDBのサーバの数を増やして負荷分散(スケールアウト)しよう!って話になるわけだけど、データベースが2つになるとデータを同期しないといけなくなる。

DB1に保存されたデータが、DB2から取得できなくなったらおかしいことが起こるのは当然。

だったら、複雑なクエリをDBに処理させるの止めて、ただのストレージにしよう!APサーバはスケールアウトしてもデータの同期を取る必要がないよね!

っていう発想がKeyValue型データベースの根本にあると思うのですが、他に理由はありますか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

どう表現するかについて多少の異論があるかもしれませんが、本質的な部分では特に間違いはないと思います。

多くのビジネスアプリケーションでは、トランザクションによる「ACID特性」の確保がとても重要なので、それを安全確実に実現するにはRDBを使用するのがコスト的に妥当な選択でした。それは今でも(今後も暫くは)変わりません。

しかし、時代と共に大量データを処理しなければならない事例が増えスケールアップでは対応仕切れない為、スケールアウトで対応しようとすると、RDBではどうしても**「CAP定理」の壁**を超えられず現実的なコスト内でシステムを構築する事が困難になって来ました。

それで、コスト的な制約から、スケールアウト不要ならRDB、スケールアウトが必要なら分散型Key-Valueストア、というのが現実的な選択肢になっているということだと思います。

この点についてもたくさんの解説が載っていますので、関心がおありでしたら、例えば「分散キーバリューストア」のようなキーワードで検索してみてください。

ご参考までに一例として下記ページのリンクを貼り付けておきます。

[もう1つの、DBのかたち、分散Key-Valueストアとは](http://www.atmarkit.co.jp/ait/spv/0907/02/news101.html)

投稿2015/11/15 05:35

pi-chan

総合スコア5936

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hojo

2015/11/15 23:44

丁寧な回答ありがとうございました。
guest

0

RDBはしっかり者ですがのろい。重い。分散化もめんどい。
単純構造 かつ ざっくり管理で良いデータも任せると、ますます負荷が高まる。

・一貫性が絶対に必要なデータ
・複雑な集計がしたいデータ
・トランザクション処理したいデータ
・絶対にロストさせられないデータ(永続性要)
・障害時は復旧必須なデータ

これら大事なデータはRDBにし、それ以外のゆるゆるデータはKVS。
KVSはメモリ内処理で早く軽く、同期できるのも増えてきたので分散化もできます。

私の環境では

・セッション管理
・アクセス情報管理
・DoS攻撃判定

これらは、ざっくり管理でかまわないためKVSを活用しています。

投稿2015/11/15 05:17

kurosawa

総合スコア780

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問