cassandra-cli:无法强制'allias'到版本1 UUID

时间:2011-09-19 21:18:23

标签: exception cassandra uuid coerce

我很想创建一个以TimeUUIDType作为行名称的列族:

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'to v ersion 1 UUID

我做错了什么?

1 个答案:

答案 0 :(得分:3)

列族的比较器属性用于对行内的列进行排序。您正在尝试使用TimeUUID比较器,这需要每个列名称都是TimeUUID值。

如果您想使用TimeUUID作为行键,但是列名称的字符串可能只是想切换这些设置的值,

comparator = 'UTF8Type',
key_validation_class = 'TimeUUIDType'