数据处理方法及装置

文档序号:7493 发布日期:2021-09-17 浏览:56次 英文

数据处理方法及装置

技术领域

本说明书涉及计算机

技术领域

,特别涉及数据处理方法及装置。

背景技术

随着互联网技术的发展,线上业务成为了大多数业务方主要开展的对象;而由于线上业务的特性,通常都会由多个数据处理节点配合完成,如数据采集节点、数据处理节点和数据存储节点相互配置以支持存储业务运行,实现向用户提供相应的存储服务。而各个节点之间所传输的数据是支持业务运行的基础;通常情况下,数据的采集和处理都是与业务相贴合的,而节点在获得上游下发的数据后,都需要对接收到的数据进行处理,以完成预置的处理任务,再发送给下游节点进行处理;而由于业务的复杂程度,一个下游节点可能对接多个上游节点,这就导致下游节点会同时接收到多个上游节点回传的数据,随着数据的增加,很容易造成数据丢失/错乱,进而影响业务的正常运行,因此亟需一种有效的方法以解决上述问题。

发明内容

有鉴于此,本说明书实施例提供了一种数据处理方法。本说明书同时涉及一种数据处理装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的技术缺陷。

根据本说明书实施例的第一方面,提供了一种数据处理方法,应用于业务服务端,包括:

接收目标业务关联的数据处理端提交的业务数据集合;

针对所述业务数据集合中的各个业务数据添加数据标识,并将添加所述数据标识的业务数据写入所述目标业务的业务数据库;

接收针对所述业务数据库中的业务数据提交的处理指令;

基于所述处理指令和所述数据标识在所述业务数据库中读取目标业务数据,并将所述目标业务数据写入所述目标业务对应的分布式系统。

可选地,所述针对所述业务数据集合中的各个业务数据添加数据标识,包括:

提取所述业务数据集合中包含的各个业务数据,并确定各个业务数据对应的时间信息;

按照所述时间信息对所述业务数据集合中包含的各个业务数据添加所述数据标识;

相应的,所述将添加所述数据标识的业务数据写入所述目标业务的业务数据库,包括:

将添加所述数据标识的业务数据按照所述数据标识依次写入所述业务数据库,其中,所述数据标识单调递增。

可选地,所述基于所述处理指令和所述数据标识在所述业务数据库中读取目标业务数据,包括:

根据所述处理指令查询所述业务数据库的元数据,获得所述数据标识;

按照所述数据标识在所述业务数据库中读取所述目标业务数据;

相应的,所述将所述目标业务数据写入所述目标业务对应的分布式系统,包括:

按照所述数据标识将所述目标业务数据依次写入所述分布式系统,其中,所述数据标识单调递增。

可选地,所述针对所述业务数据集合中的各个业务数据添加数据标识,包括:

获取所述目标业务预设的Snowflake算法;

基于所述Snowflake算法对所述业务数据集合中的各个业务数据添加所述数据标识。

可选地,所述接收目标业务关联的数据处理端提交的业务数据集合,包括:

根据所述目标业务的业务信息确定与所述业务服务端具有数据传输关系的所述数据处理端;

向所述数据处理端发送数据处理包,并接收所述数据处理端针对所述数据处理包返回的所述业务数据集合。

可选地,所述向所述数据处理端发送数据处理包步骤执行之前,还包括:

接收针对所述目标业务提交的业务处理请求,并根据所述业务处理请求创建数据处理任务;

按照所述数据处理任务构建结构化信息,并通过业务代码生成所述结构化信息对应的所述数据处理包。

可选地,所述将添加所述数据标识的业务数据写入所述目标业务的业务数据库,包括:

确定所述业务数据库对应的存储空间阈值,并判断当前时间节点所述业务数据库的存储空间是否大于所述存储空间阈值;

若是,提取所述业务数据库中存储时间最长的待删除数据,并基于所述待删除数据释放所述业务数据库的存储空间;

在所述业务数据库的存储空间释放完成的情况下,将添加所述数据标识的业务数据写入所述业务数据库。

可选地,所述将添加所述数据标识的业务数据写入所述目标业务的业务数据库,包括:

对添加所述数据标识的业务数据进行转换,获得二进制数据;

将所述二进制数据按照所述数据标识依次写入所述业务数据库,其中,所述数据标识单调递增。

根据本说明书实施例的第二方面,提供了一种数据处理装置,应用于业务服务端,包括:

接收集合模块,被配置为接收目标业务关联的数据处理端提交的业务数据集合;

添加标识模块,被配置为针对所述业务数据集合中的各个业务数据添加数据标识,并将添加所述数据标识的业务数据写入所述目标业务的业务数据库;

接收指令模块,被配置为接收针对所述业务数据库中的业务数据提交的处理指令;

读取数据模块,被配置为基于所述处理指令和所述数据标识在所述业务数据库中读取目标业务数据,并将所述目标业务数据写入所述目标业务对应的分布式系统。

根据本说明书实施例的第三方面,提供了一种计算设备,包括:

存储器和处理器;

所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:

接收目标业务关联的数据处理端提交的业务数据集合;

针对所述业务数据集合中的各个业务数据添加数据标识,并将添加所述数据标识的业务数据写入所述目标业务的业务数据库;

接收针对所述业务数据库中的业务数据提交的处理指令;

基于所述处理指令和所述数据标识在所述业务数据库中读取目标业务数据,并将所述目标业务数据写入所述目标业务对应的分布式系统。

根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现所述数据处理方法的步骤。

本说明书提供的数据处理方法,其应用于业务服务端,当所述业务服务端接收到所述数据处理端返回的业务数据集合后,可以针对所述业务集合中的各个业务数据添加数据标识,从而使得各个业务数据连续且唯一,之后为了数据丢失,可以将添加所述数据标识的业务数据写入所述业务数据库;在接收到针对所述业务数据库中的业务数据体检的处理指令的情况下,可以基于所述处理指令和所述数据标识从所述业务数据库中逐次读取目标业务数据,之后将读取到的所述目标业务数据写入所述分布式系统,实现了通过添加数据标识的方式,避免数据混乱;同时为了数据丢失,可以将添加标识的业务数据写入所述业务数据库,使得数据可以持久化,以避免数据丢失而影响目标业务的问题发生,从而进一步提高了业务服务端和数据处理端之间的容灾效率。

附图说明

图1是本说明书一实施例提供的一种数据处理方法的流程图;

图2是本说明书一实施例提供的一种应用于日志采集场景中的数据处理方法的处理流程图;

图3是本说明书一实施例提供的一种数据处理装置的结构示意图;

图4是本说明书一实施例提供的一种计算设备的结构框图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。

在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

首先,对本说明书一个或多个实施例涉及的名词术语进行解释。

日志:网络设备、系统及服务程序等,在运作时都会产生一个叫log的事件记录;每一行都记载着日期、时间、使用者及动作等相关操作的描述,这部分内容将组成日志。

SDK:(软件开发工具包,Software Development Kit)是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。它可以简单的为某个程序设计语言提供应用程序接口API的一些文件,但也可能包括能与某种嵌入式系统通讯的复杂的硬件。

线程:(thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。

DB:(Data Base)是依照某种数据模型组织起来并存放二级存储器中的数据集合。这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改和检索由统一软件进行管理和控制。

HTTP:(超文本传输协议,Hypertext Transfer Protocol)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。

数据容灾:是指建立一个异地的数据系统,该系统是本地关键应用数据的一个可用复制。在本地数据及整个应用系统出现灾难时,系统至少在异地保存有一份可用的关键业务的数据。该数据可以是与本地生产数据的完全实时复制,也可以比本地数据略微落后,但一定是可用的。采用的主要技术是数据备份和数据复制技术。

在本说明书中,提供了一种数据处理方法,本说明书同时涉及一种数据处理装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。

实际应用中,业务的运行通常都会由多个数据处理节点配合完成,上游节点完成数据的处理后,会将处理后的数据发送到下游节点,由下游节点继续处理。然而,由于业务的复杂程度较高,大多数下游节点都会对接一个或多个上游节点,这就导致下游节点在接收到上游节点下发的数据后,如果无法尽快处理,就需要将数据临时存储到本地,以在计算资源可以被调用时再进行处理;而在此过程中,随着数据的增多,不仅会造成数据混乱的问题,还可能引发存储故障而造成数据丢失,致使下游节点再进行数据发送时,无法保证数据的有序性,因此亟需一种有效的方案以解决上述问题。

本说明书提供的数据处理方法,其应用于业务服务端,当所述业务服务端接收到所述数据处理端返回的业务数据集合后,可以针对所述业务集合中的各个业务数据添加数据标识,从而使得各个业务数据连续且唯一,之后为了数据丢失,可以将添加所述数据标识的业务数据写入所述业务数据库;在接收到针对所述业务数据库中的业务数据体检的处理指令的情况下,可以基于所述处理指令和所述数据标识从所述业务数据库中逐次读取目标业务数据,之后将读取到的所述目标业务数据写入所述分布式系统,实现了通过添加数据标识的方式,避免数据混乱;同时为了数据丢失,可以将添加标识的业务数据写入所述业务数据库,使得数据可以持久化,以避免数据丢失而影响目标业务的问题发生,从而进一步提高了业务服务端和数据处理端之间的容灾效率。

图1示出了根据本说明书一实施例提供的一种数据处理方法的流程图,应用于业务服务端,具体包括以下步骤:

步骤S102,接收目标业务关联的数据处理端提交的业务数据集合。

具体的,所述业务服务端具体是指需要对数据进行汇总和分析的一端,其属于所述数据处理端的下游数据处理节点;业务服务端当接收到数据处理端回传的业务数据后,将基于业务数据进行审计或分析,从而响应目标业务的任务;相应的,所述数据处理端具体是指能够进行数据采集和预处理的一端,其属于所述业务服务端的上游数据处理节点;也就是说,当数据处理端进行数据的采集和处理后,会将处理后的数据发送到业务服务端,由业务服务端对数据进行进一步的处理和操作。

基于此,所述目标业务具体是指向业务参与方所提供的业务服务,如看视频参与抽奖活动,则目标业务可以是本次抽奖活动,相应的,业务参与方即为观看视频并参与抽奖的用户;或者业务方提供多媒体资源供用户浏览,则目标业务可以是多媒体资源浏览业务,相应的,业务参与方即为浏览多媒体资源的浏览者;再或者业务方提供租借资源供企业或用户使用,则目标业务可以是租借业务,相应的,业务参与方即为租借资源的企业或者用户。实际应用中,所述目标业务即为业务方向用户/企业等所提供的业务服务,所述目标业务的具体业务服务内容可以根据实际应用场景设定,本实施例在此不作任何限定。

具体实施时,当所述数据处理端完成数据的采集和预处理后,会将所述业务数据回传给所述业务服务端,而所述业务服务端当接收到所述业务数据组成的所述业务数据集合后,通常情况下会将所述业务数据集合中包含的各个业务数据依次写到所述目标业务对应的分布式系统,以完成后续的处理任务,然而在此过程中,为了避免数据丢失和数据混乱,可以采用添加数据标识的方式对各个业务数据进行处理,以并将其写到所述业务数据库进行持久化,从而避免数据丢失的同时提供了数据的安全性和有序性。

而在此之前,实则是需要向所述数据处理端发送数据采集请求的,也就是说,所述业务服务端所接收到的所述业务数据集合,是数据处理端响应预先发送的数据采集请求得到的,本实施例中,具体实现方式如下所述:

根据所述目标业务的业务信息确定与所述业务服务端具有数据传输关系的所述数据处理端;

向所述数据处理端发送数据处理包,并接收所述数据处理端针对所述数据处理包返回的所述业务数据集合。

具体的,所述业务信息具体是指所述目标业务相关的信息,通过所述业务信息可以确定与业务服务端具有传输关系的所述数据处理端,并且可以确定所述数据处理端与所述业务服务端之间传输数据的类型等信息;相应的,所述数据处理包具体是指规范数据处理端进行数据采集和处理的程序包,通过所述数据处理包可以确定业务服务端所需要的数据类型、字段取值等,以方便数据处理端可以基于该数据处理包进行数据的处理操作,从而避免回传冗余的数据,造成业务服务端的计算资源的消耗;所述业务数据集合具体是指整合数据处理端回传的业务数据组成的集合,其中包含的业务数据即为业务服务端所需要使用的数据。

基于此,为了能够保证业务服务端所接收到的业务数据是后续处理需要使用的数据,可以基于所述目标业务的业务信息确定与所述业务服务器具有数据传输关系的所述数据处理端,且所述数据处理端是能够进行数据采集和预处理的一端,可以满足所述业务服务端进行后续的处理操作;当确定所述数据处理端之后,即可根据所述业务信息向所述数据处理端发送所述数据处理包,使得所述数据处理端可以基于所述数据处理包进行业务数据的采集和预处理,使得所述业务服务端所接收到的业务数据能够直接使用,即最后将接收所述数据处理端针对所述数据处理包返回的所述业务数据集合。

实际应用中,为了能够保证业务服务端所接收到的所述业务数据,可以直接用于后续处理操作,则可以采用发送所述数据处理包的方式规范数据处理端的数据采集和处理,而在发送所述数据处理包之前,则需要根据规范需求创建数据处理包,本实施例中,具体实现方式如下所述:

接收针对所述目标业务提交的业务处理请求,并根据所述业务处理请求创建数据处理任务;

按照所述数据处理任务构建结构化信息,并通过业务代码生成所述结构化信息对应的所述数据处理包。

具体的,所述业务处理请求具体是指创建数据处理任务的请求,且通过所述数据处理请求可以确定业务服务端所需要的业务数据,所述数据处理任务具体是指获取数据的任务,所述业务服务端通过所述数据处理任务可以请求数据处理端进行数据采集并回传,以使用回传的数据完成所述数据处理任务。相应的,所述结构化信息具体是指数据处理包中包含数据采集和数据处理对应信息,通过所述结构化信息可以对数据处理端采集到的数据进行处理,以整理出业务服务端所需的数据;即所述业务数据集合中包含的业务数据即为按照所述结构化信息进行整理后得到的数据,其可以直接回传给业务服务端进行处理,达到节省业务服务端计算资源的目的。所述业务代码具体是指生成所述数据处理包的底层代码,以使得数据处理端可以从代码层面完成数据的采集和处理并回传。

基于此,当接收到针对所述目标业务提交的业务处理请求的情况下,可以确定此时需要联合所述数据处理端完成数据的采集和处理,而为了能够提高业务服务端和数据处理端之间的数据处理效率,所述业务服务端可以基于所述业务处理请求创建所述数据处理任务,并按照所述数据处理任务构建所述结构化信息,从而初步确定业务服务端所述的数据内容,最后再结合业务代码生成所述结构化信息对应的所述数据处理包即可,以达到封装所需信息的目的,使得数据处理端能够快速响应并返回业务数据。

更进一步的,按照所述数据处理任务构建的所述结构化信息,实则是在数据信息、字段信息以及类型信息规范所述数据处理端进行数据的采集和处理,也就是说,数据处理端将按照业务服务端所需要的数据信息、字段信息以及类型信息进行数据的采集和处理,从而使得数据处理端返回的业务数据集合中包含的业务数据都是业务服务端所能够直接使用的数据,以提高数据处理效率。

其中,所述数据信息具体是指业务服务端所需要的数据对应的信息,所述字段信息具体是指业务服务端所需要的数据中包含字段数量的信息和各个字段含义的信息;所述类型信息具体是指业务服务端所需要的数据对应的类型信息,以及数据中包含的字段对应的类型信息。

具体实施时,数据处理端在结合所述数据信息、所述字段信息和所述类型信息对采集到的数据进行处理的过程中,实则是对数据进行规范化,可以理解为剔除数据中的冗余数据、规范数据类型、设定字段取值、确定字段含义等。以使得生成的业务数据即为业务服务端所需要使用的数据,节省业务服务端的计算资源,提高处理效率。

举例说明,当日志审计节点接收到运维人员提交的业务处理请求后,可以根据业务处理请求确定数据信息、字段信息和类型信息,以结合上述三种信息创建日志审计任务。此时为了提高日志审计的效率,可以根据日志审计任务构建日志处理结构化信息,再结合目标业务的业务代码创建出日志处理结构化信息对应的日志处理包SDK_log,并将其发送到日志采集节点。

日志采集节点接收到日志处理包SDK_log后,通过对日志处理包SDK_log进行解析,获得日志处理结构化信息,根据日志处理结构化信息确定需要采集用户行为日志,时间为T0~T1区间,其中需要包含S个字段,分别为字段field_1,field_2……field_s;字段field_1表示用户姓名,字段field_2表示用户ID……field_s表示用户参与业务时间;此时日志采集节点将对目标业务关联的用户行为日志、数据库日志以及业务日志进行全量采集,之后按照结构化信息对采集到的日志进行处理;即日志采集节点首先从全量采集的日志中筛选出用户行为日志,其次选择T0~T1区间的用户行为日志,再次按照字段field_1,field_2……field_s进行筛选,最后根据筛选结果即可得到日志审计节点需要的目标用户行为日志;最后将目标用户行为日志回传给日志审结节点,由该节点进行日志审计操作即可。

综上所述,通过规范数据处理端回传数据的结构的方式,保证业务服务端接收到的业务数据集合中的业务数据都是业务服务端所需要的数据,从而进一步节省业务服务端对回传的业务数据进行处理的操作,有效的提高了数据处理效率。

步骤S104,针对所述业务数据集合中的各个业务数据添加数据标识,并将添加所述数据标识的业务数据写入所述目标业务的业务数据库。

具体的,在上述接收到所述数据处理端提交的业务数据集合的基础上,进一步的,为了能够保证数据不丢失,且在持久化的基础上避免数据混乱,可以针对业务数据集合中包含的各个业务数据添加所述数据标识,使得各个业务数据具有唯一的标识,并将添加数据标识的业务数据写入所述目标业务的业务数据库,以达到持久化的目的。

其中,所述数据标识具体是指每条业务数据所对应的key,相应的,所述业务数据库具体是指存储业务数据的数据库,以避免在上传分布式系统前,因为设备故障而导致数据丢失;所述业务数据库可以采用RocksDB数据库或其他类型的数据库,本实施例在此不作任何限定。

需要说明的是,所述由于业务数据集合中包含的业务数据的数量较多,且每条业务数据在后续还需要所述目标业务对应的分布式系统,如果写入分布式系统时,不按照业务服务端接收每条数据的顺序进行写入,就可能会导致分布式系统无法正常进行数据处理操作,从而无法完整数据处理任务,因此在添加所述数据标识时,可以按照所述业务服务端接收所述业务数据集合中每条数据的顺序进行添加,且所述数据标识单调递增,以方便后续可以按照数据标识完成数据写入所述分布式系统的操作。

基于此,当接收到所述业务数据集合后,可以针对所述业务数据集合中的各个业务数据添加所述数据标识,以使得每条需要进行持久化的数据变得有序,且方便后续按照顺序写到所述分布式系统,当对每条数据添加所述数据标识后,可以将添加所述数据标识的业务数据写入所述目标业务对应的所述业务数据库,从而避免数据丢失。

实际应用中,针对每条数据添加数据标识时,需要按照先到先添加的方式进行,且后到的业务数据所对应的数据标识要比先到的业务数据所对应的数据标识大,但可以不连续;如业务数据1、业务数据2和业务数据3分别被传送到业务服务端,业务服务端先接收到业务数据1,再接收到业务数据2,最后接收到业务数据3,则针对业务数据1可以添加数据标识ID_1,针对业务数据2可以添加数据标识ID_2,针对业务数据3可以添加数据标识ID_3,其中ID_1>ID_2>ID_3,但ID_1、ID_2、ID_3可以不连续,如ID_1对应的值为1,ID_2对应的值可以为5、ID_3对应的值可以为6,以此可以节省维护数据标识连续的计算成文。

进一步的,为了能够保证数据在写入分布式系统时,可以保持有序性,以及先入先出的目的,可以按照时间信息进行所述数据标识的添加,本实施例中,具体实现方式如下所述:

提取所述业务数据集合中包含的各个业务数据,并确定各个业务数据对应的时间信息;

按照所述时间信息对所述业务数据集合中包含的各个业务数据添加所述数据标识;

将添加所述数据标识的业务数据按照所述数据标识依次写入所述业务数据库,其中,所述数据标识单调递增。

具体的,所述时间信息具体是指业务服务端接收到各个业务数据所对应的时间,需要说明的是,每条业务数据都具有唯一的时间,时间的级别可以是微秒级别、毫秒级别或者秒级别,实际应用中,所述时间信息的确定可以根据实际应用场景设定,本实施例在此不作任何限定。

基于此,当确定接收到的所述业务数据集合中包含的各个业务数据都需要写到所述业务数据库的情况下,首先从所述业务数据集合中提取各个业务数据,并确定各个业务数据所对应的时间信息,当确定所述时间信息后,即可确定业务服务端接收各个业务数据的先后顺序,之后按照所述时间顺序对各个业务数据添加数据标识即可,从而可以实现通过区分数据标识的方式确定业务数据的接收时间,方便后续按照顺序写入分布式系统;当每条业务数据都完成数据标识的添加后,即可按照所述数据标识依次将添加数据标识的业务数据写入所述业务数据库,从而可以对业务数据进行持久化,避免在业务服务端发生设备故障的情况下,造成数据丢失。

更进一步的,由于所述数据标识具有唯一性且单调递增,为了能够对每条业务数据都可以进行区分,本实施例将采用Snowflake算法完成数据标识的生成和添加处理,具体实现方式如下所述:

获取所述目标业务预设的Snowflake算法;

基于所述Snowflake算法对所述业务数据集合中的各个业务数据添加所述数据标识。

具体的,所述Snowflake算法是一种GUID(Globally Unique Identifier,全局唯一标识符)产生算法,通过一个int64_t即可完成数据标识的生成任务,当提取到业务数据集合中包含的各条业务数据后,通过Snowflake算法对所述业务数据集合中的各个业务数据创建数据标识并添加即可,以达到针对每条业务数据都分配key的目的,方便后续进行数据存储和分布式系统的写入操作,避免因为数据混乱而无法执行处理的问题发生。

沿用上例,日志审计节点接收到日志采集节点返回的业务日志集合后,可以提取业务日志集合中包含的每条业务日志,确定其中包括业务日志log_1,业务日志log_2……业务日志log_n,其中n为正整数,业务日志log_1对应的时间信息为T1,业务日志log_2对应的时间信息为T2……业务日志log_n对应的时间信息为Tn。之后可以采用Snowflake算法结合时间信息针对每条业务数据创建key,此时确定业务日志log_1对应的key为log_1/ID_1;业务日志log_2对应的key为log_2/ID_2……业务日志log_n对应的key为log_n/ID_n;其中,log_1/ID_1>log_2/ID_2>…>log_n/ID_n。

进一步的,当完成对n条业务日志添加key之后,即可将各条业务日志按照key的顺序依次写入RocksDB数据库;即按照先入先出的顺序,向RocksDB数据库最先写入业务日志log_1,其次是业务日志log_2…以此类推,直至n条业务日志均完成写入即可,从而达到持久化的目的,避免在写入Kafka前因为设备故障而丢失。

综上,通过结合时间信息针对每条业务数据添加数据标识,不仅可以保证数据的有序性,还能够避免数据混乱,从而使得后续可以在写入分布式系统时,保证数据不会因为混乱影响目标业务正常运行。

进一步的,在将添加数据标识的业务数据写入所述业务数据库的过程中,由于业务数据库的存储空间有限,如果持续写入可能会造成业务数据库被长时间占用的问题,并且会影响其他数据的写入,因此为了能够避免对其他数据的写入产生影响,可以基于降级策略对业务数据库进行更新,本实施例中,具体实现方式如下所述:

确定所述业务数据库对应的存储空间阈值,并判断当前时间节点所述业务数据库的存储空间是否大于所述存储空间阈值;

若是,提取所述业务数据库中存储时间最长的待删除数据,并基于所述待删除数据释放所述业务数据库的存储空间;在所述业务数据库的存储空间释放完成的情况下,将添加所述数据标识的业务数据写入所述业务数据库。

若否,直接将所述添加所述数据标识的业务数据写入所述业务数据库即可。

具体的,所述存储空间阈值具体是指所述业务数据库存储数据的上限值,通过所述存储空间阈值可以避免业务数据库崩溃,出现数据损坏的问题;所述存储空间阈值的大小可以根据实际场景进行设定,本实施例在此不作任何限定;相应的,所述待删除数据具体是指所述业务数据库中存储时间过长且不被使用的数据。

基于此,当针对业务数据集合中的每条业务数据都添加完成数据标识后,可以先确定所述业务数据库对应的存储时间阈值,并判断当前时间节点所述业务数据库的存储空间是否大于所述存储空间阈值,若是,表明当前时间节点所述业务数据库中无法再写入业务数据,而为了避免添加数据标识的业务数据丢失,此时可以提取所述业务数据库中存储时间最长的待删除数据,并将所述待删除数据进行剔除,从而对所述业务数据库的存储空间进行释放,之后在业务数据库的存储空间释放完成后,即可将添加数据标识的业务数据写入所述业务数据库。若否,表明当前时间节点所述业务数据库中可以继续写入业务数据,则直接将添加数据标识的业务数据写入所述业务数据库即可。

实际应用中,在确定所述业务数据库中的所述待删除数据时,可以基于所述业务数据集合中包含的业务数据条数的总体积确定,即先确定所述业务数据集合中包含的业务数据所能够占用的存储空间,之后按照该存储空间对在所述业务数据库中确定待删除数据,之后对待删除数据进行剔除即可释放业务数据库的存储空间,以达到充分利用存储资源的目的。

更进一步的,为了能够对数据进行持久化,本实施例采用RocksDB作为所述业务数据库,因此当进行数据存储时,需要将数据转换为二进制数据,本实施例中,具体实现方式如下所述:

对添加所述数据标识的业务数据进行转换,获得二进制数据;

将所述二进制数据按照所述数据标识依次写入所述业务数据库,其中,所述数据标识单调递增。

具体的,RocksDB数据库作为一种开放的嵌入式、持久化存储、KV型的存储引擎,为了能够保证数据可以持久化存储,在得到添加数据标识的所述业务数据后,可以将添加所述数据标识的业务数据转换为满足业务数据库存储需求的二进制数据,之后按照所述数据标识依次写入所述业务数据库即可。

沿用上例,在将业务日志log_1,业务日志log_2…业务日志log_n写入RocksDB数据库之前,可以先确定RocksDB数据库对应的存储空间阈值90%,并判断当前时间节点RocksDB数据库的存储空间是否达到存储空间阈值90%;若是,则可以先确定业务日志log_1至业务日志log_n所占用的总空间为5G,之后根据业务日志的空间大小从RocksDB数据库中提取存储时间最长的业务日志,当存储时间最长的业务日志未达到5G的情况下,可以再提取存储时间仅小于存储时间最长的业务日志第二条业务日志,直至业务日志的空间占比达到5G,则将这部分业务日志删除即可,以释放RocksDB数据库;之后将业务日志log_1至业务日志log_n转换为二进制数据,最后再按照key将转换为二进制数据的业务日志log_1,业务日志log_2…业务日志log_n依次写到RocksDB数据库即可。

综上,通过动态的调整所述业务数据库的存储空间,不仅可以保证添加数据标识的业务数据持久化,还能够及时清理业务数据库中的冗余数据,从而提高了空间利用率。

步骤S106,接收针对所述业务数据库中的业务数据提交的处理指令。

具体的,在上述将添加所述数据标识的业务数据写到所述业务数据库之后,即完成了业务数据的持久化,当业务服务端需要使用业务数据进行后续的处理时,则此时将接收到针对业务数据库中的业务数据提交的处理指令,后续即可根据所述处理指令进行业务数据的读取,以写到分布式系统,用于完成数据处理任务。

步骤108,基于所述处理指令和所述数据标识在所述业务数据库中读取目标业务数据,并将所述目标业务数据写入所述目标业务对应的分布式系统。

具体的,在接收到所述处理指令的情况下,说明此时需要提取所述业务数据库中的业务数据进行后续的处理操作,由于之前为了避免数据丢失,会对数据进行持久化处理,此时如果直接从所述业务数据库中读取业务数据写到分布式系统,就会出现数据混乱的问题,从而影响分布式系统进行后续的业务处理操作,因此在接收到所述处理指令后,可以基于所述处理指令和所述数据标识从所述业务数据库中读取所述目标业务数据,以写到所述分布式系统,保证业务处理操作的顺利完成。其中,所述目标业务数据具体是指在当前时间节点需要写入分布式系统的业务数据;相应的,所述分布式系统具体是指需要根据所述目标业务数据进行相应的处理操作的系统,如在日志采集场景中,分布式系统可以是业务服务端所配置的Kafka。

进一步的,在读取所述目标业务数据并将其写入分布式系统的过程中,由于数据已被持久化,如果直接进行业务数据的读取,可能不是当前时间节点所需要的数据,进而造成分布式系统无法完成后续的处理任务,因此在进行目标业务数据读取时,可以基于数据标识完成,本实施例中,具体实现方式如下所述:

根据所述处理指令查询所述业务数据库的元数据,获得所述数据标识;

按照所述数据标识在所述业务数据库中读取所述目标业务数据;

按照所述数据标识将所述目标业务数据依次写入所述分布式系统,其中,所述数据标识单调递增。

具体的,所述元数据具体是指所述业务数据库对应的中介数据、中继数据,是描述数据库中存储数据的一种数据,主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。

基于此,在得到所述处理指令后,可以根据所述处理指令查询所述业务数据库的元数据,以根据读取结果获得多个数据标识,之后按照所述数据标识从所述业务数据库中进行目标业务数据的读取,最后再按照先入先出的规则,向分布式系统中写入所述目标业务数据,即按照所述数据标识将所述目标业务数据依次写入所述分布式系统。

沿用上例,在接收到日志审计指令的情况下,此时可以根据日志审计指令查询RocksDB数据库对应的元数据,以根据查询结果获得每个业务日志分别对应的key,之后按照key从RocksDB数据库中依次读取各个业务日志,即:首先根据log_1/ID_1读取业务日志log_1,其次根据log_2/ID_2读取业务日志log_2……最后根据log_n/ID_n读取业务日志log_n,之后为了能够完成日志审计处理,则再按照key将业务日志分别写入Kafka,即:首先将业务日志log_1写入Kafka,其次将业务日志log_2写入Kafka……最后将业务日志log_n写入Kafka即可。

综上,在将目标业务日志写入分布式系统的过程中,考虑到先入先出可以保证分布式系统完成后续的数据处理任务,则可以按照数据标识进行数据的读取和写入操作,从而有效的提高了数据处理效率。

本说明书提供的数据处理方法,当所述业务服务端接收到所述数据处理端返回的业务数据集合后,可以针对所述业务集合中的各个业务数据添加数据标识,从而使得各个业务数据连续且唯一,之后为了数据丢失,可以将添加所述数据标识的业务数据写入所述业务数据库;在接收到针对所述业务数据库中的业务数据体检的处理指令的情况下,可以基于所述处理指令和所述数据标识从所述业务数据库中逐次读取目标业务数据,之后将读取到的所述目标业务数据写入所述分布式系统,实现了通过添加数据标识的方式,避免数据混乱;同时为了数据丢失,可以将添加标识的业务数据写入所述业务数据库,使得数据可以持久化,以避免数据丢失而影响目标业务的问题发生,从而进一步提高了业务服务端和数据处理端之间的容灾效率。

下述结合附图2,以本说明书提供的数据处理方法在日志采集场景中的应用为例,对所述数据处理方法进行进一步说明。其中,图2示出了本说明书一实施例提供的一种应用于日志采集场景中的数据处理方法的处理流程图,具体包括以下步骤:

步骤S202,根据目标业务的业务信息确定与日志审计节点具有日志传输关系的日志采集节点。

步骤S204,接收针对目标业务提交的日志审计请求,并根据日志审计请求创建日志审计任务。

步骤S206,按照日志审计任务构建结构化信息,并通过业务代码生成结构化信息对应的日志处理包。

步骤S208,向日志采集节点发送日志处理包,并接收日志采集节点针对日志处理包返回的用户行为日志。

步骤S210,基于目标业务预设的Snowflake算法对每条用户行为日志添加key。

步骤S212,在目标业务对应的RocksDB数据库的存储空间小于存储空间阈值的情况下,将添加key的用户行为日志依次写入RocksDB数据库。

步骤S214,接收针对RocksDB数据库中的用户行为日志提交的日志审计指令。

步骤S216,根据日志审计指令查询RocksDB数据库中的key,并按照key从RocksDB数据库中读取用户行为日志。

步骤S218,按照key依次将用户行为日志写入Kafka,用于进行日志审计处理。

本说明书提供的数据处理方法,实现了通过添加数据标识的方式,避免数据混乱;同时为了数据丢失,可以将添加标识的业务数据写入所述业务数据库,使得数据可以持久化,以避免数据丢失而影响目标业务的问题发生,从而进一步提高了业务服务端和数据处理端之间的容灾效率。

与上述方法实施例相对应,本说明书还提供了数据处理装置实施例,图3示出了本说明书一实施例提供的一种数据处理装置的结构示意图。如图3所示,该装置包括:

接收集合模块302,被配置为接收目标业务关联的数据处理端提交的业务数据集合;

添加标识模块304,被配置为针对所述业务数据集合中的各个业务数据添加数据标识,并将添加所述数据标识的业务数据写入所述目标业务的业务数据库;

接收指令模块306,被配置为接收针对所述业务数据库中的业务数据提交的处理指令;

读取数据模块308,被配置为基于所述处理指令和所述数据标识在所述业务数据库中读取目标业务数据,并将所述目标业务数据写入所述目标业务对应的分布式系统。

一个可选的实施例中,所述添加标识模块304进一步被配置为:

提取所述业务数据集合中包含的各个业务数据,并确定各个业务数据对应的时间信息;按照所述时间信息对所述业务数据集合中包含的各个业务数据添加所述数据标识;相应的,所述将添加所述数据标识的业务数据写入所述目标业务的业务数据库,包括:将添加所述数据标识的业务数据按照所述数据标识依次写入所述业务数据库,其中,所述数据标识单调递增。

一个可选的实施例中,所述读取数据模块308进一步被配置为:

根据所述处理指令查询所述业务数据库的元数据,获得所述数据标识;按照所述数据标识在所述业务数据库中读取所述目标业务数据;相应的,所述将所述目标业务数据写入所述目标业务对应的分布式系统,包括:按照所述数据标识将所述目标业务数据依次写入所述分布式系统,其中,所述数据标识单调递增。

一个可选的实施例中,所述添加标识模块304进一步被配置为:

获取所述目标业务预设的Snowflake算法;基于所述Snowflake算法对所述业务数据集合中的各个业务数据添加所述数据标识。

一个可选的实施例中,所述接收集合模块302进一步被配置为:

根据所述目标业务的业务信息确定与所述业务服务端具有数据传输关系的所述数据处理端;向所述数据处理端发送数据处理包,并接收所述数据处理端针对所述数据处理包返回的所述业务数据集合。

一个可选的实施例中,所述接收集合模块302进一步被配置为:

接收针对所述目标业务提交的业务处理请求,并根据所述业务处理请求创建数据处理任务;按照所述数据处理任务构建结构化信息,并通过业务代码生成所述结构化信息对应的所述数据处理包。

一个可选的实施例中,所述添加标识模块304进一步被配置为:

确定所述业务数据库对应的存储空间阈值,并判断当前时间节点所述业务数据库的存储空间是否大于所述存储空间阈值;若是,提取所述业务数据库中存储时间最长的待删除数据,并基于所述待删除数据释放所述业务数据库的存储空间;在所述业务数据库的存储空间释放完成的情况下,将添加所述数据标识的业务数据写入所述业务数据库。

一个可选的实施例中,所述添加标识模块304进一步被配置为:

对添加所述数据标识的业务数据进行转换,获得二进制数据;将所述二进制数据按照所述数据标识依次写入所述业务数据库,其中,所述数据标识单调递增。

本实施例提供的数据处理装置,其应用于业务服务端,当所述业务服务端接收到所述数据处理端返回的业务数据集合后,可以针对所述业务集合中的各个业务数据添加数据标识,从而使得各个业务数据连续且唯一,之后为了数据丢失,可以将添加所述数据标识的业务数据写入所述业务数据库;在接收到针对所述业务数据库中的业务数据体检的处理指令的情况下,可以基于所述处理指令和所述数据标识从所述业务数据库中逐次读取目标业务数据,之后将读取到的所述目标业务数据写入所述分布式系统,实现了通过添加数据标识的方式,避免数据混乱;同时为了数据丢失,可以将添加标识的业务数据写入所述业务数据库,使得数据可以持久化,以避免数据丢失而影响目标业务的问题发生,从而进一步提高了业务服务端和数据处理端之间的容灾效率。

上述为本实施例的一种数据处理装置的示意性方案。需要说明的是,该数据处理装置的技术方案与上述的数据处理方法的技术方案属于同一构思,数据处理装置的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。

图4示出了根据本说明书一实施例提供的一种计算设备400的结构框图。该计算设备400的部件包括但不限于存储器410和处理器420。处理器420与存储器410通过总线430相连接,数据库450用于保存数据。

计算设备400还包括接入设备440,接入设备440使得计算设备400能够经由一个或多个网络460通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备440可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。

在本说明书的一个实施例中,计算设备400的上述部件以及图4中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图4所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。

计算设备400可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备400还可以是移动式或静止式的服务器。

其中,处理器420用于执行如下计算机可执行指令:

接收目标业务关联的数据处理端提交的业务数据集合;

针对所述业务数据集合中的各个业务数据添加数据标识,并将添加所述数据标识的业务数据写入所述目标业务的业务数据库;

接收针对所述业务数据库中的业务数据提交的处理指令;

基于所述处理指令和所述数据标识在所述业务数据库中读取目标业务数据,并将所述目标业务数据写入所述目标业务对应的分布式系统。

上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的数据处理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。

本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时以用于:

接收目标业务关联的数据处理端提交的业务数据集合;

针对所述业务数据集合中的各个业务数据添加数据标识,并将添加所述数据标识的业务数据写入所述目标业务的业务数据库;

接收针对所述业务数据库中的业务数据提交的处理指令;

基于所述处理指令和所述数据标识在所述业务数据库中读取目标业务数据,并将所述目标业务数据写入所述目标业务对应的分布式系统。

上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书并不受所描述的动作顺序的限制,因为依据本说明书,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:文件分片存储、分片文件重组方法及装置、文件保护系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!