掌桥专利:专业的专利平台
掌桥专利
首页

一种数据处理方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 13:49:36


一种数据处理方法、装置、电子设备及存储介质

技术领域

本申请涉及数据库技术领域,具体而言,涉及一种数据处理方法、装置、电子设备及存储介质。

背景技术

数据库运维工作中,需要保护数据的写入安全。对于重要的数据表,在一般情况下对于部分敏感数据列中的数据是禁止修改的,针对这一情况,运维人员通常需要通过人工解析binlog文件,对禁止修改的数据进行统计,需要耗费大量人力和时间。

发明内容

有鉴于此,本申请的目的在于提供一种数据处理方法、装置、电子设备及存储介质,可以根据预设的写入规则自动识别数据库的写入事务是否涉及敏感列数据,并根据需要恢复敏感列数据,保证数据库的数据安全,同时提高运维人员对数据库写入事务统计的工作效率。

第一方面,本申请实施例提供一种数据处理方法,数据处理方法包括:从目标数据库接收目标数据库的操作记录,操作记录包括目标数据库执行写入事务的操作类型和操作对象;根据操作类型,确定是否触发针对目标数据库的规则匹配;如果确定触发针对目标数据库的规则匹配,则确定操作对象是否满足针对目标数据库预设的写入规则;如果确定操作对象不满足针对目标数据库预设的写入规则,则对写入事务进行改写,并生成针对操作记录的处理日志。

优选地,根据操作类型,确定是否触发针对目标数据库的规则匹配的步骤,具体包括:如果操作类型属于更新操作或者删除操作,则确定触发针对目标数据库的规则匹配;如果操作类型属于插入操作,则确定不触发针对目标数据库的规则匹配。

优选地,写入规则包括数据库保护规则和数据库更新规则,其中,确定操作对象是否满足针对目标数据库预设的写入规则的步骤,具体包括:确定操作对象是否满足针对目标数据库预设的数据库保护规则;如果确定操作对象不满足针对目标数据库预设的数据库保护规则,则对写入事务进行改写,并生成针对操作记录的第一处理日志;如果确定操作对象满足针对目标数据库预设的数据库保护规则,则确定操作对象是否满足针对目标数据库的数据库更新规则;如果确定操作对象不满足针对目标数据库预设的数据库更新规则,则统计针对目标数据库的更新效率,并生成针对操作记录的第二处理日志。

优选地,确定操作对象是否满足针对目标数据库预设的数据库保护规则的步骤,具体包括:确定操作对象所指示的操作数据表和操作对象在操作数据表中所处的操作数据列,操作数据表为目标数据库中的数据表;确定操作数据表是否属于保护数据表,保护数据表为数据库保护规则指示的需要被保护的数据表;如果确定操作数据表属于保护数据表,则确定操作数据列是否属于保护数据列,保护数据列为数据库保护规则指示的保护数据表中需要被保护的数据列;如果确定操作数据列属于保护数据列,则确定操作对象不满足针对目标数据库预设的数据库保护规则;如果确定操作数据表不属于保护数据表,或者确定操作数据列不属于保护数据列,则确定操作对象满足针对目标数据库预设的数据库保护规则。

优选地,操作记录还包括操作对象在执行写入事务之前的原始数据值,其中,操作类型属于更新操作,通过以下方式对写入事务进行改写:根据操作对象的原始数据值,生成针对操作数据表的操作数据列的更新语句;将所生成的更新语句发送至目标数据库,以使目标数据库基于更新语句将操作对象改写为原始数据值;其中,操作类型属于删除操作,通过以下方式对写入事务进行改写:根据操作对象的原始数据值,生成针对操作数据表的操作数据列的插入语句;将所生成的插入语句发送至目标数据库,以使目标数据库基于插入语句将操作对象改写为原始数据值。

