NoSQLとビッグデータ入門編
     Update版
     at 沖縄Web+DB勉強会
     2012/09/27 @k_nishijima / 西島 幸一郎



12年9月27日木曜日
自己紹介
    西島 幸一郎 / にしじま こういちろう
    twitter : @k_nishijima

    JAWS−UG沖縄の副代表、
    やらせて頂いてます。

    ※11月17日土曜日に
    JAWS-UG沖縄勉強会を開きますのでお楽しみに!
    (今回はいろいろハンズオンをやる予定です!)

                                2

12年9月27日木曜日
よく耳にするNoSQLって何?
    諸説ありますが、現状のコンセンサスは
    「Not only SQL」 = 「SQLだけじゃない!」
    の略であるということで意見が一致。


    ※この辺の紆余曲折は
    http://www.publickey1.jp/blog/09/nosqlnot_only_sql.html
    が詳しいです。



                                                              3

12年9月27日木曜日
実装は多数あります
    以下、本資料では @yutuki_r さんが第10回Cassandra勉強
    会にて発表したスライドから図をパクr^h^h^h流用させ
    てもらっています。かなりいい資料なので一読をおすす
    めします!




    http://www.slideshare.net/yutuki/cassandrah-baseno-sql

                                                             4

12年9月27日木曜日
実装は多数あります
    実装にキーとそれに紐づく値を格納する方式を取るもの
    が多いため、そのようなNoSQL実装のことをKVS(キー
    バリューストア)などとも言います。




                                   5

12年9月27日木曜日
『SQLチョーベンリなのに
              使わない意味が
              全然わかんない』

    はい、アナタは大変正しいです。
    RelationalDataBaseとSQLがカバーできる問題領域は
    大変広く、ほとんどの場合は事足ります。
                                         6

12年9月27日木曜日
NoSQLの存在意義
    では、RDBがカバーできない問題領域とはなにか?
    例えば

     • データを正規化せずとも柔軟なスキーマで保存するこ
        と(JSONや連想配列まるごと保存)

     • とてつもなく大量/高速の書き込み/読み込みへの対応
     • 大規模なデータセンター分割への対応
    など、ちょっと違った視点からデータベースを見てみる
    と、なるほど苦手な問題領域もあったりします。
                                   7

12年9月27日木曜日
ACID特性とBASE特性
    RDBが提供するACID特性
    •   A:Atomic(原子性)

    •   C:Consistency(一貫性)

    •   I:Isolation(独立性)

    •   D:Durability(永続性)


    NoSQLなどの分散システムが提供するBASE特性
    •   BA:Basically Available(可用性が基本)

    •   S:Soft-state(厳密でない状態遷移)

    •   E:Eventual Consistency(結果として整合性がとれる)

                                               8

12年9月27日木曜日
ACID特性とBASE特性
    RDBが提供するACID特性
    •   A:Atomic(原子性)

    •          そのトランザクション、
        C:Consistency(一貫性)

    •   I:Isolation(独立性)

    •               只今承りました!
        D:Durability(永続性)


    NoSQLなどの分散システムが提供するBASE特性
    •            今書き込んだデータ、
        BA:Basically Available(可用性が基本)

    •   S:Soft-state(厳密でない状態遷移)

    •   そのうちちゃんと読み出せるよ!
        E:Eventual Consistency(結果として整合性がとれる)

                                               9

12年9月27日木曜日
ブリュワーのCAP定理
    どんなシステムデザインにも言えることですが、
    全ては「何を捨てて、何を取るか」の問題。




                             10

12年9月27日木曜日
ブリュワーのCAP定理
    Consistency = 一貫性
    Availability = 可用性
    Partition-tolerance = ネットワーク分断耐性




                                       11

12年9月27日木曜日
ブリュワーのCAP定理
    Consistency = 一貫性
    どのような状況でも、例えばサーバが1000台あって
    も、あるデータに付いて問い合わせたら、
    必ず一貫性のあるデータが返ってくること。




                                12

12年9月27日木曜日
ブリュワーのCAP定理
    Availability = 可用性
    バルスに耐えるtwitterの様に、一時的に死ぬほど
    リクエストがかかっても停止せず常に利用できること。
    (2万write/sec以上に耐えられるか?)




                                 13

12年9月27日木曜日
ブリュワーのCAP定理
    Partition-tolerance = ネットワーク分断耐性
    よく「分散できること」と思っている人がいますがこれ
    は誤り。ネットワークに障害が起こっても、出来る範囲
    で正しく応答しようとする能力、の事です。




                                       14

