CN116302437A - 数据解析方法、装置、电子设备及存储介质 - Google Patents
数据解析方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116302437A CN116302437A CN202310316487.3A CN202310316487A CN116302437A CN 116302437 A CN116302437 A CN 116302437A CN 202310316487 A CN202310316487 A CN 202310316487A CN 116302437 A CN116302437 A CN 116302437A
- Authority
- CN
- China
- Prior art keywords
- data
- target
- analyzed
- analysis
- channel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种数据解析方法、装置、电子设备及存储介质,涉及数据处理技术领域。该方法包括:在多个通道中,确定待解析数据对应的目标通道;通过所述目标通道将所述待解析数据传入所述目标通道对应的目标线程池;每个通道均对应一个单独的线程池,每个线程池中均存在多个数据类型的解析函数对应的解析队列;根据所述待解析数据的目标数据类型,确定所述目标数据类型对应的目标解析函数;将所述待解析数据传入所述目标解析函数对应的目标解析队列中进行数据解析。通过本实施例提供的数据解析方法,通过多个独立的线程池以及多个线程池中各自对应的多个解析队列,对待解析数据同时进行数据解析,从而极大地提升了待解析数据的解析效率。
Description
技术领域
本发明实施例涉及数据处理技术领域,尤其涉及一种数据解析方法、装置、电子设备及存储介质。
背景技术
目前,自动驾驶是一项非常复杂的科学技术,其研发过程需要不断的测试迭代,并存在一系列的工具链来支撑算法的问题定位、回注、迭代等。其中,在问题定位时,常使用离线工具对于记录的数据进行加载分析,其中包含了算法模块所关联的输出数据、中间变量、输出结果等,在数据规模大、问题多时,开发人员分析问题、定位问题的效率,与加载解析数据的效率正相关,因此,加速数据解析效率能有效地促进自动驾驶算法的迭代。
因此,如何在数据量大时提升数据的解析效率,是本发明亟待解决的技术问题。
发明内容
本发明实施例提供一种数据解析方法、装置、电子设备及存储介质,旨在提升数据的解析效率。
本发明实施例第一方面提供了一种数据解析方法,所述方法包括:
在多个通道中,确定待解析数据对应的目标通道;
通过所述目标通道将所述待解析数据传入所述目标通道对应的目标线程池;其中,每个通道均对应一个单独的线程池,每个线程池中均存在多个数据类型的解析函数对应的解析队列;
根据所述待解析数据的目标数据类型,确定所述目标数据类型对应的目标解析函数;
将所述待解析数据传入所述目标解析函数对应的目标解析队列中进行数据解析。
可选的,所述在多个通道中,确定待解析数据对应的目标通道,包括:
根据所述待解析数据的数据名中的关键字,对所述待解析数据进行分类,得到分类结果;
根据所述分类结果,在所述多个通道中,确定与所述分类结果对应的通道;
将所述与所述分类结果对应的通道确定为目标通道。
可选的,所述将所述待解析数据传入所述目标解析函数对应的目标解析队列中进行数据解析,包括:
在有解析完成的数据退出所述目标解析队列的情况下,将所述待解析数据传入所述目标解析函数对应的目标解析队列中进行解析。
可选的,所述方法还包括:
获取原始数据,将所述原始数据加载进缓存中;
根据所述原始数据的数据名对所述原始数据进行筛选,确定所述待解析数据。
可选的,所述待解析数据为Protobuf数据。
本发明实施例第二方面提供了一种数据解析装置,所述装置包括:
第一确定模块,用于在多个通道中,确定待解析数据对应的目标通道;
传输模块,用于通过所述目标通道将所述待解析数据传入所述目标通道对应的目标线程池;其中,每个通道均对应一个单独的线程池,每个线程池中均存在多个数据类型的解析函数对应的解析队列;
第二确定模块,用于根据所述待解析数据的目标数据类型,确定所述目标数据类型对应的目标解析函数;
解析模块,用于将所述待解析数据传入所述目标解析函数对应的目标解析队列中进行数据解析。
可选的,所述第一确定模块,包括:
分类模块,用于根据所述待解析数据的数据名中的关键字,对所述待解析数据进行分类,得到分类结果;
通道确定模块,用于根据所述分类结果,在所述多个通道中,确定与所述分类结果对应的通道;
第一确定子模块,用于将所述与所述分类结果对应的通道确定为目标通道。
可选的,所述解析模块,包括:
解析子模块,用于在有解析完成的数据退出所述目标解析队列的情况下,将所述待解析数据传入所述目标解析函数对应的目标解析队列中进行解析。
可选的,所述装置还包括:
获取模块,用于获取原始数据,将所述原始数据加载进缓存中;
筛选模块,用于根据所述原始数据的数据名对所述原始数据进行筛选,确定所述待解析数据。
可选的,所述待解析数据为Protobuf数据。
本发明实施例第三方面提供了一种电子设备,所述电子设备包括:包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述计算机程序被该处理器执行时实现如本发明实施例第一方面的数据解析方法。
本发明实施例第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例第一方面的数据解析方法。
通过本发明实施例提供的数据解析方法,在多个通道中,确定待解析数据对应的目标通道;通过目标通道将待解析数据传入目标通道对应的目标线程池;其中,每个通道均对应一个单独的线程池,每个线程池中均存在多个数据类型的解析函数对应的解析队列;根据待解析数据的目标数据类型,确定目标数据类型对应的目标解析函数;将待解析数据传入目标解析函数对应的目标解析队列中进行数据解析。在本实施例中,针对每个待解析数据的数据解析,均会通过多层分布式的方法为其确定对应的目标线程池以及目标线程池中的目标解析队列,从而使得针对待解析数据的数据量大的情况下,通过多个独立的线程池以及多个独立线程池中各自对应的多个解析队列对待解析数据同时进行数据解析,从而极大地提升了待解析数据的解析效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例示出的一种数据解析方法的流程图;
图2是本发明一实施例提出的一种加速Protobuf数据解析的方法;
图3是本发明一实施例提供的数据解析装置的结构框图;
图4是本发明一实施例示出的一种电子设备的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参考图1,图1是本发明一个实施例示出的一种数据解析方法的流程图。如图1所示,本实施例的数据解析方法可以包括以下步骤:
步骤S11:在多个通道中,确定待解析数据对应的目标通道。
本实施例中,事先设置有多个通道,每个通道均对应一个单独的线程池,每个通道用于进行待解析数据的数据传输,将通道对应的待解析数据传入该通道对应的线程池中。
基于此,本实施例在获取到待解析数据后,可以从事先设置的多个通道中,确定出待解析数据所对应的通道,并将该待解析数据所对应的通道确定为目标通道。其中,本实施例中的待解析数据为需要进行数据解析的数据,在一实施例中,本实施例中的待解析数据可以为自动驾驶研发过程中记录的相关数据,如包括有各个模块所关联的输出数据、中间变量、输出结果等等。
步骤S12:通过所述目标通道将所述待解析数据传入所述目标通道对应的目标线程池;其中,每个通道均对应一个单独的线程池,每个线程池中均存在多个数据类型的解析函数对应的解析队列。
本实施例中,在确定出待解析数据对应的目标通道之后,可以通过该目标通道,将待解析数据传入目标通道对应的目标线程池中。其中,本实施例中的每个通道均对应有一个单独的线程池,线程池中用于进行数据解析,且每个线程池中均存储有多个解析队列,每个解析队列用于通过解析队列对应的解析函数,解析该解析函数对应的数据类型的待解析数据。其中,本实施例中的目标线程池为目标通道所连接的线程池。
进一步地,针对每个线程池中的解析队列的数量可以相同也可以不同,针对每个线程池中解析队列所对应的解析函数的数据类型也可以相同也可以不同,这些都是可以实际场景及需求自由设定,本实施例对此不作任何限制。
步骤S13:根据所述待解析数据的目标数据类型,确定所述目标数据类型对应的目标解析函数。
本实施例中,在待解析函数进入其对应的目标线程池后,可以确定待解析函数的数据类型。其中,由于每个通道及其对应的线程池都可能存在有不同数据类型的待解析数据,例如车道线数据、地图数据、点云数据等数据类型的待解析数据。因此,在一可选实施方式中,可以是先确定出待解析数据的数据名,再根据待解析数据的数据名中的数据类型关键字进行数据类型的确定。例如,可以根据待解析数据A的数据名中的数据类型关键字确定待解析数据A为车道线数据,根据待解析数据C的数据名中的数据类型关键字确定待解析数据C为点云数据等等。
在确定出待解析函数的数据类型之后,可以将待解析函数的数据类型确定为目标数据类型,再根据待解析函数的目标数据类型,在目标线程池中的多个解析队列对应的解析函数中,确定出目标数据类型所对应的目标解析函数。其中,本实施例中的目标解析函数即为待解析函数的数据类型所对应的解析函数,也可以对待解析数据进行数据解析的解析函数。
步骤S14:将所述待解析数据传入所述目标解析函数对应的目标解析队列中进行数据解析。
本实施例中,在确定出待解析数据的目标解析函数之后,可以确定目标解析函数所对应的解析队列,并将目标解析函数对应的解析队列确定为目标解析队列,从而将待解析数据传入该目标解析队列中进行数据解析,进而完成待解析数据的数据解析。
在本实施例中,针对待解析数据,不仅会将待解析数据通过不同的通道划分到不同的线程池中进行数据解析,且在同一线程池中还会根据待解析数据的数据类型的不同,分为不同的解析队列同时进行数据解析,从而使得待解析数据可以以多线程池及多解析队列进行同时解析,从而实现了待解析数据的多层分布式数据解析,如此,极大地提升了数据的解析效率,可以使得开发人员在问题分析及问题定位端大大地提升了效率,能够更快地完成算法迭代,极大程度上地为自动驾驶算法开发保驾护航。
结合以上实施例,在一种实施方式中,本发明实施例还提供了一种数据解析方法。在该方法中,上述步骤S11具体可以包括以下步骤:
步骤A:根据所述待解析数据的数据名中的关键字,对所述待解析数据进行分类,得到分类结果。
本实施例中,可以是对待解析数据进行分类,根据分类结果为待解析数据分配对应的目标通道。具体的,可以是确定待解析数据的数据名称,并根据数据名称中的关键字对待解析数据进行区分,从而得到待解析数据的分类结果。
示例的,可以是根据数据名中的模块名称为待解析数据进行分类,其中模块名称表征了待解析数据属于哪个模块,如模块名称为A,即代表待解析数据为A模块中的数据,从而将A模块中的数据分为一类;模块名称为D,即代表待解析数据为D模块中的数据,从而将D模块中的数据分为一类等等。
步骤B:根据所述分类结果,在所述多个通道中,确定与所述分类结果对应的通道。
本实施例中,事先根据分类结果建立有多个通道,即每类分类结果均对应有相对应的通道。从而根据待解析数据的分类结果,在多个通道中,确定出与该分类结果所对应的通道。
步骤C:将所述与所述分类结果对应的通道确定为目标通道。
本实施例中,确定出待解析数据的分类结果所对应的通道后,即可将待解析数据的分类结果对应的通道确定为待解析数据的目标通道,从而可以依据目标通道将待解析数据传入对应的目标线程池中。
可以理解的是,针对多个待解析数据,可以依据多个待解析数据的分类结果分别确定对应的目标通道,从而将多个待解析数据分别传入各自对应的目标线程池中,从而完成待解析数据的一级分布式,初步提升了待解析数据的解析效率。
而本实施例考虑到,针对每个线程池中的数据解析,如果因为某一待解析数据的数据解析耗时较长,那么会使得其他待解析数据均得等待该耗时较长的待解析数据解析完毕后再进行解析操作,那么当数据量大时,会造成解析队列堵塞,耗时长,使得效率极低,因此,在此基础之上,本实施例对每个线程池的待解析数据进行了二级分布式解析,使得各待解析数据能够根据数据类型通过不同的解析队列进行解析,从而进一步提升待解析数据的解析效率。
结合以上实施例,在一种实施方式中,本发明实施例还提供了一种图像处理方法。在该方法中,上述步骤S14具体可以包括以下步骤:
步骤D:在有解析完成的数据退出所述目标解析队列的情况下,将所述待解析数据传入所述目标解析函数对应的目标解析队列中进行解析。
本实施例中,在确定出待解析数据的目标解析函数的情况下,可以对目标解析函数对应的目标解析队列进行监控,并在检测到有解析完成的数据退出目标解析队列的情况下,将待解析数据传入该目标解析函数对应的目标解析队列中,从而进行数据解析。
可以理解的是,解析队列中可能存在多个等待解析的待解析数据,而解析队列是在一个待解析数据完成解析退出队列后,下一个待解析数据才会进入解析队列,从而依次进行数据解析的队列。其中,本实施例中的解析完成的数据为得到待解析数据的解析结果。其中,解析结果可以指的是待解析数据被成功解析,后得到的解析数据,也可以是指待解析数据无法被解析而得到的空值(即无返回值)。
结合以上实施例,在一种实施方式中,本发明实施例还提供了一种数据解析方法。在该方法中,除上述步骤外,还可以包括以下步骤:
步骤E:获取原始数据,将所述原始数据加载进缓存中。
本实施例中,可以是先获取原始数据,原始数据为项目开发过程中所产生并记录的所有数据,并将获取到的原始数据加载进缓存中。其中,本实施例是从数据库中拉取到原始数据后,需要将拉取到的原始数据存入本地缓存中。
步骤F:根据所述原始数据的数据名对所述原始数据进行筛选,确定所述待解析数据。
本实施例中,在对原始数据进行缓存加载后,可以根据原始数据的数据名,对原始数据进行筛选,从而从原始数据中确定出需要进行解析的待解析数据。
其中,本实施例可以通过事先埋点的方式对数据名称的关键字进行埋点,例如可以是对数据名中的模块关键字进行埋点,从而在加载原始数据后,获取原始数据的数据名称,再从数据名称中根据埋点判断出每一原始数据是否需要进行解析,在数据名称的关键字命中埋点的情况下,将该原始数据确定为待解析数据。示例的,但根据实际需求本次需要对SWC模块的数据进行数据解析,则实现对“SWC”关键字进行埋点,则可以使得原始数据的数据名称中模块名称为“SWC”的所有数据均被筛选为待解析数据。
结合以上实施例,在一种实施方式中,本发明实施例还提供了一种数据解析方法。在该方法中,所述待解析数据为Protobuf数据,如可以为涉及自动驾驶系统中对于Protobuf格式存储的数据。
其中,针对自动驾驶开发过程的数据记录模块中存储的数据绝大多数均为Protobuf数据,而基于Protobuf协议的Protobuf数据,在解析每帧Protobuf数据时,均存在序列化和反序列化的情况,该部分解析耗时是无法避免的,因此,针对Protobuf数据,也可以使用上述任一实施例的数据解析方法,以将主要工作定位于如何将不同帧的Protobuf数据放进不同的解析器中,并在放置数据时尽量合理和高效,进而极大地提升数据解析效率。
如图2所示,图2是本发明一实施例提出的一种加速Protobuf数据解析的方法。在图2中,首先是针对数据进行数据加载,在本实施例中,数据为Protobuf数据,从而将Protobuf类型的数据记载进缓存中。
然后针对Protobuf数据进行数据过滤筛选,可以依据Protobuf数据每一帧数据名确定该数据是否需要进行解析,从而确定出待解析数据。具体的是通过事先埋点,对数据名称中的关键关键字进行埋点,从而根据埋点命中筛选出待解析数据。例如Protobuf数据的数据名为SWC-Package.Message-XXX,其中SWC为算法模块名字,Package.Message为使用的proto中的哪个message,XXX为使用方自定义的后缀,如事先埋点为“SWC”关键字,则数据名称命中“SWC”的均为待解析数据。
接着,依据数据名字判别其对应的通道。本实施例中事先建立有多个通道,每个通道后端为一个单独的线程池,互不影响。事先针对每个通道对应有待解析数据的分类结果,从而可以根据待解析数据的分类结果确定其对应的通道。例如可以是分为目标数据通道、地图数据通道、点云数据通道和车道线数据通道,从而将各个待解析数据划分到不同的线程池中进行解析。
而在每个线程池中对应有多个数据类型的解析函数的解析队列,针对进入每个线程池中的待解析数据,可以依据待解析数据的数据类型确定待解析数据的目标解析函数,从而根据目标解析函数确定目标解析队列,从而将待解析数据传入其对应的目标解析队列中进行数据解析。如此,每个线程池中均有多个解析队列进行数据解析工作,从而进一步减轻了待解析数据等待解析的排队时间,从而通过两层分布式提供了数据的解析效率。
最后,针对所有解析完成的数据进行解析汇总并输出,例如可以是进行可视化输出,从而完成待解析数据的数据解析,解析完毕。
本实施例以自动驾驶中的数据为导向,提出了一种加速Protobuf数据解析的方法,该方法在项目中实施准确有效,使得开发人员在问题分析及问题定位端极大地提升了效率,能够更快地完成算法迭代,极大程度上地为自动驾驶算法开发保驾护航。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
基于同一发明构思,本发明一实施例提供了一种数据解析装置300。参考图3,图3是本发明一实施例提供的数据解析装置的结构框图。如图3所示,该装置300包括:
第一确定模块301,用于在多个通道中,确定待解析数据对应的目标通道;
传输模块302,用于通过所述目标通道将所述待解析数据传入所述目标通道对应的目标线程池;其中,每个通道均对应一个单独的线程池,每个线程池中均存在多个数据类型的解析函数对应的解析队列;
第二确定模块303,用于根据所述待解析数据的目标数据类型,确定所述目标数据类型对应的目标解析函数;
解析模块304,用于将所述待解析数据传入所述目标解析函数对应的目标解析队列中进行数据解析。
可选的,所述第一确定模块301,包括:
分类模块,用于根据所述待解析数据的数据名中的关键字,对所述待解析数据进行分类,得到分类结果;
通道确定模块,用于根据所述分类结果,在所述多个通道中,确定与所述分类结果对应的通道;
第一确定子模块,用于将所述与所述分类结果对应的通道确定为目标通道。
可选的,所述解析模块304,包括:
解析子模块,用于在有解析完成的数据退出所述目标解析队列的情况下,将所述待解析数据传入所述目标解析函数对应的目标解析队列中进行解析。
可选的,所述装置300还包括:
获取模块,用于获取原始数据,将所述原始数据加载进缓存中;
筛选模块,用于根据所述原始数据的数据名对所述原始数据进行筛选,确定所述待解析数据。
可选的,所述待解析数据为Protobuf数据。
基于同一发明构思,本发明另一实施例提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现如本发明上述任一实施例所述的数据解析方法中的步骤。
基于同一发明构思,本发明另一实施例提供一种电子设备400,如图4所示。图4是本发明一实施例示出的一种电子设备的示意图。该电子设备包括存储器402、处理器401及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本发明上述任一实施例所述的数据解析方法中的步骤。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种数据解析方法、装置、电子设备及存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种数据解析方法,其特征在于,所述方法包括:
在多个通道中,确定待解析数据对应的目标通道;
通过所述目标通道将所述待解析数据传入所述目标通道对应的目标线程池;其中,每个通道均对应一个单独的线程池,每个线程池中均存在多个数据类型的解析函数对应的解析队列;
根据所述待解析数据的目标数据类型,确定所述目标数据类型对应的目标解析函数;
将所述待解析数据传入所述目标解析函数对应的目标解析队列中进行数据解析。
2.根据权利要求1所述的数据解析方法,其特征在于,所述在多个通道中,确定待解析数据对应的目标通道,包括:
根据所述待解析数据的数据名中的关键字,对所述待解析数据进行分类,得到分类结果;
根据所述分类结果,在所述多个通道中,确定与所述分类结果对应的通道;
将所述与所述分类结果对应的通道确定为目标通道。
3.根据权利要求1所述的数据解析方法,其特征在于,所述将所述待解析数据传入所述目标解析函数对应的目标解析队列中进行数据解析,包括:
在有解析完成的数据退出所述目标解析队列的情况下,将所述待解析数据传入所述目标解析函数对应的目标解析队列中进行解析。
4.根据权利要求1所述的数据解析方法,其特征在于,所述方法还包括:
获取原始数据,将所述原始数据加载进缓存中;
根据所述原始数据的数据名对所述原始数据进行筛选,确定所述待解析数据。
5.根据权利要求1至4任一所述的数据解析方法,其特征在于,所述待解析数据为Protobuf数据。
6.一种数据解析装置,其特征在于,所述装置包括:
第一确定模块,用于在多个通道中,确定待解析数据对应的目标通道;
传输模块,用于通过所述目标通道将所述待解析数据传入所述目标通道对应的目标线程池;其中,每个通道均对应一个单独的线程池,每个线程池中均存在多个数据类型的解析函数对应的解析队列;
第二确定模块,用于根据所述待解析数据的目标数据类型,确定所述目标数据类型对应的目标解析函数;
解析模块,用于将所述待解析数据传入所述目标解析函数对应的目标解析队列中进行数据解析。
7.根据权利要求6所述的数据解析装置,其特征在于,所述第一确定模块,包括:
分类模块,用于根据所述待解析数据的数据名中的关键字,对所述待解析数据进行分类,得到分类结果;
通道确定模块,用于根据所述分类结果,在所述多个通道中,确定与所述分类结果对应的通道;
第一确定子模块,用于将所述与所述分类结果对应的通道确定为目标通道。
8.根据权利要求6所述的数据解析装置,其特征在于,所述解析模块,包括:
解析子模块,用于在有解析完成的数据退出所述目标解析队列的情况下,将所述待解析数据传入所述目标解析函数对应的目标解析队列中进行解析。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述计算机程序被所述处理器执行时实现如权利要求1至5任一所述的数据解析方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一所述的数据解析方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310316487.3A CN116302437A (zh) | 2023-03-28 | 2023-03-28 | 数据解析方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310316487.3A CN116302437A (zh) | 2023-03-28 | 2023-03-28 | 数据解析方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116302437A true CN116302437A (zh) | 2023-06-23 |
Family
ID=86816699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310316487.3A Pending CN116302437A (zh) | 2023-03-28 | 2023-03-28 | 数据解析方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116302437A (zh) |
-
2023
- 2023-03-28 CN CN202310316487.3A patent/CN116302437A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109597606B (zh) | 使用规则引擎进行业务决策的方法、设备和存储介质 | |
CN112035359B (zh) | 程序测试方法、装置、电子设备及存储介质 | |
CN109815991A (zh) | 机器学习模型的训练方法、装置、电子设备及存储介质 | |
US9069915B2 (en) | Identifying and routing poison tuples in a streaming application | |
US20150089415A1 (en) | Method of processing big data, apparatus performing the same and storage media storing the same | |
CN111651363B (zh) | 测试数据获取方法、装置、电子设备及介质 | |
US11605012B2 (en) | Framework for processing machine learning model metrics | |
US10705949B2 (en) | Evaluation of library test suites using mutation testing | |
US11462018B2 (en) | Representative image generation | |
CN111143359A (zh) | 查询语句生成方法及装置 | |
CN113778864A (zh) | 一种测试用例的生成方法和装置、电子设备和存储介质 | |
US20240242597A1 (en) | Alarm method and device | |
KR101508429B1 (ko) | 사용자 단말에 에이전트 서비스를 제공하는 방법 및 시스템 | |
CN110704551B (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
CN112631925B (zh) | 一种单变量原子违背缺陷的检测方法 | |
CN112181485B (zh) | 脚本执行方法、装置、电子设备及存储介质 | |
CN116302437A (zh) | 数据解析方法、装置、电子设备及存储介质 | |
CN110968518A (zh) | 自动化测试日志文件的分析方法及装置 | |
CN113282496B (zh) | 接口自动测试方法、装置、设备及存储介质 | |
CN113626301B (zh) | 生成测试脚本的方法和装置 | |
CN114265846A (zh) | 一种数据操作方法、装置、电子设备和存储介质 | |
CN112015535B (zh) | 任务处理方法、装置、电子设备、存储介质 | |
CN112181825A (zh) | 测试案例库构建方法、装置、电子设备及介质 | |
CN110750569A (zh) | 数据提取方法、装置、设备及存储介质 | |
CN118069898B (zh) | 一种多日志源的日志泛化方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |