NoSQLとビッグデータ入門編at eXtream HAGO 3(みーち)2012/03/03 @k_nishijima / 西島 幸一郎
自己紹介西島 幸一郎 / にしじま こういちろうtwitter : @k_nishijimaとある会社のCTOをやってます。基本はJavaな人。主戦場はBigData系 / MapReduceとか、Cassandraとか。。。ダイビング好きが高...
よく耳にするNoSQLって何?諸説ありますが、現状のコンセンサスは「Not only SQL」 = 「SQLだけじゃない!」の略であるということで意見が一致。※この辺の紆余曲折は http://www.publickey1.jp/blog/09...
実装は多数あります以下、本資料では @yutuki_r さんが第10回Cassandra勉強会にて発表したスライドから図をパクr^h^h^h流用させてもらっています。かなりいい資料なので一読をおすすめします!http://www.slidesh...
実装は多数あります実装にキーとそれに紐づく値を格納する方式を取るものが多いため、そのようなNoSQL実装のことをKVS(キーバリューストア)などとも言います。
NoSQLの存在意義   『SQLチョーベンリなのに 使わない意味が全然わかんない』 はい、アナタは大変正しいです。  RelationalDataBaseとSQLが カバーできる問題領域は大変広く  ほとんどの場合は事足ります。
NoSQLの存在意義では、RDBがカバーできない問題領域とはなにか?例えば● データを正規化せずとも柔軟なスキーマで保存すること  (JSONとか、連想配列まるごと保存、みたいな)● とてつもなく高速/大量の書き込み/読み込みへの対応● 大規模...
ブリュワーのCAP定理どんなシステムデザインにも言えることですが、全ては「何を捨てて、何を取るか」の問題。※これ、最近の教科書には出てるのかな?
ブリュワーのCAP定理Consistency = 一貫性Availability = 可用性Partition-tolerance = ネットワーク分断耐性
ブリュワーのCAP定理Consistency = 一貫性どのような状況でも、例えばサーバが1000台あっても、どのサーバにあるデータに付いて問い合わせたら、必ず一貫性のあるデータが返ってくること。
ブリュワーのCAP定理Availability = 可用性バルスに耐えるtwitterの様に、何があっても常に利用できること。(普通のRDBで25088write/secに耐えられるか?)
ブリュワーのCAP定理Partition-tolerance = ネットワーク分断耐性よく「分散できること」と思っている人がいますがこれは誤り。ネットワークに障害が起こっても、出来る範囲で正しく応答しようとする能力、の事です。
RDBはACID特性を満たすトランザクションを提供する故に高い一貫性を持ちますが、一般にネットワーク分断耐性は低い = CA型。(勿論、お金をたっぷりかければ可能です)
じゃあ、どっち取る?それによって、各プロダクトの特色が出てきます。● Google BigTable● Amazon Dynamo● Apache Cassandra● Apache HBase ※ビッグデータのバズワード 生みの親Hadoop...
Google BigTableWebのクロールとインデックシング(ページランク作成のMapReduceなど)に利用されてい[る|た]。(未公開ゆえ2006年公開の論文などから推測ですが)今ではGoogleAppEngineから利用可能。GAEか...
Amazon Dynamo自社のコマースサイト向けに作られたと言われている実装で、2007年に論文が公開。そのノウハウをつぎ込み、2012年1月にAmazon DynamoDBとしてサービス提供開始。Kindle Fireのバックエンドにも使わ...
Apache元々Facebookのメッセージボックス検索のために開発されたものを、2008年にオープンソース化。マスタノードが必要なく、例えネットワークが分断されても動作し続け読み書きが可能(勿論場合によっては読み込み不可の場合もある)。合言葉...
ApacheGoogleのBigTableをモデルに実装された列指向分散データベース。現在はHadoopプロジェクトの一部だが、色々あるらしい。。。高い一貫性とネットワーク分断耐性を持つが、SPoFが存在するため可用性には劣るCP型Consis...
最近のトレンドはConsistency = 一貫性をどう扱うか、にフォーカスが当たってるような気がしますね。他にも● どうやってデータを分散させるの?  = Consistent Hashingとか● そもそもキーとバリューでどうやってデータ取...
まとめ取りあえず @yutuki_r さんのhttp://www.slideshare.net/yutuki/cassandrah-baseno-sqlを読めば一発です。BigDataに興味のある人、そもそもMapReduceってなに?とか、プ...
Upcoming SlideShare
Loading in...5
×

NoSQLとビッグデータ入門編

3,046

Published on

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,046
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
22
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

