0

我将照片存储在列表 cql3 列中。我可以从 cql3 轻松查询列表,但我还需要了解 Cassandra 存储模型如何处理列表,以便能够使用 JMX bulkLoad 服务将我的数据导入 Cassandra。如果我将一些测试数据插入到这样的列表中:

insert into dat.lgr (id, photos) values (0, [0xaa, 0xbb]);

使用 cli 查询的结果数据如下所示:

=> (column=photos:2fce75c0fe9811e2ab248b7126053a99, value=aa, timestamp=1375794036508000)
=> (column=photos:2fce75c1fe9811e2ab248b7126053a99, value=bb, timestamp=1375794036508000)

所以看起来 Cassandra 实际上为列表中的每个元素存储了一个列,由包含集合名称和未知十六进制数字的复合列名称标识。该数字可能是一个 64 位散列,或两个 32 位散列附加在一起。但是什么被散列了?我查看了源代码,但一无所获。任何帮助表示赞赏。

4

1 回答 1

2

我建议列表项的列名是 UUID。至少这两个值都代表有效日期“格林威治标准时间 2013 年 8 月 6 日星期二下午 1:00:36”(在http://www.famkruithof.net/uuid/中尝试“2fce75c0-fe98-11e2-ab24-8b7126053a99”例如uuidgen )。

这很容易验证 - 只需截断表格并重复相同的语句。如果我的猜测是正确的,对于相同的数据,你会得到完全不同的列名。

于 2013-08-06T23:34:32.177 回答