技术领域
[0001] 本发明涉及数据处理技术领域,具体涉及一种基于MQTT的非同源上行数据处理方法及装置。
相关背景技术
[0002] 消息队列遥测传输(MQTT)是一种ISO标准下基于发布/订阅范式的消息协议,它工作在TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议。基于MQTT的协议优势,越来越多支持联网功能的智能硬件都基于MQTT协议实现设备联网以及数据交互等功能。
[0003] 应用于MQTT协议搭建的MQTT通道系统,包括对外提供设备连接、数据上报、数据下发等功能。目前在很多场景下,联网设备需要不断地向云端上报数据,对应设备可以通过MQTT通道系统连接到云端,设备按照预定义格式组装原始数据,并将原始数据封装到MQTT的消息体中,就可以基于MQTT协议向云端上报数据。MQTT通道平台在接收到数据之后,从MQTT消息体中提取原始的二进制数据,并按照提前与设备协商好的格式进行解析,解析完成后再按照特定的要求进行后续的存储、转发等操作。
[0004] 然而设备侧上行数据的格式、内容不尽相同,不同设备、不同厂家的同类设备,都会按照其特定的格式、内容上报数据。因此需要确定设备对应的上行数据的格式,便于通道系统在接收在数据后进行数据解析,且云端通道系统在成功解析设备上报的数据之后,通常需要对数据进行后续处理,例如:存储数据(将解析后的数据存储至MySQL、Redis、Cassandra、MongoDB、Hive、HBase等数据库中)、转发数据(通过Kafka、Pulsar、MQTT、RabbitMQ、RocketMQ、HTTP API等协议将数据进行发送),以及对原始数据进行初步的加工处理后再通过对应的规则进行上述操作。由于不同厂商对应的不同的数据处理需求不同,其对应的数据处理方式也不同,通道系统无法很好地满足不同厂商对应的不同的数据处理需求。
[0005] 如果针对不同厂商对应的不同的数据处理需求提供对应的MQTT通道系统,由于不同厂商对应的不同的数据处理需求的总基数较大,导致需要付出更多的资源为每个厂商或是每个需求进行单独再开发,降低了既有通道系统的复用性。
具体实施方式
[0047] 下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0048] 在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0049] 在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,还可以是两个元件内部的连通,可以是无线连接,也可以是有线连接。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
[0050] 此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
[0051] 虽然下文描述的过程包括以特定的顺序出现的多个操作,但是应该清楚地了解到,这些过程也可以包括更多或者更少的操作,这些操作可以顺序执行或者并行执行。
[0052] 实施例1
[0053] 图1为本发明实施例提供的一种恢复点目标调整备份方法的流程图,本发明实施例提供一种基于MQTT的非同源上行数据处理方法,应用于基于MQTT的非同源上行数据系统的管理端,参见图1所示,所述方法包括如下步骤:
[0054] 步骤S101、当接收到基于MQTT的数据,根据接收到的基于MQTT的数据确定执行插件更改命令的类型;
[0055] 步骤S102、根据插件更改命令的类型,对相应的插件模板进行更改,以形成目标插件;
[0056] 步骤S103、启动所述目标插件对应的数据包,采用目标插件对应的数据包对MQTT中的非同源上行数据进行处理,并将处理结果通过MQTT返回。
[0057] 在上述实施方式中,具体地,当接收到基于MQTT的数据,根据接收到的基于MQTT的数据确定执行插件更改命令的类型,即就是,对于非同源端的上行的数据,其对应的数据处理需求不同,将现有的MQTT通道系统中的对应数据处理的部分独立出来以替换成对应用于处理数据的插件。对于非同源端上行的数据,其对应的数据处理需求不同,因此,对于非同源上行数据,其对应的用于处理数据的插件也不同。则当基于MQTT的非同源上行数据系统的管理端,接收到基于MQTT的非同源上行数据时,则需要根据接收到的基于MQTT的非同源上行数据确定执行插件更改命令的类型。举例来说,A厂商自主研发了自动驾驶系统,应用于汽车A_a,并通过MQTT系统,对用于汽车传感监测的四个雷达上行的数据进行数据处理,即管理端收到四个雷达的上行的数据,然而A厂商在后续的安全等一系列的检测实验后,发现四个雷达的数据量不够,仍然需要再增设两个雷达。则对应在增设两个雷达后,管理端对应接收到六个雷达上行的数据,即待处理的数据属于六个不同的雷达上行的数据。在上述的通过MQTT系统对用于汽车传感监测的四个雷达上行的数据进行数据处理中,其通过创建的与四个雷达上行的数据对应的处理插件,以对四个雷达上行的数据进行数据处理,而此时,对应的管理端接收到的数据是六个非同源雷达上行的数据,则对应的数据处理需求及处理方式与四个雷达的数据的处理需求及处理方式是不同的。因此,当接收到基于MQTT的六个非同源雷达的上行的数据时,则需要根据接收到的六个雷达上行的数据确定执行插件更改命令的类型。例如,确定执行插件更改命令的类型可以为更新已有的插件命令,即在四个雷达上行的数据对应的插件的基础上添加新的数据处理模块,例如添加对增设的两个雷达的数据处理模块。上述根据插件更改命令的类型,对相应的插件模板进行更改,以形成目标插件,即对与四个雷达上行的数据对应的插件进行更改,以形成适用于六个非同源雷达上行数据的目标插件。在形成目标插件后,则启动所述目标插件对应的数据包,采用目标插件对应的数据包对MQTT中的非同源上行数据进行处理,并将处理结果通过MQTT返回。
[0058] 在上述实施方式中,具体地,通过接收到基于MQTT的非同源数据,根据接收到的基于MQTT的非同源上行数据确定执行插件更改命令的类型,通过根据插件更改命令的类型,对相应的插件模板进行更改,以形成目标插件;启动所述目标插件对应的数据包,通过采用目标插件对应的数据包对MQTT中的非同源上行数据进行处理,并将处理结果通过MQTT返回。通过生成对应的插件对对应的非同源上行数据进行处理,对于不同的非同源上行数据,不必再对MQTT通道系统进行单独再开发,仅需要更改对应的处理数据的插件即可使用适用对应的处理需求,提高了非同源上行数据的处理的效率,加强了非同源上行数据处理的灵活性,保证了大基数的非同源数据处理的效率,提高了既有通道系统的复用性。
[0059] 在一个可选的实施方式中,参见图2所示,所述基于MQTT的非同源上行数据处理方法还包括:
[0060] 步骤S104、根据接收到的基于MQTT的数据确定执行插件更改命令。
[0061] 所述根据接收到的基于MQTT的数据确定执行插件更改命令,包括:
[0062] 1)判断是否存储有与所述基于MQTT的上行数据对应的处理插件;
[0063] 2)如果没有,则确定执行插件更改命令。
[0064] 在上述实施方式中,具体地,根据接收到的基于MQTT的数据确定执行插件更改命令,即就是,在不存在与当前上行数据对应的处理插件时,需要执行插件更改命令。相反地,若存在对应的插件时,可以直接应用该插件对当前上行数据进行处理。举例来说,在上述示例的基础上,若管理端收到另外一个汽车A_b的四个雷达的上行数据,则判断是否存储有对应的处理插件,若该汽车和A_b和汽车A_a的汽车型号一致,仅是配置方面的不同,即就是说A_b和A_a的区别仅在于内饰是否豪华等,在车型及雷达的位置设置方面并无区别,则可以确定存在对应的插件,也就是说存储有与A_b的四个雷达的上行数据对应的处理插件,即上述的“与四个雷达上行的数据对应的插件”,则可以直接利用已有的插件进行数据处理。若管理端收到汽车A_c的四个雷达的上行数据,然而汽车A_c与汽车A_a型号完全不一致,车型完全不同(长、宽、高完全不同)及对应四个雷达所设置的位置也并不一直,则确定不存在对应的处理插件,则对应确定执行更新已有的插件命令。例如,此处插件更改命令可以是在A_a对应的四个雷达上行数据的处理插件的基础上进行修改的命令。若厂商B对应生产的汽车B_a,其同样在汽车B_a上设置了四个雷达,汽车B_a与汽车A_a也完全不同,则同理确定不存在对应的处理插件,则厂商B的管理端在接收到对应的汽车B_a的四个非同源雷达上行的数据时,则对应确定执行插件更改命令,其对应的插件更改命令可以为创建新插件命令。
[0065] 在上述实施方式中,通过根据接收到的基于MQTT的数据确定执行插件更改命令,通过判断是否存在对应的处理插件,避免了重复更改插件,提高了非同源上行数据的处理的效率,进而提高了数据处理的灵活性。保证了大基数的非同源数据处理的效率,进而进一步地提高了既有通道系统的复用性。
[0066] 在一个可选的实施方式中,所述根据插件更改命令的类型,对相应的插件模板进行更改,以形成目标插件,包括:
[0067] 根据插件更改命令的类型,对相应的插件模板的原有数据处理模块进行更改,或在原有数据处理模块的基础上添加新的数据处理模块,以形成目标插件;
[0068] 还包括:
[0069] 从MQTT通道中删除与目标插件中的数据处理模块相同的模块。
[0070] 在上述实施方式中,具体地,插件更改对应的细分的功能类型包括创建、删除、升级、去噪等,其中“创建、删除、升级、去噪”,仅是为描述更改对应功能的大致表述。具体地,以“升级”为例,则对应在已有插件中选择对应的插件,并对选择得到的插件进行更改,以进行“升级”形成对应的目标插件,即就是更新已有的插件以得到目标插件。
[0071] 在上述实施方式中,通过根据插件更改命令的类型,对相应的插件模板进行更改,对对应的数据处理模块进行更改或添加新的数据处理模块,以形成目标插件,同理,对对应的数据处理模块进行删除或停用以形成对应的目标插件,此处不再赘述。通过从MQTT通道中删除与目标插件中的数据处理模块相同的模块,减少通道系统的数据处理功能,非同源上行数据不需要通过通道系统的数据处理功能进行处理,而是通过相对应的插件的数据处理功能进行处理,通道系统仅需要进行数据传输,数据传输和数据处理功能分割,在需要对数据处理相关的功能进行修改时,不必对通道系统进行修改,仅需要修改对应的插件,减少了对通道系统的修改,提高了通道系统的稳定性,进而提高了数据处理的灵活性,进而进一步地提高了既有通道系统的复用性。
[0072] 在一个可选的实施方式中,所述数据处理模块用于,对数据进行初始化、销毁、组合、排序及运算。
[0073] 在上述实施方式中,具体地,所述数据处理模块用于,对数据进行初始化、销毁、组合、排序及运算,即就是说,数据处理模块的功能包括但不限于:
[0074] 数据初始化,用于对待处理的数据进行初始化处理;
[0075] 数据销毁,用于对目标销毁数据进行删除销毁;
[0076] 数据组合,用于对相关项数据进行组合合并,例如在增设两个雷达后,亦可以通过数据组合的功能将原有的数据统计的功能组合新增设的两个雷达的数据统计,以便进行后续的六个雷达的数据处理;
[0077] 数据运算,用于对相关项的数据集进行处理,以得到对应的数据处理结果。
[0078] 在一个可选的实施方式中,
[0079] 所述插件更改命令的类型包括更新已有的插件命令和创建新插件命令;
[0080] 根据插件更改命令的类型,对相应的插件模板进行更改,以形成目标插件,包括:
[0081] 若插件更改命令的类型为更新已有的插件命令,则下载与所述基于MQTT的数据吻合度最高的历史插件,作为目标插件模板;所述吻合度为接收的基于MQTT的数据与历史插件的输入数据中相同类型数据的数量;
[0082] 根据基于MQTT的数据及第一目标处理方式,对目标插件模板进行更改,以形成目标插件;
[0083] 若插件更改命令的类型为创建新插件命令,则:
[0084] 从预设服务器下载预设插件模板;
[0085] 根据基于MQTT的数据及第二目标处理方式,根据预设插件模板形成目标插件。
[0086] 在上述实施方式中,具体地,若存在同类型插件或是相似功能模块的插件,则可以确定插件更改命令的类型为更新已有的插件命令,应用于对非同源上行数据的处理的升级,其可以在已有的插件上进行更改,以减少在数据处理升级时对应的更改插件的工作量。进一步地,若插件更改命令的类型为更新已有的插件命令,则下载与所述基于MQTT的数据吻合度最高的历史插件,作为第一插件模板;所述吻合度为接收的基于MQTT的数据与历史插件的输入数据中相同类型数据的数量,则根据对应的非同源上行数据以及对应的数据处理需求确定对应的处理方式,以对吻合度最高的历史插件进行更改得到目标插件。
[0087] 另一方面,若不存在对应的同类型的插件,亦或是在对对应的非同源上行数据的插件进行初次开发时,则在接收到对应的非同源上行数据后,则确定插件更改命令的类型为创建新插件命令,则从预设服务器下载预设插件模板,例如,可以从云端服务器下载预设插件模板。在得到预设插件模板后,则根据接收的对应的非同源上行数据及对应的数据处理需求,确定生成插件的处理方式,以基于预设插件模板生成目标插件。
[0088] 在上述实施方式中,具体地,通过区分插件更改命令的类型,根据实际对应的非同源上行数据确定对应的插件更改命令的类型,进而确定是基于已有的插件进行更新插件,还是从对应的预设服务器端下载预设的插件模板创建新的插件,提高了对的非同源上行数据在利用插件进行数据处理时,形成目标插件的效率,避免重复下载预设插件创建新插件。进一步地提高了使用插件处理非同源上行数据的效率,进而提高了数据处理的灵活性。保证了大基数的非同源数据处理的效率,进而进一步地提高了既有通道系统的复用性。
[0089] 在一个可选的实施方式中,所述基于MQTT的非同源上行数据处理方法还包括:
[0090] 将所述目标插件打包形成目标插件数据包,将所述目标插件数据包上传至云端。
[0091] 在上述实施方式中,具体地,通过将目标插件数据包上传至云端,便于对应的非同源上行数据系统的不同的管理端,在接收到对应的非同源上行数据时,从云端调用对应的目标插件,以对对应的非同源上行数据进行处理。便于目标插件应用于不同的管理端,以提高了目标插件的使用效率,避免重复生成目标插件,提高了非同源上行数据的处理的效率,进一步地提高了既有通道系统的复用性。
[0092] 实施例2
[0093] 本实施例提供一种基于MQTT的非同源上行数据处理装置,应用于基于MQTT的非同源上行数据系统的管理端,参见图3所示,所述基于MQTT的非同源上行数据处理装置包括:
[0094] 确定模块31,用于当接收到基于MQTT的数据,根据接收到的基于MQTT的数据确定执行插件更改命令的类型;
[0095] 定义模块32,用于根据插件更改命令的类型,对相应的插件模板进行更改,以形成目标插件;
[0096] 处理模块33,用于启动所述目标插件对应的数据包,采用目标插件对应的数据包对MQTT中的非同源上行数据进行处理,并将处理结果通过MQTT返回。
[0097] 在一个可选的实施方式中,所述基于MQTT的非同源上行数据处理装置还包括:
[0098] 更改模块,用于根据接收到的基于MQTT的数据确定执行插件更改命令;
[0099] 所述根据接收到的基于MQTT的数据确定执行插件更改命令,包括:
[0100] 判断是否存储有与所述基于MQTT的上行数据对应的处理插件;
[0101] 如果没有,则确定执行插件更改命令。
[0102] 本申请实施例提供的基于MQTT的非同源上行数据处理装置,可用于如上述实施例1中执行的基于MQTT的非同源上行数据处理方法,相关细节参考上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
[0103] 需要说明的是:上述实施例中提供的基于MQTT的非同源上行数据处理装置在进行基于MQTT的非同源上行数据处理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将基于MQTT的非同源上行数据处理装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的基于MQTT的非同源上行数据处理装置与基于MQTT的非同源上行数据处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0104] 实施例3
[0105] 请参阅图4所示,本发明实施方式还提供了一种计算机设备,该计算机设备可以是桌上型计算机、笔记本电脑、掌上电脑以及云端服务器等计算机设备。该计算机设备可以包括,但不限于,处理器和存储器,其中处理器和存储器可以通过总线或者其他方式连接。
[0106] 处理器可以为中央处理器(Central Processing Unit,CPU)也可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、图形处理器(Graphics Processing Unit,GPU)、嵌入式神经网络处理器(Neural‑network Processing Unit,NPU)或者其他专用的深度学习协处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field‑Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
[0107] 存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如上述方法实施方式中的方法对应的程序指令/模块。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施方式中的方法。
[0108] 存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。所述一个或者多个模块存储在所述存储器中,当被所述处理器执行时,执行上述方法实施方式中的方法。
[0109] 本发明实施方式还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述方法实施方式中的方法。其中,所述非暂态计算机可读存储介质可为磁碟、光盘、只读存储记忆体(Read‑Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid‑State Drive,SSD)等;所述非暂态计算机可读存储介质还可以包括上述种类的存储器的组合。
[0110] 本领域内的技术人员应明白,本发明的实施方式可提供为方法、装置、计算机设备或非暂态计算机可读存储介质均可涉及或包含计算机程序产品。
[0111] 因此,本发明可采用完全硬件实施方式、完全软件实施方式、或结合软件和硬件方面的实施方式的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0112] 以上所述实施方式的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施方式中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0113] 显然,以上所述实施方式仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。因此,本申请专利的保护范围应以所附权利要求为准。