优选地,确定操作对象是否满足针对目标数据库的数据库更新规则的步骤,具体包括:确定操作对象所指示的操作数据表和操作对象在操作数据表中所处的操作数据列,操作数据表为目标数据库中的数据表;确定操作数据表是否属于有效数据表,有效数据表为数据库更新规则指示的能够被更新的数据表;如果确定操作数据表属于有效数据表,则确定操作数据列是否属于有效数据列,有效数据列为数据库更新规则指示的有效数据表中需要被更新的数据列;如果确定操作数据列属于有效数据列,则确定操作对象满足针对目标数据库预设的更新规则;如果确定操作数据表不属于有效数据表,或者确定操作数据列不属于有效数据列,则确定操作对象不满足针对目标数据库预设的更新规则。

优选地,操作类型属于更新操作,通过以下方式统计针对目标数据库的更新效率:针对操作数据表,统计预设时间段内所有不满足针对目标数据库预设的数据库更新规则的更新操作的第一字节总数;确定在预设时间段内针对操作数据表执行所有更新操作的第二字节总数;计算第一字节总数与第二字节总数的比值,将比值确定为针对操作数据表的更新效率。

第二方面,本申请实施例还提供一种数据处理装置,包括:

接收模块,用于从目标数据库接收目标数据库的操作记录,操作记录包括目标数据库执行写入事务的操作类型和操作对象;

第一判断模块,用于根据操作类型,确定是否触发针对目标数据库的规则匹配;

第二判断模块,用于如果确定触发针对目标数据库的规则匹配,则确定操作对象是否满足针对目标数据库预设的写入规则;

改写模块,用于如果确定操作对象不满足针对目标数据库预设的写入规则,则对写入事务进行改写,并生成针对操作记录的处理日志。

第三方面,本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述机器可读指令,以执行如上所述数据处理方法的步骤。

第四方面,本申请实施例还提供一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上所述数据处理方法的步骤。

本申请实施例提供的一种数据处理方法,通过从目标数据库接收目标数据库的操作记录,并确定每条操作记录对应的目标数据库执行的写入事务的操作类型和操作对象,根据操作类型确定是否触发针对目标数据库的规则匹配,如果确定触发针对目标数据库的规则匹配,则确定操作对象是否满足针对目标数据库预设的写入规则,如果确定操作对象不满足针对目标数据库预设的写入规则,则对写入事务进行改写,并生成针对操作记录的处理日志,从而识别出对数据库需要保护的数据的错误修改,并自动将错误修改的数据恢复为修改前的数据,保证数据库的数据安全,提高了运维人员对数据库写入事务统计的工作效率。

为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅为本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例所提供的数据处理方法的流程图;

图2为本申请实施例所提供的一种确定操作对象是否满足针对目标数据库预设的写入规则方法的流程图;

图3为本申请实施例所提供的一种确定操作对象是否满足针对目标数据库预设的数据库保护规则的方法的流程图;

图4为本申请实施例所提供的一种对写入事务进行改写的方法的流程图;

图5为本申请实施例所提供的另一种对写入事务进行改写的方法的流程图;

图6为本申请实施例所提供的一种确定操作对象是否满足针对目标数据库的数据库更新规则的方法的流程图;

图7为本申请实施例所提供的一种统计目标数据库的更新效率的方法的流程图;

图8为本申请实施例所提供的另一种数据处理方法的流程图;

图9为本申请实施例所提供的数据处理装置的结构示意图;

图10为本申请实施例所提供的电子设备的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的每个其他实施例,都属于本申请保护的范围。

数据库运维工作中,需要保护数据的写入安全。对于重要的数据表,在一般情况下部分敏感数据列禁止修改,针对这一情况,运维人员通常需要通过人工解析binlog(二进制日志)文件,对禁止修改的数据进行统计,需要耗费大量人力和时间。

针对上述问题,本申请提出一种数据处理方法、装置、电子设备及存储介质,可以根据预设的写入规则识别数据库的写入事务是否涉及敏感列数据,并根据需要恢复敏感列数据,保证数据库的数据安全,同时提高运维人员对数据库写入事务统计的工作效率。

为便于对本实施例进行理解,下面对本申请实施例提供的一种数据处理方法、装置、电子设备及存储介质进行详细介绍。

请参阅图1,为本申请实施例提供的一种数据处理方法,数据处理方法包括:

S100、从目标数据库接收目标数据库的操作记录。这里,操作记录包括目标数据库执行写入事务的操作类型和操作对象。

