なぜRDBじゃなくてNOSQLを使うのか?
NOSQLとは
Bigdataを扱う際に求められるもの・重要な点
3V
- Volume(膨大な量): 一つのサーバ内に収まりきらないほどのデータ量
- Velocity(速さ):リアルタイムに近い応答性能が求められる。(スーパーコンピュータなどの開発も進んでいるが、コスト面などの問題がまだまだある)
- Variety(多種多様):様々なサービスが出てきたことにより、多種多様なデータ形式に対応することが求められる
他にも
- コスト:高価なハードウェアではなく、安価な汎用ハードウェアで稼動する
- 信頼性:データに紛失がなく、データは安全な状態に格納されている
- 可用性:システム全体としてはいつでも使用できる状態にある
- 耐障害性:障害が発生しても短時間で復旧できる
これらを満たすものとしてNOSQLが研究・開発されてきた
NOSQLの利点
Volume
- 大量のデータを扱える
- ラージオブジェク(ひとつひとつのファイルサイズが大きい)ではなく、個々のサイズが大きくても膨大に集まり、データの大きな塊になってしまう
Velocity
Variety
低コスト
- SQLなどでBigdataをさばくには高性能で高価なサーバが必要
- NOSQLでは負荷を分散させるので、大量生産で安価に販売されているそこそこのサーバでBigdataを扱うことが出来る
導入の容易さ
- SQLで対応するには都度でーたベース設計を行わなければいけないため、熟練したエンジニアが必要になるが、KVSではそれがない
Hi Scalability
- データベースクラスタを水平拡張出来る
じゃあなんでSQLを使っているのか
結局どういう時にNOSQLを選択すればよいのか
- 高い処理能力が欲しい
- 必要に応じて水平拡張したい
- 汎用的なハードウェアを利用したい
- 多種多様なデータを扱わなければいけない
- 高可用性と高信頼性が要求される