NoSQL
NoSQL種類
1.キーバリューストア
2.列指向
3.ドキュメント指向
列指向
※MapReduce 大規模データ用のクラスタ用フレームワーク
列単位でのデータ管理
keyとバリューのデータが列ごとに作成される
1.key Value , key Value….
HBase
BigTable
Cassandra
NoSQLまとめ
NoSQLをいれることはそれ自体がスループットをあげる
単純なしくみなので、むしろアプリケーションの設計をNoSQLにあわせる形になる
NoSQLとCAP定理
分散コンピュータ間の情報複製についての定理
1.Consistency
2.Availability
3.Partition-tolerance
consistency 一貫性
どのノードでも一貫性があることを示す
レプリ遅延時はconsistencyがないと言える
Availability 可用性
内部で問題が起きても、外部からみて問題ないこと
Partition-trelance 分割耐性
データノードが分割された場合でも、継続して正常な動作が行えるか
ジレンマ
※CAP定理のうち、2つは満たせるが3つを満たすことは出来ない
1.CA (RDBMS)
一貫性と可用性を持つ。
分割耐性がない。
2.AP Cassandra,CouchDB
分割グループでサービス継続可
一貫性は保たれない
3.PC MongoDB,HBase
分割しても 一貫性を保つ。
※分割グループを切りはなす
一般的にPは前提であるので、CかAか
Cを保たなければいけない場合はあまりないので、CPが基本。
BASE
ビッグデータを扱うのに、トランザクションのようなACIDの考え方は邪魔
BA Basically Avaiable まず可用性
S Soft-State 状態繊維
E Eventual Consistency 結果的な整合性
Consistent Hashing
ハッシュが一番一様に分散してくれる
インパクトを限定的にしてくれる
Hadoop
大量データを処理する
1.HDFS ファイルシステム (Hadoop Distributed FIle System)
2.MapReduce 分散基盤
HDFSではひとつのファイルを複数のノードに分散配備する
1.データー...データサイズ ペタバイト単位
2.アクセス...バッチ処理が基本、インタラクティブ (リアルタイム)
3.更新…何度も書き込める
4.構造...動的スキーマ
5.整合性…高い
6…スケーラビリティ…直線的
MapReduceの設計が難しい
SQLに対して、解析が難しい
そこで、MapReduceの設計を簡単にするために中間言語が生まれた。
1.Pig
2.Hive
=> Hadoop + HBase + (PigLatin,Hive)によって弱点なし
注意点
JBOD
※普通のストレージ装置を使う