12年9月27日木曜日
RDBはACID特性を満たす
    トランザクションを提供する
    故に高い一貫性を持ちますが、一般にネットワーク分断
    耐性は低い = CA型。
    (勿論、お金をたっぷりかければ可能です)




                                15

12年9月27日木曜日
じゃあ、どっち取る?
    それによって、各プロダクトの特色が出てきます。

    • Google BigTable
    • Amazon DynamoDB
    • Apache Cassandra
    • Apache HBase
    MongoDBは?
    まじめに使ったこと無いっす。。。
    &一応BigDataがテーマなので。。。




                              16

12年9月27日木曜日
Google BigTable
    Webのクロールとインデックシング(ページランク作成
    のMapReduceなど)に利用されてい[る|た]。

    (未公開ゆえ2006年公開の論文などから推測ですが)


    今ではGoogleAppEngineから利用可能。



    GAEから利用できるBigTableは、一貫性を担保する範囲
    を「限定的」とし、高い可用性と分断耐性を持つAP型
                                     17

12年9月27日木曜日
Amazon DynamoDB
    自社のコマースサイト向けに作られたと言われている実装
    で、2007年に論文が公開。
    そのノウハウをつぎ込み、2012年1月にAmazon
    DynamoDBとしてサービス提供開始。


    一貫性を利用するユーザが選択可能(強一貫性も指定で
    きるが料金が2倍!)とし、高い可用性とネットワーク分
    断耐性を保つAP型
                                 18

12年9月27日木曜日
Amazon DynamoDB
    秒間あたりの読み込み/書き込みのスループットを
    指定するだけで、あとは勝手にスケールしていく!
       •容量無制限
       •サービスなのでメンテ不要
       •アトミックカウンタもサポート(コスト2倍/速度低下を許容すれば)
       •しかもEMR経由で外部テーブルとしてマウントできる
    というわけで一般に利用できる範囲では
    現代最強のNoSQLサービス!?


                                           19

12年9月27日木曜日
Apache
    元々Facebookのメッセージボックス検索のために開発さ
    れたものを、2008年にオープンソース化。
    マスタノードが必要なく、例えネットワークが分断されて
    も動作し続け読み書きが可能
    (勿論場合によっては読み込み不可の場合もある)。

    合言葉は「eventually consistency」=結果整合性!
    一貫性を利用するユーザが選択可能とし、高い可用性と
    ネットワーク分断耐性を保つAP型
                                          20

12年9月27日木曜日
Apache
    GoogleのBigTableをモデルに実装された
    列指向分散データベース。
    現在はHadoopプロジェクトの一部だが、色々あるらしい。。。



    最近(6月から)Amazon EMRがサポートしだしました。


    高い一貫性とネットワーク分断耐性を持つが、SPoFが存
    在するため可用性には劣るCP型

                                      21

12年9月27日木曜日
そして世の中はさらに進む
    Spanner: Google's Globally-Distributed Database
    http://research.google.com/archive/spanner.html

    2012年6月に突如資料が出現し、世の分散システム研究者
    をあっと驚かせた           のデータベース。
    日本語では@ kazunori_279さんのブログが詳しいです。
    最新の論文↑が今月16日に公開されました。



                                                      22

12年9月27日木曜日
Spanner: Google's Globally-
    Distributed Database
    「世界中に分散する全サーバに、GPSと原子時計を使っ
    て正確なタイムスタンプを供給し、惑星規模で整合性の
    取れる分散データベース作ったよ」


    ⇛ 分散システムは正確な時間が取れないよねっていう
    前提を完全にちゃぶ台返しする斜め上な発想!
    (それだけじゃないけど:詳細は論文を熟読のこと)


                                  23

12年9月27日木曜日
最近のトレンドは
    Consistency = 一貫性をどう扱うか、にフォーカスが
    当たってるような気がしますね。
    他にも

    •   どうやってデータを分散させるの?

        = Consistent Hashingとか
    •   そもそもキーとバリューでどうやってデータ取り出すの?

        = じゃあsecondery index使おうか、とか
    •   データモデリングはどうするの?
    などなど、話のネタは付きませんが以下次号。。。

                                      24

12年9月27日木曜日
まとめ
    アマゾンのクラウド(AWS)に移行したいよとか、
    (当方 solutionProviderOnTheBeach.com です)

    BigDataに興味のある人、MapReduceってなに?とか、
    Amazon Elastic MapReduce(EMR)でハマってるよ!など
    ありましたら @k_nishijima までコンタクトください。



                    ありがとうございました。

                                              25

