1

我正在尝试创建一个以 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”强制转换为版本 1 UUID

我做错了什么?

4

1 回答 1

3

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

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

comparator = 'UTF8Type',
key_validation_class = 'TimeUUIDType'
于 2011-09-19T23:28:35.890 回答