狠狠撸

狠狠撸Share a Scribd company logo
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 はこれから大きく成長する領域です !

More Related Content

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 はこれから大きく成長する領域です !