12年9月27日木曜日

More Related Content

PDF
20121026 AWSで行こうupdate版
PDF
WP Boosterの裏側
PDF
Not only sql _ 新卒エンジニア勉強会20130417
PPT
Cassandra0.7
PPTX
NoSQL勉強会
PDF
デブサミ2010 これからのアーキテクチャを見通す
PPTX
CAPとBASE、ACIDの呪縛
PDF
qpstudy 2013.07 NoSQL
20121026 AWSで行こうupdate版
WP Boosterの裏側
Not only sql _ 新卒エンジニア勉強会20130417
Cassandra0.7
NoSQL勉強会
デブサミ2010 これからのアーキテクチャを見通す
CAPとBASE、ACIDの呪縛
qpstudy 2013.07 NoSQL

Viewers also liked (14)

PDF
Cassandra導入事例と現場視点での苦労したポイント cassandra summit2014jpn
PDF
CAPとBASEとEventually Consistent
PDF
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
PDF
AWS Black Belt Online Seminar 2017 AWS OpsWorks
PDF
ビッグデータ処理データベースの全体像と使い分け
PPT
インフラエンジニアのためのcassandra入門
PDF
ちょっと理解に自信がないな という皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
PDF
AWS Black Belt Online Seminar 2017 Amazon EC2 Systems Manager
PDF
スケーラビリティと耐障害性を両立するWeb アプリケーション
PDF
Cassandraとh baseの比較して入門するno sql
PDF
AWS Black Belt Online Seminar 2017 IoT向け最新アーキテクチャパターン
PDF
AWS Black Belt Online Seminar 2017 Docker on AWS
PDF
AWS Black Belt Online Seminar AWSで実現するDisaster Recovery
PDF
AWS Black Belt Online Seminar 2017 Amazon Athena
Cassandra導入事例と現場視点での苦労したポイント cassandra summit2014jpn
CAPとBASEとEventually Consistent
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
AWS Black Belt Online Seminar 2017 AWS OpsWorks
ビッグデータ処理データベースの全体像と使い分け
インフラエンジニアのためのcassandra入門
ちょっと理解に自信がないな という皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
AWS Black Belt Online Seminar 2017 Amazon EC2 Systems Manager
スケーラビリティと耐障害性を両立するWeb アプリケーション
Cassandraとh baseの比較して入門するno sql
AWS Black Belt Online Seminar 2017 IoT向け最新アーキテクチャパターン
AWS Black Belt Online Seminar 2017 Docker on AWS
AWS Black Belt Online Seminar AWSで実現するDisaster Recovery
AWS Black Belt Online Seminar 2017 Amazon Athena
Ad

Similar to NoSQLとビックデータ入門編Update版 (20)