在步骤S100中,这里的操作记录为binlog消息,目标数据库(MySQL)提供MySQLdump协议,服务器通过发送协议请求给目标数据库,则可以实时获取目标数据库产生的binlog数据流。binlog数据流包括多个操作记录(即binlog消息)。每个操作记录中包括目标数据库执行的一个写入事务的操作类型和操作对象。操作类型包括更新操作(UPDATE写入行为)、删除操作(DELETE写入行为)和插入操作(INSERT写入行为)。操作对象为写入事务修改的数据对象。

示例性的,通过数据处理集群执行上述方法,数据处理集群中包括多个服务器,服务器可以接收规则管理中心发送的写入规则。规则管理中心存储有工作人员预先配置好的写入规则,这里的写入规则针对某一数据库中的某一个表进行配置。

规则管理中心为每个空闲的服务器分配至少一个目标数据库,并将各目标数据库对应的至少一个规则信息发送给对应的服务器,规则信息中包括有目标数据库的地址(IP)和端口,服务器可以基于目标数据库的地址和端口生成协议请求并发送给目标数据库,与目标数据库建立连接,当目标数据库中产生操作记录时,目标数据库将产生的操作记录发送至所连接的服务器,以执行后续的处理过程。

具体的,根据获取到的每条操作记录中的字段可以解析出以下操作信息:操作发送时间、操作类型、操作对象、操作前列值和操作后列值。这里的操作发送时间为写入事务的发生时间,操作前列值为操作对象所指示的数据表中的某一数据列在写入事务前的所有数据值,并在每一数据值字段后标记是否被更新。操作后列值为操作对象所指示的数据表中的某一数据列在写入事务后的所有数据值,并在每一数据值字段后标记是否被更新。其中,当操作类型属于删除操作时,操作后列值为空,当操作类型属于插入操作时,操作前列值为空。示例性的,将操作信息以表格的形式存储在服务器,以供下一步骤匹配使用。

S110、根据操作类型,确定是否触发针对目标数据库的规则匹配。

基于写入事务的操作类型,确定是否触发针对目标数据库的规则匹配。这里的目标数据库的规则匹配指代的是将获取到的目标数据库对应的规则信息与写入事务的操作对象进行匹配。

具体的,如果操作类型属于更新操作或者删除操作,则确定触发针对目标数据库的规则匹配;如果操作类型属于插入操作,则确定不触发针对目标数据库的规则匹配。不触发针对目标数据库的规则匹配的情况下,则对下一操作记录执行该步骤。

S120、如果确定触发针对目标数据库的规则匹配,则确定操作对象是否满足针对目标数据库预设的写入规则。

目标数据库预设的写入规则包括数据库保护规则和数据库更新规则。这里的数据库保护规则用于指示目标数据库中需要被保护的数据表和该数据表中需要被保护的数据列,被保护的数据列在逻辑上禁止被修改,但在系统运行的过程中,由于程序问题产生写入事务从而修改了目标数据库中需要被保护的数据列的值。或者需要被保护的数据列为工作人员预设的目标数据库的某一数据表中的某一数据列,为工作人员根据行业经验或系统应用场景配置。这里的数据库更新规则用于指示目标数据库中有效更新的数据表中的数据列,有效更新的数据列指示被更新的数据列对于当前系统程序运行是有用的更新,需要工作人员根据行业经验或系统应用场景进行配置。

其中,数据库保护规则和数据库更新规则可以为表格的形式。具体的,数据库保护规则可以包括保护规则编号、数据库IP、数据表名称、数据列名称和禁止删除属性。保护规则编号与每个数据库保护规则一一对应,用于指示数据库保护规则的唯一ID(身份标识号)。数据库IP用于指示需要保护的数据库的IP和端口号。数据表名称用于指示该数据库保护规则需要保护的目标数据库中的某一数据表。数据列名称用于指示该数据库保护规则需要保护的数据表中的某一数据列。禁止删除属性用于指示该数据库保护规则需要保护的数据表中禁止删除数据。