NoSQLとビッグデータ入門編

  1. 1. NoSQLとビッグデータ入門編at eXtream HAGO 3(みーち)2012/03/03 @k_nishijima / 西島 幸一郎
  2. 2. 自己紹介西島 幸一郎 / にしじま こういちろうtwitter : @k_nishijimaとある会社のCTOをやってます。基本はJavaな人。主戦場はBigData系 / MapReduceとか、Cassandraとか。。。ダイビング好きが高じて2011年9月頭に沖縄に移住してきましたJAWS−UG沖縄の副代表、やらせて頂いてます
  3. 3. よく耳にするNoSQLって何?諸説ありますが、現状のコンセンサスは「Not only SQL」 = 「SQLだけじゃない!」の略であるということで意見が一致。※この辺の紆余曲折は http://www.publickey1.jp/blog/09/nosqlnot_only_sql.htmlが詳しいです。SQLを使わないデータベースシステムの実装だったり、そのような実装を利用したシステムを構築するときに、「NoSQLデータベースを使おう」などと言ったりします。なので、特定の実装を指す単語ではなく、製品群、もしくは考え方を示す単語になります。
  4. 4. 実装は多数あります以下、本資料では @yutuki_r さんが第10回Cassandra勉強会にて発表したスライドから図をパクr^h^h^h流用させてもらっています。かなりいい資料なので一読をおすすめします!http://www.slideshare.net/yutuki/cassandrah-baseno-sql
  5. 5. 実装は多数あります実装にキーとそれに紐づく値を格納する方式を取るものが多いため、そのようなNoSQL実装のことをKVS(キーバリューストア)などとも言います。
  6. 6. NoSQLの存在意義 『SQLチョーベンリなのに 使わない意味が全然わかんない』 はい、アナタは大変正しいです。 RelationalDataBaseとSQLが カバーできる問題領域は大変広く ほとんどの場合は事足ります。
  7. 7. NoSQLの存在意義では、RDBがカバーできない問題領域とはなにか?例えば● データを正規化せずとも柔軟なスキーマで保存すること (JSONとか、連想配列まるごと保存、みたいな)● とてつもなく高速/大量の書き込み/読み込みへの対応● 大規模なデータセンター分割への対応など、ちょっと違った視点からデータベースを見てみると、なるほど苦手な問題領域もあったりします。
  8. 8. ブリュワーのCAP定理どんなシステムデザインにも言えることですが、全ては「何を捨てて、何を取るか」の問題。※これ、最近の教科書には出てるのかな?
  9. 9. ブリュワーのCAP定理Consistency = 一貫性Availability = 可用性Partition-tolerance = ネットワーク分断耐性
  10. 10. ブリュワーのCAP定理Consistency = 一貫性どのような状況でも、例えばサーバが1000台あっても、どのサーバにあるデータに付いて問い合わせたら、必ず一貫性のあるデータが返ってくること。
  11. 11. ブリュワーのCAP定理Availability = 可用性バルスに耐えるtwitterの様に、何があっても常に利用できること。(普通のRDBで25088write/secに耐えられるか?)
  12. 12. ブリュワーのCAP定理Partition-tolerance = ネットワーク分断耐性よく「分散できること」と思っている人がいますがこれは誤り。ネットワークに障害が起こっても、出来る範囲で正しく応答しようとする能力、の事です。
  13. 13. RDBはACID特性を満たすトランザクションを提供する故に高い一貫性を持ちますが、一般にネットワーク分断耐性は低い = CA型。(勿論、お金をたっぷりかければ可能です)
  14. 14. じゃあ、どっち取る?それによって、各プロダクトの特色が出てきます。● Google BigTable● Amazon Dynamo● Apache Cassandra● Apache HBase ※ビッグデータのバズワード 生みの親Hadoopプロジェクト
  15. 15. Google BigTableWebのクロールとインデックシング(ページランク作成のMapReduceなど)に利用されてい[る|た]。(未公開ゆえ2006年公開の論文などから推測ですが)今ではGoogleAppEngineから利用可能。GAEから利用できるBigTableは、一貫性を担保する範囲を「限定的」とし、高い可用性と分断耐性を持つAP型Consistency = 一貫性Availability = 可用性Partition-tolerance = ネットワーク分断耐性
  16. 16. Amazon Dynamo自社のコマースサイト向けに作られたと言われている実装で、2007年に論文が公開。そのノウハウをつぎ込み、2012年1月にAmazon DynamoDBとしてサービス提供開始。Kindle Fireのバックエンドにも使われているとのこと。一貫性を利用するユーザが選択可能(強一貫性も指定できるが料金が2倍!)とし、高い可用性とネットワーク分断耐性を保つ(ハズ)のAP型Consistency = 一貫性Availability = 可用性Partition-tolerance = ネットワーク分断耐性
  17. 17. Apache元々Facebookのメッセージボックス検索のために開発されたものを、2008年にオープンソース化。マスタノードが必要なく、例えネットワークが分断されても動作し続け読み書きが可能(勿論場合によっては読み込み不可の場合もある)。合言葉は「eventually consistency」=結果整合性!一貫性を利用するユーザが選択可能とし、高い可用性とネットワーク分断耐性を保つAP型Consistency = 一貫性Availability = 可用性Partition-tolerance = ネットワーク分断耐性
  18. 18. ApacheGoogleのBigTableをモデルに実装された列指向分散データベース。現在はHadoopプロジェクトの一部だが、色々あるらしい。。。高い一貫性とネットワーク分断耐性を持つが、SPoFが存在するため可用性には劣るCP型Consistency = 一貫性Availability = 可用性Partition-tolerance = ネットワーク分断耐性
  19. 19. 最近のトレンドはConsistency = 一貫性をどう扱うか、にフォーカスが当たってるような気がしますね。他にも● どうやってデータを分散させるの? = Consistent Hashingとか● そもそもキーとバリューでどうやってデータ取り出すの? = じゃあsecondery index使おうか、とか● データモデリングはどうするの?などなど、話のネタは付きませんが以下次号。。。
  20. 20. まとめ取りあえず @yutuki_r さんのhttp://www.slideshare.net/yutuki/cassandrah-baseno-sqlを読めば一発です。BigDataに興味のある人、そもそもMapReduceってなに?とか、プロダクトとしてのApache Cassandraに興味がある人は@k_nishijima までコンタクトください。ご要望があれば勉強会でも何でも開いちゃいます。
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×