我需要爲每個每晚構建存儲基準運行。爲此,我想出了以下數據模型。創建複合列cassandra
BenchmarkColumnFamily= {
build_1: {
(Run1, TPS) : 1000K
(Run1, Latency) : 0.5ms
(Run2, TPS) : 1000K
(Run2, Latency) : 0.5ms
(Run3, TPS) : 1000K
(Run3, Latency) : 0.5ms
}
build_2: {
...
}
...
}
要創建這樣一個模式,我想出了以下命令卡桑德拉 - CLI:
create column family BenchmarkColumnFamily with
comparator = 'CompositeType(UTF8Type,UTF8Type)' AND
key_validation_class=UTF8Type AND
default_validation_class=UTF8Type AND
column_metadata = [
{column_name: TPS, validation_class: UTF8Type}
{column_name: Latency, validation_class: UTF8Type}
];
請問上面的命令創建模式,我打算創造?我混淆的原因是,當我插入數據到上面的CF中使用: set BenchmarkColumnFamily['1545']['TPS']='100';
即使比較器類型是複合的,它也會被成功插入。此外,即使以下命令也能成功執行:
set BenchmarkColumnFamily['1545']['Run1:TPS']='1000';
這是什麼im缺失?
我不認爲這符合OP的模式;這將創建一個複合鍵。有關詳細信息,請參閱[本文](http://www.datastax.com/dev/blog/introduction-to-composite-columns-part-1)中的註釋。 – libjack 2012-07-16 21:41:23
它創建一個複合CQL密鑰,而不是複合Cassandra密鑰。在存儲層,這將創建複合列名稱,就像他擁有的一樣。真的不建議使用Cassandra-cli來處理這類事情。 (這篇文章是在cql3之前寫的,甚至是一件事。) – 2012-07-18 00:12:25
好的,謝謝..將不得不探索cql3一些。無可否認,我一直在使用CLI和/或Java API進行大部分工作。 – libjack 2012-07-18 18:43:52