数据库更新规则可以包括更新规则编号、数据IP、数据表名称和数据列名称。更新规则编号与每个数据库更新规则一一对应,用于指示数据库更新规则的唯一ID(身份标识号)。数据库IP用于指示对应的数据库的IP和端口号。数据表名称用于指示目标数据库中的某一数据表。数据列名称用于指示该数据库更新规则中属于有效更新的某一数据列。

具体的,如果确定触发针对目标数据库的规则匹配,则确定操作对应的操作数据表或操作数据列是否为写入规则中的数据表或数据列,若是则命中该写入规则。

S130、如果确定操作对象不满足针对目标数据库预设的写入规则,则对写入事务进行改写,并生成针对操作记录的处理日志。

这里的处理日志用于记录针对写入事务进行的改写,包括生成时间、数据库IP、数据表名称、写入规则编号和写入规则类型等。其中,改写操作时间用于指示处理日志的生成时间。数据库IP用于指示目标数据库的地址和端口号。数据表名称用于指示目标数据库中的某一数据表,即写入事务发生的目标数据库。写入规则编号用于指示命中的数据库保护规则或数据库更新规则的ID。写入规则类型用于指示命中的写入规则的类型,这里为数据库保护规则或数据库更新规则。

本申请通过从目标数据库接收目标数据库的操作记录,并确定每条操作记录对应的目标数据库执行的写入事务的操作类型和操作对象,根据操作类型确定是否触发针对目标数据库的规则匹配,如果确定触发针对目标数据库的规则匹配,则确定操作对象是否满足针对目标数据库预设的写入规则,如果确定操作对象不满足针对目标数据库预设的写入规则,则对写入事务进行改写,并生成针对操作记录的处理日志,运维人员可以基于处理日志快速了解数据库需要保护的数据的错误修改情况和无效写入情况,同时自动将错误修改的数据恢复为修改前的数据,保证数据库的数据安全,提高了运维人员对数据库写入事务统计的工作效率。

请参阅图2,为本申请另一实施例提供的一种确定操作对象是否满足针对目标数据库预设的写入规则方法。在一可选示例中,确定操作对象是否满足针对目标数据库预设的写入规则的步骤,具体包括:

S200、确定操作对象是否满足针对目标数据库预设的数据库保护规则。

示例性的,请参阅图3,为本申请实施例提供的确定操作对象是否满足针对目标数据库预设的数据库保护规则的方法。通过以下步骤确定操作对象是否满足针对目标数据库预设的数据库保护规则,包括:

S2010、确定操作对象所指示的操作数据表和操作对象在操作数据表中所处的操作数据列,操作数据表为目标数据库中的数据表。

具体的,基于操作记录解析出的操作信息确定操作对象所在的操作数据表和在该操作数据表中所处的操作数据列。

S2020、确定操作数据表是否属于保护数据表,保护数据表为数据库保护规则指示的需要被保护的数据表。

判断操作数据表的名称与数据库保护规则中的数据表名称是否匹配,若匹配则说明操作数据表属于保护数据表。

S2030、如果确定操作数据表属于保护数据表,则确定操作数据列是否属于保护数据列,保护数据列为数据库保护规则指示的保护数据表中需要被保护的数据列。

判断操作数据列的名称与数据库保护规则中的数据列名称是否匹配,若匹配则说明该写入事务命中该数据库保护规则。

S2040、如果确定操作数据列属于保护数据列,则确定操作对象不满足针对目标数据库预设的数据库保护规则。

S2050、如果确定操作数据表不属于保护数据表,或者确定操作数据列不属于保护数据列,则确定操作对象满足针对目标数据库预设的数据库保护规则。

对于更新类型的写入事务,如果确定操作数据列属于保护数据列,则确定操作对象不满足针对目标数据库预设的数据库保护规则。对于删除类型的写入事务,如果确定操作数据表属于保护数据表,则还需要确定该保护数据表是否具有禁止删除属性,若是则确定操作对象不满足针对目标数据库预设的数据库保护规则。若以上情况都不是,则确定操作对象满足针对目标数据库预设的数据库保护规则。

S210、如果确定操作对象不满足针对目标数据库预设的数据库保护规则,则对写入事务进行改写,并生成针对操作记录的第一处理日志。

