读取具有不同值类型的列

时间:2012-08-23 06:48:00

标签: cassandra hector

一个SliceQuery<长,字符串,字符串>表示keytype为long,列名为string,列值为string。当我使用QueryResult<执行切片查询时ColumnSlice<字符串,字符串> >我可以获取所有列,但键很长,所以必须有一个值为long类型的列。我在这里看到类型安全如何工作有点令人困惑(因为查询结果将获得列类型)。 此外,如果存在值类型不是字符串的列,则必须出现问题。

如何使用可用于查询不同值类型列的通用切片查询?

P.S:我是cassandra / hector的新手。

由于

1 个答案:

答案 0 :(得分:1)

几乎。第一种类型是指出的行键类型,但行键不存储为列。行键存储在其他特殊位置。这是来自关系数据库世界(像我一样)的人们绊倒的人之一。

至于如何管理具有不同类型的列值,有一种双管齐下的方法。首先,将值存储为字节数组并自行序列化。其次,您键入列名称以告诉您正在处理哪个列 - 以及哪个值类型。一旦知道了正确的类型,就可以使用适当的Serializer将字节值反序列化为正确类型的变量。对于您自己的复杂对象和特殊类型,您可以编写自己的序列化程序。