退出cli后,我无法从Cassandra中检索数据。当我回到另一个会话中获取数据时,我收到此错误:
org.apache.cassandra.db.marshal.MarshalException:无法将'jsmith'解析为十六进制字节
列系列似乎也停留在键空间中。
我还将密钥格式更改为ascii(假设用户密钥为ascii;)......并且不会保持设置状态。
有原因吗?发生了什么事?
答案 0 :(得分:16)
所有“假设”命令都是临时命令,仅限于单个cli会话。对于那些现在没有坐在cli面前的人,我们指的是:
assume <cf> comparator as <type>;
assume <cf> sub_comparator as <type>;
assume <cf> validator as <type>;
assume <cf> keys as <type>;
Assume one of the attributes (comparator, sub_comparator, validator or keys)
of the given column family match specified type. The specified type will
be used when displaying data returned from the column family.
这些是纯粹的客户端。
您要做的是在ColumnFamily定义中永久记录该元数据,例如:从自述文件,
create column family Users with comparator=UTF8Type and default_validation_class=UTF8Type and key_validation_class=UTF8Type;
这与“假设”有三种不同之处:
假设主要是旧数据集的解决方法,无法更新为使用“真正的”服务器端类型。