CN117851422A - 数据处理方法和装置、电子设备和存储介质 - Google Patents
数据处理方法和装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN117851422A CN117851422A CN202211213818.2A CN202211213818A CN117851422A CN 117851422 A CN117851422 A CN 117851422A CN 202211213818 A CN202211213818 A CN 202211213818A CN 117851422 A CN117851422 A CN 117851422A
- Authority
- CN
- China
- Prior art keywords
- rule
- sub
- target
- hit
- preset
- 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 abstract description 19
- 238000000034 method Methods 0.000 claims abstract description 36
- 238000012545 processing Methods 0.000 claims description 27
- 238000004891 communication Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 12
- 238000005516 engineering process Methods 0.000 abstract description 9
- 238000001514 detection method Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000000547 structure data Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据处理方法和装置、电子设备和存储介质,该方法包括:获取当前请求对应的时间戳;确定在时间戳时每个预设规则下各子规则对应的命中数据;将时间戳、预设规则以及每个预设规则下各子规则对应的命中数据,写入目标数据库;根据写入的时间戳、预设规则以及每个预设规则下各子规则对应的命中数据,确定在时间戳时,每个预设规则下所有子规则对应的目标命中数据。通过本申请,解决了相关技术中存在数据统计不准确的问题。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种数据处理方法和装置、电子设备和存储介质。
背景技术
目前,策略平台作为直播内容的核心基础服务,几乎承载了线上直播间的全量检测策略,所以当下在保证策略计算稳定运行的同时,还需要对各策略的请求量,命中数据进行实时统计。其中,数据统计的可靠性是指:数据不丢失,不重复,并且策略计算的时间点统计要准确。
但是,相关技术中数据处理方案仍然存在命中数据统计不准确,数据处理效率较低等问题。
发明内容
本申请提供了一种数据处理方法和装置、电子设备和存储介质,以至少解决相关技术中存在的问题。
根据本申请实施例的一个方面,提供了一种数据处理方法,该方法包括:
获取当前请求对应的时间戳;
确定在所述时间戳时每个预设规则下各子规则对应的命中数据;
将所述时间戳、所述预设规则以及每个所述预设规则下各子规则对应的命中数据,写入目标数据库;
根据写入的所述时间戳、所述预设规则以及每个所述预设规则下各子规则对应的命中数据,确定在所述时间戳时,每个所述预设规则下所有所述子规则对应的目标命中数据。
根据本申请实施例的另一个方面,还提供了一种数据处理装置,该装置包括:
第一获取模块,用于获取当前请求对应的时间戳;
第一确定模块,用于确定在所述时间戳时每个预设规则下各子规则对应的命中数据;
第一写入模块,用于将所述时间戳、所述预设规则以及每个所述预设规则下各子规则对应的命中数据,写入目标数据库;
第二确定模块,用于根据写入的所述时间戳、所述预设规则以及每个所述预设规则下各子规则对应的命中数据,确定在所述时间戳时,每个所述预设规则下所有所述子规则对应的目标命中数据。
可选地,第一确定模块包括:
第一获取单元,用于获取每个所述预设规则下对应的多个所述子规则;
第二获取单元,用于获取在所述时间戳时每个所述预设规则下各个所述子规则的所述命中数据。
可选地,命中数据包括命中量,第二确定模块包括:
读取单元,用于从所述目标数据库内读取所述预设规则以及每个所述预设规则下各子规则对应的所述命中量;
第一确定单元,用于确定在所述时间戳时每个所述预设规则下所有所述子规则对应的所述总命中量。
可选地,该装置为目标容器,该目标容器为预设容器集群中的任一容器,第一确定单元包括:
第一获取子单元,用于获取目标容器帐号,其中,所述目标容器帐号为所述目标容器的容器帐号;
第二获取子单元,用于获取参考容器帐号,其中,所述参考容器帐号为所述容器集群中除了所述目标容器之外其他容器所对应的容器帐号;
统计子单元,用于统计在所述参考容器帐号和所述目标容器帐号下,处于所述时间戳时每个所述预设规则中所有所述子规则对应的命中量;
确定子单元,用于确定在所述时间戳时每个所述预设规则下所有所述子规则对应的所述总命中量。
可选地,该装置还包括:
第二获取模块,用于在所述写入目标数据库之后,获取结构体数据;
第二写入模块,用于在接收到写入所述目标数据库失败指令的情况下,将生成的所述结构体数据放入重试队列,其中,所述结构体数据由所述目标容器帐号、所述时间戳、所述目标命中数据以及写入所述目标数据库失败后的重试次数组成;
第三写入模块,用于在预设时间段内从所述重试队列内获取所述结构体数据,重新写入所述目标数据库,若写入成功,则从所述重试队列移除所述结构体数据,否则持续在所述预设时间段内从所述重试队列内获取所述结构体数据,重新写入所述目标数据库,直至循环次数超过预设重试次数阈值,结束写入所述目标数据库。
可选地,该装置还包括:
第一发送模块,用于在所述从所述目标数据库内读取所述预设规则以及每个所述预设规则下各子规则对应的命中量之前,向所述目标数据库发送读取指令,其中,所述读取指令中携带有加锁命令;
第三获取模块,用于获取所述目标数据库返回的反馈信息,其中,所述反馈信息用于表征所述目标容器帐号是否具有读取所述命中数据的权限;
加锁模块,用于所述反馈信息为所述目标容器帐号不具有读取所述命中数据的权限的情况下,对所述命中数据执行加锁操作。
可选地,该装置还包括:
第四获取模块,用于在所述根据写入的所述时间戳、所述预设规则以及每个所述预设规则下各子规则对应的命中数据,确定在所述时间戳时,每个所述预设规则下所有所述子规则对应的目标命中数据之后,按照预设频率获取所述目标命中数据;
第二发送模块,用于将所述目标命中数据通过中间数据库发送至存储组件进行存储。
根据本申请实施例的又一个方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;其中,存储器,用于存储计算机程序;处理器,用于通过运行所述存储器上所存储的所述计算机程序来执行上述任一实施例中的方法步骤。
根据本申请实施例的又一个方面,还提供了一种计算机可读的存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一实施例中的方法步骤。
在本申请实施例中,通过获取当前请求对应的时间戳;确定在时间戳时每个预设规则下各子规则对应的命中数据;将时间戳、预设规则以及每个预设规则下各子规则对应的命中数据,写入目标数据库;根据写入的时间戳、预设规则以及每个预设规则下各子规则对应的命中数据,确定在时间戳时,每个预设规则下所有子规则对应的目标命中数据。由于本申请实施例在获取当前时间戳后,基于该时间戳确定每个预设规则下各子规则对应的命中数据,进而确定出在该时间戳时,每个预设规则下所有所述子规则对应的目标命中数据,解决了相关技术中未存储时间数据而出现时间漂移的问题,有效保证了数据准确性,提高了数据处理的效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的一种可选的数据处理方法的硬件环境的示意图;
图2是根据本申请实施例的一种可选的数据处理方法的流程示意图;
图3是根据本申请实施例的一种可选的数据处理装置的结构框图;
图4是根据本申请实施例的一种可选的电子设备的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。当前,在对直播内容进行检测时,会依赖策略平台作为直播内容的安全核心基础服务,提供全量检测策略(也称规则)。在每个策略平台中设定有多个不同的规则,数据统计的本质就是把相同规则下的数据聚合在一起,然后定时把聚合后的数据写入存储组件。一些相关技术在具体实施时,是先把数据放在容器内存中进行聚合,然后每台容器每秒定时把数据刷到redis,在写入redis时用incrby来操作,key为不同维度的数据(比如当前命中的规则ID),value为该维度数据聚合出来的数量(当前的规则对应的命中量),最后每分钟定时把redis数据取出来,刷到clickhouse存储组件,再用decrby操作redis减去当前值。在数据量不大的情况下,这种方式没有什么问题,但是随着策略和流量的不断增长,碰到的问题也越来越明显。比如:redis的incrby操作和decrby操作均属于非幂等操作,如果在调用失败的时候选择重试,会出现数据重复累加,如果不重试会出现数据丢失;同时,由于时间信息拥有庞大数据量,相关技术的redis的key(即通常都对应规则ID)无法包含时间信息,所以存储组件存储的时间只能取当时数据发送的时间,即非策略(规则)计算的时间,这样同一规则可能在多个时间点都产生了命中量,这时在实际统计时可能00:00:01时做的策略(规则)计算,00:00:02时才把数据写入存储,导致出现了时间点漂移。
为了解决上述问题,根据本申请实施例的一个方面,提供了一种数据处理方法。可选地,在本实施例中,上述数据处理方法可以应用于如图1所示的硬件环境中。如图1所示,终端102中可以包含有存储器104、处理器106和显示器108(可选部件)。终端102可以通过网络110与服务器112进行通信连接,该服务器112可用于为终端或终端上安装的客户端提供服务(如应用服务等),可在服务器112上或独立于服务器112设置数据库114,用于为服务器112提供数据存储服务。此外,服务器112中可以运行有处理引擎116,该处理引擎116可以用于执行由服务器112所执行的步骤。
可选地,终端102可以但不限于为可以计算数据的终端,如移动终端(例如手机、平板电脑)、笔记本电脑、PC(Personal Computer,个人计算机)机等终端上,上述网络可以包括但不限于无线网络或有线网络。其中,该无线网络包括:蓝牙、WIFI(Wireless FIDelity,无线保真)及其他实现无线通信的网络。上述有线网络可以包括但不限于:广域网、城域网、局域网。上述服务器112可以包括但不限于任何可以进行计算的硬件设备。
此外,在本实施例中,上述数据处理方法还可以但不限于应用于处理能力较强大的独立的处理设备中,而无需进行数据交互。上述仅是一种示例,本实施例中对此不作任何限定。
如图2所示,图2是根据本申请实施例的一种可选的数据处理方法的流程示意图,该方法可以应用于一具备独立数据处理的设备上,该方法的流程可以包括以下步骤:
步骤S201,获取当前请求对应的时间戳。
可选地,在本申请实施例中,当检测到当前存在访问目标平台的请求时,记录下当前请求对应的时间戳,即当前请求发生的时间对应的时间标识,比如获取请求1,对应的时间戳为1655200300等。需要解释的是,这里的目标平台可以是检测平台,具体可以是基于某检测策略(也称检测规则)进行检测的检测平台,例如xx安全检测平台等;时间戳具体例如1655200300,对应的时间点为2022年6月14日17时52分40秒,这里的时间戳通常为秒级时间戳。
步骤S202,确定在时间戳时每个预设规则下各子规则对应的命中数据。
可选地,在本申请实施例中,设有多个预设规则,在每个预设规则下又对应多个子规则,这时,对得到的请求进行分析,得到在当前的时间戳下,每一个预设规则下各个子规则所对应的命中数据。例如,预设规则rule_1可以包括第一子规则,第二子规则,然后基于这些子规则,确定出获取到的请求属于哪一种子规则(可以是命中的具体事件或者事件标识),这里的子规则对应的命中数据可以是命中子规则的数量,也即命中子规则的事件的数量,最终确定出属于每个预设规则下各个子规则所对应的命中数据。
在一实施例中,所述预设规则可以为单一规则,例如为直播间类型为表演类直播间,在当前某直播间为表演类直播间时,即为命中了该预设规则。若当前命中该规则的直播间数量为10,则命中数据为10。当然命中数据也可以是命中该预设规则的事件的事件标识或者命中该预设规则的对象的对象标识等。
在一实施例中,所述预设规则也可以为复合规则,例如为直播间类型为歌唱表演类直播间或者直播间的类型为舞蹈表演类直播间,在这种情况下,该预设规则对应多个子规则,如第一子规则直播间类型为歌唱表演类直播间,第二子规则直播间的类型为舞蹈表演类直播间。相应的,当前某直播间为歌唱表演类直播间时,即为命中了该第一子规则;当前某直播间为舞蹈表演类直播间时,即为命中了该第二子规则。若当前命中该第一子规则的直播间数量为10,则第一子规则对应的命中数据为10,当前命中该第二子规则的直播间数量为20,则第二子规则对应的命中数据为20。在目标命中数据为总命中量的情况下,所述预设规则的所有子规则(第一子规则、第二子规则)对应的目标命中数据即为30。
步骤S203,将时间戳、预设规则以及每个预设规则下各子规则对应的命中数据,写入目标数据库。
可选地,在得到时间戳、预设规则以及每个预设规则下各子规则对应的命中数据之后,会将这些数据写入目标数据库(比如redis)中。
进一步地,目标数据库采用hset(即将哈希表key中的字段field的值设为value)的方式,将预设时间戳作为key,value设为hash结构,在value中包含二层的key-value结构,二层的内部key可以是预设规则ID,value为命中数据,即key-value(key-value)的嵌入方式写入目标数据库内。
需要说明的是,当前在将命中数据写入目标数据库时,目标数据库对命中数据不执行任何增加操作。
步骤S204,根据写入的时间戳、预设规则以及每个预设规则下各子规则对应的命中数据,确定在时间戳时,每个预设规则下所有子规则对应的目标命中数据。
在本申请实施例中,根据写入目标数据库的时间戳、预设规则以及每个预设规则下各子规则对应的命中数据,确定在时间戳时,每个预设规则下所有子规则对应的目标命中数据。在对目标数据库内的各个命中数据进行数据量分析时,需要获取到每个预设规则下各子规则对应的命中数据,然后在时间戳时,确定每个预设规则下所有包含的各个子规则被命中的命中数据,然后得到目标命中数据
在本申请实施例中,通过获取当前请求对应的时间戳;确定在时间戳时每个预设规则下各子规则对应的命中数据;将时间戳、预设规则以及每个预设规则下各子规则对应的命中数据,写入目标数据库;根据写入的时间戳、预设规则以及每个预设规则下各子规则对应的命中数据,确定在时间戳时,每个预设规则下所有子规则对应的目标命中数据。由于本申请实施例在获取当前时间戳后,基于该时间戳确定每个预设规则下各子规则对应的命中数据,进而确定出在该时间戳时,每个预设规则下所有子规则对应的目标命中数据,解决了相关技术中未存储时间数据而出现时间漂移的问题,有效保证了数据准确性,且提高了工程师数据分析的效率,同时将时间戳、预设规则以及每个预设规则下各子规则对应的命中数据,写入目标数据库后,再确定每个预设规则下所有子规则对应的目标命中数据,这时得到的目标命中数据是固定的、执行的统计操作是幂等性操作,解决了相关技术在数据处理时采用的非幂等性操作带来的命中数据统计不准确的问题,达到了提高数据统计的可靠性的技术效果。基于上述各实施例的内容,作为一种可选实施例,确定在时间戳时每个预设规则下各子规则对应的命中数据包括:
获取每个预设规则下对应的多个子规则;
获取在时间戳时每个预设规则下各个子规则的命中数据。
可选地,若存在两个预设规则rule_1和rule_2,rule_1对应的子规则如果有多个的情况下,分别获取在时间戳,比如201111时,rule_1内多个子规则的命中数据;同理,rule_2对应的子规则数量也有多个的情况下,分别获取在时间戳时,rule_2内多个子规则的命中数据。
基于上述各实施例的内容,作为一种可选实施例,命中数据包括命中量,根据写入的时间戳、预设规则以及每个预设规则下各子规则对应的命中数据,确定在时间戳时,每个预设规则下所有子规则对应的目标命中数据包括:
从目标数据库内读取预设规则以及每个预设规则下各子规则对应的命中量;
确定在时间戳时每个预设规则下所有子规则对应的总命中量。
可选地,在本申请实施例中,将具备独立数据处理的设备作为读取执行主体,可以读取到每个预设规则下各子规则对应的命中数据(这里的命中数据可以是命中量),然后将在时间戳下,每个预设规则下所有包含的各个子规则被命中的命中量进行聚合统计,得到总命中量。
在这里,目标数据库redis只是起到暂时存放命中数据的作用,至于后续的数据处理等操作,需要具备独立数据处理的设备从目标数据库中将命中数据读取出来,同时当前在具备独立数据处理的设备读取目标数据库中的命中数据时,目标数据库对命中数据不执行减少操作。
基于上述各实施例的内容,作为一种可选实施例,方法应用于目标容器,目标容器为预设容器集群中的任一容器,确定在时间戳时每个预设规则下所有子规则对应的总命中量包括:
获取目标容器帐号,其中,目标容器帐号为目标容器的容器帐号;获取参考容器帐号,其中,参考容器帐号为容器集群中除了目标容器之外其他容器所对应的容器帐号;
统计在参考容器帐号和目标容器帐号下,处于时间戳时每个预设规则中所有子规则对应的命中量;
确定在时间戳时每个预设规则下所有子规则对应的总命中量。
可选地,在本申请实施例中,上述实施例的具备独立数据处理的设备可以是一目标容器,其中该目标容器可以预设容器集群中的任一容器,然后以目标容器为执行主体展开以下数据处理方法的说明:
由于预设容器集群中的各个容器都是分散的,同时每个容器都设有对应的容器帐号,比如,目标容器帐号为数字1等。如果预设容器集群中包含除了目标容器之外的其他容器的情况下,还需要获取到其他容器的容器帐号作为参考容器帐号,然后服务器统计所有参考容器帐号和目标容器帐号在处于时间戳时,属于同一预设规则下的所有子规则对应的命中量,进而得到每个预设规则下所有子规则对应的命中量,之后将属于同一预设规则下的所有子规则对应的命中量相加,将相加后的数值作为统计后的聚合数据量,即总命中量。
以下述代码为例进行说明:
其中,上述代码中的“1652522021”表示时间戳(单位为秒),“unique_ID_1”、“unique_ID_2”表示容器帐号ID,可以是目标容器帐号和参考容器帐号,在“unique_ID_1”下对应的各个预设规则(比如rule_1和rule_2)下各子规则的命中数据量为:“rule_1:10”、“rule_2:10”,在“unique_ID_2”下对应的各个预设规则(比如rule_1和rule_2)下各子规则命中数据量为:“rule_1:6”、“rule_2:7”,然后将同一预设规则下所有子规则的命中数据的数据量相加,得到总命中量:将unique_ID_1和unique_ID_2中关于rule_1的数据量相加,得到10+6=16,关于rule_2的数据量相加,得到10+7=17。
极端情况,如果预设容器集群中不包含除了目标容器之外的其他容器的情况下,得到的聚合数据量就只是目标容器得到的"rule_1":10,"rule_2":10。如果包含其他容器,则目标容器将属于同一预设策略方案下的来自各个容器的对应命中数据的数据量全部相加,得到聚合数据量即总命中量。在本申请实施例中,通过在统计聚合数据量时,利用目标容器进行幂等性的统计,解决了相关技术中数据聚合时的非幂等性问题。
基于上述各实施例的内容,作为一种可选实施例,在写入目标数据库之后,方法还包括:
获取结构体数据;
在接收到写入目标数据库失败指令的情况下,将生成的结构体数据放入重试队列,其中,结构体数据由目标容器帐号、时间戳、目标命中数据以及写入目标数据库失败后的重试次数组成;
在预设时间段内从重试队列内获取结构体数据,重新写入目标数据库,若写入成功,则从重试队列移除结构体数据,否则持续在预设时间段内从重试队列内获取结构体数据,重新写入目标数据库,直至循环次数超过预设重试次数阈值,结束写入目标数据库。
可选地,在将预设规则以及每个预设规则下各子规则对应的命中数据写入目标数据库的过程中会由于各种外部因素导致写入失败,这时本申请实施例的目标容器内设有重试机制。具体地,在接收到写入目标数据库失败指令时,将每秒时间戳生成的结构体,比如item结构体(由容器帐号、时间戳、目标命中数据以及重新写入目标数据库的重试次数组成,可见下面的代码)放入到重试队列,然后每间隔预设时间段,比如每间隔3s再从重试队列内获取结构体数据,然后重新写入目标数据库内,若写入成功,则从重试队列移除结构体数据,否则重试次数+1,并将+1后的数值存入结构体的重试次数的对应位置。
另外,目标容器设置的重试机制中包含预设重试次数阈值,数值可以是5等,若当前写入失败,则循环写入流程,直到循环次数超过预设重试次数阈值,结束写入目标数据库的写入操作。
可选地,在本申请实施例提供了每时间戳生成的结构体的数据结构的代码如下所示:
其中,上述代码中,timestamp表示时间戳,data表示在目标容器ID中,计算在时间戳时,同一预设规则下所有子规则的目标命中数据,retryCnt表示写入目标数据库失败后重试。
在本申请实施例中,通过在目标容器内设置重试机制,可以最大程度地容错,解决数据写入失败的问题。
基于上述各实施例的内容,作为一种可选实施例,在从目标数据库内读取预设规则以及每个预设规则下各子规则对应的命中量之前,方法还包括:
向目标数据库发送读取指令,其中,读取指令中携带有加锁命令;
获取目标数据库返回的反馈信息,其中,反馈信息用于表征目标容器帐号是否具有读取命中数据的权限;
在反馈信息为目标容器帐号不具有读取命中数据的权限的情况下,对命中数据执行加锁操作。
可选地,在本申请实施例中,设有加锁机制。需要说明的是,该加锁机制是需要应用到各个命中数据上的。具体地,目标容器在从目标数据库内读取出命中数据之前,会向目标数据库发送一个读取指令,然后在目标数据库拿到该读取指令后,基于当前的命中数据被读取的情况,生成一反馈信息,可以了解的是,该反馈信息是当前访问目标数据库中的命中数据的容器是否具备读取权限的一个信息,这时目标数据库会将该反馈信息发送给目标容器,目标容器接收到该反馈信息后,如果具备读取权限,则根据读取指令内携带包含的加锁命令,对可读取的命中数据执行加锁操作,以防止其他容器去读取当前命中数据。
在本申请实施例中,利用加锁机制防止同一命中数据被多个容器进行读取,造成重复数据的生成,导致读取资源的浪费。
基于上述各实施例的内容,作为一种可选实施例,在根据写入的时间戳、预设规则以及每个预设规则下各子规则对应的命中数据,确定在时间戳时,每个预设规则下所有子规则对应的目标命中数据之后,方法还包括:
按照预设频率获取目标命中数据;
将目标命中数据通过中间数据库发送至存储组件进行存储。
可选地,在本申请实施例中,需要将上述各实施例得到的目标命中数据存储至底层的存储组件,这时可以循环对目标数据库调用hvals操作,得到一段时间内,比如一分钟内,一共60秒时间戳的目标命中数据,将这些目标命中数据通过中间数据库,比如MQ数据库发送至存储组件,然后再由存储组件进行目标命中数据的最终存储。
另外,目标容器可以每预设频率,如20s执行一次目标命中数据写入存储组件的操作,又由于要对一分钟内的目标命中数据进行存储,为了保证一分钟内目标命中数据的完整性,可以获得当前时间前一分钟的目标命中数据进行存储,比如当前时间为3:01:20,由于每20s执行一次目标命中数据的写入操作,这时写入的目标命中数据又要满足一分钟的要求,这时就可以获取3:01:20之前一分钟:3:00:00-3:00:59时间段内的目标命中数据,然后将3:00:00-3:00:59时间段内的目标命中数据写入存储组件即可。
在本申请实施例中,按照一定频率就将得到的一些目标命中数据通过中间数据库发送至存储组件,有利于进行数据的维护和保存。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM(Read-Only Memory,只读存储器)/RAM(Random Access Memory,随机存取存储器)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例的方法。
根据本申请实施例的另一个方面,还提供了一种用于实施上述数据处理方法的数据处理装置。图3是根据本申请实施例的一种可选的数据处理装置的结构框图,如图3所示,该装置可以包括:
第一获取模块301,用于获取当前请求对应的时间戳;
第一确定模块302,用于确定在时间戳时每个预设规则下各子规则对应的命中数据;
第一写入模块303,用于将时间戳、预设规则以及每个预设规则下各子规则对应的命中数据,写入目标数据库;
第二确定模块304,用于根据写入的时间戳、预设规则以及每个预设规则下各子规则对应的命中数据,确定在时间戳时,每个预设规则下所有子规则对应的目标命中数据。
需要说明的是,该实施例中的第一获取模块301可以用于执行上述步骤S201,该实施例中的第一确定模块302可以用于执行上述步骤S202,该实施例中的第一写入模块303可以用于执行上述步骤S203,该实施例中的第二确定模块304可以用于执行上述步骤S204。
通过上述模块,在获取当前时间戳后,基于该时间戳确定每个预设规则下各子规则对应的命中数据,进而确定出在该时间戳时,每个预设规则下所有子规则对应的目标命中数据,解决了相关技术中未存储时间数据而出现时间漂移的问题,有效保证了数据准确性,且提高了工程师数据分析的效率,同时将时间戳、预设规则以及每个预设规则下各子规则对应的命中数据,写入目标数据库后,再确定每个预设规则下所有子规则对应的目标命中数据,这时得到的目标命中数据是固定的、执行的统计操作是幂等性操作,解决了相关技术在数据处理时采用的非幂等性操作带来的命中数据统计不准确的问题,达到了提高数据统计的可靠性的技术效果。
作为一种可选的实施例,第一确定模块包括:
第一获取单元,用于获取每个预设规则下对应的多个子规则;
第二获取单元,用于获取在时间戳时每个预设规则下各个子规则的命中数据。
作为一种可选的实施例,命中数据包括命中量,第二确定模块包括:
读取单元,用于从目标数据库内读取预设规则以及每个预设规则下各子规则对应的命中量;
第一确定单元,用于确定在时间戳时每个预设规则下所有子规则对应的总命中量。
作为一种可选的实施例,该装置为目标容器,该目标容器为预设容器集群中的任一容器,第一确定单元包括:
第一获取子单元,用于获取目标容器帐号,其中,目标容器帐号为目标容器的容器帐号;
第二获取子单元,用于获取参考容器帐号,其中,参考容器帐号为容器集群中除了目标容器之外其他容器所对应的容器帐号;
统计子单元,用于统计在参考容器帐号和目标容器帐号下,处于时间戳时每个预设规则中所有子规则对应的命中量;
确定子单元,用于确定在时间戳时每个预设规则下所有子规则对应的总命中量。
作为一种可选的实施例,该装置还包括:
第二获取模块,用于在写入目标数据库之后,获取结构体数据;
第二写入模块,用于在接收到写入目标数据库失败指令的情况下,将生成的结构体数据放入重试队列,其中,结构体数据由目标容器帐号、时间戳、目标命中数据以及写入目标数据库失败后的重试次数组成;
第三写入模块,用于在预设时间段内从重试队列内获取结构体数据,重新写入目标数据库,若写入成功,则从重试队列移除结构体数据,否则持续在预设时间段内从重试队列内获取结构体数据,重新写入目标数据库,直至循环次数超过预设重试次数阈值,结束写入目标数据库。
作为一种可选的实施例,该装置还包括:
第一发送模块,用于在从目标数据库内读取预设规则以及每个预设规则下各子规则对应的命中量之前,向目标数据库发送读取指令,其中,读取指令中携带有加锁命令;
第三获取模块,用于获取目标数据库返回的反馈信息,其中,反馈信息用于表征目标容器帐号是否具有读取命中数据的权限;
加锁模块,用于反馈信息为目标容器帐号不具有读取命中数据的权限的情况下,对命中数据执行加锁操作。
作为一种可选的实施例,该装置还包括:
第四获取模块,用于在根据写入的时间戳、预设规则以及每个预设规则下各子规则对应的命中数据,确定在时间戳时,每个预设规则下所有子规则对应的目标命中数据之后,按照预设频率获取目标命中数据;
第二发送模块,用于将目标命中数据通过中间数据库发送至存储组件进行存储。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
根据本申请实施例的又一个方面,还提供了一种用于实施上述数据处理方法的电子设备,该电子设备可以是服务器、终端、或者其组合。
图4是根据本申请实施例的一种可选的电子设备的结构框图,如图4所示,包括处理器401、通信接口402、存储器403和通信总线404,其中,处理器401、通信接口402和存储器403通过通信总线404完成相互间的通信,其中,
存储器403,用于存储计算机程序;
处理器401,用于执行存储器403上所存放的计算机程序时,实现如下步骤:
获取当前请求对应的时间戳;
确定在时间戳时每个预设规则下各子规则对应的命中数据;
将时间戳、预设规则以及每个预设规则下各子规则对应的命中数据,写入目标数据库;
根据写入的时间戳、预设规则以及每个预设规则下各子规则对应的命中数据,确定在时间戳时,每个预设规则下所有子规则对应的目标命中数据。
可选地,在本实施例中,上述的通信总线可以是PCI(Peripheral ComponentInterconnect,外设部件互连标准)总线、或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括RAM,也可以包括非易失性存储器(non-volatile memory),例如,至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
作为一种示例,如图4所示,上述存储器403中可以但不限于包括上述数据处理装置中的第一获取模块301、第一确定模块302、第一写入模块303、第二确定模块304。此外,还可以包括但不限于上述数据处理装置中的其他模块单元,本示例中不再赘述。
上述处理器可以是通用处理器,可以包含但不限于:CPU(Central ProcessingUnit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(DigitalSignal Processing,数字信号处理器)、ASIC(Application Specific IntegratedCircuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
此外,上述电子设备还包括:显示器,用于显示数据处理结果。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图4所示的结构仅为示意,实施上述数据处理方法的设备可以是终端设备,该终端设备可以是智能手机(如AndroID手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图4其并不对上述电子设备的结构造成限定。例如,终端设备还可包括比图4中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图4所示的不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、ROM、RAM、磁盘或光盘等。
根据本申请实施例的又一个方面,还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行数据处理方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
获取当前请求对应的时间戳;
确定在时间戳时每个预设规则下各子规则对应的命中数据;
将时间戳、预设规则以及每个预设规则下各子规则对应的命中数据,写入目标数据库;
根据写入的时间戳、预设规则以及每个预设规则下各子规则对应的命中数据,确定在时间戳时,每个预设规则下所有子规则对应的目标命中数据。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例中对此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、ROM、RAM、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
根据本申请实施例的又一个方面,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中;计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任一个实施例中的数据处理方法步骤。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例数据处理方法的全部或部分步骤。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例中所提供的方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种数据处理方法,其特征在于,所述方法包括:
获取当前请求对应的时间戳;
确定在所述时间戳时每个预设规则下各子规则对应的命中数据;
将所述时间戳、所述预设规则以及每个所述预设规则下各子规则对应的命中数据,写入目标数据库;
根据写入的所述时间戳、所述预设规则以及每个所述预设规则下各子规则对应的命中数据,确定在所述时间戳时,每个所述预设规则下所有所述子规则对应的目标命中数据。
2.根据权利要求1所述的方法,其特征在于,所述确定在所述时间戳时每个预设规则下各子规则对应的命中数据包括:
获取每个所述预设规则下对应的多个所述子规则;
获取在所述时间戳时每个所述预设规则下各个所述子规则的所述命中数据。
3.根据权利要求1所述的方法,其特征在于,所述命中数据包括命中量,所述根据写入的所述时间戳、所述预设规则以及每个所述预设规则下各子规则对应的命中数据,确定在所述时间戳时,每个所述预设规则下所有所述子规则对应的目标命中数据包括:
从所述目标数据库内读取所述预设规则以及每个所述预设规则下各子规则对应的所述命中量;
确定在所述时间戳时每个所述预设规则下所有所述子规则对应的总命中量。
4.根据权利要求3所述的方法,其特征在于,所述方法应用于目标容器,所述目标容器为预设容器集群中的任一容器,所述确定在所述时间戳时每个所述预设规则下所有所述子规则对应的所述总命中量包括:
获取目标容器帐号,其中,所述目标容器帐号为所述目标容器的容器帐号;获取参考容器帐号,其中,所述参考容器帐号为所述容器集群中除了所述目标容器之外其他容器所对应的容器帐号;
统计在所述参考容器帐号和所述目标容器帐号下,处于所述时间戳时每个所述预设规则中所有所述子规则对应的命中量;
确定在所述时间戳时每个所述预设规则下所有所述子规则对应的所述总命中量。
5.根据权利要求4所述的方法,其特征在于,在所述写入目标数据库之后,所述方法还包括:
获取结构体数据;
在接收到写入所述目标数据库失败指令的情况下,将生成的所述结构体数据放入重试队列,其中,所述结构体数据由所述目标容器帐号、所述时间戳、所述目标命中数据以及写入所述目标数据库失败后的重试次数组成;
在预设时间段内从所述重试队列内获取所述结构体数据,重新写入所述目标数据库,若写入成功,则从所述重试队列移除所述结构体数据,否则持续在所述预设时间段内从所述重试队列内获取所述结构体数据,重新写入所述目标数据库,直至循环次数超过预设重试次数阈值,结束写入所述目标数据库。
6.根据权利要求4所述的方法,其特征在于,在所述从所述目标数据库内读取所述预设规则以及每个所述预设规则下各子规则对应的命中量之前,所述方法还包括:
向所述目标数据库发送读取指令,其中,所述读取指令中携带有加锁命令;
获取所述目标数据库返回的反馈信息,其中,所述反馈信息用于表征所述目标容器帐号是否具有读取所述命中数据的权限;
在所述反馈信息为所述目标容器帐号不具有读取所述命中数据的权限的情况下,对所述命中数据执行加锁操作。
7.根据权利要求1至6任一所述的方法,其特征在于,在所述根据写入的所述时间戳、所述预设规则以及每个所述预设规则下各子规则对应的命中数据,确定在所述时间戳时,每个所述预设规则下所有所述子规则对应的目标命中数据之后,所述方法还包括:
按照预设频率获取所述目标命中数据;
将所述目标命中数据通过中间数据库发送至存储组件进行存储。
8.一种数据处理装置,其特征在于,所述装置包括:
第一获取模块,用于获取当前请求对应的时间戳;
第一确定模块,用于确定在所述时间戳时每个预设规则下各子规则对应的命中数据;
第一写入模块,用于将所述时间戳、所述预设规则以及每个所述预设规则下各子规则对应的命中数据,写入目标数据库;
第二确定模块,用于根据写入的所述时间戳、所述预设规则以及每个所述预设规则下各子规则对应的命中数据,确定在所述时间戳时,每个所述预设规则下所有所述子规则对应的目标命中数据。
9.一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口和所述存储器通过所述通信总线完成相互间的通信,其特征在于,
所述存储器,用于存储计算机程序;
所述处理器,用于通过运行所述存储器上所存储的所述计算机程序来执行权利要求1至7中任一项所述的方法步骤。
10.一种计算机可读的存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现权利要求1至7中任一项中所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211213818.2A CN117851422A (zh) | 2022-09-30 | 2022-09-30 | 数据处理方法和装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211213818.2A CN117851422A (zh) | 2022-09-30 | 2022-09-30 | 数据处理方法和装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117851422A true CN117851422A (zh) | 2024-04-09 |
Family
ID=90542238
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211213818.2A Pending CN117851422A (zh) | 2022-09-30 | 2022-09-30 | 数据处理方法和装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117851422A (zh) |
-
2022
- 2022-09-30 CN CN202211213818.2A patent/CN117851422A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10771306B2 (en) | Log monitoring system | |
CN109802941A (zh) | 一种登录验证方法、装置、存储介质和服务器 | |
US10440132B2 (en) | Tracking application usage in a computing environment | |
US20170185454A1 (en) | Method and Electronic Device for Determining Resource Consumption of Task | |
CN107634850B (zh) | 一种应用状态获取方法及其设备、存储介质、服务器 | |
CN111694644A (zh) | 基于机器人操作系统的消息处理方法、装置及计算机设备 | |
CN111770002A (zh) | 测试数据转发控制方法、装置、可读存储介质和电子设备 | |
CN111314174A (zh) | 基于区块链和sdn边缘计算网络系统的网络拨测方法及装置 | |
CN107566480B (zh) | 移动终端应用的用户活动信息采集方法及装置、存储介质 | |
CN104077082A (zh) | 网络投票数据存储方法和装置 | |
US10218595B1 (en) | Measuring network transit time | |
CN113407374A (zh) | 故障处理方法、装置、故障处理设备及存储介质 | |
CN115811483A (zh) | 一种网络状态监测方法、装置、电子设备和存储介质 | |
CN117851422A (zh) | 数据处理方法和装置、电子设备和存储介质 | |
CN113946515A (zh) | 代码覆盖率测试方法、装置、计算机设备及存储介质 | |
CN112817742B (zh) | 数据迁移方法、装置、设备及存储介质 | |
CN114513469A (zh) | 分布式系统的流量整形方法、装置和存储介质 | |
CN115795100A (zh) | 用户事件处理方法、装置、电子设备及可读存储介质 | |
CN113852610A (zh) | 报文处理方法、装置、计算机设备和存储介质 | |
CN107885618B (zh) | 基于网络游戏的数据监控方法、装置、设备及存储介质 | |
CN111352992B (zh) | 数据一致性检测方法、装置及服务器 | |
CN112491589B (zh) | 一种对象存储网络预警方法、系统、终端及存储介质 | |
CN110008021B (zh) | 内存管理方法、装置、电子设备及计算机可读存储介质 | |
CN111367905B (zh) | 对象数据存储、数据索引构建方法、装置及接入服务器 | |
CN113209635B (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 |