一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据防重复过滤方法、装置、存储介质及电子设备与流程

2022-05-06 07:37:26 来源:中国专利 TAG:


1.本发明涉及数据处理的技术领域,特别是涉及一种数据防重复过滤方法、装置、存储介质及电子设备。


背景技术:

2.车联网的概念源于物联网,即车辆物联网,是以行驶中的车辆为信息感知对象,借助新一代信息通信技术,实现车与x(即车与车、人、路、服务平台)之间的网络连接,提升车辆整体的智能驾驶水平,为用户提供安全、舒适、智能、高效的驾驶感受与交通服务,同时提高交通运行效率,提升社会交通服务的智能化水平。其中,车与云平台间的通信是指车辆通过卫星无线通信或移动蜂窝等无线通信技术实现与车联网服务平台的信息传输,接受平台下达的控制指令,实时共享车辆数据。
3.因此,车联网服务器平台在获取车辆数据,如车辆实时数据、历史信息、事件信息、行驶信息等的同时,还需要对数据进行分析、存储。这是因为各行业的个性化业务需求对数据的有效性有较高的要求。因此,如何在大并发的数据上报过程中,避免由于车辆错误等原因造成数据重复上报的问题,成为当前亟待解决的课题。


技术实现要素:

4.鉴于以上所述现有技术的缺点,本发明的目的在于提供一种数据防重复过滤方法、装置、存储介质及电子设备,通过车辆报文数据的消息id(identity document,身份标识)的比对实现数据的防重复过滤,从而有效提升了车辆网数据的有效性。
5.为实现上述目的及其他相关目的,本发明提供一种数据防重复过滤方法,包括以下步骤:接收车辆报文数据;所述车辆报文数据包括设备序列号、消息id和业务数据;判断数据库中所述设备序列号下是否已存所述消息id;若未存所述消息id,则存储所述车辆报文数据;否则,将所述车辆报文数据作为重复数据过滤丢弃。
6.于本发明一实施例中,还包括接收所述车辆报文数据后,将接收到的车辆报文数据存储至消息队列,通过消费所述消息队列来获取所述设备序列号和消息id。
7.于本发明一实施例中,所述数据库采用非关系型数据库。
8.于本发明一实施例中,判断所述数据库中所述设备序列号下是否已存所述消息id包括以下步骤:
9.获取所述数据库中所述设备序列号对应的已存最大消息id;
10.判断所述消息id是否大于所述已存最大消息id;若是,则判断未存所述消息id;若否,则判断已存所述消息id。
11.于本发明一实施例中,存储所述车辆报文数据包括以下步骤:
12.判断所述消息id是否大于预设最大消息id;若是,重置所述消息id并存储;若否,直接存储所述消息id;
13.将所述设备序列号存储至所述数据库中;
14.将所述业务数据存储至所述数据库中。
15.于本发明一实施例中,重置所述消息id时,采用所述消息id除以所述预设最大消息id的余数。
16.对应地,本发明提供一种数据防重复过滤装置,包括接收模块、判断模块和过滤处理模块;
17.所述接收模块,接收车辆报文数据;所述车辆报文数据包括设备序列号、消息id和业务数据;
18.所述判断模块,判断数据库中所述设备序列号下是否已存所述消息id;
19.所述过滤处理模块,若未存所述消息id,则存储所述车辆报文数据;否则,将所述车辆报文数据作为重复数据过滤丢弃。
20.于本发明一实施例中,所述接收模块还包括报文数据处理模块,所述报文数据处理模块在接收所述车辆报文数据后,将接收到的车辆报文数据存储至消息队列,通过消费所述消息队列来获取所述设备序列号和消息id。
21.于本发明一实施例中,所述数据库采用非关系型数据库。
22.于本发明一实施例中,所述判断模块包括获取模块和消息id判断模块:
23.所述获取模块,获取所述数据库中所述设备序列号对应的已存最大消息id;
24.所述消息id判断模块,判断所述消息id是否大于所述已存最大消息id;若是,则判断未存所述消息id;若否,则判断已存所述消息id。
25.于本发明一实施例中,所述过滤处理模块包括消息id处理模块、第一存储模块和第二存储模块;
26.所述消息id处理模块,判断所述消息id是否大于预设最大消息id;若是,重置所述消息id并存储;若否,直接存储所述消息id;
27.所述第一存储模块,将所述设备序列号存储至所述数据库中;
28.所述第二存储模块,将所述业务数据存储至所述数据库中。
29.于本发明一实施例中,所述消息id处理模块重置所述消息id时,采用所述消息id除以所述预设最大消息id的余数。
30.本发明提供一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的数据防重复过滤方法。
31.本发明提供一种电子设备,包括:处理器及存储器;
32.所述存储器用于存储计算机程序;
33.所述处理器用于执行所述存储器存储的计算机程序,以使所述电子设备执行上述的数据防重复过滤方法。如上所述,本发明所述的数据防重复过滤方法、装置、存储介质及电子设备,具有以下有益效果:
34.(1)通过车辆报文数据的消息id的比对实现数据的防重复过滤,从而有效提升了车辆网数据的有效性;
35.(2)能够更好地满足车联网数据的各种个性化业务需求,极具实用性。
附图说明
36.图1显示为本发明的数据防重复过滤方法于一实施例中的应用场景架构示意图;
37.图2显示为本发明的数据防重复过滤方法于一实施例中的流程图;
38.图3显示为本发明的数据防重复过滤装置于一实施例中的结构示意图;
39.图4显示为本发明的电子设备于一实施例中的结构示意图。
40.元件标号说明
41.31
ꢀꢀꢀꢀꢀꢀꢀꢀ
接收模块
42.32
ꢀꢀꢀꢀꢀꢀꢀꢀ
判断模块
43.33
ꢀꢀꢀꢀꢀꢀꢀꢀ
过滤处理模块
44.41
ꢀꢀꢀꢀꢀꢀꢀꢀ
处理器
45.42
ꢀꢀꢀꢀꢀꢀꢀꢀ
存储器
具体实施方式
46.以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
47.需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
48.如图1所示,本发明的数据防重复过滤方法应用于电子设备和车载终端组成的应用场景中。所述车载终端能够深度读取汽车can总线数据和私有协议,车载终端具有双核处理的obd模块,双核处理的cpu构架,分别采集汽车总线dcna、kcan、ptcan相关的总线数据,通过gprs网络将数据传出到电子设备,提供车况报告、行车报告、油耗统计、故障提醒、违章查询、位置轨迹、驾驶行为、安全防盗、预约服务、远程找车、利用手机控制汽车门、窗、灯、锁、喇叭、双闪、反光镜折叠、天窗等设备、监听中控警告和安全气囊状态等功能。在本发明中,所述车载终端将采集到的车辆数据以报文的形式发送至所述电子设备,由所述电子设备实现防重复的数据过滤丢弃,从而有效提升了车辆网数据的有效性,满足于各个应用场景下的需求,极具实用性。
49.如图2所示,于一实施例中,本发明的数据防重复过滤方法包括以下步骤:
50.步骤s1、接收车辆报文数据;所述车辆报文数据包括设备序列号、消息id和业务数据。
51.具体地,所述车载终端采集车辆数据,并采用车辆报文数据的形式发送至电子设备。其中,所述车辆报文数据包括消息头和消息体;所述消息头包括设备序列号和消息id。所述消息体包括业务数据。所述设备序列号用于标识车辆上的设备。所述消息id用于标识消息,通常采用累加的方式来设置所述消息id。所述业务数据用于标识设备的相关数据,以供后续分析处理使用。
52.于本发明一实施例中,所述电子设备将接收到的车辆报文数据存储至kafka消息队列,通过消费所述kafka消息队列,解析所述消息头来获取所述设备序列号和消息id。其
中,kafka是一种高吞吐量的分布式发布订阅消息系统,有如下特性:通过o(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以tb的消息存储也能够保持长时间的稳定性能;高吞吐量,即使是非常普通的硬件kafka也可以支持每秒数百万的消息;支持通过kafka电子设备和消费机集群来分区消息;支持hadoop并行数据加载。
53.步骤s2、判断所述数据库中所述设备序列号下是否已存所述消息id。
54.具体地,对于针对同一设备的车辆报文数据,所述电子设备通过消息id来相互区分。即对于同一设备,同一车辆报文数据具有相同的消息id,不同的车辆报文数据具有不同的消息id。故所述电子设备在数据库中所述设备序列号下查找是否已存有所述消息id,若有则表明对应的车辆报文数据是重复的,需要过滤丢弃。
55.于本发明一实施例中,判断所述电子设备中的数据库中所述设备序列号下是否已存所述消息id包括以下步骤:
56.21)获取所述数据库中所述设备序列号对应的已存最大消息id。
57.22)判断所述消息id是否大于所述已存最大消息id;若是,则判断未存所述消息id;若否,则判断已存所述消息id。
58.具体地,由于所述消息id是通过累计方式进行编码的,故当所述消息id大于所述已存最大消息id时,表明所述车辆报文信息之前未在所述电子设备存储,需要进行存储处理;否则表明所述车辆报文数据之前已存储,属于重复数据,需要进行丢弃。
59.于本发明一实施例中,所述数据库采用非关系型数据库。非关系型数据库能够解决高并发、高可用、高可扩展,大数据存储等一系列问题,如redis数据库。redis(remote dictionary server),即远程字典服务,是一个开源的使用ansi c语言编写、支持网络、可基于内存亦可持久化的日志型、key-value数据库,并提供多种语言的api。
60.步骤s3、若未存所述消息id,则存储所述车辆报文数据;否则,将所述车辆报文数据作为重复数据过滤丢弃。
61.于本发明一实施例中,存储所述车辆报文数据包括以下步骤:
62.31)判断所述消息id是否大于预设最大消息id;若是,重置所述消息id并存储;若否,直接存储所述消息id。
63.具体地,为了避免消息id溢出的问题,本发明中预设有预设最大消息id。若所述消息id大于所述预设最大消息id,则首先需要重置所述消息id再存储重置后的消息id。于本发明一实施例中,重置所述消息id时,采用所述消息id除以所述预设最大消息id的余数。
64.32)将所述设备序列号存储至所述数据库中。
65.33)将所述业务数据存储至所述数据库中。
66.具体地,在完成消息id和设备序列号存储之后,再将所述业务数据存储至所述数据库中。对于同一车辆报文数据中的消息id、设备序列号和业务数据,通过关联方式存储至所述数据库中,以便后续查看、分析和处理。
67.如图3所示,于一实施例中,本发明的数据防重复过滤装置应用在电子设备,包括接收模块31、判断模块32和过滤处理模块33。
68.接收模块31用于接收车辆报文数据;所述车辆报文数据包括设备序列号、消息id和业务数据。
69.具体地,所述车载终端采集车辆数据,并采用车辆报文数据的形式发送至电子设
备。其中,所述车辆报文数据包括消息头和消息体;所述消息头包括设备序列号和消息id。所述消息体包括业务数据。所述设备序列号用于标识车辆上的设备。所述消息id用于标识消息,通常采用累加的方式来设置所述消息id。所述业务数据用于标识设备的相关数据,以供后续分析处理使用。
70.于本发明一实施例中,所述接收模块还包括报文数据处理模块,所述报文数据处理模块在接收所述车辆报文数据后,将接收到的车辆报文数据存储至消息队列,通过消费所述消息队列来获取所述设备序列号和消息id。其中,kafka是一种高吞吐量的分布式发布订阅消息系统,有如下特性:通过o(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以tb的消息存储也能够保持长时间的稳定性能;高吞吐量,即使是非常普通的硬件kafka也可以支持每秒数百万的消息;支持通过kafka电子设备和消费机集群来分区消息;支持hadoop并行数据加载。
71.判断模块32与接收模块31相连,用于判断所述数据库中所述设备序列号下是否已存所述消息id。
72.具体地,对于针对同一设备的车辆报文数据,所述电子设备通过消息id来相互区分。即对于同一设备,同一车辆报文数据具有相同的消息id,不同的车辆报文数据具有不同的消息id。故所述电子设备在数据库中所述设备序列号下查找是否已存有所述消息id,若有则表明对应的车辆报文数据是重复的,需要过滤丢弃。
73.于本发明一实施例中,所述判断模块32包括获取模块和消息id判断模块。
74.21)所述获取模块,获取所述数据库中所述设备序列号对应的已存最大消息id。
75.22)所述消息id判断模块,判断所述消息id是否大于所述已存最大消息id;若是,则判断未存所述消息id;若否,则判断已存所述消息id。
76.具体地,由于所述消息id是通过累计方式进行编码的,故当所述消息id大于所述已存最大消息id时,表明所述车辆报文信息之前未在所述电子设备存储,需要进行存储处理;否则表明所述车辆报文数据之前已存储,属于重复数据,需要进行过滤丢弃。
77.于本发明一实施例中,所述数据库采用非关系型数据库。非关系型数据库能够解决高并发、高可用、高可扩展,大数据存储等一系列问题,如redis数据库。redis(remote dictionary server),即远程字典服务,是一个开源的使用ansi c语言编写、支持网络、可基于内存亦可持久化的日志型、key-value数据库,并提供多种语言的api。
78.过滤处理模块33与所述判断模块32相连,用于若未存所述消息id,则存储所述车辆报文数据;否则,将所述车辆报文数据作为重复数据过滤丢弃。
79.于本发明一实施例中,所述过滤处理模块33包括消息id处理模块、第一存储模块和第二存储模块。
80.31)所述消息id处理模块,判断所述消息id是否大于预设最大消息id;若是,重置所述消息id并存储;若否,直接存储所述消息id。
81.具体地,为了避免消息id溢出的问题,本发明中预设有最大消息id。若所述消息id大于所述预设最大消息id,则首先需要重置所述消息id再存储重置后的消息id。于本发明一实施例中,所述消息id处理模块重置所述消息id时,采用所述消息id除以所述预设最大消息id的余数。
82.32)所述第一存储模块,将所述设备序列号存储至所述数据库中。
83.33)所述第二存储模块,将所述业务数据存储至所述数据库中。
84.具体地,在完成消息id和设备序列号存储之后,再将所述业务数据存储至所述数据库中。对于同一车辆报文数据中的消息id、设备序列号和业务数据,通过关联方式存储至所述数据库中,以便后续查看、分析和处理。
85.需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现,也可以全部以硬件的形式实现,还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如:x模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现。此外,x模块也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上x模块的功能。其它模块的实现与之类似。这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,简称asic),一个或多个微处理器(digital singnal processor,简称dsp),一个或者多个现场可编程门阵列(field programmable gate array,简称fpga)等。当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,如中央处理器(central processing unit,简称cpu)或其它可以调用程序代码的处理器。这些模块可以集成在一起,以片上系统(system-on-a-chip,简称soc)的形式实现。
86.本发明的存储介质上存储有计算机程序,该程序被处理器执行时实现上述的数据防重复过滤方法。优选地,所述存储介质包括:rom、ram、磁碟、u盘、存储卡或者光盘等各种可以存储程序代码的介质。
87.如图4所示,于一实施例中,本发明的电子设备平台包括:处理器41和存储器42。
88.所述存储器42用于存储计算机程序。
89.所述存储器42包括:rom、ram、磁碟、u盘、存储卡或者光盘等各种可以存储程序代码的介质。
90.所述处理器41与所述存储器42相连,用于执行所述存储器42存储的计算机程序,以使所述电子设备执行上述的数据防重复过滤方法。
91.优选地,所述处理器41可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processor,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
92.综上所述,本发明的数据防重复过滤方法、装置、存储介质及电子设备通过车辆报文数据的消息id的比对实现数据的防重复过滤,从而有效提升了车辆网数据的有效性;能够更好地满足车联网数据的各种个性化业务需求,极具实用性。因此,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
93.上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟
悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献