定位系统优化

这样一个需求

某公司,通过自动化,来记录员工每天的考勤,及员工在公司中的行走情况。分3个班次,每班次大概1000人。

员工每经过一个办公室,都会收集到其信息。 数据格式:员工ID、时间、办公室ID 

数据信息通过硬件自动采集,每3-5秒钟至少发送一次数据。这一环节不做更多介绍。

在进入公司的时候,先后经过两个门,依次为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。




你可能感兴趣的:(定位)