操作记录还包括操作对象在执行写入事务之前的原始数据值,根据写入事务的操作类型执行不同的改写方式,并生成对应的第一处理日志,其中包括生成时间、数据库IP、数据表名称、写入规则编号和写入规则类型等字段和字段对应的信息。

请参阅图4,为本申请实施例提供的一种对写入事务进行改写的方法。具体的,当写入事务的操作类型为更新操作时,通过以下方式对写入事务进行改写:

S2110、根据操作对象的原始数据值,生成针对操作数据表的操作数据列的更新语句。

S2112、将所生成的更新语句发送至目标数据库,以使目标数据库基于更新语句将操作对象改写为原始数据值。

基于操作记录解析出的操作信息获取操作对象在写入事务前的原始数据值,生成针对操作数据表的操作数据列的更新语句。这里的更新语句可以为一条UPDATE SQL语句,用于使目标数据库中的操作对象改写为原始数据值。将禁止修改的数据恢复为被修改前的数据值,从而保证了保护数据表中的保护数据列的数据安全。

请参阅图5,为本申请实施例提供的另一种对写入事务进行改写的方法。具体的,当写入事务的操作类型为删除操作时,通过以下方式对写入事务进行改写:

S2120、根据操作对象的原始数据值,生成针对操作数据表的操作数据列的插入语句;

S2122、将所生成的插入语句发送至目标数据库,以使目标数据库基于插入语句将操作对象改写为原始数据值。

基于操作记录解析出的操作信息获取操作对象在写入事务前的原始数据值,生成针对操作数据表的操作数据列的插入语句。这里的更新语句可以为一条INSERT SQL语句,用于使目标数据库中的操作对象改写为原始数据值。将禁止删除的数据恢复为被修改前的数据值,从而保证了保护数据表中的保护数据列的数据安全。

S220、如果确定操作对象满足针对目标数据库预设的数据库保护规则,则确定操作对象是否满足针对目标数据库的数据库更新规则。

请参阅图6,为本申请实施例提供的确定操作对象是否满足针对目标数据库的数据库更新规则的方法。具体的,确定操作对象是否满足针对目标数据库的数据库更新规则的步骤,具体包括:

S2210、确定操作对象所指示的操作数据表和操作对象在操作数据表中所处的操作数据列,操作数据表为目标数据库中的数据表。

S2220、确定操作数据表是否属于有效数据表,有效数据表为数据库更新规则指示的能够被更新的数据表。

S2230、如果确定操作数据表属于有效数据表,则确定操作数据列是否属于有效数据列,有效数据列为数据库更新规则指示的有效数据表中需要被更新的数据列。

S2240、如果确定操作数据列属于有效数据列,则确定操作对象满足针对目标数据库预设的更新规则。

S2250、如果确定操作数据表不属于有效数据表,或者确定操作数据列不属于有效数据列,则确定操作对象不满足针对目标数据库预设的更新规则。

S230、如果确定操作对象不满足针对目标数据库预设的数据库更新规则,则统计针对目标数据库的更新效率,并生成针对操作记录的第二处理日志。

对于满足了目标数据库预设的数据库保护规则的写入事务,继续与目标数据库的数据库更新规则进行匹配,如果确定操作对象不满足针对目标数据库预设的数据库更新规则,则计算针对目标数据库的更新效率,并生成第二处理日志,其中包括生成时间、数据库IP、数据表名称、写入规则编号和写入规则类型等字段、字段对应的信息和更新效率。如果确定操作对象满足针对目标数据库预设的数据库更新规则,则返回步骤S100。

请参阅图7,为本申请实施例提供的统计目标数据库的更新效率的方法。在一可选示例中,操作类型属于更新操作,通过以下方式统计针对目标数据库的更新效率:

S300、针对操作数据表,统计预设时间段内所有不满足针对目标数据库预设的数据库更新规则的更新操作的第一字节总数。

S310、确定在预设时间段内针对操作数据表执行所有更新操作的第二字节总数。

S320、计算第一字节总数与第二字节总数的比值,将比值确定为针对操作数据表的更新效率。

