本发明属于计算机统计技术领域,特别涉及一种统计报表的生成方法,可用于对“两客一危”车辆的实时统计。
背景技术:
目前,我国运输行业快速发展,“两客一危”车辆逐年增加,对交通安全带来一定的隐患。所谓“两客一危”车辆,是指从事旅游的包车、三类以上班线客车和运输危险化学品、烟花爆竹、民用爆炸物品的道路专用车辆,由于此类车辆在行驶中涉及到广大群众的人身安全以及对周围环境的影响,因此受到了国家和人民的高度重视。
基于浏览器/服务器模式B/S的“两客一危”车辆监控系统包括车载终端,服务器端,客户端三个部分。其中,车载终端将“两客一危”车辆的实时数据以每分钟两次的频率通过无线网络发送给服务器端;服务器端接收数据并处理数据,将数据显示在客户端的浏览器上;用户通过浏览器监控“两客一危”车辆。
使用该系统,用户可以在浏览器通过查询数据和计算数据生成统计报表,但是,由于系统24小时不间断接收大量数据,生成统计报表耗时长。为了缩短统计报表生成时间,需要提高数据查询效率和查询结果的重用性。
韩巧玲在2010发表的硕士论文“基于分区的网络行为监控系统数据库设计与优化研究”中提出了一种基于静动隔离数据拆分的架构。该方法的实现方案是:以“当天”这个时间分割点将大规模日志数据拆分为实时数据和历史数据;建立两张相同数据结构的数据表,分别为实时表和历史表,将当天的数据存到实时表中,除当天以外的数据都存入历史表中;通过定时任务调度每天将实时数据复制到历史数据表中,并清空实时数据表。该方法虽然将数据表动静分区,减少查询实时数据时全表扫描的记录数,提高了查询效率,但是对于数据统计来说,查询只是第一步,该方法没有涉及到查询结果的缓存。
谷伟和陈莲君在微型电脑应用上发表的论文基于“MySql的查询优化技术研究”中提出了一种改进的查询重用的方法。该方法的实现方案是:将用户输入的sql语句中不规范的关键字经过转化得到规范化的关键字,最终得到标准的sql语句;将查询语句的执行计划及相应的语法结构缓存;通过sql语句比对,直接从缓存中获取结果。该方法虽然实现了当查询语句不规范,查询结果较大时,可以重复使用缓存结果,避免了重复查询。但是该方法由于没有考虑车辆信息统计分析与时间的相关性,因而在不同的时间段查询的结果不同,同时由于该方法没有涉及到对时间段差异化的处理,使得查询结果重用性不高。
技术实现要素:
本发明的目的在于针对上述已有技术的不足,提出一种车辆监控系统的统计报表生成方法,以提高查询结果的重用性,节约统计报表生成时间,提高数据的统计效率。
实现上述目的技术方案是:首先,对数据进行一次水平拆分,以“当天”这个时间分割点将大规模数据拆分为实时数据和历史数据;其次,建立两张相同数据结构的数据表,分别为实时表和历史表,将当天的数据存到实时表中,除当天以外的数据都存入历史表中;接着,按照统计指标新建日统计表;然后,通过定时任务调度每天将实时数据复制到历史表中,将实时数据计算后的统计数据存入日统计表中,清空实时表;最后,根据日统计表,统计得到要求时间段内的统计报表。
具体步骤包括如下:
(1)依据交通部的JT/T 808标准,确定存放当天车辆状态信息字段的内容和数据类型,构成实时表;
(2)依据交通部的JT/T 808标准,确定存放除当天以外的车辆状态信息字段的内容和数据类型,构成历史表;
(3)依据用户需要的统计指标,确定存放当天的统计数据字段的内容和数据类型,构成日统计表;
(4)获取实时数据;
在车辆监控系统中,每个车载终端每30秒自动向服务器端发送一条数据,该数据中包含车辆的实时位置,速度及其他状态信息,并将这些信息存入实时表中;
(5)判断当前时间是否为凌晨0点,若是,则将实时表中的数据复制插入到历史表中,再对实时表中的数据进行计算,将计算结果插入到日统计表中,最后清空实时表中的数据,返回步骤(4);否则,直接返回步骤(4);
(6)以日期为筛选条件,查询日统计表中符合要求的数据,并对这些数据进行计算操作生成用户所需时间段内的统计报表。
本发明与现有技术相比,具有以下优点:
第一,提高了数据查询效率和重用性。
本发明由于将实时数据与历史数据分区,在查询数据时,只处理实时数据,避免扫描大量的历史数据,提高了查询效率;同时由于将以天为粒度的日统计数据作为中间变量存储在数据库中,这些数据在最终生成统计报表时可以重复使用,提高了数据的重用性。
第二,提高了系统的运行效率。
本发明把计算量复杂的日统计计算,安排在系统负荷较小的凌晨进行,有效提高了系统的运行效率。
附图说明
图1为现有“两客一危”车辆监控系统图;
图2为本发明的实现流程图。
具体实施方式
下面结合附图对本发明作进一步的描述。
参照附图1,现有“两客一危”车辆监控系统是指,基于浏览器/服务器模式B/S的“两客一危”车辆监控系统,该系统包括车载终端,服务器端,客户端三个部分,该车载终端安装在“两客一危”车辆上,将“两客一危”车辆的实时数据以每分钟两次的频率通过无线网络发送给服务器端;服务器端接收数据并处理数据,将数据显示在客户端的浏览器上,用户通过浏览器监控“两客一危”车辆;
所述“两客一危”车辆,是指从事旅游的包车、三类以上班线客车和运输危险化学品、烟花爆竹、民用爆炸物品的道路专用车辆。
参照附图2,对本发明的具体实现步骤作进一步的描述。
步骤1,创建实时表。
我国交通部颁布的JT/T 808标准协议,规定了道路运输车辆卫星定位系统车载终端与监管/监控平台之间的通讯协议与数据格式,包括协议基础、通信连接、消息处理、协议分类与说明及数据格式。
依照交通部的JT/T 808标准,确定存放当天车辆的状态信息的实时表,该表表的字段内容包含:区分不同车载终端的SIM卡号,车载终端的经纬度,车载终端的速度,车载终端发送此数据的时间和报警情况,该报警情况包括车载终端是否有警报以及警报的具体类型;
上述字段内容对应的数据类型依次为12位定长字符串CHAR(12),单精度浮点型FLOAT,单精度浮点型FLOAT,混合日期和时间值DATETIME,20位变长字符串VARCHAR(20)。
步骤2,创建历史表。
依照交通部的JT/T 808标准,确定存放除当天以外的车辆状态信息的历史表,该历史表的表字段内容和数据类型与实时表完全相同。
步骤3,创建日统计表。
依据用户需要的统计指标,确定存放当天车辆统计信息的日统计表,该表的字段内容包括:SIM卡号,总记录数,当天车辆的最大速度,当天车辆的最小速度,车辆的在线率,超速记录次数,当天车辆的行驶总里程,当天车辆的停车时长,当天车辆的报警总次数和当天的日期;
上述字段内容对应的数据类型依次为12位定长字符串CHAR(12),整数型INT,单精度浮点型FLOAT,单精度浮点型FLOAT,整数型INT,日期DATE;
该总记录数,是指为服务器端接收到的数据的数目,该车辆在线率是指服务器实际接收到的数据的数目与服务器应该接收到的数据的数目的比率,该超速记录次数是指当天车辆速度超过设定阈值的总次数。
步骤4,获取实时数据。
车辆监控系统中,每个车载终端每30秒自动向服务器端发送一条数据,该数据中包含区分不同车载终端的SIM卡号,车载终端的经纬度,车载终端的速度,车载终端发送此数据的时间和报警情况;
将包含以上车辆实时状态信息的数据存入实时表中。
步骤5,决定是否更新历史表。
判断当前时间是否为凌晨0点,若是,则将实时表中的数据复制插入到历史表中,对历史表进行更新,否则,返回步骤(4)。
步骤6,获取日统计数据。
(6a)依据SIM卡号对实时表中的数据分组,将包含相同SIM卡号的数据分为一组;
(6b)根据每组数据获得车辆当天的一条统计数据,该统计数据包括SIM卡号,总记录数,当天车辆的最大速度,当天车辆的最小速度,车辆在线率,超速记录次数,当天车辆的行驶总里程,当天车辆的停车时长,报警总次数和时间:
这些数据的确定如下:
(6b1)将每组数据的数目作为当天的总记录数n;
(6b2)从n条数据的速度v1,v2,v3,...,vn中得出最大速度的计算结果max(v1,v2,v3,...,vn)和最小速度的计算结果min(v1,v2,v3,...,vn);
(6b3)根据当天的总记录数车辆n,得出在线率的值是n/2880,,其中:2880为车载终端以每分钟两次的频率发送数据,一天共发送2×60×24=2880条数据的数目;
(6b4)将速度超过设定阈值的次数之和记为超速记录次数;
(6b5)将所有数据的速度之和与30秒的时间相互乘,得到行驶总里程:(v1+v2+v3+...+vn)×30;
(6b6)将速度为0的次数与30秒的时间相乘,得到停车时长;
(6b7)将出现报警情况的次数之和记为报警总次数;
(6c)将所有车辆当天的统计数据插入日统计表中。
(6d)清空实时表,并返回步骤(4);
步骤7,生成统计报表。
(7a)若用户需要生成统计报表,则进入生成统计报表的子线程,以日期为筛选条件,查询日统计表中符合要求的数据,否则,退出该子线程;
(7b)依据SIM卡号对查询到的数据分组,将包含相同SIM卡号的数据分为一组,其中每组数据中包含了车辆在某段时间内每天的日统计信息;
(7c)对每组数据确定得到车辆某段时间内的一条统计数据,其包括SIM卡号,该段时间车辆的最大速度,该段时间车辆的最小速度,车辆在线率,超速记录次数,该段时间车辆的行驶总里程,当天车辆的停车时长,即:
依据所有的日统计信息,取每日最大速度的最大值作为该段时间的车辆的最大速度;
取每日最小速度的最小值作为该段时间的车辆的最小速度;
取每日车辆在线率的平均值作为该段时间的车辆的在线率;
取每日超速记录次数的和作为该段时间的车辆的超速记录数;
取每日行驶总里程的和作为该段时间的车辆的行驶总里程;
取每日停车时长的和作为该段时间内车辆的停车时长;
(7d)将所有车辆该段时间的统计数据以表格的形式显示在网页上,该表格为最终的统计报表。
以上描述仅是本发明的一个具体实例,不构成对本发明的任何限制,显然对于本领域的专业人员来说,在了解了本发明内容和原理后,都可能在不背离本发明原理,结构的情况下,进行形式和细节上的各种修改和改变,但是这些基于本发明思想的修正和改变仍在本发明的权利要求保护范围之内。