Your SlideShare is downloading. ×

Cassandra0.7

1,285
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,285
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
4
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Cassandra0.7 Coming !! 株式会社ムロドー とみたかずたか
  • 2. アジェンダ
    • Cassandra0.7 Coming !!
      • NoSQL おさらい
        • なぜ NoSQL か?
        • RDB と KVS
      • 0.6 と 0.7
      • 使ってみる
        • インストール・設定・起動
        • アプリケーション設計
  • 3. NoSQL おさらい
    • なぜ NoSQL か?
    NoSQL と呼ばれるデータベース群で設計を行うと RDBMS 及び SQL の偉大さがよく分かります。
    • RDBMS は素晴らしい。
    つまり
    • 消えないデータ
    • 粗雑なデータ設計でそこそこのパフォーマンス
    • Sequence などの高機能付加価値など
    RDBMS で間に合うならば RDBMS でいいじゃん。 本当に!
  • 4. NoSQL おさらい
    • なぜ NoSQL か?
    EXADATA っていくらするか知ってます?
    • 巨大なデータ。
    • RDBMS では間に合わないとはどういう事か?
    • ログ解析
    • アクセス解析
    • 統計解析
    数百 TB のデータ、 PB なにそれ? 10 億行ってカウント取るだけでも一苦労ですよ!? じゃ、力ずくで
  • 5. NoSQL おさらい
    • なぜ NoSQL か?
    アプリケーションの作りどうなってるの? データの整合性どうなっているの?
    • Web は負荷が読めない。
    • RDBMS では間に合わないとはどういう事か?
    つまり
    • はてぶのホッテントリにのったひにゃあーた。
    • Yahoo の Top に掲載された日にゃあーた。
    • いきなり TV で紹介された日にゃあーた。
    昨日の PV の 200 倍、 300 倍などよくある話。 書き込み主体のサービスであった場合、 一発で DB さちります。 じゃ、 DB 追加で 無理
    • 一晩で 3 台 DB 追加したことありますが。
  • 6. NoSQL おさらい
    • なぜ NoSQL か?
    • 自由なノード追加で短時間の負荷対策も、パラレル処理もばっちり。
    でも、色々と制約は多い。
  • 7. NoSQL おさらい
    • RDB と KVS
    関係性の中で生きているエンジニアにとって関係の切れた KVS はややこしい。 そもそも JOIN ができない。そして JOIN ができない。さらには JOIN ができない。
    • RDB 脳の人間に KVS を設計するのはめんどくさい
    つまり 適当にデータを突っ込んで後で成形する事が DB 上で出来ない。 どうするか データを整形して突っ込んでおく。
  • 8. NoSQL おさらい
    • RDB と KVS
    例 { “ 001":{ “ account_id”:”001”, “ account_name”:” 冨田” , “ Address”:” 東京” , “ telnum1”:{“telnum”:“03-”, “type”:“ 家電 "}, “ telnum2”:{“telnum”:“090-”, “type”:“ 携帯 "}, }, } 正規化して……はダメ 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. 0.6 と 0.7
    • Cassandra の特徴( 0.6 迄)
    トランザクションの概念はともかくデータが消えないという点に関しては割と柔軟に対応できます。
    • 動的ノード追加
    • 柔軟な一貫性
    基本的にオンサービスでノード追加可能 割とざっくりノードを増やせます。(少なくとも RDBMS を追加するより楽)
  • 10. 0.6 と 0.7
    • 0.7 新機能
    cassandra-cli --host 192.168.1.6 Connected to: "Intheforest Cluster" 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
    • 動的スキーマ変更
    オンラインでスキーマ変更ができるようになりました。
  • 11. 0.6 と 0.7
    • 0.7 新機能
    カラムにインデックスがはれる
    • セカンダリインデックス
    cassandra-cli --host 192.168.1.6 Connected to: "Intheforest Cluster" 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. 使ってみる
        • インストール・設定・起動
    細かい話なのでブログに下記ました。 ちなみに deb パッケージはまだ 0.6 系です。 http://www.intheforest.jp/blog/
  • 13. 使ってみる
        • セカンダリインデックス
    [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 句が使える!!!!!!!