一种车辆初次入城信息处理方法及信息处理系统与流程

文档序号:20875153发布日期:2020-05-26 16:24阅读:284来源:国知局
一种车辆初次入城信息处理方法及信息处理系统与流程

本发明属于交通信息处理技术领域,尤其涉及一种车辆初次入城信息处理方法。



背景技术:

目前,最接近的现有技术:近年来随着各地平安城市、天网工程的深推进建设,为公安机关的视频侦查工作提供了越来越丰富的情报来源,尤其是这其中的过车数据。随着越来越多的案件与车辆相关,过车数据已经成为案件侦破,抓捕犯罪嫌疑人的关键突破点。可以说,掌握了车辆动态就掌握了犯罪嫌疑人的动态。由此视频侦查技术也成为继刑事技术,技侦技术和网侦技术之后的第四大技术。

而在乘车犯罪的过程中,犯罪分子经常会有一个共同的规律,就是他们往往会离开常住地去异地作案,并且在违法犯罪的前不久才首次出现在该违法地点所在的城市,这就为公安机关办案或排查提供了重要线索;而在现在的卡口系统中,过车记录的数量越来越多,成为海量的数据。据统计在一个普通的中等县城每天卡口、电警等设备拍摄的过车数据的数量就有400万之多,在这些海量的数据中检索分析初次入城车辆的时间地点,为公安机关提供办案线索,从而达到快速的破案,是公安干警们一直存在的需求,比如选定案发时间范围和回溯时间范围,查询在回溯时间范围内未出现过而案发时间范围内首次出现的车辆,在此之上还可以叠加出现次数、卡口范围、车辆类型、车身颜色等限制条件,从而更精确的排查嫌疑车辆。

传统的初次入城分析,最常见的一种是对用户选取的案发时间范围内的过车数据先按车牌号去掉重复数据,然后将用户选取的回溯时间范围内的过车数据也按车牌号去重,最终得到两个较小的数据集,再对两个数据集做关联,得出在案发时间段内出现过,而在回溯时间段内未出现过的车辆数据;该种方案很容易实现,然而存在明显的缺点,首先用户选取的回溯时间可能相当长,以一个县一天的过车数据为400万条为例,用户为了更精确的确定初次入城,往往会选择30天以上的回溯时间,这样就需要扫描1.2亿条数据做去重,耗时很长,5个节点单次查询往往需要20分钟以上。

综上所述,现有技术存在的问题是:现有计算车辆初次入城时间的方法计算速度慢,其需要大量的存储空间,无法灵活高效的进行入城时间的计算。选取的范围变大,计算内存需求就变大耗费资源就变多。

解决上述技术问题的难度:利用小计算资源的情况解决大数据量碰撞分析秒级响应的要求,而且要求可以查实时的初次入城情况。

解决上述技术问题的意义:根据预先计算的中间结果,用户可以选择长时间范围全区域查看初次入城的数据在秒级出来,并且不浪费其他用户使用其他业务需要的资源。加上实时保存一个月的数据存储实时数据可以满足查询分析实时数据的需求,离线分析部分解决跨度时间大范围碰撞分析速度慢浪费资源的问题,实时数据解决离线没办法马上计算的问题。



技术实现要素:

针对现有技术存在的问题,本发明提供了一种车辆初次入城信息处理方法。

本发明是这样实现的,一种车辆初次入城信息处理方法,所述车辆初次入城信息处理方法包括:

利用greenplum数据库的分区、sql语言和大数据库hive以及计算引擎spark通过自定义条件进行初次入城车辆轨迹信息的计算。

进一步,所述车辆初次入城信息处理方法包括以下步骤:

步骤一,在greenplum中建立一张最近一个月的有完整车牌的车辆轨迹数据的数据表vehicletrack_mm;

步骤二,将过去两年的全部过车数据存储在大数据库hive上;

步骤三,通过计算引擎spark的窗口处理程序生成数据表vehicletrack_up、vehicletrack_samepot_up、vehicletrack_samearea_up;

