无法从Cassandra中检索数据

退出cli之后,我无法从Cassandra中检索数据。 当我回到另一个会话中获取数据时,我得到这个错误:

org.apache.cassandra.db.marshal.MarshalException:无法将“jsmith”parsing为hex字节

看来,列家族和密钥空间。

我也把密钥格式改为ascii(假设用户键为ascii;)…并且不保留设置。

有什么原因吗? 到底是怎么回事?

所有的“承担”命令都是临时的,并且仅限于一个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; 

这与3种方式中的“假设”不同:

  1. 它永久记录在卡桑德拉
  2. Cassandra将强制指定的类型插入数据
  3. 所有的客户端都可以查询和使用这个元数据来做智能的事情,而不仅仅是cli

假设主要是作为旧数据集的解决方法,不能更新为使用“真正的”服务器端类型。