storage-conf.xmlでのKeyspaceとColumnFamily設定内容解説
Cassandraのデータ定義はstorage-confirm.xmlに記述します。
こちらにもちらっと書きましたが、この辺をちゃんと抑えて無くて結構困ったので、一念発起して調べてみました。とりあえずKeyspaceとColumnFamilyの指定のみです。
<Keyspace Name="Keyspace1"> <ReplicaPlacementStrategy>org.apache.cassandra.locator.RackUnawareStrategy</ReplicaPlacementStrategy> <ReplicationFactor>1</ReplicationFactor> <EndPointSnitch>org.apache.cassandra.locator.EndPointSnitch</EndPointSnitch> <ColumnFamily Name="userlog" ColumnType="Super" CompareWith="BytesType" KeysCached="1000" RowsCached="100" RowCacheSavePeriodInSeconds="0" KeyCacheSavePeriodInSeconds="3600"/> </Keyspace>
Keyspace - Keyspaceを指定。RDBのDBに相当。name属性でKeyspace名を指定できる。
-
ReplicaPlacementStrategy - データの複製を作る場所のルールを示すクラスの名称を指定。基本デフォルトでOK。
ReplicationFactor - データの複製を作る個数を指定。
EndPointSnitch - -
-
- ColumnFamily
- ColumnFamilyを指定。RDBのテーブルに相当。指定できる属性は以下で説明。
- Name
- ColumnFamily名(RDBでいうテーブル名)。「-(ハイフン)」は使用できない。
- ColumnType
- SuperColumnを持つか否かの指定。「Standard」もしくは「Super」を指定できる。SuperColumnを持つ場合には「Super」を指定する。「Standard」を指定した場合、もしくはColumnType属性の指定を省略した場合にはSuperColumnは持たない。省略すると「BytesType」が指定される。
- CompareWith
- CompareSubcolumnsWith
- データを複数取得(get)した際の並び替え方法を指定。「BytesType」「AsciiType」「UTF8Type」「LongType」「LexicalUUIDType」「TimeUUIDType」を指定できる。CompareSubcolumnsWithはSuperColumnを持つ場合に、サブカラムのSort方法を指定する為の属性。
- KeysCached
- keyをキャッシュする割合、あるいは個数。1未満(ex:0.5)や%(ex:25%)だと割合、絶対数(ex:3600)だと個数を指定できる。デフォルトは20万個
- RowsCached
- カラムをキャッシュする割合、あるいは個数。指定ルールはKeysCachedと同じ。デフォルトは0(キャッシュされない)。
- RowCacheSavePeriodInSeconds
- KeyCacheSavePeriodInSeconds
- keyもしくは行の自動保存の周期を秒単位で指定できる。デフォルトは0(自動保存しない)。
- Comment
- コメント。人間が読む為のものなので、必要に応じて書けばOK
- Name
- ColumnFamilyを指定。RDBのテーブルに相当。指定できる属性は以下で説明。
- ColumnFamily
とりあえず動かしたいだけなら、