步骤四,通过sparksql每天定时生成每个车牌该天第一次经过每个卡口的过车轨迹信息vehicletrack_first;

步骤五,自定义条件进行数据查询,并通过可视化界面输出查询结果。

进一步,步骤三中,所述数据表vehicletrack_up、vehicletrack_samepot_up、vehicletrack_samearea_up的生成方法如下:

1)利用spark程序订阅hive的数据源信息数据,数据增量流入对车辆轨迹信息窗口依次移动;

2)通过map和reduce函数将过车数据规范化并且按照不同的key进行分组,根据不同的key生成不同的中间表;

3)通过orderby命令将同一个组的数据进行按时间从小到大排序;

4)将最小的数据按excel的格式放入到redis,并将除最小数据以外的其他数据与所述最小数据的redis数据进行比对;

5)如果当前数据过车时间-redis过车时间<2天,则将redis的数据丢弃,并且把当前数据存放至redis;如果当前数据过车时间-redis的过车时间>=2天,则把当前数据根据key保存到相应的中间表,然后把当前数据放到redis重复步骤4),根据不同的key生成中间表。

进一步,步骤2)中,所述根据不同的key生成不同的中间表包括:

当key为车牌号码和车牌种类时,则生成vehicletrack_up;

当key为车牌号码和车牌种类以及点位时,则生成vehicletrack_samepot_up;

当key为车牌号码和车牌种类以及区域时,则生成vehicletrack_samearea_up。

进一步,步骤五中,所述数据查询方法包括:

(1)当查询某段时间内回溯时长是n天的初次入城数据,则通过查询语句直接查询vehicletrack_up即可;

(2)当查询某单个区域某段时间内回溯时长是n天的初次入城数据,则通过查询语句直接查询vehicletrack_samearea_up;

(3)当查询某单个点位某段时间内回溯时长是n天的初次入城数据,则通过查询语句查询vehicletrack_samepot_up;

(4)当查询混合点位或者混合区域的某段时间内回溯时长是n天的初次入城数据,则通过统计sql进行查询。

进一步,步骤(4)中,所述通过统计sql进行查询包括:

利用greenplum的lag函数,通过lag()取当前顺序的上一行记录,结合over分组统计数据;计算出每个车牌在每个条件下的上一条的过车时间然后进行相减得到大于回溯时长的车辆轨迹数据;

同时当时间范围较小包含时间实时的时,统计sql中的vehicletrack_mm;当时间范围较大时则统计vehicletrack_first。

本发明的另一目的在于实施所述车辆初次入城信息处理方法的车辆初次入城信息处理系统,所述车辆初次入城信息处理系统包括:

初始数据表建立模块:用于在greenplum数据库中建立最近一个月的拥有完整车牌的车辆轨迹数据数据表vehicletrack_mm;

大数据库hive:用于存储过去2年全部的过车数据;

中间表生成模块:用于通过spark的窗口处理程序生成数据表vehicletrack_up、vehicletrack_samepot_up、vehicletrack_samearea_up;

数据计算模块:用于通过sparksql每天定时生成每个车牌当天第一次经过每个卡口的过车轨迹信息数据表vehicletrack_first;

参数自定义模块:用于自定义查询条件;

数据查询模块:用于基于自定义的查询条件,利用sql查询命令分别调用不同的数据表中的数据,查询相关初次入城车辆轨迹信息;

结果输出模块:用于通过可视化界面输出查询结果。

进一步,所述初始数据表建立模块包括:

月过车数据表vehicletrack_mm模块:存储最近一个月的拥有完整车牌的车辆轨迹数据;并实时入库,同时在入库时根据规则删除不规则号码同时去除重复的数据;且所述数据表vehicletrack_mm按天分区,并于每日删除之前第31天的数据;

每天第一条车辆表vehicletrack_first模块:存储每天经过每个点位的第一条过车记录信息,存储时间为2年,按月分区;