具体的,这里的预设时间段可以为一小时,可以由工作人员根据运维需求具体设置。每小时统计该更新操作形成的binlog字节数(即第一字节总数),以及目标数据库的操作数据表中该小时内所有更新操作形成的binlog字节数(即第二字节总数),将第一字节总数和第二字节总数的比值作为该操作数据表的更新效率。运维人员可以通过查看操作数据表的更新效率获取目标数据库中有效更新以外(包括无效更新和低效更新)的更新情况,从而通知程序的研发人员对程序进行改进。节省了人工查询binlog文件统计数据的时间,提高了运维工作效率。

进一步的,运维人员可以通过第一处理日志或第二处理日志中的写入规则编号和写入规则类型,确定出写入事务命中的为哪一条写入规则,总而确定出目标数据库中哪一个数据表或数据表中的哪一个数据列存在写入压力或存在违规修改,从而通知研发人员对造成这一问题的程序进行改进。

在一可选示例中,还可以接收配置中心发送的更新信息,以更新当前的写入规则,从而实现写入规则的实时更新。

请参阅图8,图8为本申请实施例所提供的一种数据处理方法。在一可选示例中,通过以下三个模块实现上述数据处理方法:

(1)配置管理中心,用于完成SQL识别规则的配置和下达。

其中,SQL识别规则分为两类:数据保护规则和有效更新规则。数据保护规则记录用于禁止敏感数据列被篡改,一旦识别到binlog中的改写行为将生成一条恢复性SQL在数据库中执行。有效更新规则用于规定特定数据表中必须涉及到列集合中的一个,如果在binlog中更新列不包含在配置列中,则定义为无效更新。

规则管理中心的所以规则可以添加和删除,每次规则的修改,规则管理中心会下达到binlog处理集群。

(2)binlog数据流处理集群,用于接收配置管理中心的识别规则,拉取binlog数据流,生成数据保护SQL并恢复数据,存储识别到的无效/低效SQL统计结果。

MySQL提供binlog dump协议,对发送binlog dump请求的客户端会发送binlog格式化数据流,binlog数据流记录所有数据表的改写详情包括INSERT,UPDATE,DELETE,对于UPDATE操作会记录所有列在改下前/后的值。

接受到binlog数据后,会优先匹配敏感数据保护规则,将UPDATE操作中匹配到数据表名称的更新列进行规则对比,如果命中保护规则会生成一条UPDATE SQL语句,将被改写的列重新写为原来的值,并记录到日志存储模块中。

对于开启了DELETE保护的规则,所有命中表名称的DELETE操作,都会生成一条INSERT SQL将记录写回到数据表。

以上两步完成后可以保证配置的数据表不会被改写和删除记录。所有的操作会记录到日志存储模块中。

对于没有命中保护规则的数据会继续无效更新规则,如果UPDATE操作中被变更的列都不在规则中配置的集合内,binlog处理模块会计算本次update形成的binlog字节数,并每小时统计无效更新站占该表所有更新binlog数据流字节数的长度占比存入日志存储模块。

(3)操作统计日志存储模块,用于存储统计完成的无效/低效SQL识别和进行数据保护的操作行为。

操作日志存储模用于DBA查询binlog处理集群进行的操作历史记录,每次binlog处理的结果会存储为格式化信息。

运维人员可以根据格式化存储的信息,通过筛选条件得到所有配置涉及的数据库中存在哪些需要优化或因敏感列修改被恢复的行为,从而可以通知研发进行应用优化或安全策略调整。

基于同一发明构思,本申请实施例中还提供了与数据处理方法对应的数据处理装置,由于本申请实施例中的数据处理装置解决问题的原理与本申请实施例上述数据处理方法相似,因此数据处理装置的实施可以参见方法的实施,重复之处不再赘述。

请参阅图9,图9为本申请实施例所提供的一种数据处理装置的结构示意图。如图9中所示,处理装置900包括:

接收模块910,用于从目标数据库接收目标数据库的操作记录,操作记录包括目标数据库执行写入事务的操作类型和操作对象;

第一判断模块920,用于根据操作类型,确定是否触发针对目标数据库的规则匹配;

第二判断模块930,用于如果确定触发针对目标数据库的规则匹配,则确定操作对象是否满足针对目标数据库预设的写入规则;

