111,128
社区成员
发帖
与我相关
我的任务
分享public class 时间窗口{
public string ID;
public DateTime[ ] 发生时间; // 倒序的,只记录最近发生事件的时间
public int 最大记录次数 = 20;
public int 最多记录天数 = 70;
}
其结构基本上就是如此。
通常使用 NoSql 来存储这类系统,更新这类系统。并且至少达到每秒更新(保存)10万个时间窗口数据对象的水平。
当然你可能会在“发生时间”属性上做一些数据结构优化,例如预先分配2倍于“最大记录次数”的空间,并且用两个指针数字来表示数组空间中有效数字的起点位置和终止位置。这样就避免每一次填入新的事件时间时去重建数组。
基于时间窗口有很多业务算法需求。例如“当一只股票突破了5日均线,5分钟内又突破了10日均线,站在10周均线之上(比较站在10周均线之上和站在10周均线之下两个事件发生的时间大小),那么就赶紧买入。
我只是随便瞎举一个业务例子而已,不要当真。但是这种系统是真实的。当你监视100只股票,如果你是从海量数据里边查询(视图)去作为决策参考,那么你的决策效率就低了1000倍,甚至即使是电脑根本承受不住的。因此应该是直接从时间窗口系统中进行决策判断,而不是从原始数据去决策。
自己顶一下,大家都没做过成就吗?