qpstudy 2013.07 NoSQL

2,683 views

Published on

Published in: Technology
0 Comments
9 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,683
On SlideShare
0
From Embeds
0
Number of Embeds
588
Actions
Shares
0
Downloads
26
Comments
0
Likes
9
Embeds 0
No embeds

No notes for slide

qpstudy 2013.07 NoSQL

  1. 1. NoSQLって? 正しく使い分けるための第一歩 qpstudy 2013.07
  2. 2. Agenda 2. NoSQLの分類 1. NoSQLって? 3. NoSQLの紹介
  3. 3. Agenda 1. NoSQLって? 2. NoSQLの分類 3. NoSQLの紹介
  4. 4. 定義 - NoSQLって? 定義は?
  5. 5. 定義 - NoSQLって? 定義は? ありません
  6. 6. 定義 - NoSQLって? 一般にはRDBMS以外 NOSQL meetup 2009で使われてから広まったそう http://blog.sym-link.com/2009/05/12/ nosql_2009.html http://ja.wikipedia.org/wiki/NoSQL
  7. 7. 目的 - NoSQLって? なぜNoSQLが必要?
  8. 8. データベースとは- NoSQLって? - データを整理、格納し - 検索して取り出す RDBMSに限界が…
  9. 9. RDBMSの限界- NoSQLって? etc. データ量 ノード数の限界 データ増加に伴う性能劣化 スキーマ 開発速度の上昇 性能 レイテンシー QPS スループット
  10. 10. NoSQLの目的 - NoSQLって? RDBMSでは解決出来ない 問題を解くため ※いずれかの問題領域に特化している傾向
  11. 11. RDBMSは - NoSQLって? RDBMSは必要なくなるか?
  12. 12. RDBMSの理由 - NoSQLって? - 大部分の問題は以前RDBMSで十分 - RDBMSの適用領域も広がっている - RDBMSの機能をトレードオフ - 歴史が浅い - ノウハウ、実装の枯れ具合、ライブラリ etc.
  13. 13. RDBMS適用領域 - NoSQLって? ミドルウェアの進化 ハードウェアの進化 - メモリの大容量化 - FusionIO 高速ブロックデバイス - MySQLのmemcachedインターフェース - PostgreSQLのJSON型
  14. 14. トレードオフ - NoSQLって? - トランザクション - SQL - 共通したインターフェース - データモデル - etc.
  15. 15. ポイント - NoSQLって? あなたの解くべき問題に マッチしていますか?
  16. 16. Agenda 1. NoSQLって? 2. NoSQLの分類 3. NoSQLの紹介
  17. 17. NoSQLの分類 ※ RDBMSほどには体系化されていない 最後は個別のDBを見ていく必要が
  18. 18. 軸 - NoSQLの分類 - データの配置による分類 - データの表現による分類 データが物理的にどう配置されるか ユーザーからみてどのようなデータを格納するか
  19. 19. データの配置- NoSQLの分類 - スタンドアロン - 分散 P2P型 - 分散 マスタ型
  20. 20. スタンドアロン - NoSQLの分類 ノード ノード レプリケーション - 一つのノードの全てのデータが配置される - レプリケーション含む
  21. 21. 分散 マスタ型- NoSQLの分類 ノード ノード ノード ノード マスタ - データは分割されて各ノードに配置 - クラスタ全体のメタ情報を管理するマスタが存在 - データの配置 - ノードの追加/削除
  22. 22. 分散 P2P型 - NoSQLの分類 - データは分割されて各ノードに配置 - 各ノード自身がクラスタの状態を管理 - 各ノードの状態は後で合わせる ノード ノード ノード ノード
  23. 23. データの表現 - NoSQLの分類 - KVS - BigTable型 - ドキュメント指向 - グラフ
  24. 24. KVS - NoSQLの分類 1 v1 2 v2 5 v5 v2 key=2 3 v3 4 v4 検索格納 - キーとバリューのペア - 性能に特化 - レイテンシー、QPS
  25. 25. ドキュメント指向 - NoSQLの分類 tagsに2を 含むもののid {“id”:1, ”tags”[1,2,3]} {“id”:2, ”tags”[1,3]} {“id”:3, ”tags”[2,5]} {“id”:6, ”tags”[3,4]} 1,3,5 {“id”:4, ”tags”[1]} {“id”:5, ”tags”[2,3,4]} 検索格納 - 構造化された”ドキュメント” - JSON - スキーマレス
  26. 26. BigTable型 - NoSQLの分類 カラムファミリー1カラムファミリー1カラムファミリー1 カラムファミリー2カラムファミリー2カラムファミリー2カラムファミリー2 列1 列2 列3 列4 列5 列6 列7 行1 行2 行3 行4 - GoogleのBigTable - 大規模な分散を目標 - カラム型とも - 注: 列指向RDBMSとは異なる - テーブル + カラムファミリー - 実際はKVSに近い - key: row + column family + column - value: cell
  27. 27. グラフ - NoSQLの分類 A CB D ID リンク A B C D B,C A D - “ノード”と”エッジ”から構成される”グラフ構造” - トラバーサル - ノード間を辿るクエリ
  28. 28. Agenda 1. NoSQLって? 2. NoSQLの分類 3. NoSQLの紹介
  29. 29. memcached - NoSQLの紹介 - KVS - スタンドアロン型 - 主にキャッシュ層として
  30. 30. Redis - NoSQLの紹介 - KVS - スタンドアロン型 - バリューに構造化データ - リスト、ハッシュ、セット
  31. 31. MongoDB - NoSQLの紹介 - ドキュメント指向 - 分散 マスタ型 - 柔軟なクエリ / インデックス
  32. 32. Cassandra HBase - NoSQLの紹介 - BigTable型 - 分散 P2P型 - Dynamoをベースにした分散 - BigTable型 - 分散 マスタ型 - キーでソート済み - 強い一貫性
  33. 33. まとめ
  34. 34. まとめ ✓NoSQLはRDBMSで対応できない問題を解決する ✓解くべき問題に向けたDBを選ぶことが重要 ✓RDBMS/NoSQL含む ✓次のような軸で分類すると分かりやすい ✓データの配置 ✓データの表現

×