PDF
社会ネットワーク分析第7回
PDF
About NoSQL
PDF
NOSQLの基礎知識(講義資料)
PDF
Nosqlの基礎知識(2013年7月講義資料)
PDF
[INSIGHT OUT 2011] b21 ひとつのデータベース技術では生き残れない part2 no sql, hadoop
PDF
「NOSQLの基礎知識」講義資料 第20回JDMC定例セミナー(201310)
PPT
Big data解析ビジネス
PDF
[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...
PDF
Guide to Cassandra for Production Deployments
PPTX
NoSQL Bigtable and Azure Table
PDF
20110517 okuyama ソーシャルメディアが育てた技術勉強会
PDF
Data-Intensive Text Processing with MapReduce ch4
PDF
InfoTalk springbreak_2012
PDF
20120831 mongoid
PDF
Counter Table Pattern & Temporary Table Pattern (2012-04-13 CDP Night)
PDF
Osc2012 spring HBase Report
PPT
Cassandra(no sql)によるシステム提案と開発
PPTX
Okuyama説明資料 20120119 ss
PPT
Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~
社会ネットワーク分析第7回
About NoSQL
NOSQLの基礎知識(講義資料)
Nosqlの基礎知識(2013年7月講義資料)
[INSIGHT OUT 2011] b21 ひとつのデータベース技術では生き残れない part2 no sql, hadoop
「NOSQLの基礎知識」講義資料 第20回JDMC定例セミナー(201310)
Big data解析ビジネス
[db tech showcase Tokyo 2014] L32: Apache Cassandraに注目!!(IoT, Bigdata、NoSQLのバ...
Guide to Cassandra for Production Deployments
NoSQL Bigtable and Azure Table
20110517 okuyama ソーシャルメディアが育てた技術勉強会
Data-Intensive Text Processing with MapReduce ch4
InfoTalk springbreak_2012
20120831 mongoid
Counter Table Pattern & Temporary Table Pattern (2012-04-13 CDP Night)
Osc2012 spring HBase Report
Cassandra(no sql)によるシステム提案と開発
Okuyama説明資料 20120119 ss
Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~
Ad

NoSQLとビックデータ入門編Update版

  • 1. NoSQLとビッグデータ入門編 Update版 at 沖縄Web+DB勉強会 2012/09/27 @k_nishijima / 西島 幸一郎 12年9月27日木曜日
  • 2. 自己紹介 西島 幸一郎 / にしじま こういちろう twitter : @k_nishijima JAWS−UG沖縄の副代表、 やらせて頂いてます。 ※11月17日土曜日に JAWS-UG沖縄勉強会を開きますのでお楽しみに! (今回はいろいろハンズオンをやる予定です!) 2 12年9月27日木曜日
  • 3. よく耳にするNoSQLって何? 諸説ありますが、現状のコンセンサスは 「Not only SQL」 = 「SQLだけじゃない!」 の略であるということで意見が一致。 ※この辺の紆余曲折は http://www.publickey1.jp/blog/09/nosqlnot_only_sql.html が詳しいです。 3 12年9月27日木曜日
  • 4. 実装は多数あります 以下、本資料では @yutuki_r さんが第10回Cassandra勉強 会にて発表したスライドから図をパクr^h^h^h流用させ てもらっています。かなりいい資料なので一読をおすす めします! http://www.slideshare.net/yutuki/cassandrah-baseno-sql 4 12年9月27日木曜日
  • 5. 実装は多数あります 実装にキーとそれに紐づく値を格納する方式を取るもの が多いため、そのようなNoSQL実装のことをKVS(キー バリューストア)などとも言います。 5 12年9月27日木曜日
  • 6. 『SQLチョーベンリなのに 使わない意味が 全然わかんない』 はい、アナタは大変正しいです。 RelationalDataBaseとSQLがカバーできる問題領域は 大変広く、ほとんどの場合は事足ります。 6 12年9月27日木曜日
  • 7. NoSQLの存在意義 では、RDBがカバーできない問題領域とはなにか? 例えば • データを正規化せずとも柔軟なスキーマで保存するこ と(JSONや連想配列まるごと保存) • とてつもなく大量/高速の書き込み/読み込みへの対応 • 大規模なデータセンター分割への対応 など、ちょっと違った視点からデータベースを見てみる と、なるほど苦手な問題領域もあったりします。 7 12年9月27日木曜日
  • 8. ACID特性とBASE特性 RDBが提供するACID特性 • A:Atomic(原子性) • C:Consistency(一貫性) • I:Isolation(独立性) • D:Durability(永続性) NoSQLなどの分散システムが提供するBASE特性 • BA:Basically Available(可用性が基本) • S:Soft-state(厳密でない状態遷移) • E:Eventual Consistency(結果として整合性がとれる) 8 12年9月27日木曜日
  • 9. ACID特性とBASE特性 RDBが提供するACID特性 • A:Atomic(原子性) • そのトランザクション、 C:Consistency(一貫性) • I:Isolation(独立性) • 只今承りました! D:Durability(永続性) NoSQLなどの分散システムが提供するBASE特性 • 今書き込んだデータ、 BA:Basically Available(可用性が基本) • S:Soft-state(厳密でない状態遷移) • そのうちちゃんと読み出せるよ! E:Eventual Consistency(結果として整合性がとれる) 9 12年9月27日木曜日
  • 10. ブリュワーのCAP定理 どんなシステムデザインにも言えることですが、 全ては「何を捨てて、何を取るか」の問題。 10 12年9月27日木曜日
  • 11. ブリュワーのCAP定理 Consistency = 一貫性 Availability = 可用性 Partition-tolerance = ネットワーク分断耐性 11 12年9月27日木曜日
  • 12. ブリュワーのCAP定理 Consistency = 一貫性 どのような状況でも、例えばサーバが1000台あって も、あるデータに付いて問い合わせたら、 必ず一貫性のあるデータが返ってくること。 12 12年9月27日木曜日
  • 13. ブリュワーのCAP定理 Availability = 可用性 バルスに耐えるtwitterの様に、一時的に死ぬほど リクエストがかかっても停止せず常に利用できること。 (2万write/sec以上に耐えられるか?) 13 12年9月27日木曜日
  • 14. ブリュワーのCAP定理 Partition-tolerance = ネットワーク分断耐性 よく「分散できること」と思っている人がいますがこれ は誤り。ネットワークに障害が起こっても、出来る範囲 で正しく応答しようとする能力、の事です。 14 12年9月27日木曜日
  • 15. RDBはACID特性を満たす トランザクションを提供する 故に高い一貫性を持ちますが、一般にネットワーク分断 耐性は低い = CA型。 (勿論、お金をたっぷりかければ可能です) 15 12年9月27日木曜日
  • 16. じゃあ、どっち取る? それによって、各プロダクトの特色が出てきます。 • Google BigTable • Amazon DynamoDB • Apache Cassandra • Apache HBase MongoDBは? まじめに使ったこと無いっす。。。 &一応BigDataがテーマなので。。。 16 12年9月27日木曜日
  • 17. Google BigTable Webのクロールとインデックシング(ページランク作成 のMapReduceなど)に利用されてい[る|た]。 (未公開ゆえ2006年公開の論文などから推測ですが) 今ではGoogleAppEngineから利用可能。 GAEから利用できるBigTableは、一貫性を担保する範囲 を「限定的」とし、高い可用性と分断耐性を持つAP型 17 12年9月27日木曜日
  • 18. Amazon DynamoDB 自社のコマースサイト向けに作られたと言われている実装 で、2007年に論文が公開。 そのノウハウをつぎ込み、2012年1月にAmazon DynamoDBとしてサービス提供開始。 一貫性を利用するユーザが選択可能(強一貫性も指定で きるが料金が2倍!)とし、高い可用性とネットワーク分 断耐性を保つAP型 18 12年9月27日木曜日
  • 19. Amazon DynamoDB 秒間あたりの読み込み/書き込みのスループットを 指定するだけで、あとは勝手にスケールしていく! •容量無制限 •サービスなのでメンテ不要 •アトミックカウンタもサポート(コスト2倍/速度低下を許容すれば) •しかもEMR経由で外部テーブルとしてマウントできる というわけで一般に利用できる範囲では 現代最強のNoSQLサービス!? 19 12年9月27日木曜日
  • 20. Apache 元々Facebookのメッセージボックス検索のために開発さ れたものを、2008年にオープンソース化。 マスタノードが必要なく、例えネットワークが分断されて も動作し続け読み書きが可能 (勿論場合によっては読み込み不可の場合もある)。 合言葉は「eventually consistency」=結果整合性! 一貫性を利用するユーザが選択可能とし、高い可用性と ネットワーク分断耐性を保つAP型 20 12年9月27日木曜日
  • 21. Apache GoogleのBigTableをモデルに実装された 列指向分散データベース。 現在はHadoopプロジェクトの一部だが、色々あるらしい。。。 最近(6月から)Amazon EMRがサポートしだしました。 高い一貫性とネットワーク分断耐性を持つが、SPoFが存 在するため可用性には劣るCP型 21 12年9月27日木曜日
  • 22. そして世の中はさらに進む Spanner: Google's Globally-Distributed Database http://research.google.com/archive/spanner.html 2012年6月に突如資料が出現し、世の分散システム研究者 をあっと驚かせた のデータベース。 日本語では@ kazunori_279さんのブログが詳しいです。 最新の論文↑が今月16日に公開されました。 22 12年9月27日木曜日
  • 23. Spanner: Google's Globally- Distributed Database 「世界中に分散する全サーバに、GPSと原子時計を使っ て正確なタイムスタンプを供給し、惑星規模で整合性の 取れる分散データベース作ったよ」 ⇛ 分散システムは正確な時間が取れないよねっていう 前提を完全にちゃぶ台返しする斜め上な発想! (それだけじゃないけど:詳細は論文を熟読のこと) 23 12年9月27日木曜日
  • 24. 最近のトレンドは Consistency = 一貫性をどう扱うか、にフォーカスが 当たってるような気がしますね。 他にも • どうやってデータを分散させるの? = Consistent Hashingとか • そもそもキーとバリューでどうやってデータ取り出すの? = じゃあsecondery index使おうか、とか • データモデリングはどうするの? などなど、話のネタは付きませんが以下次号。。。 24 12年9月27日木曜日
  • 25. まとめ アマゾンのクラウド(AWS)に移行したいよとか、 (当方 solutionProviderOnTheBeach.com です) BigDataに興味のある人、MapReduceってなに?とか、 Amazon Elastic MapReduce(EMR)でハマってるよ!など ありましたら @k_nishijima までコンタクトください。 ありがとうございました。 25 12年9月27日木曜日