qpstudy 2013.07 NoSQL
Upcoming SlideShare
Loading in...5
×
 

qpstudy 2013.07 NoSQL

on

  • 1,896 views

 

Statistics

Views

Total Views
1,896
Views on SlideShare
1,799
Embed Views
97

Actions

Likes
8
Downloads
21
Comments
0

1 Embed 97

https://twitter.com 97

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

qpstudy 2013.07 NoSQL qpstudy 2013.07 NoSQL Presentation Transcript

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