【发布时间】:2011-11-02 12:38:08
【问题描述】:
我有 0.8.2 的单节点 cassandra 安装。我用 cassandra-cli 创建了一些列族,比如
create column family demo;
现在我必须在这个列族上使用二级索引。为此我需要升级架构。当我尝试使用 cassandra-cli 升级它时
update column family demo with comparator=BytesType and column_metadata=[{column_name: col1, validation_class: UTF8Type, index_type: KEYS}];
我收到以下错误消息
org.apache.cassandra.db.marshal.MarshalException: 无法解析 'col1'
我尝试过使用 bytes('col1') ,假设关键字 ,ascii 和 utf8 都不起作用。
十六进制字节
虽然同样的事情在 cassandra 0.8.4 上工作得很好
【问题讨论】:
-
您是否尝试过使用十六进制值,例如“column_name: 636f6c31”,由于比较器是 BytesType,我相信它需要字节。不知道为什么版本的变化......
-
我也有同样的想法并尝试使用十六进制值,它可以工作,但是当我尝试使用 where col1='some value' 获取值时,它返回零行。
-
当您执行 cassandra-cli 'describe demo' 时,您的列族是什么样的?
标签: schema cassandra database-indexes