我希望用户可以从任何设备查看和搜索他们在我的网站上访问过的网页的标题 鉴于以下要求,哪些NoSQL会完成这项工作并让用户满意? 数据大小:30亿行(600万用户,保留500个标题/用户的历史记录)。 〜1.5TB。
行/文档结构:[userId(GUID),pageId(GUID),ViewedTime,pageTitle(最多160个字符)]
写入(预期写入率:每秒查看2,000页):
当用户查看页面时,将创建一个新行,除非用户以前查看过该页面,并且我只是更新现有行的ViewedTime。
查询(预期查询率:300 /秒):
1.通过userId检索100-500个最新标题(使用String.indexOf()扫描关键字。)
2.通过userId AND pageID检索行。
3.清理 - 通过删除旧版本,每个用户减少500个标题的批处理作业。
注意:
答案 0 :(得分:2)
我想你可以和Cassandra一起去。它是写入优化的,在执行读取操作时,您可以指定数据的最新状态。如果您使用读取的最低一致性配置,它也会表现得相当好。否则,cassandra的阅读速度很慢。