avatar
c*8
2
大量的streaming message,每个message有两个fields,第一个是company name,第二
个是这个message产生的时间(如12:01 02/18/2015),现在需要做到查询像前1分钟内
,前15 minutes内,1小时内,1天内,或者一个月内产生的messages数量在Top k 的
company. 由于message数量可能非常大,如何设计一个数据结构使得处理数据还有查询
top k的效率尽可能高,而且使用的store memory也尽量小?不属于distributed
computing的范畴,只考虑一天机器就行。多谢!
avatar
c*8
3
只需要思路就行,不需要coding,大家有idea么?多谢哈。
avatar
w*m
4
建立一个queue,随时间轴移动,补充新值得时候,pop掉超过一个月的。
建立一个hash table作为counter,随时更新queue的数据。
建立一个priority queue,把hash table的key和value扔进去。从里面读topK的key和
value。
avatar
c*8
5
可是要求不能删数据,因为他有可能要知道一年内的,或者所有时间的。

【在 w********m 的大作中提到】
: 建立一个queue,随时间轴移动,补充新值得时候,pop掉超过一个月的。
: 建立一个hash table作为counter,随时更新queue的数据。
: 建立一个priority queue,把hash table的key和value扔进去。从里面读topK的key和
: value。

avatar
T*u
6
数据是time order的吗
avatar
c*8
7
数据应该是按时间过来的,因为是streaming的。

【在 T*****u 的大作中提到】
: 数据是time order的吗
avatar
w*s
8
mark
avatar
m*n
9
这个题,设计方法很多阿。
具体要问清楚要求。
比如,要求的精度是多少,精度越高,内存就会越大。
查询频率如何,这个和精度是相关的,如果每秒查询一次,精度要求在毫秒量级,内存
不可能很小。
还有,1分钟的查询和1天的查询,精度可以不同的话,就分层设计可以省下很多内存。

【在 c****8 的大作中提到】
: 大量的streaming message,每个message有两个fields,第一个是company name,第二
: 个是这个message产生的时间(如12:01 02/18/2015),现在需要做到查询像前1分钟内
: ,前15 minutes内,1小时内,1天内,或者一个月内产生的messages数量在Top k 的
: company. 由于message数量可能非常大,如何设计一个数据结构使得处理数据还有查询
: top k的效率尽可能高,而且使用的store memory也尽量小?不属于distributed
: computing的范畴,只考虑一天机器就行。多谢!

avatar
c*8
10
我后来也是问了题目,好像精度要求只要分钟就行。

【在 m*****n 的大作中提到】
: 这个题,设计方法很多阿。
: 具体要问清楚要求。
: 比如,要求的精度是多少,精度越高,内存就会越大。
: 查询频率如何,这个和精度是相关的,如果每秒查询一次,精度要求在毫秒量级,内存
: 不可能很小。
: 还有,1分钟的查询和1天的查询,精度可以不同的话,就分层设计可以省下很多内存。

avatar
c*8
11
如果精度到分钟,怎么设计更好?
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。