全区域相同车辆间隔两天以上的车辆轨迹vehicletrack_up模块:存储车辆轨迹及相邻上一条的车辆轨迹信息,存储时间为2年,按月分区;并于每月定时删除最早的前25个月的数据;

相同卡口相同车辆间隔两天以上的车辆轨迹vehicletrack_samepot_up模块:存储车辆轨迹及同一卡口的相邻上一条的车辆轨迹信息,存储时间为2年,按月分区;并于每月定时删除最早的前25个月的数据;

相同区域相同车辆间隔两天以上的车辆轨迹vehicletrack_samearea_up模块:存储车辆轨迹及同一区域的相邻上一条的车辆轨迹信息,存储时间为2年,按月分区;并于每月定时删除最早的前25个月的数据。

本发明的另一目的在于提供一种存储在计算机可读介质上的计算机程序产品,包括计算机可读程序,供于电子装置上执行时,提供用户输入接口以实施所述的车辆初次入城信息处理方法。

本发明的另一目的在于提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行所述的车辆初次入城信息处理方法。

综上所述,本发明的优点及积极效果为:本发明通过卡口、微卡口、卡式电警等各类前端设备抓拍上来的车辆轨迹数据,计算初次入城的车辆,帮助公安管控重点车辆、分析车辆轨迹行为。本方法的初次入城模型提供可选择的区间范围、灵活的时间段选择和自定义的回溯时长,可以方便的计算出某段时间内往前推n(回溯天数)天第一次出现在指定区间范围内的车辆轨迹数据。由于车辆轨迹数据量大,经过调研一个二级市的一天车辆轨迹数据已经到达6000万左右,最低要求是保存2年的车辆轨迹信息。本方法合理利用greenplum数据库的分区、sql语言和大数据hive以及高速的计算引擎spark高效的计算出在这种大数据量情况下各种自定义条件下的初次入城车辆轨迹信息。

本发明合理利用greenplum数据库的分区、sql语言和大数据hive以及高速的计算引擎spark高效的计算出各种自定义条件下的初次入城车辆轨迹信息。

之前在某现场环境每天数据2000万左右,总共保存2年数据将近100亿,使用旧方法和新方法的比较。

附图说明

图1是本发明实施例提供的车辆初次入城信息处理方法流程图。

图2是本发明实施例提供的数据表vehicletrack_up、vehicletrack_samepot_up、vehicletrack_samearea_up的生成逻辑示意图。

图3是本发明实施例提供的车辆初次入城信息处理系统结构示意图。

图中:1、初始数据表建立模块;2、大数据库hive;3、中间表生成模块;4、数据计算模块;5、参数自定义模块;6、数据查询模块;7、结果输出模块。

图4是本发明实施例提供的各数据表示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

针对现有技术存在的问题,本发明提供了一种车辆初次入城信息处理方法,下面结合附图对本发明作详细的描述。

本发明实施例提供的车辆初次入城信息处理方法包括:

利用greenplum数据库的分区、sql语言和大数据库hive以及计算引擎spark通过自定义条件进行初次入城车辆轨迹信息的计算。

如图1所示,本发明实施例提供的车辆初次入城信息处理方法包括以下步骤:

s101,在greenplum中建立一张最近一个月的有完整车牌的车辆轨迹数据的数据表vehicletrack_mm。

s102,将过去两年的全部过车数据存储在大数据库hive上。

s103,通过计算引擎spark的窗口处理程序生成数据表vehicletrack_up、vehicletrack_samepot_up、vehicletrack_samearea_up。

s104,通过sparksql每天定时生成每个车牌该天第一次经过每个卡口的过车轨迹信息vehicletrack_first。

s105,自定义条件进行数据查询,并通过可视化界面输出查询结果。

如图2所示,步骤s103中,本发明实施例提供的数据表vehicletrack_up、vehicletrack_samepot_up、vehicletrack_samearea_up的生成方法如下:

