devsumi2013【15-e-5】nosqlの野心的な使い方 ~apache cassandra編~
DESCRIPTION
Developers Summit 2013 の 【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~ のスライドです。 NoSQLについてのよくある誤解や正解から始めて、 RDBMSとの本当の関係、 フロントエンドシステムがNoSQL バックヤードシステムがRDBMS という構成が自然な解であることなどを 簡単ながら記載しています。TRANSCRIPT
NoSQL の野心的な使い方
~ Apache Cassandra 編~
誰?誰?
■ 株式会社エスキュービズム 岸本 康二
■EC 系サービスの構築案件から 大規模系の技術開発、 クラウド、 M2M 系など
■ 大学の博士課程まで物理 新技術を使うより 新技術を作るのが好き
■ NoSQL のよくある誤解・正解
■ 誤解
■ 正解
○ 負荷分散に優れている○ 耐障害性が高い○ データ一貫性は弱い
× データ一貫性がないCAP 定理は正しい。が、誤解が異常に多い。
× トランザクションは無理× 業務系フロントシステムには向かない
RDBMS を主役に据えた Not Only SQL …→ なんて言ってるのはもう古い!
■ Apache Cassandra を選んだ理由
MongoDB Redis
ボトルネック
ボトルネック
管理型 マスタ - スレーブ型
Cassandra
ボトルネックなし!
独立協調型
■ NoSQL と RDBMS との本当の関係
RDBMS での高速化(負荷分散)
1)レプリケーションで読み込み負荷分散→ 書き込み負荷は分散できず
■ NoSQL と RDBMS との本当の関係
RDBMS での高速化(負荷分散)
1)レプリケーションで読み込み負荷分散→ 書き込み負荷は分散できず
2)テーブル単位で複数サーバに分割 2 ' )テーブルを複数サーバに分割
→ 発想は NoSQL 系と同じ
■ NoSQL と RDBMS との本当の関係
RDBMS での高速化(負荷分散)
1)レプリケーションで読み込み負荷分散→ 書き込み負荷は分散できず
2)テーブル単位で複数サーバに分割 2 ' )テーブルを複数サーバに分割
→ 発想は NoSQL 系と同じ3)インデックスを張る
→ 発想は NoSQL 系と同じ
■ NoSQL と RDBMS との本当の関係
RDBMS での高速化(負荷分散)
1)レプリケーションで読み込み負荷分散→ 書き込み負荷は分散できず
2)テーブル単位で複数サーバに分割 2 ' )テーブルを複数サーバに分割
→ 発想は NoSQL 系と同じ3)インデックスを張る
→ 発想は NoSQL 系と同じ番外) SQL の解析を飛ばして直接ストレージ API の操作
→ もはや SQL では…
■ NoSQL と RDBMS との本当の関係
RDBMS でも NoSQL でも設計を深く突き詰めると同じ
そもそも CPU の処理量は DB に関係なく一定↓
CPU 処理量の配分の最適化が大事↓
NoSQL :フロント (オンライン)RDBMS :バックヤード (オフライン)
ログ解析など(← SQL が活きる!)↑「 Not Only SQL 」の構成とは真逆
■ NoSQL と RDBMS との本当の関係
■NoSQL・書き込み負荷も容易に分散(スケールアウト)・障害・アクシデントに強い・分散がバックアップも兼ねるので効率的・経済的
→ フロントシステム向き
■RDBMS・ SQL が便利。思いつきの解析もすぐに実行できる・検索、ソートが効率的
→ バックヤードでの分析・統計向き→ 定型に落として Hadoop
■ NoSQL と RDBMS との本当の関係
WEB APP
WEB APP
WEB APP
WEB APP
WEB APP
RDBMS
RDBMS
●従来型→DB に負荷集中
■ NoSQL と RDBMS との本当の関係
NoSQL
RDBMS
RDBMS
NoSQL
WEB APP
WEB APP
WEB APP
WEB APP
WEB APP● 負荷を軽減しようと・・・
→NoSQL でキャッシュ→DB の書き込み負荷は減らない
■ NoSQL と RDBMS との本当の関係
NoSQL
RDBMS
RDBMS
NoSQL
WEB APP
WEB APP
WEB APP
WEB APP
WEB APP● ボトルネック部分を削ってみる
■ NoSQL と RDBMS との本当の関係
NoSQL
NoSQL
NoSQL
NoSQL
NoSQL
WEB APP
WEB APP
WEB APP
WEB APP
WEB APP
■ NoSQL と RDBMS との本当の関係
NoSQL
NoSQL
NoSQL
NoSQL
NoSQL
WEB APP
WEB APP
WEB APP
WEB APP
WEB APP
■ NoSQL と RDBMS との本当の関係
NoSQL
NoSQL
NoSQL
NoSQL
NoSQL
WEB APP
WEB APP
WEB APP
WEB APP
WEB APP
●自然と NoSQL クラスタに行き着く
■ NoSQL と RDBMS との本当の関係
NoSQL
NoSQL
NoSQL
NoSQL
NoSQL
WEB APP
WEB APP
WEB APP
WEB APP
WEB APP
RDBMS
● 最適なシステム構成 →NoSQL はフロント → RDBMS はバックヤード
大規模ポイント管理サービス 某大手放送局様
■ 実案件での NoSQL
■ 実案件での NoSQL
・秒間5000回の「書き込み」の実績→1 時間で 1800 万回の実績(月間130億回)→ スマートメーター系への展開に繋がった
・拡張性の担保→ サーバを追加するだけ→ すでに秒間16000 回は実証(月間400億回)
・サーバ障害もひと通り経験→HD の大規模障害にも耐えた
こんなシステムを 1 人で構築することも可能なのがNoSQL の凄く面白いところ
■ NoSQL あるある ~職場編~
・社長 : 「 NoSQL って何 ? 」→ 「あ、さすがですね !
これから伸びるクラウド時代の技術です」
■ NoSQL あるある ~職場編~
・社長 : 「 NoSQL って何 ? 」→ 「あ、さすがですね !
これから伸びるクラウド時代の技術です」
・人事 : 「新人でもできる ? 」→ 「ちょうど良かったです。
そういう人の方が向いてます ! 」 →人材確保
■ NoSQL 採用への道 ~職場編~
・社長 : 「 NoSQL って何 ? 」→ 「あ、さすがですね !
これから伸びるクラウド時代の技術です」
・人事 : 「新人でもできる ? 」→ 「ちょうど良かったです。
そういう人の方が向いてます ! 」 →人材確保
・部長 : 「お金になるワケ ? 」→ 【会場で具体的にご説明】
■ NoSQL が熱い領域
・ M2M 領域(広い意味で)→ センサーデータ
→ 家電データも相当→ 業界大手は Hadoop による可視化を売っているだけ
→ まだまだ巨大なニーズが残っている
・既存領域でもシステムリニューアルは熱い→ 決済者は DB で選ばない→ より良いシステムをより合理的なコストで
■ Action !
翔泳社Cassandra実用システム・インテグレーション
・ Cloudn 上でお試しができます。・ NoSQL のトランザクションもテスト可能
「 NanaHoshi 」 http://b-rabbit.jp/nanahoshi/
■ 書籍
翔泳社ニフティクラウド IaaS によるシステム構築
■ Action !
・マスタレス・ NoSQL は画面から( RDBMS はモデルから)
→DB は入れ物。だから分散できる。→ ロジックはアプリ側へ。
・ CAP 定理と BASE という概念
・めげない心・ NoSQL はエンジニアの腕の見せ所がとても多い!
NoSQL という新しい「市場」でのキャリア形成にも
■ 合言葉
■ 大切な考え方・キーワード
・ NoSQL で腕を試そう!世の中を変えてしまおう!
■ データベースの変遷
1970年頃
1990年頃
2010年頃
RDB の誕生
SQL の標準化
RDB黄金期
RDB黎明期
NoSQL の誕生
20年
20年
NoSQL黎明期
NoSQL はこれから大きく成長する領域です !
← RDB の処理限界 ・ネット人口の増加・デバイスの増加・ WEB サービスの増加