这样一个需求redis
某公司,经过自动化,来记录员工天天的考勤,及员工在公司中的行走状况。分3个班次,每班次大概1000人。mongodb
员工每通过一个办公室,都会收集到其信息。 数据格式:员工ID、时间、办公室ID 数据库
数据信息经过硬件自动采集,每3-5秒钟至少发送一次数据。这一环节不作更多介绍。spa
在进入公司的时候,前后通过两个门,依次为A,B,这里是有前后书序的。上班,先A,后B,下班先B后A。设计
进入后一个办公室的时间,即为离开前一个办公室的时间。 代理
办公室的ID是惟一的。数据分析
规定:A:1,B:2,工厂里面的是2,3,4自动化
最终收集到杂乱无章的数据,如工人甲,1,1,1,2,2,3,3,3,3,3,4,4..,5,5 ,2,2,1,1监控
这样这名工人就完成了进入工厂,到办公室,离开工厂。硬件
现须要统计 进入工厂的时间:第一次进入A的时间,第一次进入B的时间。
对于每个办公室,进入时间与离开时间
离开工厂的时间。
最终:分析出员工的考勤(上下班)、在公司的轨迹线路,最新位置。时间延迟不能超过2分钟。监控室会实时查看相关数据。数据是经过TCP接收的。
阶段一:
将数据原始存储到数据库中,而后经过代理运行分析,将分析后的结果存储到数据库中。
临时数据在10-20万,结果数据在200、300万时已有些吃力。每分析一次最长须要10秒左右。
此方法也是通过了数次调整。
阶段二
数据分析过程不在数据库中处理,而在SOCKET中进行处理。数据库不作分析,只作插入、读取操做。
对于频繁读取的数据,也是存储的SOCKET中。如即时位置。
自行设计了一套(UDP)协议,读取最新数据。
工做量增长了不少,可是处理过程起来很是快!须要将数据库数据与UDP读取到的数据进行合并。
阶段三
若是数据量巨大,将使用redis+mongodb。