Cassandra0.7

1,513 views

Published on

Published in: Technology, Health & Medicine
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,513
On SlideShare
0
From Embeds
0
Number of Embeds
15
Actions
Shares
0
Downloads
6
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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 句が使える!!!!!!!

×