我尝试为测验游戏统计数据构建后端:我想知道全局每个图像的识别百分比以及按国家/地区识别图像的百分比 .
目前datamodel是:
TABLE results (
country text,
percent float,
image_id text,
fail int,
ok int,
shown int,
PRIMARY KEY (country, percent, image_id)
);
我可以按国家/地区查询结果,但我无法获得全局结果(图片的百分比更高) .
任何提示?
2 回答
可以定义“TOTAL”国家/地区,该国家/地区将保留所有国家/地区的统计数据 .
附:使
percent
成为主键的一部分并不可能percent
字段的原子更新 .我认为有两种可能的情况:要么数据集足够小 - 那么在
percent
字段上具有二级索引的任何SQL DB都会比cassandra更好地工作,或者SQL DB会有太多数据 - 然后Cassandra用这个数据模型也不起作用,只有部分计数的map / reduce会起作用 .你需要两个CF.
另一种方法是使用排序分区并使用CompoteType的键,因此您的密钥不是PRIMARY KEY(country,percent,image_id)而是PRIMARY KEY((country,percent,image_id)) .
您还需要另一列image_id,您可以在该image_id上放置一个二级索引,以便您可以执行image_id = x的查询