为什么我不能将此复合列名称作为Bytes插入到CQL blob中?

时间:2012-06-07 21:27:27

标签: cassandra cql pelops

我有一个CQL 3 CF

CREATE TABLE entries (
  id text,
  va text,
  ts bigint,
  idxc blob,
  PRIMARY KEY (id, va, ts)
);

使用pelops我会得到一个Bytes插入( [0,4,0,0,0,4,0,0,0,0,0,1,55,-56,-41,6,14,0,0,16,65,50,82,97 ,84,85,95,82,72,71,115,69,89,115,100,49,0,0,8,0,4,-63,-24,-121,-16,35, - 80,0,0,2,10,10,10,0]) 这个例外:

org.scale7.cassandra.pelops.exceptions.InvalidRequestException: (String didn't validate.)[ks][entries][aKey:1339104364078000:idxc] failed validation
    at org.scale7.cassandra.pelops.exceptions.IExceptionTranslator$ExceptionTranslator.translate(IExceptionTranslator.java:47)

我可以使用相同的方法插入其他字节数组。

3 个答案:

答案 0 :(得分:0)

Pelops可能还不支持cql3样式的复合主键。 (实际上,这只是列元数据应该只与复合列名称的最后一个组件匹配。)我建议使用Pelops开发人员进行检查。

答案 1 :(得分:0)

我没有和Pelops一起工作过,所以这是一个黑暗中的镜头,但要确认你的mutator传递了一个字节[](我注意到你的OP中的大写字母B),如果没有,请尝试转换为调用中的byte []。如果你传递的内容没有方法签名,它可能会接受它的toString()版本并继续前进。

答案 2 :(得分:0)

让我们结束这个:结论:CQL 3仍然是测试版,不要指望它是无故障的。

我现在使用旧样式架构定义没有问题。