cassandraさんとのつきあい方

そもそも、なんでcassandraをローカル環境に入れることにしたか。っていうと。

本当にそれであってるのか確認しておきたかったので、
環境作って試してみることにしたのです。
本番環境でraw_keyがいつまでも残ってたら気持ち悪いし、
仮に「残ってるぞゴラァ」って言われても
「cassandaraの仕様です」っていえればそれで済むので。

で、まずはハード(?)
いつものごとくメンドクサイので仮想環境。
CentOS6を用意してあるので、コピってyum -y updateして最新に。

このへん
http://d.hatena.ne.jp/terurou/20100416/1271397190
を参考にしつつ、Java7とcassandra1.1.0を入れる。
(参考リンクの内容は古いけどリンク先はそのまま使える)
cassandraの設定周りは既にxmlじゃ無くなっているので、参考にしないように。
portの話とかもすでにきちんと対応されているので、
あまり気にせずcassandaraを起動してOK。

cassandaraのデータ周りの構造の知識は人によって微妙に感じ方が違うので
自分のイメージでざっくりと書くと

  • Keyspace

大枠w

  • ColumnFamily

データベース

  • raw_key

テーブル

  • column

レコード

  • columnのkey,value

KeyValueのそれぞれ

かと。

で、今回はColumnFamilyのgc_grace_secondsを設定したい。テスト用に。

既に作成済みのColumnFamilyに設定する方法はわからないが、
新しいColumnFamilyを作るのであれば、

create column family ColumnFamilyName1 with comparator=UTF8Type and default_validation_class=UTF8Type and key_validation_class=UTF8Type and gc_grace=600;

で、600秒のColumnFamilyが作れる。

gc_grace_secondsを設定したいのに、gc_graceで設定させるとか、非常にキモイんだが
その辺の説明は、

help create column family;

とかコマンドをたたくと詳しい設定が見れる。
ここまでたどり着くのが死にそうだったので、日本語でまとめておくよ。