离散的数据分析指无法停止变化的多个数据源进行分析!
例如商场有5个门,监控会纪录实时的客流数据。
需求是某个时间点对这5个门的客流量进行排序?
传统数据库的做法是把这5个门的数据记录在同一个表内,在某个时间点时读这个表进行排序。
这样就好比有个上帝视角可以时间暂停,在暂停时间之后读五个门的数据进行排序得到某个时间点的数据。
在实时运行的系统内这样做显然不可接受,当前只有5个门,如果有50个甚至500个甚至5000个,
那怕只是很短暂的暂停行为都不可接受。
回到面向对象的数据分析,就好比在每个门的边上站着一个保安,
我们作为一个数据统计者要走到每个保安的面前才能获得当前的数据。
把5个门的数据都访问一圈之后得到当前流量的排序。
这里也有一个问题就是时间差的问题。
当把每个门都访问一遍是需要时间的,当问第一个门的时候是5点钟,
问到第五个门的时候是5点半。
我们得到的排序是5点还是5点半的呢?
那么就要求每个对象要根据时间记录数据,每次数据改变的时候记录时间。
这样我们就可以知道在5点钟的时候商场流量的准确排名。
在足够庞大的数据源面前,我们做为一个对象,需要通过对象的视角来分析数据。
上帝视角或者时间暂停是一种解决办法,也许是时候换一种更自然的方式思考问题