1)利用spark程序订阅hive的数据源信息数据,数据增量流入对车辆轨迹信息窗口依次移动。

2)通过map和reduce函数将过车数据规范化并且按照不同的key进行分组,根据不同的key生成不同的中间表;

3)通过orderby命令将同一个组的数据进行按时间从小到大排序。

4)将最小的数据按excel的格式放入到redis,并将除最小数据以外的其他数据与所述最小数据的redis数据进行比对。

5)如果当前数据过车时间-redis过车时间<2天,则将redis的数据丢弃,并且把当前数据存放至redis;如果当前数据过车时间-redis的过车时间>=2天,则把当前数据根据key保存到相应的中间表,然后把当前数据放到redis重复步骤4),生成中间表。

步骤2)中,本发明实施例提供的根据不同的key生成不同的中间表包括:

当key为车牌号码和车牌种类时,则生成vehicletrack_up。

当key为车牌号码和车牌种类以及点位时,则生成vehicletrack_samepot_up。

当key为车牌号码和车牌种类以及区域时,则生成vehicletrack_samearea_up。

步骤s105中,本发明实施例提供的数据查询方法包括:

(1)当查询某段时间内回溯时长是n天的初次入城数据,则通过查询语句直接查询vehicletrack_up即可。

(2)当查询某单个区域某段时间内回溯时长是n天的初次入城数据,则通过查询语句直接查询vehicletrack_samearea_up。

(3)当查询某单个点位某段时间内回溯时长是n天的初次入城数据,则通过查询语句查询vehicletrack_samepot_up。

(4)当查询混合点位或者混合区域的某段时间内回溯时长是n天的初次入城数据,则通过统计sql进行查询。

如图3所示,步骤(4)中,本发明实施例提供的通过统计sql进行查询包括:

利用greenplum的lag函数,通过lag()取当前顺序的上一行记录,结合over分组统计数据;计算出每个车牌在每个条件下的上一条的过车时间然后进行相减得到大于回溯时长的车辆轨迹数据。

同时当时间范围较小包含时间实时的时,统计sql中的vehicletrack_mm;当时间范围较大时则统计vehicletrack_first。

如图4所示,步骤s103中,本发明实施例提供的车辆初次入城信息处理系统包括:

初始数据表建立模块:用于在greenplum数据库中建立最近一个月的拥有完整车牌的车辆轨迹数据数据表vehicletrack_mm。

大数据库hive:用于存储过去2年全部的过车数据。

中间表生成模块:用于通过spark的窗口处理程序生成数据表vehicletrack_up、vehicletrack_samepot_up、vehicletrack_samearea_up。

数据计算模块:用于通过sparksql每天定时生成每个车牌当天第一次经过每个卡口的过车轨迹信息数据表vehicletrack_first。

参数自定义模块:用于自定义查询条件。

数据查询模块:用于基于自定义的查询条件,利用sql查询命令分别调用不同的数据表中的数据,查询相关初次入城车辆轨迹信息。

结果输出模块:用于通过可视化界面输出查询结果。

本发明实施例提供的初始数据表建立模块包括:

数据表vehicletrack_mm模块:存储最近一个月的拥有完整车牌的车辆轨迹数据;并实时入库,同时在入库时根据规则删除不规则号码同时去除重复的数据;且所述数据表vehicletrack_mm按天分区,并于每日删除之前第31天的数据。

vehicletrack_first模块:存储每天经过每个点位的第一条过车记录信息,存储时间为2年,按月分区。

vehicletrack_up模块:存储车辆轨迹及相邻上一条的车辆轨迹信息,存储时间为2年,按月分区;并于每月定时删除最早的前25个月的数据。

vehicletrack_samepot_up模块:存储车辆轨迹及同一卡口的相邻上一条的车辆轨迹信息,存储时间为2年,按月分区;并于每月定时删除最早的前25个月的数据。

