Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Cassandra0.7

1,566 views

Published on

Published in: Technology, Health & Medicine
  • Be the first to comment

Cassandra0.7

  1. 1. Cassandra0.7 Coming !! 株式会社ムロドー とみたかずたか
  2. 2. アジェンダ <ul><li>Cassandra0.7 Coming !! </li></ul><ul><ul><li>NoSQL おさらい </li></ul></ul><ul><ul><ul><li>なぜ NoSQL か? </li></ul></ul></ul><ul><ul><ul><li>RDB と KVS </li></ul></ul></ul><ul><ul><li>0.6 と 0.7 </li></ul></ul><ul><ul><li>使ってみる </li></ul></ul><ul><ul><ul><li>インストール・設定・起動 </li></ul></ul></ul><ul><ul><ul><li>アプリケーション設計 </li></ul></ul></ul>
  3. 3. NoSQL おさらい <ul><li>なぜ NoSQL か? </li></ul>NoSQL と呼ばれるデータベース群で設計を行うと RDBMS 及び SQL の偉大さがよく分かります。 <ul><li>RDBMS は素晴らしい。 </li></ul>つまり <ul><li>消えないデータ </li></ul><ul><li>粗雑なデータ設計でそこそこのパフォーマンス </li></ul><ul><li>Sequence などの高機能付加価値など </li></ul>RDBMS で間に合うならば RDBMS でいいじゃん。 本当に!
  4. 4. NoSQL おさらい <ul><li>なぜ NoSQL か? </li></ul>EXADATA っていくらするか知ってます? <ul><li>巨大なデータ。 </li></ul><ul><li>RDBMS では間に合わないとはどういう事か? </li></ul><ul><li>ログ解析 </li></ul><ul><li>アクセス解析 </li></ul><ul><li>統計解析 </li></ul>数百 TB のデータ、 PB なにそれ? 10 億行ってカウント取るだけでも一苦労ですよ!? じゃ、力ずくで
  5. 5. NoSQL おさらい <ul><li>なぜ NoSQL か? </li></ul>アプリケーションの作りどうなってるの? データの整合性どうなっているの? <ul><li>Web は負荷が読めない。 </li></ul><ul><li>RDBMS では間に合わないとはどういう事か? </li></ul>つまり <ul><li>はてぶのホッテントリにのったひにゃあーた。 </li></ul><ul><li>Yahoo の Top に掲載された日にゃあーた。 </li></ul><ul><li>いきなり TV で紹介された日にゃあーた。 </li></ul>昨日の PV の 200 倍、 300 倍などよくある話。 書き込み主体のサービスであった場合、 一発で DB さちります。 じゃ、 DB 追加で 無理 <ul><li>一晩で 3 台 DB 追加したことありますが。 </li></ul>
  6. 6. NoSQL おさらい <ul><li>なぜ NoSQL か? </li></ul><ul><li>自由なノード追加で短時間の負荷対策も、パラレル処理もばっちり。 </li></ul>でも、色々と制約は多い。
  7. 7. NoSQL おさらい <ul><li>RDB と KVS </li></ul>関係性の中で生きているエンジニアにとって関係の切れた KVS はややこしい。 そもそも JOIN ができない。そして JOIN ができない。さらには JOIN ができない。 <ul><li>RDB 脳の人間に KVS を設計するのはめんどくさい </li></ul>つまり 適当にデータを突っ込んで後で成形する事が DB 上で出来ない。 どうするか データを整形して突っ込んでおく。
  8. 8. NoSQL おさらい <ul><li>RDB と KVS </li></ul>例 { “ 001&quot;:{ “ account_id”:”001”, “ account_name”:” 冨田” , “ Address”:” 東京” , “ telnum1”:{“telnum”:“03-”, “type”:“ 家電 &quot;}, “ telnum2”:{“telnum”:“090-”, “type”:“ 携帯 &quot;}, }, } 正規化して……はダメ account_id account_name address 001 冨田 東京 103 渡辺 神奈川 204 内山 大阪 telnum_id account_id tel_type telnum 001 001 家電 03- 002 001 携帯 090- 003 002 携帯 080-
  9. 9. 0.6 と 0.7 <ul><li>Cassandra の特徴( 0.6 迄) </li></ul>トランザクションの概念はともかくデータが消えないという点に関しては割と柔軟に対応できます。 <ul><li>動的ノード追加 </li></ul><ul><li>柔軟な一貫性 </li></ul>基本的にオンサービスでノード追加可能 割とざっくりノードを増やせます。(少なくとも RDBMS を追加するより楽)
  10. 10. 0.6 と 0.7 <ul><li>0.7 新機能 </li></ul>cassandra-cli --host 192.168.1.6 Connected to: &quot;Intheforest Cluster&quot; on 192.168.1.6/9160 Welcome to cassandra CLI. Type 'help;' or '?' for help. Type 'quit;' or 'exit;' to quit. [default@unknown] [default@unknown] create keyspace TimeStampSimpleTrees with replication_factor = 3 and placement_strategy = 'org.apache.cassandra.locator.SimpleStrategy'; f1494d23-0d81-11e0-81b4-862ffb1efb04 [default@unknown] use TimeStampSimpleTrees; Authenticated to keyspace: TimeStampSimpleTrees [default@TimeStampSimpleTrees] create column family SimpleTrees3 with comparator = 'UTF8Type' and rows_cached = 10000; cfc9c024-0d82-11e0-81b4-862ffb1efb04 [default@TimeStampSimpleTrees] update column family SimpleTrees3 with column_metadata=[{ column_name:id,validation_class:IntegerType,index_type:0,index_name:indxid}]; eba47be5-0d8d-11e0-81b4-862ffb1efb04 <ul><li>動的スキーマ変更 </li></ul>オンラインでスキーマ変更ができるようになりました。
  11. 11. 0.6 と 0.7 <ul><li>0.7 新機能 </li></ul>カラムにインデックスがはれる <ul><li>セカンダリインデックス </li></ul>cassandra-cli --host 192.168.1.6 Connected to: &quot;Intheforest Cluster&quot; on 192.168.1.6/9160 Welcome to cassandra CLI. Type 'help;' or '?' for help. Type 'quit;' or 'exit;' to quit. [default@unknown] use TimeStampSimpleTrees; Authenticated to keyspace: TimeStampSimpleTrees [default@TimeStampSimpleTrees] update column family SimpleTrees3 with column_metadata=[{ column_name:id,validation_class:IntegerType,index_type:0,index_name:indxid}]; eba47be5-0d8d-11e0-81b4-862ffb1efb04
  12. 12. 使ってみる <ul><ul><ul><li>インストール・設定・起動 </li></ul></ul></ul>細かい話なのでブログに下記ました。 ちなみに deb パッケージはまだ 0.6 系です。 http://www.intheforest.jp/blog/
  13. 13. 使ってみる <ul><ul><ul><li>セカンダリインデックス </li></ul></ul></ul>[default@TimeStampSimpleTrees] get SimpleTrees3 where 'id' = '3' ; ------------------- RowKey: 3 => (column=id, value=3, timestamp=1293008442853000) 1 Row Returned. [default@TimeStampSset SimpleTrees3['1']['name'] = 'tomitakazutaka'; Value inserted. [default@TimeStampSimpleTrees] get SimpleTrees3 where 'name' = 'tomitakazutaka' ; No indexed columns present in index clause with operator EQ Where 句が使える!!!!!!!

×