NoSQL の野心的な使い方 ~ Apache Cassandra 編~
誰? ■ 株式会社エスキュービズム     岸本 康二 ■EC 系サービスの構築案件から   大規模系の技術開発、   クラウド、 M2M 系など ■ 大学の博士課程まで物理   新技術を使うより    新技術を作るのが好き
  NoSQL のよくある誤解・正解 ■ 正解 ○ 負荷分散に優れている ○ 耐障害性が高い ○ データ一貫性は弱い ■ 誤解 × データ一貫性がない CAP 定理は正しい。が、誤解が異常に多い。 × トランザクションは無理 × 業務系フロントシステムには向かない RDBMS を主役に据えた Not Only SQL … → なんて言ってるのはもう古い!
■ Apache Cassandra を選んだ理由 Cassandra MongoDB Redis ボトルネックな ボトルネッ ボトルネッ し! ク ク 独立協調型 管理型 マスタ - スレーブ型
  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 ● 従来型 →DB に負荷集中 WEB APP RDBMS WEB APP RDBMS WEB APP WEB APP
  NoSQL と RDBMS との本当の関係 WEB APP NoSQL NoSQL WEB APP RDBMS WEB APP RDBMS WEB APP ● 負荷を軽減しようと・・・ WEB APP →NoSQL でキャッシュ →DB の書き込み負荷は減らない
  NoSQL と RDBMS との本当の関係 WEB APP NoSQL NoSQL WEB APP RDBMS WEB APP RDBMS WEB APP ● ボトルネック部分を削ってみる WEB APP
  NoSQL と RDBMS との本当の関係 WEB APP NoSQL WEB APP NoSQL WEB APP NoSQL WEB APP NoSQL WEB APP NoSQL
  NoSQL と RDBMS との本当の関係 WEB APP NoSQL WEB APP NoSQL WEB APP NoSQL WEB APP NoSQL WEB APP NoSQL
  NoSQL と RDBMS との本当の関係 WEB APP NoSQL WEB APP NoSQL WEB APP NoSQL WEB APP NoSQL WEB APP NoSQL ● 自然と NoSQL クラスタに行き着く
  NoSQL と RDBMS との本当の関係 WEB APP NoSQL RDBMS WEB APP NoSQL WEB APP NoSQL WEB APP NoSQL WEB APP NoSQL ● 最適なシステム構成 →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 で腕を試そう!世の中を変えてしまおう! ■ 大切な考え方・キーワード ・マスタレス ・ NoSQL は画面から( RDBMS はモデルから) →DB は入れ物。だから分散できる。 → ロジックはアプリ側へ。 ・ CAP 定理と BASE という概念 ・めげない心 ・ NoSQL はエンジニアの腕の見せ所がとても多い! NoSQL という新しい「市場」でのキャリア形成にも
■ データベースの変遷 1970 年頃 RDB の誕生 20 年 RDB 黎明期 1990 年頃 SQL の標準化 20 年 RDB 黄金期 2010 年頃 NoSQL の誕生 ← RDB の処理限界 ・ネット人口の増加 ・デバイスの増加 ・ WEB サービスの増加 NoSQL 黎明期 NoSQL はこれから大きく成長する領域です !

Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~

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