vehicletrack_samearea_up模块:存储车辆轨迹及同一区域的相邻上一条的车辆轨迹信息,存储时间为2年,按月分区;并于每月定时删除最早的前25个月的数据。

上述数据表字段如下:

下面结合具体实施例对本发明作进一步说明。

实施例:

本发明的目的在于合理利用greenplum数据库的分区、sql语言和大数据hive以及高速的计算引擎spark高效的计算出各种自定义条件下的初次入城车辆轨迹信息。

(1)在greenplum中建立一张最近一个月的有完整车牌的车辆轨迹数据vehicletrack_mm,该表按天分区增加查询统计速度方便维护每天删除之前第31天的数据。该表数据实时入库在入库时根据规则删除号码不规则,还有去除重复的数据减少该表的数据量。

(2)全量的2年过车数据存在hive上面

(3)通过spark的窗口处理程序生成vehicletrack_up、、vehicletrack_samearea_up生成逻辑如图4以上三张表都是保存2年数据按月分区,每个月定时删除最早的前25个月的数据。

(4)通过sparksql每天定时生成每个车牌该天第一次经过每个卡口的过车轨迹信息vehicletrack_first。表都是保存2年数据按月分区,每个月定时删除最早的前25个月的数据。

(5)a、当客户只查询某段时间内回溯时长是n天的初次入城数据就直接通过普通的查询语句去查询vehicletrack_up;b、当客户查询的是某单个区域某段时间内回溯时长是n天的初次入城数据就直接通过普通的查询语句去查询vehicletrack_samearea_up;c、当客户查询的是某单个点位某段时间内回溯时长是n天的初次入城数据就直接通过普通的查询语句去查询vehicletrack_samepot_up;d、当客户查询的是混合点位或者混合区域的某段时间内回溯时长是n天的初次入城数据就直接通过统计sql去统计vehicletrack_mm(时间范围比较小包含时间实时的时候)vehicletrack_first(时间范围比较大的时候统计该表)。

如图2所示,由于数据量太大再大表的数据进行统计查询经常会使得数据库奔溃并且查询性能不好,所以采用了多个中间表的方式以空间换时间,提供查询的性能,主要表如下。

vehicletrack_mm:近一个月的有完整车牌的车辆轨迹数据。

vehicletrack_first:每天经过每个点位的第一条过车记录信息(存2年,按月分区)。

vehicletrack_up:车辆轨迹及相邻上一条的车辆轨迹信息(存2年,按月分区)。

vehicletrack_samepot_up:车辆轨迹及同一卡口的相邻上一条的车辆轨迹信息(存2年,按月分区)。

vehicletrack_samearea_up:车辆轨迹及同一区域的相邻上一条的车辆轨迹信息(存2年,按月分区)

vehicletrack_up、vehicletrack_samepot_up、vehicletrack_samearea_up三张表的主要生产逻辑:

1)利用spark程序订阅hive的数据源信息数据,数据增量流入对车辆轨迹信息窗口一个一个移动。

2)通过map和reduce函数把过车数据规范化并且把同一个key(如图2各个不同的key)的分配到同一个分组。

3)通过orderby把同一个组的数据进行按时间从小到大排序。

4)把最小的那条数据按图2excel的格式放入到redis,接下来的数据和该条redis的数据比对如果(该条过车时间-redis过车时间<2天)就把redis的数据丢弃,并且把该条数据放到redis;直到接下的数据出现(该条过车数据-redis的过车时间>=2天)就把该条数据根据key保存到相应的中间表,然后把该条数据放到redis重复做4的操作;生成中间表。

如下所示:是完整的统计初次入城的sql主要是利用greenplum的lag函数。lag()就是取当前顺序的上一行记录。结合over就是分组统计数据。方便计算出每个车牌在每个条件下的上一条的过车时间然后进行相减求出他大于回溯时长的车辆轨迹数据:

下面结合具体实施例及实验数据对本发明作进一步描述。

实施例

各个查询情况的sql文件和数据表如下:

表1

表2

表3

表4

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1