CN115080150A - 数据处理方法、装置、电子设备和存储介质 - Google Patents
数据处理方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN115080150A CN115080150A CN202210851420.5A CN202210851420A CN115080150A CN 115080150 A CN115080150 A CN 115080150A CN 202210851420 A CN202210851420 A CN 202210851420A CN 115080150 A CN115080150 A CN 115080150A
- Authority
- CN
- China
- Prior art keywords
- data
- analyzed
- data index
- index
- text type
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 36
- 238000004458 analytical method Methods 0.000 claims abstract description 57
- 230000006870 function Effects 0.000 claims description 77
- 238000000034 method Methods 0.000 claims description 52
- 238000012545 processing Methods 0.000 claims description 50
- 238000004590 computer program Methods 0.000 claims description 12
- 238000011161 development Methods 0.000 abstract description 7
- 238000012360 testing method Methods 0.000 abstract description 7
- 230000008569 process Effects 0.000 description 26
- 238000011045 prefiltration Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 16
- 244000000188 Vaccinium ovalifolium Species 0.000 description 9
- 230000000694 effects Effects 0.000 description 8
- 239000000284 extract Substances 0.000 description 7
- 238000001914 filtration Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 6
- 238000000605 extraction Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000011144 upstream manufacturing Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开关于数据处理方法、装置、电子设备和存储介质,该数据处理方法包括:获取待解析请求数据,其中,待解析请求数据为由接口服务器接收且处理后的客户端请求数据;利用数据指标解析器对待解析请求数据进行解析处理,获得经过解析的数据,其中,数据指标解析器为解析服务器获取到至少一个数据指标的配置信息之后,根据每个数据指标的配置信息所生成的每个数据指标对应的数据指标解析器。这样,需求方可以根据自身需要自行配置数据指标的配置信息,进而可以实现通过数据指标的配置信息生成该数据指标对应的数据指标解析器,在对数据指标进行更新时,无需开发人员手动编写相应的代码,避免对开发、测试资源的占用,可以减少时间成本和人力成本。
Description
技术领域
本公开涉及计算机技术领域,更具体地说,涉及数据处理方法、装置、电子设备和存储介质。
背景技术
在应用程序的运行过程中,可以在不同时刻记录一些打点数据来体现相应时刻的应用程序的运行质量,通过对应用程序的运行质量进行分析,可以发现应用程序在运行过程中存在的问题。并且,为了更快速、更准确的排查应用程序在运行过程中存在的问题,可能需要不断的新增或者修改一些数据指标。
相关技术中,在对数据指标进行更新时,需要工作人员手动添加采集数据的代码,每更新一次数据指标,就需要编写相应的代码,会占用较多开发、测试资源,所耗费的时间成本和人力成本较高。
发明内容
本公开提供数据处理方法、装置、电子设备和存储介质,以至少解决上述相关技术中,在对数据指标进行更新时,需要工作人员手动添加采集数据的代码,所耗费的时间成本和人力成本较高的问题。
根据本公开实施例的第一方面,提供一种数据处理方法,应用于解析服务器,所述数据处理方法包括:获取待解析请求数据,其中,所述待解析请求数据为由接口服务器接收且处理后的客户端请求数据;利用数据指标解析器对所述待解析请求数据进行解析处理,获得经过解析的数据,其中,所述数据指标解析器为所述解析服务器获取到至少一个数据指标的配置信息之后,根据每个数据指标的配置信息所生成的所述每个数据指标对应的数据指标解析器。
可选地,每个数据指标的配置信息包含文本类型信息,在获取待解析请求数据的步骤之前,还包括:创建解析管理器;在所述解析管理器中创建至少一个文本类型管理器;根据每个数据指标的配置信息,在所述每个数据指标的配置信息所包含的文本类型信息所指示的所述文本类型管理器中,生成所述每个数据指标对应的数据指标解析器。
可选地,每个数据指标的配置信息包含至少一个函数处理器的类型信息和代号信息,所述根据每个数据指标的配置信息,在所述每个数据指标的配置信息所包含的文本类型信息所指示的所述文本类型管理器中,生成所述每个数据指标对应的数据指标解析器,包括:根据每个数据指标的配置信息所包含的至少一个函数处理器中每个函数处理器的类型信息,在所述每个函数处理器的类型信息所指示的函数处理器库中获取所述每个函数处理器的代号信息所指示的函数处理器,其中,所述函数处理器库包含多个函数处理器;利用获取到的所述每个数据指标对应的至少一个函数处理器,在所述每个数据指标的配置信息所包含的文本类型信息所指示的所述文本类型管理器中,生成所述每个数据指标对应的数据指标解析器。
可选地,所述利用数据指标解析器对所述待解析请求数据进行解析处理,获得经过解析的数据,包括:确定所述待解析请求数据所包含的目标文本类型;在所述至少一个文本类型管理器中查找对应的文本类型为所述目标文本类型的目标文本类型管理器;利用在所述目标文本类型管理器内生成的数据指标解析器对所述待解析请求数据进行遍历解析处理,获得所述经过解析的数据。
可选地,所述利用在所述目标文本类型管理器内生成的数据指标解析器对所述待解析请求数据进行遍历解析处理,包括:确定所述待解析请求数据所包含的数据类型;确定在所述目标文本类型管理器内生成的至少一个数据指标解析器中每个数据指标解析器所能解析的数据类型;利用在所述目标文本类型管理器内生成的、且所能解析的数据类型与所述待解析请求数据所包含的数据类型相匹配的数据指标解析器,对所述待解析请求数据进行遍历解析处理,获得所述经过解析的数据。
可选地,所述数据处理方法还包括:在所述至少一个文本类型管理器中的每个文本类型管理器中创建参数模板对象;提取所述待解析请求数据中所包含的应用的标识和账户标识;所述利用数据指标解析器对所述待解析请求数据进行解析处理,包括:利用所述数据指标解析器对所述待解析请求数据中除所述应用的标识和所述账户标识之外的数据进行解析处理,获得所述经过解析的数据;所述数据处理方法还包括:将所述应用的标识、所述账户标识和所述经过解析的数据,对应存储至所述数据指标解析器所在的文本类型管理器中的参数模板对象内。
可选地,在获取待解析请求数据的步骤之前,还包括:接收数据指标设置指令;响应于所述数据指标设置指令,显示数据指标配置界面;响应于用户的设置输入,在所述数据指标配置界面内设置所述至少一个数据指标的配置信息。
可选地,所述获取待解析请求数据,包括:从第一消息队列拉取所述待解析请求数据,其中,所述待解析请求数据由所述接口服务器上传至所述第一消息队列。
可选地,所述数据处理方法还包括:将所述经过解析的数据发送至第二消息队列,以通过所述第二消息队列将所述经过解析的数据存储到存储服务器。
根据本公开实施例的第二方面,提供一种数据处理装置,应用于解析服务器,包括:获取模块,被配置为获取待解析请求数据,其中,所述待解析请求数据为由接口服务器接收且处理后的客户端请求数据;解析模块,被配置为利用数据指标解析器对所述待解析请求数据进行解析处理,获得经过解析的数据,其中,所述数据指标解析器为所述解析服务器获取到至少一个数据指标的配置信息之后,根据每个数据指标的配置信息所生成的所述每个数据指标对应的数据指标解析器。
可选地,每个数据指标的配置信息包含文本类型信息,所述数据处理装置还包括:解析管理器创建模块,被配置为创建解析管理器;文本类型管理器创建模块,被配置为在所述解析管理器中创建至少一个文本类型管理器;生成模块,被配置为根据每个数据指标的配置信息,在所述每个数据指标的配置信息所包含的文本类型信息所指示的所述文本类型管理器中,生成所述每个数据指标对应的数据指标解析器。
可选地,每个数据指标的配置信息包含至少一个函数处理器的类型信息和代号信息,所述生成模块被配置为:根据每个数据指标的配置信息所包含的至少一个函数处理器中每个函数处理器的类型信息,在所述每个函数处理器的类型信息所指示的函数处理器库中获取所述每个函数处理器的代号信息所指示的函数处理器,其中,所述函数处理器库包含多个函数处理器;利用获取到的所述每个数据指标对应的至少一个函数处理器,在所述每个数据指标的配置信息所包含的文本类型信息所指示的所述文本类型管理器中,生成所述每个数据指标对应的数据指标解析器。
可选地,所述解析模块被配置为:确定所述待解析请求数据所包含的目标文本类型;在所述至少一个文本类型管理器中查找对应的文本类型为所述目标文本类型的目标文本类型管理器;利用在所述目标文本类型管理器内生成的数据指标解析器对所述待解析请求数据进行遍历解析处理,获得所述经过解析的数据。
可选地,所述解析模块被配置为:确定所述待解析请求数据所包含的数据类型;确定在所述目标文本类型管理器内生成的至少一个数据指标解析器中每个数据指标解析器所能解析的数据类型;利用在所述目标文本类型管理器内生成的、且所能解析的数据类型与所述待解析请求数据所包含的数据类型相匹配的数据指标解析器,对所述待解析请求数据进行遍历解析处理,获得所述经过解析的数据。
可选地,所述数据处理装置还包括:参数模板对象创建模块,被配置为在所述至少一个文本类型管理器中的每个文本类型管理器中创建参数模板对象;提取模块,被配置为提取所述待解析请求数据中所包含的应用的标识和账户标识;所述解析模块被配置为利用所述数据指标解析器对所述待解析请求数据中除所述应用的标识和所述账户标识之外的数据进行解析处理,获得所述经过解析的数据;所述数据处理装置还包括:存储模块,被配置为将所述应用的标识、所述账户标识和所述经过解析的数据,对应存储至所述数据指标解析器所在的文本类型管理器中的参数模板对象内。
可选地,所述数据处理装置还包括:接收模块,被配置为接收数据指标设置指令;显示模块,被配置为响应于所述数据指标设置指令,显示数据指标配置界面;设置模块,被配置为响应于用户的设置输入,在所述数据指标配置界面内设置所述至少一个数据指标的配置信息。
可选地,所述获取模块被配置为从第一消息队列拉取所述待解析请求数据,其中,所述待解析请求数据由所述接口服务器上传至所述第一消息队列。
可选地,所述数据处理装置还包括:发送模块,被配置为将所述经过解析的数据发送至第二消息队列,以通过所述第二消息队列将所述经过解析的数据存储到存储服务器。
根据本公开实施例的第三方面,提供一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现根据本公开的数据处理方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行根据本公开的数据处理方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据本公开的数据处理方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
需求方可以根据自身需要自行配置数据指标的配置信息,进而可以实现通过数据指标的配置信息生成该数据指标对应的数据指标解析器,在对数据指标进行更新时,无需开发人员手动编写相应的代码,避免对开发、测试资源的占用,可以减少时间成本和人力成本。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是示出根据本公开的示例性实施例的一种数据处理架构的示意图;
图2是示出根据本公开的示例性实施例的一种数据处理方法的流程图;
图3是示出根据本公开的示例性实施例的一种文本类型管理器的示意图;
图4是示出根据本公开的示例性实施例的一种在函数处理器库中获取函数处理器的示意图;
图5是示出根据本公开的示例性实施例的一种数据指标解析器的示意图;
图6是示出根据本公开的示例性实施例的一种解析管理器、文本类型管理器以及数据指标解析器的层级关系示意图;
图7是示出根据本公开的示例性实施例的一种参数模板对象的示意图;
图8是示出根据本公开的示例性实施例的一种数据处理方法的具体实施流程图;
图9是示出据本公开的示例性实施例的一种数据处理装置的框图;
图10是示出根据本公开的示例性实施例的一种电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在此需要说明的是,在本公开中出现的“若干项之中的至少一项”均表示包含“该若干项中的任意一项”、“该若干项中的任意多项的组合”、“该若干项的全体”这三类并列的情况。例如“包括A和B之中的至少一个”即包括如下三种并列的情况:(1)包括A;(2)包括B;(3)包括A和B。又例如“执行步骤一和步骤二之中的至少一个”,即表示如下三种并列的情况:(1)执行步骤一;(2)执行步骤二;(3)执行步骤一和步骤二。
目前,客户端在使用音视频应用的过程中,在某一时刻会记录一些打点数据用来体现这一时刻的音视频应用的运行质量,通过对这些质量数据的收集、分组、分析,可以发现音视频应用运行过程中可能存在的问题。随着音视频技术的发展,需要采集的数据指标也变得更多,更复杂,如何进行数据指标(Counter)的新增和更新成为需要解决的问题。
相关技术中,是在接收质量数据上报的接口中直接编写解析对应counter的代码逻辑,并针对该counter进行数据格式的转换等操作,最后将经过转换获得的结果存入数据库中。但是,此种方式中,数据上报接口和counter解析模块之间耦合严重,针对一次上报请求,既需要接收上报的数据,又需要解析这些数据,会消耗较多系统资源,降低接口的每秒查询率(Query Per Second,QPS),当大量请求到达服务端时可能会丢失部分请求。并且,此种方式需要开发人员手动在程序中添加采集数据的代码,然后再经过测试发版等流程。一次新增counter的需求至少需要数天时间,会产生额外的沟通成本,并且需要占用较多的开发、测试资源,会耗费较多的时间成本和人力成本。
为了解决相关技术中,在对数据指标进行更新时所耗费的时间成本和人力成本较高的问题,本公开提出的数据处理方法,需求方可以根据自身需要自行配置数据指标的配置信息,进而可以实现通过数据指标的配置信息生成该数据指标对应的数据指标解析器,在对数据指标进行更新时,无需开发人员手动编写相应的代码,避免对开发、测试资源的占用,可以减少时间成本和人力成本。
为了解决相关技术中,数据上报接口和counter解析模块之间耦合严重,当大量请求到达服务端时可能会丢失部分请求的问题,本公开提出的数据处理方法,可以将待解析请求数据存储在第一消息队列(MQ1)中,并从第一消息队列拉取并解析请求数据;并且,还可以将经过解析的数据发送至第二消息队列(MQ2),并通过第二消息队列将经过解析的数据存储到服务端的存储器。即使用消息队列(MQ)来链接各服务,针对上下游服务进行独立部署,实现了整个链路的解耦,可以起到流量的削峰填谷作用,即可以实现按需消费客户端发来的请求,避免大流量请求蜂拥而至打崩下游服务。
图1是示出根据本公开的示例性实施例的一种数据处理架构的示意图。
参照图1,本公开的数据处理架构需要一个数据库,两个消息队列和三个服务支持。
其中,数据库:质量数据存储数据库,该数据库可以为my sql数据库。
两个消息队列:
第一消息队列:用于链接接口服务和解析服务,可以传递初步格式化后的请求数据。
第二消息队列:用于链接解析服务和数据库入库服务,可以传递经过解析后的格式化数据。
三个服务:
a.接口服务:用来接收客户端的请求数据,实现鉴权、幂等和初步格式化的功能。
b.解析服务:整,个数据处理架构的核心服务通过配置信息生成数据指标解析器(Counter Parser),并解析处理第一消息队列中传递过来的请求数据,进而将经过解析处理获得的结果发送至第二消息队列。
c.数据库入库服务:可以将第二消息队列中的数据存入到对应的数据表中。
这样,使用消息队列来链接各服务,针对上下游服务进行独立部署,实现了整个链路的解耦,可以起到流量的削峰填谷作用,即可以实现按需消费客户端发来的请求,避免大流量请求蜂拥而至打崩下游服务。进一步的,针对上下游服务进行独立部署还可以做到对服务器资源的合理分配。例如,接口服务、数据库入库服务是输入输出(Input Output,IO)密集型服务;解析服务是计算密集型服务。当系统承压时,可以对出现瓶颈的服务定向扩容来缓解服务压力。
图2是示出根据本公开的示例性实施例的一种数据处理方法的流程图,应用于解析服务器。
参照图2,在步骤201中,可以获取待解析请求数据。其中,该待解析请求数据为由接口服务器接收且处理后的客户端请求数据。如前所述,接口服务器可以接收客户端的请求数据,进而可以针对客户端请求数据进行鉴权、幂等和初步格式化等处理,获得待利用解析服务器进行处理的待解析请求数据。
在步骤202中,可以利用数据指标解析器对待解析请求数据进行解析处理,获得经过解析的数据。其中,数据指标解析器为解析服务器获取到至少一个数据指标的配置信息之后,根据每个数据指标的配置信息所生成的每个数据指标对应的数据指标解析器。其中,数据指标可以为视频下行码率、视频采集帧率等等。如前所述,图1中示出了三个服务,分别为接口服务、解析服务和数据库入库服务,接口服务可以在接口服务器上实现、解析服务可以在解析服务器上实现、数据库入库服务可以在存储服务器上实现,可以利用解析服务器获取至少一个数据指标的配置信息。
根据本公开的示例性实施例,解析服务器可以接收数据指标设置指令,进而解析服务器响应于数据指标设置指令,可以显示数据指标配置界面。然后,响应于用户的设置输入,可以在数据指标配置界面内设置至少一个数据指标的配置信息,即需求方可以根据自身需要在数据指标配置界面内设置至少一个数据指标的配置信息。这样,可以提供一个可视的数据指标配置界面,需求方可以根据自身需要在数据指标配置界面内任意新增、修改数据指标的配置信息,进而可以通过数据指标的配置信息生成该数据指标对应的数据指标解析器,操作步骤简单易懂,方便快捷。在对数据指标进行更新时,无需开发人员手动编写相应的代码,避免对开发、测试资源的占用,可以减少时间成本和人力成本。
需要说明的是,每个数据指标的配置信息可以包含数据指标名称(counterName);数据指标编码(counterId);数据指标的别名(alias),例如,中文名;归属文本类型(contentType);前置过滤器(matcher)、取值器(evaluator)、解析器(parser)、后置过滤器(filter)、数据保存者(sinker)和读取时解析器。
其中,文本类型用来表示可以解析的到底是哪种文本类型的请求数据。并且,文本类型可以划分为客户端基础信息(ClientBaseInfo)、运行时信息(RuntimeInfo)、音频发送元数据(AtxMetaData)、视频接收媒体信息(VrxMediaInfo)等四种类型。
前置过滤器:亦可称为匹配器,Predicate接口。传入数据之后,可以获得一个布尔类型返回值,其用于在进行参数提取之前,判断当前接入数据是否需要进一步过滤。
取值器:根据配置值,选择指定实现类,传入数据和参数值,返回一个泛型对象Value,即根据输入的参数,配合适当的取值方式来提取所需数据。例如,所需提取的数据可以为单数值数据、双数值数据(双32位以内)、单字符数据(字符串数据专用)、百分比显示(两个number数据)、双字符串数据和布尔型数据等等。
解析器:取值后,可以调用配置的序列化方法,将数值序列化成一个能够适合放入数据库的数据结构,即可以将提取后的参数使用解析方式处理一次。例如,解析方式可以为除以1000、乘以10等数据处理方式。
后置过滤器:用来进行数据保存之前的一些过滤操作。例如,如果取值后发现数据和之前相比无变化、发现数据为无效数据或者触发了自定义的过滤条件,则可以阻止针对当前数据进行进一步操作。
数据保存者:调用sink方法传入需要保存的数据。
读取时解析器:和消费客户端发送的请求数据的过程无关,主要用于读取数据库中的配置信息。需要说明的是,数据在数据库中的形式可能是序列化后的数据,需要通过反序列化才能具备可读性,因此解析器一般会和读取时解析器组成一组序列化和反序列化函数。
根据本公开的示例性实施例,如前所述,每个数据指标的配置信息可以包含文本类型信息。首先,可以创建解析管理器(Parse Manager),即可以进行解析管理器初始化。该解析管理器负责管理模块的生命周期,将不同的接入数据按contentType分配到对应的数据指标解析器中,拒绝没有预先录入的contentType的客户端请求数据。
然后,可以在解析管理器中创建至少一个文本类型管理器(Content TypeManager),即可以进行至少一个文本类型管理器的初始化。该文本类型管理器主要用来存放实例化好的数据指标解析器,并且,文本类型管理器还可以将客户端发送的请求数据中的公共数据,例如,应用的标识(appId)、账户标识(userId)和事件时间戳(timestamp)等以约定方式提取出来,并作为一个数据模版供后续流程使用。文本类型管理器可以屏蔽contentType层面的异构,并管理数据解析的主要流程。
接下来,可以根据每个数据指标的配置信息,在每个数据指标的配置信息所包含的文本类型信息所指示的文本类型管理器中,生成每个数据指标对应的数据指标解析器,即实例化好的数据指标解析器会根据所属的contentType存放到相应的文本类型管理器中。图3是示出根据本公开的示例性实施例的一种文本类型管理器的示意图。参照图3,可以在一个文本类型管理器内创建n个数据指标解析器。
根据本公开的示例性实施例,每个数据指标的配置信息可以包含至少一个函数处理器的类型信息和代号信息。其中,至少一个函数处理器即为前文提到的前置过滤器、取值器、解析器、后置过滤器等等。
可以根据每个数据指标的配置信息所包含的至少一个函数处理器中每个函数处理器的类型信息,在每个函数处理器的类型信息所指示的函数处理器库中获取每个函数处理器的代号信息所指示的函数处理器。其中,函数处理器库可以包含多个函数处理器。
例如,函数处理器的类型可以分为前置过滤器、取值器、解析器和后置过滤器,每种函数处理器的类型均可以各自对应一个函数处理器库,即函数处理器工厂,例如,前置过滤器工厂(matcher factory)、取值器工厂(evaluator factory)、解析器工厂(parserfactory)和后置过滤器工厂(filter factory)。
每个函数处理器工厂中可以包含相应类型的多个处理函数代码段,并且同一个函数处理器工厂所包含的多个处理函数代码段可以分别对应彼此不同的代号信息(int)。例如,三个数据指标的配置信息中所包含的函数处理器的类型信息和代号信息可以分别为:Matcher(2)、Matcher(5)、filter(7)。则可以基于函数处理器的类型信息“Matcher”以及函数处理器的代号信息“2”,通过调用前置过滤器工厂(matcher factory)的getMatcher(2)方法,来获取数字代号“2”所指示的处理函数代码段;可以基于函数处理器的类型信息“Matcher”以及函数处理器的代号信息“5”,通过调用前置过滤器工厂(matcher factory)的getMatcher(5)方法,来获取数字代号“5”所指示的处理函数代码段;可以基于函数处理器的类型信息“filter”以及函数处理器的代号信息“7”,通过调用后置过滤器工厂(filterfactory)的getfilter(7)方法,来获取数字代号“7”所指示的处理函数代码段。图4是示出根据本公开的示例性实施例的一种在函数处理器库中获取函数处理器的示意图。
接下来,可以利用获取到的每个数据指标对应的至少一个函数处理器,在每个数据指标的配置信息所包含的文本类型信息所指示的文本类型管理器中,生成每个数据指标对应的数据指标解析器。其中,每个数据指标解析器可以对应一条counter的配置信息。图5是示出根据本公开的示例性实施例的一种数据指标解析器的示意图。参照图5,每个数据指标解析器可以包含前置过滤器、取值器、解析器、后置过滤器、数据保存者等组件化对象。
图6是示出根据本公开的示例性实施例的一种解析管理器、文本类型管理器以及数据指标解析器的层级关系示意图。参照图6,可以先进行解析管理器的初始化,解析管理器在初始化状态下不包含任何内容。然后,可以在经过初始化的解析管理器中创建多个文本类型管理器,此时,经过初始化的文本类型管理器中可以不包含任何内容。接下来,可以在经过初始化的每个文本类型管理器中,基于需求方上传的数据指标的配置信息,生成多个数据指标解析器。
根据本公开的示例性实施例,如前所述,可以从第一消息队列拉取待解析请求数据。其中,该待解析请求数据由接口服务器上传至第一消息队列,该第一消息队列可以为kafka平台上的消息队列。然后,解析服务器可以从第一消息队列拉取请求数据,并利用每个数据指标对应的数据指标解析器对请求数据进行解析处理,获得经过解析的数据。这样,接口服务和解析服务之间可以使用kafka平台上的消息队列作为请求数据的缓冲池,实现接口服务和解析服务的解耦,可以起到流量的削峰填谷作用,避免大流量请求蜂拥而至打崩下游服务。
根据本公开的示例性实施例,可以将经过解析的数据发送至第二消息队列,以通过第二消息队列将经过解析的数据存储到存储服务器,该第二消息队列可以为kafka平台上的消息队列。然后,可以通过第二消息队列将经过解析的数据存储到服务端的存储器,即可以通过第二消息队列将经过解析的数据存储到存储服务器。这样,解析服务和数据库入库服务之间可以使用kafka平台上的消息队列作为经过解析的数据的缓冲池,实现解析服务和数据库入库服务的解耦,可以起到流量的削峰填谷作用,避免大流量请求蜂拥而至打崩下游服务。
需要说明的是,当上游服务每分钟发送100万条数据过来,而下游服务每分钟只能消费50万条数据时,多出来的50万条数据如果直接发送到下游服务器上可能会导致下游服务器崩溃。此时,如果把多出来的50万条数据存放在消息队列,等下游服务不忙时再去消费这些数据,就可以实现按需消费,避免大流量数据打崩下游服务。
根据本公开的示例性实施例,可以确定待解析请求数据所包含的目标文本类型,进而可以在至少一个文本类型管理器中查找对应的文本类型为目标文本类型的目标文本类型管理器。接下来,可以利用在目标文本类型管理器内生成的至少一个数据指标解析器对待解析请求数据进行遍历解析处理,获得经过解析的数据,即可以利用在目标文本类型管理器内生成的至少一个数据指标解析器中的每个数据指标解析器分别对待解析请求数据进行解析处理,获得待解析请求数据经过每个数据指标解析器进行解析的数据。
例如,假设待解析请求数据所包含的目标文本类型为ClientBaseInfo。参照图6,假设图6示出的文本类型管理器(Content Type Manager 1)对应的文本类型为ClientBaseInfo;文本类型管理器(Content Type Manager 2)对应的文本类型为RuntimeInfo;文本类型管理器(Content Type Manager 3)对应的文本类型为AtxMetaData;文本类型管理器(Content Type Manager 4)对应的文本类型为VrxMediaInfo。此时,由于仅文本类型管理器(Content Type Manager 1)对应的文本类型与待解析请求数据所包含的目标文本类型相同,因此,可以仅将待解析请求数据发送至文本类型管理器(Content Type Manager1),并利用在文本类型管理器(Content TypeManager 1)内生成的数据指标解析器(Counter Parser 1)、数据指标解析器(CounterParser 2)和数据指标解析器(Counter Parser 3)对待解析请求数据进行遍历解析处理。这样,相比于直接将待解析请求数据发送至所有的文本类型管理器进行解析处理的方式,本公开将待解析请求数据选择性的输入至对应的文本类型与待解析请求数据所包含的目标文本类型相匹配的文本类型管理器进行解析处理,减少了遍历的次数,避免了无谓的遍历过程和额外开销,可以大幅节省计算资源。
根据本公开的示例性实施例,可以确定待解析请求数据所包含的数据类型,还可以确定在目标文本类型管理器内生成的至少一个数据指标解析器中每个数据指标解析器所能解析的数据类型。然后,可以利用在目标文本类型管理器内生成的、且所能解析的数据类型与待解析请求数据所包含的数据类型相匹配的数据指标解析器,对待解析请求数据进行遍历解析处理,获得经过解析的数据。
例如,假设待解析请求数据为视频数据,该视频数据所包含的数据类型为大流类型。参照图6,假设在文本类型管理器(Content Type Manager 1)内生成的数据指标解析器(Counter Parser 1)所能解析的数据类型为大流类型、数据指标解析器(Counter Parser2)所能解析的数据类型为小流类型、数据指标解析器(Counter Parser 3)所能解析的数据类型为小流类型。此时,由于仅数据指标解析器(Counter Parser 1)所能解析的数据类型与视频数据所包含的数据类型相同,因此,可以仅将视频数据发送至文本类型管理器(Content Type Manager 1)的数据指标解析器(Counter Parser 1)进行解析处理。这样,相比于直接将待解析请求数据发送至同一个文本类型管理器内所包含的所有数据指标解析器进行遍历解析处理的方式,本公开将待解析请求数据选择性的输入至所能解析的数据类型与待解析请求数据所包含的数据类型相匹配的数据指标解析器进行解析处理,减少了遍历的次数,避免了无谓的遍历过程和额外开销,可以大幅节省计算资源。
根据本公开的示例性实施例,可以在至少一个文本类型管理器中的每个文本类型管理器中创建参数模板对象(row)。其中,该参数模板对象可以包含值(value)对象和数据保存者,value对象用于临时存放已取出且已序列化的值,参数模板对象可以通过sink方法发送序列化数据至第二消息队列。图7是示出根据本公开的示例性实施例的一种参数模板对象的示意图。
可以提取待解析请求数据中所包含的公共数据,例如,应用的标识和账户标识。然后,可以利用每个数据指标对应的数据指标解析器对待解析请求数据中除应用的标识和账户标识之外的数据进行解析处理,获得经过解析的数据。接下来,可以将应用的标识、账户标识和经过解析的数据,对应存储至数据指标解析器所在的文本类型管理器中的参数模板对象内。例如,可以将应用的标识、账户标识和经过解析的数据对应存储至参数模板对象内的value对象内。这样,文本类型管理器中的参数模板对象可以将待解析请求数据所包含的公共数据提取出来,多个数据指标解析器对待解析请求数据进行遍历解析处理所获得的多个经过解析的数据均可以与公共数据对应存储至参数模板对象内的value对象内,即文本类型管理器中的参数模板对象可以复用于每个数据指标解析器的遍历,可以避免参数模板对象的重复创建,节省了计算资源。
需要说明的是,需求方在解析服务器上更新数据指标的配置信息之后,解析服务器会将更新的数据指标的配置信息上传至存储服务器,即my sql数据库,同时,解析服务器会向kafka平台的topic发送热更新指令。然后,kafka平台可以将热更新指令广播至订阅了kafka平台的topic的多个解析服务器,其中,订阅了kafka平台的topic的多个解析服务器中的每个解析服务器内均设置有解析管理器。
接下来,收到热更新指令的每个解析服务器内的解析管理器会锁住所有线程的消费,并从存储服务器,即my sql数据库上拉取更新的数据指标的配置信息,进而会基于拉取的更新的数据指标的配置信息在解析管理器内重新初始化数据指标解析器。
完成数据指标解析器的初始化过程之后,解析管理器会释放锁,并利用重新生成的数据指标解析器恢复针对客户端发送的请求数据的消费过程。
需要说明的是,被上传数据指标的配置信息的解析服务器可以直接基于需求方本次上传的数据指标的配置信息,进行数据指标解析器的初始化,也可以从存储服务器,即mysql数据库上拉取需求方本次更新的数据指标的配置信息,并基于拉取的更新的数据指标的配置信息初始化数据指标解析器。
图8是示出根据本公开的示例性实施例的一种数据处理方法的具体实施流程图,应用于解析服务器。
其中,"msgBody"里面是需要数据指标解析器进行解析的数据,和"msgBody"同级的是一些公共的基础数据,即:"appId":"demo_app_id"、"userId":"demo_user_id"、"clientTime":1640608163611//客户端发送时间--毫秒时间戳。
参照图8,在步骤801,调用解析管理器提供的解析(Parse)方法,传入客户端发送的请求数据。其中,客户端发送的请求数据可以为JSON格式。
在步骤802,解析(Parse)方法提取请求数据所包含的文本类型信息,在至少一个文本类型管理器中查找对应的文本类型与请求数据所包含的文本类型信息相匹配的文本类型管理器。
由前文的代码部分可知,请求数据所包含的文本类型信息为ClientBaseInfo;counterId=1、counterId=3、counterId=4和counterId=5的配置信息所属的文本类型均为ClientBaseInfo,counterId=2的配置信息所属的文本类型为RuntimeInfo。因此,counterId=2对应的数据指标解析器将不会参与后续针对请求数据的解析过程。
在步骤803,调用文本类型管理器内提取公共数据的方法,创建参数模板对象。如前所述,参数模板对象可以包含value对象和数据保存者。
此时,从客户端发送的请求数据中提取出的公共数据可以为:"appId":"demo_app_id"、"userId":"demo_user_id"和"clientTime":1640608163611(客户端发送时间--毫秒时间戳),这些被提取出的公共数据可以放入参数模板对象所包含的value对象内。另外,参数模板对象内还可以生成一些其他公共数据,例如服务器时间(server timestamp)等等。
在步骤804,遍历文本类型管理器所包含的多个数据指标解析器。其中,这里的数据指标解析器为在初始化阶段根据配置信息生成,并被放入对应的文本类型管理器中。
在步骤805,从文本类型管理器中取出一个数据指标解析器,并将客户端发送的请求数据传入该数据指标解析器进行解析处理。此处忽略指针为空(null)的情况,此时,counterId=1、counterId=3、counterId=4和counterId=5的数据指标解析器将被调用。
在步骤806,利用前置过滤器对客户端发送的请求数据进行过滤。
counterId=5的数据指标解析器想要提取的字段为"params":["ipAddress"],并且取值器为"evaluator":"提取字符串数据",而请求数据中ipAddress这个字段为"ipAddress":"110.132.221.9",因此,被提取出的数据为"110.132.221.9"。并且,counterId=5的数据指标解析器的前置过滤器为"matcher":"必须是10/192.168/172开头",而被提取出的数据"110.132.221.9"并不是10/192.168/172开头,因此请求数据未经受住counterId=5的数据指标解析器的前置过滤器的过滤,不可以继续参与后续的解析过程。
在步骤807,取值器在客户端发送的请求数据中提取指定字段的数据。
counterId=1的数据指标解析器想要提取的字段为"params":["country"],并且取值器为"evaluator":"提取字符串类型数据",而请求数据中country这个字段为"country":"CHN",因此,被提取出的数据为[“CHN”]。并且,counterId=1的数据指标解析器的前置过滤器为"matcher":"仅亚洲国家",而"CHN"恰好是亚洲国家,因此请求数据经受住了counterId=1的数据指标解析器的前置过滤器的过滤,可以继续参与后续的解析过程。
counterId=3的数据指标解析器中取值器为"evaluator":"提取字符串类型数据并用中划线(-)组合",并且想要提取的字段为"params":["province","city"],而请求数据中province这个字段为"province":"北京",city这个字段为"city":"北京",因此,被提取出的数据为["北京"-"北京"]。并且,counterId=3的数据指标解析器的前置过滤器为"matcher":"无",因此请求数据经受住了counterId=3的数据指标解析器的前置过滤器的过滤,可以继续参与后续的解析过程。
counterId=4的数据指标解析器想要提取的字段为"params":["screenHeight","screenWidth"],并且取值器为"evaluator":"提取2个int32数据",而请求数据中screenHeight这个字段为"screenHeight":720,screenWidth这个字段为"screenWidth":360,因此,被提取出的数据为[720,360]。并且,counterId=4的数据指标解析器的前置过滤器为"matcher":"宽和高大于0",而被提取出的screenHeight:720和screenWidth:360均大于零,因此请求数据经受住了counterId=4的数据指标解析器的前置过滤器的过滤,可以继续参与后续的解析过程。
在步骤808,解析器对从客户端发送的请求数据中提取出的数据进行解析,被提取出的数据会被格式化成期望的形式。
counterId=1的数据指标解析器的取值器提取出的数据为[“CHN”],并且,counterId=1的数据指标解析器的解析器为"parser":"国家英文简称转中文",因此被提取出的数据经过counterId=1的数据指标解析器的解析器进行解析获得的结果为:[“中国”]。
counterId=3的数据指标解析器的取值器提取出的数据为["北京"-"北京"],并且,counterId=3的数据指标解析器的解析器为"parser":"无",因此被提取出的数据经过counterId=3的数据指标解析器的解析器进行解析获得的结果为:["北京"-"北京"]。
counterId=4的数据指标解析器的取值器提取出的数据为[720,360],并且,counterId=4的数据指标解析器的解析器为"parser":"将两个int32数据并组合成int64数据",因此被提取出的数据经过counterId=4的数据指标解析器的解析器进行解析获得的结果为:[3092376453480](高32位存第一个int32,低32位存第二个int32)。
在步骤809,利用后置过滤器对经过解析获得的数据进行过滤。
counterId=3的数据指标解析器的后置过滤器为"filter":"不可为空",而经过counterId=3的数据指标解析器的解析器进行解析获得的结果为:["北京"-"北京"]。由于["北京"-"北京"]的内容不为空,因此经过解析获得的结果经受住了counterId=3的数据指标解析器的后置过滤器的过滤,可以继续参与后续的过程。
counterId=4的数据指标解析器的后置过滤器为"filter":"无",而经过counterId=4的数据指标解析器的解析器进行解析获得的结果为:[3092376453480]。因此经过解析获得的结果经受住了counterId=4的数据指标解析器的后置过滤器的过滤,可以继续参与后续的过程。
在步骤8010,将经过后置过滤器过滤之后得到的数据存入步骤803中创建的参数模板对象所包含的value对象内,并调用数据指标解析器提供的数据保存者方法,将数据通过消息队列存入数据库。
例如,可以将counterId=3的数据指标解析器针对请求数据进行解析获得的结果:["北京"-"北京"],以及将counterId=4的数据指标解析器针对请求数据进行解析获得的结果:[3092376453480]存入步骤803中创建的参数模板对象所包含的value对象内。此时,参数模板对象所包含的value对象内包含了客户端发送的请求数据中的公共数据:"appId":"demo_app_id"、"userId":"demo_user_id"和"clientTime":1640608163611,还包含counterId=3的数据指标解析器的解析结果:["北京"-"北京"]以及counterId=4的数据指标解析器的解析结果:[3092376453480]。
进一步的,可以调用counterId=3的数据指标解析器所包含的数据保存者方法:"sinker":"客户端基础数据专用数据库",将counterId=3的数据指标解析器的解析结果:["北京"-"北京"]通过消息队列存入数据保存者所指定的位置;可以调用counterId=4的数据指标解析器所包含的数据保存者方法:"sinker":"客户端基础数据专用数据库",将counterId=4的数据指标解析器的解析结果:[3092376453480]通过消息队列存入数据保存者所指定的位置。
在步骤8011,判断文本类型管理器中是否存在未遍历的数据指标解析器。如果存在未遍历的数据指标解析器,则返回执行步骤805;如果不存在未遍历的数据指标解析器,则执行步骤8012。
在步骤8012,本次针对客户端发送的请求数据的解析过程结束,等待下一次请求数据的接入。
图9是示出根据本公开的示例性实施例的一种数据处理装置的框图,应用于解析服务器。
参照图9,该装置900可包括获取模块901和解析模块902。
获取模块901可以获取待解析请求数据。其中,该待解析请求数据为由接口服务器接收且处理后的客户端请求数据。如前所述,接口服务器可以接收客户端的请求数据,进而可以针对客户端请求数据进行鉴权、幂等和初步格式化等处理,获得待利用解析服务器进行处理的待解析请求数据。
解析模块902可以利用数据指标解析器对待解析请求数据进行解析处理,获得经过解析的数据。其中,数据指标解析器为解析服务器获取到至少一个数据指标的配置信息之后,根据每个数据指标的配置信息所生成的每个数据指标对应的数据指标解析器。其中,数据指标可以为视频下行码率、视频采集帧率等等。如前所述,图1中示出了三个服务,分别为接口服务、解析服务和数据库入库服务,接口服务可以在接口服务器上实现、解析服务可以在解析服务器上实现、数据库入库服务可以在存储服务器上实现,可以利用解析服务器获取至少一个数据指标的配置信息。
根据本公开的示例性实施例,数据处理装置900还可以包含接收模块、显示模块和设置模块。接收模块可以接收数据指标设置指令,进而显示模块响应于数据指标设置指令,可以显示数据指标配置界面。然后,设置模块响应于用户的设置输入,可以在数据指标配置界面内设置至少一个数据指标的配置信息,即需求方可以根据自身需要在数据指标配置界面内设置至少一个数据指标的配置信息。这样,可以提供一个可视的数据指标配置界面,需求方可以根据自身需要在数据指标配置界面内任意新增、修改数据指标的配置信息,进而可以通过数据指标的配置信息生成该数据指标对应的数据指标解析器,操作步骤简单易懂,方便快捷。在对数据指标进行更新时,无需开发人员手动编写相应的代码,避免对开发、测试资源的占用,可以减少时间成本和人力成本。其中,每个数据指标的配置信息可以包含数据指标名称;数据指标编码;数据指标的别名,例如,中文名;归属文本类型;前置过滤器、取值器、解析器、后置过滤器、数据保存者和读取时解析器。
根据本公开的示例性实施例,数据处理装置900还可以包含解析管理器创建模块、文本类型管理器创建模块和生成模块。每个数据指标的配置信息可以包含文本类型信息。首先,解析管理器创建模块可以创建解析管理器,即可以进行解析管理器初始化。该解析管理器负责管理模块的生命周期,将不同的接入数据按contentType分配到对应的数据指标解析器中,拒绝没有预先录入的contentType的客户端请求数据。
然后,文本类型管理器创建模块可以在解析管理器中创建至少一个文本类型管理器,即可以进行至少一个文本类型管理器的初始化。该文本类型管理器主要用来存放实例化好的数据指标解析器,并且,文本类型管理器还可以将客户端发送的请求数据中的公共数据,例如,应用的标识、账户标识和事件时间戳等以约定方式提取出来,并作为一个数据模版供后续流程使用。文本类型管理器可以屏蔽contentType层面的异构,并管理数据解析的主要流程。
接下来,生成模块可以根据每个数据指标的配置信息,在每个数据指标的配置信息所包含的文本类型信息所指示的文本类型管理器中,生成每个数据指标对应的数据指标解析器,即实例化好的数据指标解析器会根据所属的contentType存放到相应的文本类型管理器中。
根据本公开的示例性实施例,每个数据指标的配置信息可以包含至少一个函数处理器的类型信息和代号信息。其中,至少一个函数处理器即为前文提到的前置过滤器、取值器、解析器、后置过滤器等等。
生成模块可以根据每个数据指标的配置信息所包含的至少一个函数处理器中每个函数处理器的类型信息,在每个函数处理器的类型信息所指示的函数处理器库中获取每个函数处理器的代号信息所指示的函数处理器。其中,函数处理器库可以包含多个函数处理器。
接下来,生成模块可以利用获取到的每个数据指标对应的至少一个函数处理器,在每个数据指标的配置信息所包含的文本类型信息所指示的文本类型管理器中,生成每个数据指标对应的数据指标解析器。
根据本公开的示例性实施例,获取模块901可以从第一消息队列拉取待解析请求数据。其中,该待解析请求数据由接口服务器上传至第一消息队列,该第一消息队列可以为kafka平台上的消息队列。然后,解析服务器可以从第一消息队列拉取请求数据,并利用每个数据指标对应的数据指标解析器对请求数据进行解析处理,获得经过解析的数据。这样,接口服务和解析服务之间可以使用kafka平台上的消息队列作为请求数据的缓冲池,实现接口服务和解析服务的解耦,可以起到流量的削峰填谷作用,避免大流量请求蜂拥而至打崩下游服务。
根据本公开的示例性实施例,数据处理装置900还可以包含发送模块。发送模块可以将经过解析的数据发送至第二消息队列,以通过第二消息队列将经过解析的数据存储到存储服务器,该第二消息队列可以为kafka平台上的消息队列。然后,可以通过第二消息队列将经过解析的数据存储到服务端的存储器,即可以通过第二消息队列将经过解析的数据存储到存储服务器。这样,解析服务和数据库入库服务之间可以使用kafka平台上的消息队列作为经过解析的数据的缓冲池,实现解析服务和数据库入库服务的解耦,可以起到流量的削峰填谷作用,避免大流量请求蜂拥而至打崩下游服务。
根据本公开的示例性实施例,解析模块902可以确定待解析请求数据所包含的目标文本类型,进而可以在至少一个文本类型管理器中查找对应的文本类型为目标文本类型的目标文本类型管理器。接下来,可以利用在目标文本类型管理器内生成的至少一个数据指标解析器对待解析请求数据进行遍历解析处理,获得经过解析的数据,即可以利用在目标文本类型管理器内生成的至少一个数据指标解析器中的每个数据指标解析器分别对待解析请求数据进行解析处理,获得待解析请求数据经过每个数据指标解析器进行解析的数据。这样,相比于直接将待解析请求数据发送至所有的文本类型管理器进行解析处理的方式,本公开将待解析请求数据选择性的输入至对应的文本类型与待解析请求数据所包含的目标文本类型相匹配的文本类型管理器进行解析处理,减少了遍历的次数,避免了无谓的遍历过程和额外开销,可以大幅节省计算资源。
根据本公开的示例性实施例,解析模块902可以确定待解析请求数据所包含的数据类型,还可以确定在目标文本类型管理器内生成的至少一个数据指标解析器中每个数据指标解析器所能解析的数据类型。然后,可以利用在目标文本类型管理器内生成的、且所能解析的数据类型与待解析请求数据所包含的数据类型相匹配的数据指标解析器,对待解析请求数据进行遍历解析处理,获得经过解析的数据。这样,相比于直接将待解析请求数据发送至同一个文本类型管理器内所包含的所有数据指标解析器进行遍历解析处理的方式,本公开将待解析请求数据选择性的输入至所能解析的数据类型与待解析请求数据所包含的数据类型相匹配的数据指标解析器进行解析处理,减少了遍历的次数,避免了无谓的遍历过程和额外开销,可以大幅节省计算资源。
根据本公开的示例性实施例,数据处理装置900还可以包含参数模板对象创建模块、提取模块和存储模块。参数模板对象创建模块可以在至少一个文本类型管理器中的每个文本类型管理器中创建参数模板对象。其中,该参数模板对象可以包含value对象和数据保存者,value对象用于临时存放已取出且已序列化的值,参数模板对象可以通过sink方法发送序列化数据至第二消息队列。
提取模块可以提取待解析请求数据中所包含的公共数据,例如,应用的标识和账户标识。然后,解析模块902可以利用每个数据指标对应的数据指标解析器对待解析请求数据中除应用的标识和账户标识之外的数据进行解析处理,获得经过解析的数据。接下来,存储模块可以将应用的标识、账户标识和经过解析的数据,对应存储至数据指标解析器所在的文本类型管理器中的参数模板对象内。例如,存储模块可以将应用的标识、账户标识和经过解析的数据对应存储至参数模板对象内的value对象内。这样,文本类型管理器中的参数模板对象可以将待解析请求数据所包含的公共数据提取出来,多个数据指标解析器对待解析请求数据进行遍历解析处理所获得的多个经过解析的数据均可以与公共数据对应存储至参数模板对象内的value对象内,即文本类型管理器中的参数模板对象可以复用于每个数据指标解析器的遍历,可以避免参数模板对象的重复创建,节省了计算资源。
图10是示出根据本公开的示例性实施例的一种电子设备1000的框图。
参照图10,电子设备1000包括至少一个存储器1001和至少一个处理器1002,所述至少一个存储器1001中存储有指令,当指令被至少一个处理器1002执行时,执行根据本公开的示例性实施例的数据处理方法。
作为示例,电子设备1000可以是PC计算机、平板装置、个人数字助理、智能手机、或其他能够执行上述指令的装置。这里,电子设备1000并非必须是单个的电子设备,还可以是任何能够单独或联合执行上述指令(或指令集)的装置或电路的集合体。电子设备1000还可以是集成控制系统或系统管理器的一部分,或者可被配置为与本地或远程(例如,经由无线传输)以接口互联的便携式电子设备。
在电子设备1000中,处理器1002可包括中央处理器(CPU)、图形处理器(GPU)、可编程逻辑装置、专用处理器系统、微控制器或微处理器。作为示例而非限制,处理器还可包括模拟处理器、数字处理器、微处理器、多核处理器、处理器阵列、网络处理器等。
处理器1002可运行存储在存储器1001中的指令或代码,其中,存储器1001还可以存储数据。指令和数据还可经由网络接口装置而通过网络被发送和接收,其中,网络接口装置可采用任何已知的传输协议。
存储器1001可与处理器1002集成为一体,例如,将RAM或闪存布置在集成电路微处理器等之内。此外,存储器1001可包括独立的装置,诸如,外部盘驱动、存储阵列或任何数据库系统可使用的其他存储装置。存储器1001和处理器1002可在操作上进行耦合,或者可例如通过I/O端口、网络连接等互相通信,使得处理器1002能够读取存储在存储器中的文件。
此外,电子设备1000还可包括视频显示器(诸如,液晶显示器)和用户交互接口(诸如,键盘、鼠标、触摸输入装置等)。电子设备1000的所有组件可经由总线和/或网络而彼此连接。
根据本公开的示例性实施例,还可提供一种计算机可读存储介质,当计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述数据处理方法。这里的计算机可读存储介质的示例包括:只读存储器(ROM)、随机存取可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、非易失性存储器、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、蓝光或光盘存储器、硬盘驱动器(HDD)、固态硬盘(SSD)、卡式存储器(诸如,多媒体卡、安全数字(SD)卡或极速数字(XD)卡)、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及任何其他装置,所述任何其他装置被配置为以非暂时性方式存储计算机程序以及任何相关联的数据、数据文件和数据结构并将所述计算机程序以及任何相关联的数据、数据文件和数据结构提供给处理器或计算机使得处理器或计算机能执行所述计算机程序。上述计算机可读存储介质中的计算机程序可在诸如客户端、主机、代理装置、服务器等计算机设备中部署的环境中运行,此外,在一个示例中,计算机程序以及任何相关联的数据、数据文件和数据结构分布在联网的计算机系统上,使得计算机程序以及任何相关联的数据、数据文件和数据结构通过一个或多个处理器或计算机以分布式方式存储、访问和执行。
根据本公开的示例性实施例,还可提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据本公开的数据处理方法。
根据本公开的数据处理方法、装置、电子设备和存储介质,需求方可以根据自身需要自行配置数据指标的配置信息,进而可以实现通过数据指标的配置信息生成该数据指标对应的数据指标解析器,在对数据指标进行更新时,无需开发人员手动编写相应的代码,避免对开发、测试资源的占用,可以减少时间成本和人力成本。
进一步的,可以提供一个可视的数据指标配置界面,需求方可以根据自身需要在数据指标配置界面内任意新增、修改数据指标的配置信息,进而可以通过数据指标的配置信息生成该数据指标对应的数据指标解析器,操作步骤简单易懂,方便快捷。
进一步的,接口服务和解析服务之间可以使用kafka平台上的消息队列作为请求数据的缓冲池,实现接口服务和解析服务的解耦,可以起到流量的削峰填谷作用,避免大流量请求蜂拥而至打崩下游服务。
进一步的,解析服务和数据库入库服务之间可以使用kafka平台上的消息队列作为经过解析的数据的缓冲池,实现解析服务和数据库入库服务的解耦,可以起到流量的削峰填谷作用,避免大流量请求蜂拥而至打崩下游服务。
进一步的,相比于直接将待解析请求数据发送至所有的文本类型管理器进行解析处理的方式,本公开将待解析请求数据选择性的输入至对应的文本类型与待解析请求数据所包含的目标文本类型相匹配的文本类型管理器进行解析处理,减少了遍历的次数,避免了无谓的遍历过程和额外开销,可以大幅节省计算资源。
进一步的,相比于直接将待解析请求数据发送至同一个文本类型管理器内所包含的所有数据指标解析器进行遍历解析处理的方式,本公开将待解析请求数据选择性的输入至所能解析的数据类型与待解析请求数据所包含的数据类型相匹配的数据指标解析器进行解析处理,减少了遍历的次数,避免了无谓的遍历过程和额外开销,可以大幅节省计算资源。
进一步的,文本类型管理器中的参数模板对象可以复用于每个数据指标解析器的遍历,可以避免参数模板对象的重复创建,节省了计算资源。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种数据处理方法,应用于解析服务器,其特征在于,所述数据处理方法包括:
获取待解析请求数据,其中,所述待解析请求数据为由接口服务器接收且处理后的客户端请求数据;
利用数据指标解析器对所述待解析请求数据进行解析处理,获得经过解析的数据,其中,所述数据指标解析器为所述解析服务器获取到至少一个数据指标的配置信息之后,根据每个数据指标的配置信息所生成的所述每个数据指标对应的数据指标解析器。
2.如权利要求1所述的数据处理方法,其特征在于,每个数据指标的配置信息包含文本类型信息,
在获取待解析请求数据的步骤之前,还包括:
创建解析管理器;
在所述解析管理器中创建至少一个文本类型管理器;
根据每个数据指标的配置信息,在所述每个数据指标的配置信息所包含的文本类型信息所指示的所述文本类型管理器中,生成所述每个数据指标对应的数据指标解析器。
3.如权利要求2所述的数据处理方法,其特征在于,每个数据指标的配置信息包含至少一个函数处理器的类型信息和代号信息,
所述根据每个数据指标的配置信息,在所述每个数据指标的配置信息所包含的文本类型信息所指示的所述文本类型管理器中,生成所述每个数据指标对应的数据指标解析器,包括:
根据每个数据指标的配置信息所包含的至少一个函数处理器中每个函数处理器的类型信息,在所述每个函数处理器的类型信息所指示的函数处理器库中获取所述每个函数处理器的代号信息所指示的函数处理器,其中,所述函数处理器库包含多个函数处理器;
利用获取到的所述每个数据指标对应的至少一个函数处理器,在所述每个数据指标的配置信息所包含的文本类型信息所指示的所述文本类型管理器中,生成所述每个数据指标对应的数据指标解析器。
4.如权利要求2所述的数据处理方法,其特征在于,所述利用数据指标解析器对所述待解析请求数据进行解析处理,获得经过解析的数据,包括:
确定所述待解析请求数据所包含的目标文本类型;
在所述至少一个文本类型管理器中查找对应的文本类型为所述目标文本类型的目标文本类型管理器;
利用在所述目标文本类型管理器内生成的数据指标解析器对所述待解析请求数据进行遍历解析处理,获得所述经过解析的数据。
5.如权利要求4所述的数据处理方法,其特征在于,所述利用在所述目标文本类型管理器内生成的数据指标解析器对所述待解析请求数据进行遍历解析处理,包括:
确定所述待解析请求数据所包含的数据类型;
确定在所述目标文本类型管理器内生成的至少一个数据指标解析器中每个数据指标解析器所能解析的数据类型;
利用在所述目标文本类型管理器内生成的、且所能解析的数据类型与所述待解析请求数据所包含的数据类型相匹配的数据指标解析器,对所述待解析请求数据进行遍历解析处理,获得所述经过解析的数据。
6.如权利要求2所述的数据处理方法,其特征在于,所述数据处理方法还包括:
在所述至少一个文本类型管理器中的每个文本类型管理器中创建参数模板对象;
提取所述待解析请求数据中所包含的应用的标识和账户标识;
所述利用数据指标解析器对所述待解析请求数据进行解析处理,包括:
利用所述数据指标解析器对所述待解析请求数据中除所述应用的标识和所述账户标识之外的数据进行解析处理,获得所述经过解析的数据;
所述数据处理方法还包括:
将所述应用的标识、所述账户标识和所述经过解析的数据,对应存储至所述数据指标解析器所在的文本类型管理器中的参数模板对象内。
7.一种数据处理装置,应用于解析服务器,其特征在于,包括:
获取模块,被配置为获取待解析请求数据,其中,所述待解析请求数据为由接口服务器接收且处理后的客户端请求数据;
解析模块,被配置为利用数据指标解析器对所述待解析请求数据进行解析处理,获得经过解析的数据,其中,所述数据指标解析器为所述解析服务器获取到至少一个数据指标的配置信息之后,根据每个数据指标的配置信息所生成的所述每个数据指标对应的数据指标解析器。
8.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至6中任一项所述的数据处理方法。
9.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1至6中任一项所述的数据处理方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210851420.5A CN115080150A (zh) | 2022-07-19 | 2022-07-19 | 数据处理方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210851420.5A CN115080150A (zh) | 2022-07-19 | 2022-07-19 | 数据处理方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115080150A true CN115080150A (zh) | 2022-09-20 |
Family
ID=83260505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210851420.5A Pending CN115080150A (zh) | 2022-07-19 | 2022-07-19 | 数据处理方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115080150A (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103309884A (zh) * | 2012-03-13 | 2013-09-18 | 阿里巴巴集团控股有限公司 | 用户行为数据采集方法及系统 |
CN106156307A (zh) * | 2016-06-30 | 2016-11-23 | 北京奇虎科技有限公司 | 一种实时计算平台的数据处理系统和方法 |
CN107491382A (zh) * | 2017-07-21 | 2017-12-19 | 北京京东尚科信息技术有限公司 | 日志输出方法和装置 |
CN110457089A (zh) * | 2019-07-05 | 2019-11-15 | 中国平安人寿保险股份有限公司 | 数据采集方法、装置、计算机可读存储介质和计算机设备 |
CN111831636A (zh) * | 2020-07-28 | 2020-10-27 | 平安国际融资租赁有限公司 | 一种数据处理方法、装置、计算机系统及可读存储介质 |
CN111898036A (zh) * | 2020-06-24 | 2020-11-06 | 方欣科技有限公司 | 一种行为数据收集处理系统及方法 |
CN112162740A (zh) * | 2020-09-25 | 2021-01-01 | 北京易观智库网络科技有限公司 | 基于ios-sdk的可视化数据采集方法及系统 |
CN112256772A (zh) * | 2019-07-22 | 2021-01-22 | 腾讯科技(深圳)有限公司 | 数据服务方法、装置以及可读存储介质 |
CN112711398A (zh) * | 2020-12-29 | 2021-04-27 | 平安普惠企业管理有限公司 | 埋点文件生成方法、装置、设备及存储介质 |
CN113568621A (zh) * | 2021-07-30 | 2021-10-29 | 北京达佳互联信息技术有限公司 | 一种页面埋点的数据处理方法和装置 |
CN113781092A (zh) * | 2021-04-19 | 2021-12-10 | 北京京东拓先科技有限公司 | 数据处理方法、装置、设备及存储介质 |
CN114528010A (zh) * | 2022-02-22 | 2022-05-24 | 北京沃东天骏信息技术有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
-
2022
- 2022-07-19 CN CN202210851420.5A patent/CN115080150A/zh active Pending
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103309884A (zh) * | 2012-03-13 | 2013-09-18 | 阿里巴巴集团控股有限公司 | 用户行为数据采集方法及系统 |
CN106156307A (zh) * | 2016-06-30 | 2016-11-23 | 北京奇虎科技有限公司 | 一种实时计算平台的数据处理系统和方法 |
CN107491382A (zh) * | 2017-07-21 | 2017-12-19 | 北京京东尚科信息技术有限公司 | 日志输出方法和装置 |
CN110457089A (zh) * | 2019-07-05 | 2019-11-15 | 中国平安人寿保险股份有限公司 | 数据采集方法、装置、计算机可读存储介质和计算机设备 |
CN112256772A (zh) * | 2019-07-22 | 2021-01-22 | 腾讯科技(深圳)有限公司 | 数据服务方法、装置以及可读存储介质 |
CN111898036A (zh) * | 2020-06-24 | 2020-11-06 | 方欣科技有限公司 | 一种行为数据收集处理系统及方法 |
CN111831636A (zh) * | 2020-07-28 | 2020-10-27 | 平安国际融资租赁有限公司 | 一种数据处理方法、装置、计算机系统及可读存储介质 |
CN112162740A (zh) * | 2020-09-25 | 2021-01-01 | 北京易观智库网络科技有限公司 | 基于ios-sdk的可视化数据采集方法及系统 |
CN112711398A (zh) * | 2020-12-29 | 2021-04-27 | 平安普惠企业管理有限公司 | 埋点文件生成方法、装置、设备及存储介质 |
CN113781092A (zh) * | 2021-04-19 | 2021-12-10 | 北京京东拓先科技有限公司 | 数据处理方法、装置、设备及存储介质 |
CN113568621A (zh) * | 2021-07-30 | 2021-10-29 | 北京达佳互联信息技术有限公司 | 一种页面埋点的数据处理方法和装置 |
CN114528010A (zh) * | 2022-02-22 | 2022-05-24 | 北京沃东天骏信息技术有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110784419B (zh) | 铁路电务专业数据可视化方法及系统 | |
CN111488363B (zh) | 数据处理方法、装置、电子设备及介质 | |
Brown et al. | Implementation patterns for microservices architectures | |
CN112949276A (zh) | 报表生成方法、装置、电子设备及存储介质 | |
CN109524070B (zh) | 数据处理方法及装置、电子设备、存储介质 | |
CN111813963A (zh) | 知识图谱构建方法、装置、电子设备及存储介质 | |
CN108564339A (zh) | 一种账户管理方法、装置、终端设备及存储介质 | |
WO2019109518A1 (zh) | 一种数据列表的上传方法及其终端 | |
CN110569214A (zh) | 用于日志文件的索引构建方法、装置及电子设备 | |
WO2020000726A1 (zh) | 性能测试报告的生成方法、电子装置及可读存储介质 | |
CN110147470B (zh) | 一种跨机房数据比对系统及方法 | |
CN113962597A (zh) | 一种数据分析方法、装置、电子设备及存储介质 | |
CN112711398A (zh) | 埋点文件生成方法、装置、设备及存储介质 | |
CN112905636A (zh) | 数据操作方法、服务器和计算机可读介质 | |
CN113282854A (zh) | 数据请求响应方法、装置、电子设备及存储介质 | |
CN111414410A (zh) | 数据处理方法、装置、设备和存储介质 | |
CN111752920A (zh) | 用于管理元数据的方法、系统及存储介质 | |
CN113792138B (zh) | 报表生成方法、装置、电子设备及存储介质 | |
CN112671878B (zh) | 一种区块链的信息订阅方法、装置、服务器和存储介质 | |
CN110909017B (zh) | 数据分析方法和系统 | |
CN112597171A (zh) | 表格关系可视化方法、装置、电子设备及存储介质 | |
CN115080150A (zh) | 数据处理方法、装置、电子设备和存储介质 | |
CN112905617B (zh) | 数据写入方法、服务器及计算机可读存储介质 | |
CN111916164B (zh) | 用于临床研究中的中心启动调研系统的实现方法和装置 | |
CN115114297A (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 |