我有关于应用/服务的访问用户的数据:
contentId (assume uuid),
platform (eg. website, mobile etc),
softwareVersion (eg. sw1.1, sw2.5, ..etc),
regionId (eg. us144, uk123, etc..)
....
我非常简单地模仿它
id(String)time(Date)count(int)
contentid1-sw1.1 Feb06 30
contentid1-sw2.1 Feb06 20
contentid1-sw1.1 Feb07 10
contentid1-sw2.1 Feb07 10
contentid1-us144 Feb06 23
contentid1-sw1.1-us144 Feb06 10
....
原因是因为有一个流行的查询,有人可以在一段时间内(例如1月1日至2月5日之间)请求contentId = foo,platform = bar,regionId = baz或其中的任意组合。 / p>
但另一个不容易回答的问题是:
返回顶级K'平台' for ContentId = foo在Jan01 - Feb05之间。顶部表示按该范围内的'计数排序。因此,对于上述数据,在2月6日至2月8日之间查询contentId = contentId1的前2个平台必须返回:
sw1.1 40
sw2.1 30
不确定如何在C *中对其进行建模以获得前K个查询的答案,任何人都有任何想法?
PS:每天有10亿个+条目。 此外,我愿意使用Spark或任何其他框架以及C *来获得这些答案。