改写模块940,用于如果确定操作对象不满足针对目标数据库预设的写入规则,则对写入事务进行改写,并生成针对操作记录的处理日志。

在一优选实施例中,第一判断模块920具体用于:如果操作类型属于更新操作或者删除操作,则确定触发针对目标数据库的规则匹配;如果操作类型属于插入操作,则确定不触发针对目标数据库的规则匹配。

在一优选实施例中,写入规则包括数据库保护规则和数据库更新规则,其中,第二判断模块930具体用于:确定操作对象是否满足针对目标数据库预设的数据库保护规则;如果确定操作对象不满足针对目标数据库预设的数据库保护规则,则对写入事务进行改写,并生成针对操作记录的第一处理日志;如果确定操作对象满足针对目标数据库预设的数据库保护规则,则确定操作对象是否满足针对目标数据库的数据库更新规则;如果确定操作对象不满足针对目标数据库预设的数据库更新规则,则统计针对目标数据库的更新效率,并生成针对操作记录的第二处理日志。

在一优选实施例中,第二判断模块930还用于:确定操作对象所指示的操作数据表和操作对象在操作数据表中所处的操作数据列,操作数据表为目标数据库中的数据表;确定操作数据表是否属于保护数据表,保护数据表为数据库保护规则指示的需要被保护的数据表;如果确定操作数据表属于保护数据表,则确定操作数据列是否属于保护数据列,保护数据列为数据库保护规则指示的保护数据表中需要被保护的数据列;如果确定操作数据列属于保护数据列,则确定操作对象不满足针对目标数据库预设的数据库保护规则;如果确定操作数据表不属于保护数据表,或者确定操作数据列不属于保护数据列,则确定操作对象满足针对目标数据库预设的数据库保护规则。

在一优选实施例中,操作记录还包括操作对象在执行写入事务之前的原始数据值,改写模块940具体用于:操作类型属于更新操作,通过以下方式对写入事务进行改写:根据操作对象的原始数据值,生成针对操作数据表的操作数据列的更新语句;将所生成的更新语句发送至目标数据库,以使目标数据库基于更新语句将操作对象改写为原始数据值;

操作类型属于删除操作,通过以下方式对写入事务进行改写:根据操作对象的原始数据值,生成针对操作数据表的操作数据列的插入语句;将所生成的插入语句发送至目标数据库,以使目标数据库基于插入语句将操作对象改写为原始数据值。

在一优选实施例中,第二判断模块930还用于:确定操作对象所指示的操作数据表和操作对象在操作数据表中所处的操作数据列,操作数据表为目标数据库中的数据表;确定操作数据表是否属于有效数据表,有效数据表为数据库更新规则指示的能够被更新的数据表;如果确定操作数据表属于有效数据表,则确定操作数据列是否属于有效数据列,有效数据列为数据库更新规则指示的有效数据表中需要被更新的数据列;如果确定操作数据列属于有效数据列,则确定操作对象满足针对目标数据库预设的更新规则;如果确定操作数据表不属于有效数据表,或者确定操作数据列不属于有效数据列,则确定操作对象不满足针对目标数据库预设的更新规则。

在一优选实施例中,操作类型属于更新操作,第二判断模块930具体用于:

通过以下方式统计针对目标数据库的更新效率:针对操作数据表,统计预设时间段内所有不满足针对目标数据库预设的数据库更新规则的更新操作的第一字节总数;确定在预设时间段内针对操作数据表执行所有更新操作的第二字节总数;计算第一字节总数与第二字节总数的比值,将比值确定为针对操作数据表的更新效率。

请参阅图10,图10为本申请实施例所提供的一种电子设备的结构示意图。如图10中所示,所述电子设备800包括处理器810、存储器820和总线830。

所述存储器820存储有所述处理器810可执行的机器可读指令,当电子设备800运行时,所述处理器810与所述存储器820之间通过总线830通信,所述机器可读指令被所述处理器810执行时,可以执行上述数据处理方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。

本申请实施例还提供一种计算机可读存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时可以执行上述数据处理方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

相关技术
  • 一种数据处理方法、装置、电子设备和存储介质
  • 一种图像数据处理方法、装置、电子设备及其存储介质
技术分类

06120113822110