2011-09-19 40 views
1

我triyng創建一個列族與TimeUUIDType作爲行名稱:卡桑德拉 - CLI:無法強迫「allias」第1版UUID

create column family users 
with column_type = 'Standard' 
and comparator = 'TimeUUIDType' 
and default_validation_class = 'UTF8Type' 
and key_validation_class = 'UTF8Type' 
and memtable_operations = 0.290625 
and memtable_throughput = 62 
and memtable_flush_after = 1440 
and rows_cached = 0.0 
and row_cache_save_period = 0 
and keys_cached = 200000.0 
and key_cache_save_period = 14400 
and read_repair_chance = 1.0 
and gc_grace = 864000 
and min_compaction_threshold = 4 
and max_compaction_threshold = 32 
and replicate_on_write = true 
and row_cache_provider = 'ConcurrentLinkedHashCacheProvider' 
and column_metadata=[ 
{column_name: allias, validation_class: UTF8Type, index_type: KEYS, index_name: allias}, 
{column_name: st_user_id, validation_class: TimeUUIDType, index_type: KEYS, index_name: st_user_id}, 
{column_name: st_money, validation_class: IntegerType}, 
{column_name: mail, validation_class: UTF8Type}, 
{column_name: password, validation_class: UTF8Type}, 
{column_name: last_visit, validation_class: DateType}, 
{column_name: registered, validation_class: DateType} 
]; 

但即時得到一個例外:

org.apache.cassandra.db.marshal.MarshalException:不能強迫 'allias' 到v版爲1個UUID

什麼,我做錯了什麼?

回答

3

列族的comparator屬性用於對行內的列進行排序。您正在嘗試使用TimeUUID比較器,該比較器要求每個列名都是TimeUUID值。

如果你想使用TimeUUIDs爲您排按鍵,但你可能列名的字符串只是想切換值這些設置,

comparator = 'UTF8Type', 
key_validation_class = 'TimeUUIDType'